基于SOPC的四相步进电机均匀细分驱动器的实现
2010-09-22成开友
周 磊,成开友
(盐城工学院电气工程学院,江苏盐城224051)
1 引言
步进电机在各种自动化控制系统和精密机械等领域应用广泛,其本身接受数字脉冲控制。常见的四相步进电机细分控制主要是通过控制步进电机相电流按阶梯波变化来实现的。这种细分控制方法存在步距角不均匀、步进电机转矩不是恒定变化等缺点。为了克服这种控制方法的缺点,只要同时控制四相步进电机的两相电流分按正余弦规律变化即可。设计在FPGA中构建了一个SOPC(Programming System On Chip,片上可编程系统)系统实现了该改进的控制算法。
SOPC技术做为一种SOC(System on Chip,片上系统)解决方案,以其特有的软硬件系统可裁减、实现容易、成本低、集成度高等特点显现了强大的生命力。采用SOPC技术来实现细分控制信号输出不仅提高了步进电机控制系统的集成度和可靠性,而且大大降低了控制系统的成本,具有一定的商业推广价值。
2 步进电机细分驱动的基本原理
常见的步进电机的细分驱动主要是通过控制步进电机的相电流按阶梯变化来实现的,如图1所示为相电流阶梯变化细分控制。相电流阶梯变化时产生的合成的旋转磁场的大小变化,与步进电机的转矩成正比。由于旋转磁场矢量的大小不是一个恒定值,所以步进电机的转矩也不是一个恒定值;另外相电流的线性增加和减少使得步进电机的步进角亦不是恒定的。
图1 相电流阶梯变化细分控制
如图2所示为两相电流正余弦变化的细分控制。由图2可以看出,只要同时控制步进电机的两相输入电流分别按正余弦规律变化,则合成磁场的大小变化是恒幅的,且步进角是恒定的。图1、2只画出了四分之一周的矢量图,其余四分之三周的与此相似。系统只要输出两路按正余弦规律变化的电流波形,然后通过一个波形分配器分配给相应的相线圈即可。
图2 两相电流正余弦变化的细分控制
3 系统的硬件设计与实现
为了实现图2所示的细分驱动,要求四相步进电机A、B两相的激励电流iA、iB分别按公式(1)、(2)变化,θ为磁场矢量和B相磁场矢量之间的夹角,即:
对步进电机一般都是通过PWM电压脉冲来控制的。相线圈对输入的PWM电压波形具有平滑作用,即线圈的输入电流与PWM波形脉冲的面积成正比。因此,要想得到公式(1)、(2)的相电流,就要求A、B两相的PWM的矩形脉冲面积按正余弦规律变化。PWM波形是幅值不变的矩形脉冲,因此只要控制PWM波形的占空比按照正余弦规律变化即可。在实际应用中需要根据具体的步进电机对占空比数据进行微调。
由图2可知,系统需要同时输出两路PWM波形,因此系统的硬件部分由NiosⅡ软核CPU配以相应的输入和显示接口IP核,然后添加两个基于Avalon总线接口的VHDL编写的PWM组件IP核构成,如图3所示。系统的顶层视图如图4所示,主要由锁相环模块pll_do、niosⅡCPU模块和波形分配器模块pha_cha_con组成。
4 系统的软件设计与实现
系统的软件部分采用可移植、固化和裁减的占先式实时多任务嵌入式系统—MicroC/OSⅡ。综合考虑了PWM波形的频率对步进电机运行的影响以及采样位数和深度对PWM波形频率的影响,折衷确定了PWM占空比采样深度为15位,四分之一周期的正弦波采样点数为513点,单区间磁场矢量细分步数为512步,那么转子齿数为5个的四相步进电机最大的细分步数可以确定为10240步。
fPWM为PWM波形的频率;fclk为NIosⅡ系统的时钟频率,设定为100 MHz;CR为PWM周期寄存器值,由于采样深度为15位,相应的采样最大值为215-1,故而CR的值就设定为采样最大值。PWM波形占空比数据按照公式(3)进行采样,PWM波形频率按照公式(5)计算约为3.05 kHz。
系统以全局变量sin_cos[513] 来存储PWM占空比正弦数据,余弦的数据可根据公式(4)来得到。系统编写了5个进程:初始化进程initialize_task;键盘处理进程key_do;步进间隔时间修改进程time_interval_do;占空比取值步数修改进程step_change;修改PWM组件占空比寄存器进程pwm_do_fix。邮箱mail_send_pwm_date负责 key_do进程和step_change进程之间的通信,mail_subdivide_tran邮箱负责step_change进程和pwm_do_fix进程之间的通信。
5 仿真结果与分析
如图5所示为320步细分时步进电机连续运行的ModelSim仿真结果。A相和B相的PWM波形完全符合公式(1)、(2)的要求。
系统最终实现了基于SOPC的四相步进电机“两相电流正余弦变化的细分控制”以及 10240、5120、2560、1280、640、320、160、80、40、20 步可调,并实现最大可调步进间隔时间为59分59秒999毫秒。而经过简单的调整,利用同样的思路完全可以实现对任意步进电机细分控制。
图4 系统顶层视图
图5 细分步数为320步时步进电机连续运行的仿真波形
[1] 潘 松,黄继业.EDA技术与VHDL[M] .北京:清华大学出版社,2007:357-365.
[2] 潘 松,黄继业等.SOPC技术使用教程[M] .北京:清华大学出版社,2004.
[3] JEAN J.LABROSSE(著),邵贝贝(译).μC/OS-II-源码公开的实时嵌入式操作系统[M] .北京:中国电力出版社,2001.
[4] 郭书军等.嵌入式处理器原理及应用-Nios系统设计和C程序设计[M] .北京:清华大学出版社,2007.
[5] 王宗培.步进电动机及其控制系统[M] .哈尔滨:哈尔滨工业大学出版社,1984.