{
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:控制电机速度的话要有相应的驱动器或驱动板,你应该知道的吧
好了,我能说的大概就这么多了,不知道讲清楚了没有,(*^__^*) ……
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)