嵌入式领域中电机控制应用的可编程片上系统(PSoC)
无论电机负载如何变化,为了确保电机的速度保持在特定值上,我们需要遵循闭环系统的原则。为了感测和反馈电流转速,如前所述,我们采用旋转编码器。我们对编码器的选择取决于所需的转速和速度准确度。旋转编码器的信号通过使用PSoC Creator工具提供的正交解码器模块进行编码。
可将适合的时钟频率路由到正交解码器模块,具体取决于每分钟的最大转速。例如,如果最大转速为9000rpm,那就相当于每秒150转。如果编码器每次完成旋转需要4个脉冲(编码器特征),那么解码器模块所需的时钟频率就是150*4*10 = 6kHz(信号A和B频率的10倍)。由于我们每秒钟都要跟踪计数值,因此我们能够采用每秒钟一次的中断。在中断服务例程中,我们能捕获计数寄存器的值并将其清空(从而能测量下一秒的速度),并用方程式1计算电机的速度。
以下两个案例中列出的电源适用于DC电机以及可对其进行控制的逻辑。
案例一:DC电机还使用相同的PSoC 3/5通过电流缓冲驱动
例如,DC电机规范要求在无负载条件下5V供电电压的流耗为88mA,我们可通过如图7所示的电流驱动电路将PSoC 3/5输出接口连接到DC电机。
在该例中,我们给出了常量DC供电电压,电机全速转动,即9000rpm。现在光学旋转编码器和电机转速相同,编码器输出采用PSoC 3/5中的解码器测量。这时,微控制器检测到9000rpm的转速,并将其与所需值进行比较(例如,所需值为6000rpm,也就是实际速度的三分之二)。那么校正响应为-3000rpm,即当前施加给电机的电压应减少三分之一。

图7:通过PSoC驱动的DC电机
我们可使用PWM来实施电压差。通过改变PWM的占空比,可改变平均电压。PSoC Creator提供拖放式PWM模块。反馈至PWM模块的时钟频率取决于应用所需的速度分辨率。

这里:

这里所需的占空比为三分之二。每周期PWM模块的平均输出电压为5*2/3 = 3.33V。PWM模块的输出提供给可连接至DC电机的电流驱动电路。DC电机现在能实现6000rpm的所需转速。旋转编码器再次感测速度,检测到6000rpm,并将其反馈回控制器。现在的误差因素为0。PWM保持此前的状态且电机保持其速度。
假设向电机添加了负载。虽然占空比保持在2/3,但电机速度下降为5000rpm。现在旋转编码器感测速度,并将误差因数(即+1000rpm)馈送给控制器。PWM的占空比为1/9。通过函数将该因数写入中断中的PWM函数:
案例二:通过另一控制器为DC电机供电
如果通过另一个控制器为DC电机供电,那么PSoC控制器可用来通过I2C等接口将电机状态馈送给另一个控制器。如果DC电机通过外部电池供电,那么如图8所示的逻辑能够轻松控制其速度。可将PSoC的PWM输出馈送给打开后能为电机供电的开关,电机采用特定占空比以便能如前所述满足相同的标准。

图8:通过外部电源(不是PSoC)供电的DC电机
定位控制等其它应用:
对于定位控制等其它电机控制应用而言,我们能采用绝对旋转编码器,因为其能给出电机的当前位置。也可将这种输出馈送回控制器,找出与实际信号的偏差,并通过短时期脉冲确保电机达到目标位置。
评论