m0_58788295 2021-05-30 19:48 采纳率: 0%
浏览 13

求大佬kl25控制程序

已知某基于嵌入式系统的直流电机转速-电流双闭环调速系统的硬件系统如图所示,请仔细阅读以下说明,并完成26-31题。

(1)直流电机额定电压24V,通过由MOSFET Q1、Q2、Q3、Q4构成的H桥双向驱动电路实现方向和速度调节。当Q1、Q3同时导通,Q2、Q4同时关断时电机正转; Q2、Q4同时导通,Q1、Q3同时关断时电机反转;同一桥臂上的两个MOSFET不能同时导通,即Q1、Q4不能同时导通,Q2、Q3不能同时导通。

(2)正转时,可向Q3门极输出高电平,使Q3一直导通,只通过调节Q1门极PWM信号的占空比,实现电机的正向调速;正转时,可向Q4门极输出高电平,使Q4一直导通,只通过调节Q2门极PWM信号的占空比,实现电机的反向调速

(3)直流电机同轴连接一个旋转编码器,该旋转编码器每旋转一周产生1024个脉冲信号,该编码器有A相和B相两路脉冲信号输出,且相位相差180°,当电机正转时A相脉冲优于B相脉冲触发;当电机反转时B相脉冲优于A相脉冲触发。

(4)电机主回路中串入了一个霍尔电流传感器,用于检测电机回路的电流值,霍尔传感器的输出经变送器后输出0~3.3V标准的电压信号。

(5)采用KL25Z128处理器作为控制核心,引脚分配如图所示,通过TPM模块产生4路PWM信号控制MOSFET的开关;旋转编码器的脉冲信号通过TPM的输入捕捉功能进行采集,进行处理后得到电机转速信息;电流检测信号通过AD模块进行处理;为了方便调试,使用了1个运行指示LED;采用5向集成按键输入控制信号,实现电机的方向调整,加减速及启停控制(左向正转,右向反转,向上加速,向下减速,中间启停);通过串行接口和上位进行通讯,上位机可向嵌入式系统发送控制命令实现电机的控制(“<”正转,“>”反转,“+”加速,“-”减速,“P”启停,“M”向上位机发送电机的当前信息),嵌入式系统接收到“M”字符是通过串口向上位机发送电动机的启停状态、正反转、转速、定子电流等信息。

  • 写回答

1条回答 默认 最新

  • 泡沫o0 2023年度博客之星上海赛道TOP 1 2023-06-29 00:36
    关注

    你的问题涉及到一个相当复杂的嵌入式系统的设计,包括硬件和软件两个部分。在这个系统中,你需要控制一个直流电机的转速和方向,同时还需要处理旋转编码器的信号,测量电机的电流,并通过串口和上位机进行通信。

    这个问题的解决方案需要具备嵌入式系统设计、电机控制和通信协议等多方面的知识。由于这个问题的复杂性,我无法提供一个完整的解决方案。但是,我可以给你一些关于如何解决这个问题的建议。

    首先,你需要理解你的硬件系统的工作原理。你需要知道如何通过PWM信号控制MOSFET的开关,从而控制电机的转速和方向。你也需要知道如何处理旋转编码器的信号,以获取电机的转速信息。此外,你还需要知道如何通过AD模块处理电流检测信号。

    然后,你需要设计一个软件系统,来控制你的硬件系统。你的软件系统需要能够处理用户的输入,控制电机的转速和方向,读取电机的转速和电流信息,并通过串口和上位机进行通信。

    在设计你的软件系统时,你可能需要使用中断服务程序(ISR)来处理旋转编码器的信号和串口的通信。你也可能需要使用定时器来生成PWM信号。此外,你还需要设计一个主循环,来处理用户的输入和控制电机的转速和方向。

    在实现你的软件系统时,你可以使用C语言,因为C语言是嵌入式系统开发的常用语言。你可以使用KL25Z128处理器的开发工具链,如IAR Embedded Workbench或Keil uVision等。

    最后,你需要测试你的系统,确保它能够正确地工作。你可以通过上位机发送控制命令,观察电机的反应,以验证你的系统的功能。你也可以通过测量电机的转速和电流,以验证你的系统的性能。

    这只是一个大致的解决方案,具体的实现可能会根据你的硬件系统和需求有所不同。如果你需要更具体的帮助,你可能需要提供更多的信息,如你的硬件系统的详细设计,你的软件系统的需求,以及你遇到的具体问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog