大家好,麻烦老师们解释一下下面这段程序:

大家好,麻烦老师们解释一下下面这段程序:,第1张

(QEP无效F281X_EV1_QEP_NO_INDEX_Calc * p)

{

int32 Tmp

/ /支票的旋转方向

p - >DirectionQep = 0x4000&EvaRegs.GPTCONA.all

DirectionQep p - >>>= p - >DirectionQep 14

/明亮唯 /检查柜台办理QEP定时器2

p - >RawTheta = EvaRegs.T2CNT

/ /计算力学角度在Q15

__qmpy32by16 Tmp = >(p - p - >,RawTheta MechScaler、31)/ / Q15 Q0 = Q30 *

MechTheta p - >=(int16)(Tmp)/激培 / Q15 Q15 - >

p - >MechTheta &= 0x7FFF 0x07FFF/ /包键做裹

/ /计算电子角度在Q15

ElecTheta p - >>= p - p - >MechTheta PolePairs * * Q15/ / Q0 = Q15

p - >ElecTheta &= 0x7FFF

利用安装在电机后面的轴后编码器,编码器在单位时间内计数脉冲的多少就代表了电机转源液速的快慢。而获取编码器的计数值可以采用DSP相应的模块。比如说TMS320F2812这款芯片就有一个专门的QEP模块可以采集编码器计数脉冲。

控制电机的速度一般是利用PWM波,通过发出的PWM波的占空比就可以实现电机的调速了,还是以2812为例,它有专门的PWM模块,具体设置你参考相应的书籍吧

实现闭环的话大概流程是这样的:

首先保证你的硬件是完善的(电机,编码器,驱动器,DSP电路板)

1.在程序的中断里面可以设置采样周期,采集到计数后记过简单的计算培搜

2.计算后得到PWM的占空比(算法我就不说了,你可以是简单的四则运算,噎可以到网上找更好的算法,呵呵,还有啊,多大占空比对应多大速度看你的电机是什么型号了)

3.向电机驱动器发出经过计算后的PWM,驱动器会根据你发出的PWM波来调节电机的电压电流,从而调节电机的速度

这样就实现了 电机速度--编码器采集--DSP计算--PWM波配裂历--驱动器--电机速度改变--电机速度 的整个闭环过程了

PS:控制电机速度的话要有相应的驱动器或驱动板,你应该知道的吧

好了,我能说的大概就这么多了,不知道讲清楚了没有,(*^__^*) ……


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12405299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存