汽车仪表步进电机控制算法的仿真

分享到:

在经历了机械式、电气式、模拟电子式仪表时代后,汽车仪表进入了如今的步进电机全数字式仪表时代。目前,国内部分中、高档轿车,均配套使用步进电机汽车仪表。其它汽车也正在配套该类型的仪表。步进电机汽车仪表,将是未来一段时间内汽车仪表的主导产品,有着十分广阔的市场前景。

今后,汽车仪表的功能将更加侧重由软件来完成。这对于产品数量大并且对成本极为敏感的汽车仪表有着特殊意义。与仅由电子硬件组成的汽车仪表相比,带有ECU的汽车仪表功能的实现手段更加灵活多样,产品的“柔性”更好,即在推出新款产品时,能最大限度地利用以前产品的软、硬件设计成果,这在产品更新换代很快的今天和未来显得尤为重要。

目前,很多半导体芯片制造商都生产汽车仪表板的微控制器,比如NEC、freescale、Fujitsu和Micronas等公司。在此介绍一种基于Micronas CDC3207G微控制器的汽车仪表板步进电机控制的解决方案。

步进电机控制

步进电机又称脉冲电动机,它能将输入的脉冲信号变成电动机轴的步进转动,是一种将电脉冲转化为角位移的执行机构。在非超载的情况下,电机的转速以及停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。

控制步进电机实际上是控制输入脉冲序列,使步进电机轴按照预定方向转动需要的角度。汽车仪表中应用的主要是两相步进电机,有两个独立绕组。通过控制两个独立绕组上的脉冲信号,就能实现对步进电机的控制。此外,一般步进电机内部在电机转轴与指针之间都装有降速齿轮组,使得转动轴与指针之间有一定的降速比,这样可以降低指针转动的抖动,使电机指针转动更加平滑。

本控制算法采用Microcomponents公司的SWITEC步进电机,其电机转动轴与指针之间的转速比为180:1,即步进电机转动轴旋转180°,步进电机的指针旋转1°。

步进电机控制算法

控制算法基本功能

控制算法主要功能是控制步进电机以完成仪表的显示,主要是根据实时数据计算得到显示仪表的位置信息,再根据位置信息计算出步进电机控制指令。对于内部集成了步进电机控制模块的微控制器,控制算法最终输出控制寄存器的数值,微控制器根据寄存器的数值产生驱动信号,实现对步进电机的控制。

CDC3207G微控制器

CDC3207G微控制器是Micronas(微开)公司的一款基于ARM7TDMI内核的32位[0]微控制器,它集成了7个步进电机模块,再加上PWM软件模拟最多可以直接驱动8路步进电机。每个步进电机模块通过4个控制器内部连接了H桥的高电流输出端口,直接驱动两相步进电机。通过软件便可以产生步进电机定位需要的各种脉冲。

CDC3207G的步进电机模块可以提供多通道的PWM输出,输出信号频率通过硬件设置来选择,并且各个步进电机模块输出信号的时序具有偏移,可以提高电磁兼容性能(EMC)。

根据控制两相步进电机的需要,CDC3207G内部提供了3个8位的寄存器,用于通过软件来产生控制脉冲。其中两个寄存器通过模块中的比较器与模块计时器进行比较,用于产生驱动电机的PWM信号,另外一个寄存器用来选择相应步进电机模块以及选择四个输出引脚的极性。这样,通过软件对三个寄存器的操作就能方便地对每一路步进电机进行控制。

此外,CDC3207G还具有零位检测功能,即检测电机运转时的感应电流,得到电机运行的位置信息,据此判断电机是否达到初始位置(即汽车仪表的零位)。

控制算法的实现

软件的主要任务是根据不断更新的步进电机位置信息,计算控制寄存器的数值。同时,为了满足仪表指示的实时性要求,本方案采用周期性调用步进电机控制函数的办法,根据实际需要选择周期。本方案中,调用步进电机控制函数的周期为2ms。

除了需要满足实时性以外,步进电机控制函数还需要控制步进电机平滑地运转,这样,指针的显示才不会在视觉上给人以不适的感觉。为此,控制函数需要限制步进电机的速度以及加速度。由于周期性更新步进电机位置信息,所以控制函数是通过比较当前位置与给定位置来计算每周期的步进量,最终完成给定位置的显示。控制函数流程图如图1所示。

图1 步进电机控制函数流程图

本方案的SWITEC步进电机的指针显示范围为330°,指针每转动一度,步进电机转动轴需要转动180°,在软件中分为256步来实现。所以,按照步进数计算的步进电机量程为330×256=84480步。

为保证指针显示上平滑,流畅,需要限制每一周期的最大步进数以及相邻两个周期步进数量差,以常量MAX_SPEED以及MAX_ACC分别对电机运行速度和加速度进行限制。

由于需要周期性更新步进电机的位置,且每一周期时间很短,步进数量有限,所以,对于一个新的仪表位置,步进电机要完成显示往往需要多个周期来实现。

部分变量的简单说明见表1。
表1 变量说明
变量名称
pos_set
pos_act
pos_new
delay_time
speed
speed_old
含义
目标地址
当前位置
本周期结束位置
响应时间
本周期步进数
上周期步进数
由于程序中的位置信息都是按照步进数来表示的,因此,可以预先定义一个常数数组,保存步进数对应的控制寄存器的数值。这样,根据需要步进数查表便可以得到所需要的寄存器的数值。

控制算法分析

为了进一步分析本算法的性能,用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随时间的变化

继续阅读
四驱车小车激光测距方案

测距采用激光测距,通过对激光束进行幅度调制并测定调制光往返测线一次所产生的相位延迟,再根据调制光的波长,换算此相位延迟所代表的距离,测量距离是超声波与红外线的10倍以上,测量精度远超超声波与红外线,最高能达到1mm的精确度。

基于飞思卡尔S12系列单片机的微型热敏打印机

  常用的微型针式打印机速度慢、噪声大,无法满足某些场合的需要。微型热敏打印机具有打印速度快、噪音低、可靠性高、字迹清晰、机头小而轻等优点,可满足各种场合的打印要求,因此得到广泛应用。笔者在汽车行驶记录仪的开发过程中,根据要求,选用较为先进的热敏打印机作为打印设备。但微型热敏打印头对打印时序和温度要求较高,一旦控制不当极易造成打印头烧毁,其控制系统的软硬件设计较复杂。本文选用FTP-628系列热敏打印头开展以下研发工作。

基于S12ZVL的AFS执行控制器设计

作者:曹学余 飞思卡尔半导体 摘要:本文针对汽车前大灯随动转向系统控制,提出基于飞思卡尔S12ZVL的混合集成芯片解决方案。本文详细描述汽车前大灯随动转向系统的软硬件设计框图,同时介绍基

步进电机及驱动器的正确选择方法

由于步进电机及驱动器型号较多、种类较多,用户在选择时应有一定的讲究,这样才能以最优的性能、最低的价格选择好自己所需的产品。   选取原则(仅供参考):   1. 首先确定步进电机拖动负

基于FPGA的步进电机控制系统的设计方案

0 引言 步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,输入脉冲总数控制步进电机的总旋转角度,电机的速度由每秒输入脉冲数目所决定,因此易实现机械位置的精准控制。而且由于步进电机价格低廉

精彩活动