基于FPGA 的四相步进电机细分驱动电路设计
黄伟平
(浙江树人大学,浙江省杭州市)
摘要:在采用步进电机驱动的机构中,为了提高定位精度,提出了一种基于FPGA 的四相步进电机细分驱动电路的设计方案。
采用正弦/ 余弦细分方案,通过嵌入cos/ sin 表格于FPGA 中,合理控制步进电机四相绕组的电流,实现正弦细分驱动控制技术,减小了步距角、提高了步进分辨率。
给出了FPGA 软件设计,并在Quartus II中完成了仿真。
仿真结果表明,PWM计数器模块,地址计数器模块,PWM波形ROM存储器模块,数字比较器模块,都可以由FPGA 准确无误地产生,本系统最终现实对四相步进电机八细分驱动电路的设计。
关键词:FPGA ;四相步进电机;细分;驱动电路
引言
步进电机是把脉冲信号转换成角位移或直线位移的执行元件,是一种输出与输入数字脉冲相对应的增量驱动元件。
具有定位精度高、惯性小、无积累误差、启动性能好、易于控制、价格低廉及与计算机接口方便等优点,被广泛应用于数控系统中[1,2]。
计算机技术的发展,促进了数字控制技术的发展。
步进电机细分驱动技术可以减小步进电机的步距角,提高电机运行的平稳性,增加控制的灵活性等。
利用FPGA中的嵌入式EAB可以构成存放电机各相电流所需的控制波形表,再利用数字比较器同步产生多路FPGA电流波形,对多相步进电机进行控制。
若改变控制波形表的数据、增加计数器和比较器的位数,提高计数精度,就可以提高PWM波形的细分精度,进而对步进电机的步进转角进行任意级细分,实现转角的精确控制。
1.步进电机细分驱动原理
步进电机的驱动是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来使步进电机转动的。
设矢量Ta、Tb、Tc、Td为步进电机A、B、C、D四相励磁绕组分别通电时产生的磁场矢量;Tab、Tbc、Tcd、Tda为步进电机中AB、BC、CD、DA两相同时通电产生的合成磁场矢量。
当给步进电机的A、
B、C、D四相轮流通电时,步进电机的内部磁场从TA→TB→TC→
TD,即磁场产生了旋转。
步进电机的步距角θB计数公式[3]可表示
为:θB=θM/N r ;式中N r:为步进电机的转子齿数;θM:
为步进电机运行时两相邻稳定磁场之间的夹角。
而图1为四相步进电机八细分电流波形图,从图中可知各相电流是以1/4的步距上升或下降的,在两相Ta,Tb中间又插入了七个稳定的中间状态,原来一步所转过的角度θM 将由八步完成,实现了步距角的八细分。
2. 基于FPGA的硬件实现
随着大规模集成电路FPGA/CPLD的发展,为步进电机的细分驱动带来了便利。
采用EDA技术进行控制设计,可根据细分要求的步距角计算出各项绕组中通过的电流,存储在FPGA的嵌入式ROM中。
细分控制时,地址计数器自动产生地址送到LPM-ROM,根据不同的地址,LPM-ROM给出相应的数据到数字比较器,与线性锯齿波比较后输出PWM波形,控制功放电路给各相绕组通以相应的电流,实现步进电机的细分驱动[4]。
3.步距细分的系统构成
从图1四相步进电机八细分电流波形中可以看出,一般情况下总有二相绕组同时通电。
一相电流逐渐增大,另一相逐渐减小。
对应于一个步距角,电流可以变化N个台阶,也就是电机位置可以细分为N个小角度,这就是电机的一个步距角被N细分的工作原理。
或者说,步距角的细分就是电机绕组电流的细分,从而可驱动步进电机平滑运行。
图3步进电机细分驱动电路结构图
该系统是由 PWM 计数器、波形ROM 地址计数器、PWM 波形ROM 存储器、比较器、功放电路等组成,如(图3步进电机细分驱动电路结构)所示。
其中,PWM 计数器在脉宽时钟作用下递增计数,产生阶梯形上升的周期性的锯齿波,同时加载到各数字比较器的一端;PWM 波形ROM 输出的数据A[3..0]、B[3..0]、C[3..0]、D[3..0]分别加载到各数字比较器的另一端。
当PWM 计数器的计数值小于波形ROM 输出数值时,比较器输出低电平;当PWM 计数器的计数值大于波形ROM 输出数值时,比较器输出高电平。
由此可输出周期性的PWM 波形。
根据图1 步进电机8 细分电流波形的要求,将各个时刻细分电流波形所对应的数值存放于波形ROM 中,波形ROM的地址由地址计数器产生。
通过对地址计数器进行控制,可以改变步进电机的旋转方向、转动速度、工作/停止状态。
FPGA 产生的PWM 信号控制各功率管驱动电路的导通和关断,其中PWM 信号随ROM 数据而变化,改变输出信号的占空比,达到限流及细分控制,最终使电机绕组呈现阶梯形变化,从而实现步距细分的目的。
输出细分电流信号采用FPGA 中LPM_ROM 查表法,它是通过在不同地址单元内写入不同的PWM 数据,用地址选择来实现不同通电方式下的可变步距细分。
电路原理图设计
根据图3设计该系统的原理图,通过FPGA技术设计顶层电路。
如图、图、图,其中图、图是图中的模块图,
而图是图波形存储器的波形图。
4.细分电流信号的实现
从LPM_ROM 输出的数据加在比较器的A 端,PWM 计数器的计数值加在比较器的B 端,当计数值小于ROM 数据时,比较器输出低电平;当计数值大于ROM 数据时,比较器则输出高电平。
如果改变ROM 中的数据,就可以改变一个计数周期中高低电平的比例。
图 中的PWM 计数器(CNT8)将整个PWM 周期4 等份。
5.系统的实验结果与分析
系统的实验结果
图5 是四相步进电机仿真波形图,给出了步进电机从A →AB →B →BC →⋯工作过程的仿真波形。
在图中展示了FPGA 控制步进电机的情况。
LPM_ROM 输出的16 位数据p[15..0]为八进制数据,作为步进电机各相电流的参考值,每4 位二进制数值控制一相,分别用于控制步进电机A 、B 、C 、D 四相的工作电流。
对于每一相来说,当输出数据为0 时,该相电流为0;输出数据为1 时,脉宽高电平占一个PWM 周期的1/4;当输出数据为2 时,脉图 步进电机PWM 细分控制电路图 图 PWM 波形ROM 存储器
宽高电平占一个PWM 周期的2/4;当输出数据为4 时,整个PWM 周期均输出高电平[5]。
图中,Y3、Y2、Y1、Y0 分别表示A、B、C、D 相电流,u_d 为方向控制,clk 产生线性递增的锯齿波,clk5 为步进脉冲,p[15..0]为LPM_ROM 输出数据。
图5 步进电机PWM仿真波形图
系统的结果分析
从仿真波形图5中可以看出,首先,步进电机 A 相导通,B、C、D 相截止,p[15..0]输出数据为F000Q,A 相的数据为F,其他相的数据为0。
然后逐渐过度到AB 相导通;p[15..0]输出数据为F600→F900→FC00→FF00,B 相的数据逐渐增大,从1 增大到4。
电机中的磁场经过4 拍从A 相转到了AB 相,再经过4 拍从AB 相转到B 相,p[15..0]输出数据为CF00→9F00→6F00→0F00,A 相的数据逐渐减小,从F 变为0。
从A 到AB 到B 共经过了8 拍,实现了步距角的8 级细分。
LPM_ROM 输出数据p[15..0]的变化近似于正弦信号的包络,使各相的输出电流Y3~Y1 按照正弦规律均匀变化。
由于步进电机是电感性负载,对输出的PWM 电流具有平滑滤波作用,对电机线圈起作用的是PWM 的平均电流,同时输出信号中的细小毛刺也被滤除。
6、细分驱动性能的改善
试验测定显示,在线性电流的驱动下,步进电机转子的微步进是不均匀的,呈现出明显的周期性波动。
磁场的边界条件按齿槽情况呈周期性重复是导致微步距角周期性变化的根本原因。
同时,不可避免的摩擦负载(摩擦力矩是不恒定的,或者说在一定范围内也是不确定的)以及其它负载力矩的波动导致失调角出现不规则的小变动或小跳跃,也使微步距角曲线在周期性波动上出现不光滑的小锯齿形。
步进电机的电流矩角特性并非线性函数,而是近似于正弦函数。
若使电流按线性规律上升或下降,必然会造成每一细分步的步距角不均匀,从而影响步距精度。
为此在设计中,需要提高LPM_ROM 数据精度,将数据提高到十六位,使输出的步进细分电流近似为正弦电流,这样不仅提高了步距精度,而且可以改善低频震荡。
7.总结
实测结果表明,要使步进电机细分后获得均匀的步进转角,其 PWM 驱动电流应近似于正弦电流,而非线性递增的电流。
因此ROM 文件中的数据进行适当选择,使每一步的电流增加量接近正弦波,并根据实际转角作了适当调整。
由于PWM 的输入时钟频率较高,因此可以获得均匀的平均电流,并且每一步的时间间隔相等,转角近似均匀,从而实现对多相步进电机的转角进行均匀细分,有效地控制步进电机。
8.参考文献
[1]张志利. 步进电机超高分辨率细分控制函数发生器的设计与
实现[J ] . 微特电机,2001 ,29 (1) :10 - 13.
[2]林海波. 基于AT89C51 的步进电机恒转矩细分驱动电路的设
计[J ] . 电子工程师,2002 , 28 (11) :37 - 39.
[3] 袁丽肖;王健等,直接转矩控制系统的自适应模糊控制方法的研究[J].微电机(9):26-29
[4] 潘松等,EDA技术实用教程[M].北京: 科学出版社2005
[5] 杨忠宝;林海波,基于80C196MC的步进电机斩波恒流均匀细分电路的实现[J].微计算机信息:51-52。