汽车仪表步进电机控制算法的仿真
控制算法分析
为了进一步分析本算法的性能,用LabVIEW编程软件进行算法仿真,这样就可以很方便地在不连接步进电机的情况下对算法进行分析。在LabVIEW7.1中可以采用图2的框图对本算法进行分析。
图2 LabVIEW的算法框图
在LabVIEW中,用一个while结构来周期地对算法的目标地址进行处理,每次循环都得到pos_new的数值,即每周期结束后步进电机的显示数值,然后将该数值输出到LabVIEW的前面板上。前面板如图3所示。
图3 LabVIEW的算法前面板
通过前面板中Start按钮可以控制循环的开始与结束,手动改变pos_set的数值来模拟实际仪表中的数据变化。本例中该值的变化范围为0至100,并且每次试验都使该值由0突变为100。再用Gauge(量具)来仿真步进电机的显示,可以很方便地观察到不同参数改变后显示的视觉效果。此外,还可以通过LabVIEW提供的绘图功能得到控制算法中一些重要变量随时间变化的图像,更加直观地进行性能分析。
图4 pos_new随时间的变化
图4为步进电机目标值pos_set由0突变为100的过程中,步进电机实际输出值pos_new随时间的变化曲线图。由于设定的while循环周期为1ms,所以,时间轴显示每周期步进电机输出,纵坐标POS即为步进电机的显示结果。
观察0至128ms区间的曲线,可以看出此阶段曲线的斜率是逐渐增加的,表明步进电机在加速运行,因为初始阶段步进电机目标位置与实际位置之间的差值很大,计算得到的speed_delta数值超过了MAX_ACC这一常数的限制。128ms至475ms区间的曲线为直线,说明在此区间步进电机已达到最大速度MAX_SPEED,并以该速度匀速运行。
余下区间的曲线,斜率是逐渐减小的,这时步进电机在减速运行,因为这时目标位置与实际位置的差值已经很小,计算得到的speed_delta数值已经处于由MAX_ACC限制的范围内。变量speed随时间的变化曲线更能清楚地分辨出这三个过程。如图5所示。
图5 speed随时间的变化
将常数MAX_ACC(即相邻周期步进数量的变化)由1改为10,仿真得到结果如图6所示。从中可以看出,增大MAX_ACC后,曲线中起始阶段变陡了,即步进电机起步阶段的加速变快了,而步进电机由初始值0到100的完成时间受到的影响不是很大。
图6 改变MAX_ACC后pos_new随时间的变化
由流程图中不难看出,常数MAX_ACC只是限制了相邻两个周期步进数的变化,而每周期步进数的限制是由MAX_SPEED来设定的。将该数值由原来的128改变为256再作同上的试验可以发现,曲线中200ms至400ms之间变得更陡,步进电机由0到100的完成时间缩短的比较明显。这说明通过改变每周期步进数量的限制可以比较显著地改变步进电机的完成时间。
当然,最后的显示结果与仿真得到的结果,由于步进电机自身性能的原因会有偏差,并且实际步进电机还会有诸如噪音等一些用LabVIEW无法仿真出来的问题。因此,用LabVIEW进行的算法仿真只能作为参考,最后参数的确定还需要通过在实际步进电机上进行试验后才能完成。
结语
对于本控制方案,设计开发人员可以根据实际的硬件(如步进电机型号)以及仪表产品的需要,在程序中修改相应变量的上下限等常量数值,就能改变步进电机指示的量程、指示的平滑性、响应速度等一序列指标。修改调试起来十分方便。
虽然本方案是针对CDC3207G微控制器而设计的,但是软件设计中的控制算法思想,对于汽车仪表步进电机的控制具有普遍的适用性。
- 单芯片集成电路优化自适应转向大灯系统设计(07-03)
- 灵活的现代CPLD汽车数字仪表板(06-04)
- 基于步进电机控制技术的汽车辅助照明随动系统设计(01-25)
- 基于步进电机驱动器MC33991的车速表设计(11-14)
- 基于CAN总线的一体化步进电机驱动器的设计与实现(11-25)
- 基于CAN总线汽车组合仪表的设计与研究-步进电机驱动、存储电路设计及外围电路(01-08)