_基于DSP的步进电机高精度变速控制研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文章编号:1006-1576(2007)11-0086-02
DSP
何平,李岳,徐小军
(国防科技大学机电工程与自动化学院,湖南长沙 410073)
摘要:分析步进电机DSP控制转速的基本原理和实现方法,研究确定信号控制步进电机转速的积分定时调频算法。针对非确定信号输入实现高精度变速控制问题,提出了具有重复误差补偿性能的梯形近似调频算法。利用Matlab 对两种算法进行仿真,并采用DSP开发平台完成步进电机变速控制实验,结果表明,梯形近似调频法在步进电机变速控制中能有效地提高速度控制精度。
关键词:步进电机;数字信号处理器(DSP);脉宽调制(PWM);变频调速
中图分类号:TM383.6; TP273.1 文献标识码:A
Research on High-Accuracy Variable Speed Control for
Stepping-motor Based on DSP
HE Ping, LI Yue, XU Xiao-jun
(College of Electromechanical Engineering & Automation, National University of Defense Technology, Changsha 410073, China) Abstract: The principle and the implementation approach of stepping-motor speed control with DSP are analyzed. The integral-timing-based method for frequency-control is studied, which is applied in stepping-motor speed control with certain signal input. Aiming at the problem of stepping-motor speed control with uncertain signal input, the trapezoid-approximating-based method for frequency-control is presented, which has a performance of repetitive error compensation. Those two methods are simulated by Matlab software, and the experiment on stepping-motor variable speed control is carried out with DSP developing tool. The results show that the trapezoid-approximating-based method is effective on improving the accuracy in variable speed control for stepping-motor.
Keywords: Stepping motor; Digital Signal Processor (DSP); Pulse-Width Modulation (PWM); Frequency control
0 引言
从步进电机速度控制的基本原理,变速控制中调频算法的实现入手,以积分定时调频为基础,提出非确定信号输入控制步进电机转速的梯形近似调频算法。该算法通过对非确定控制信号进行梯形近似的数值积分,并运用重复误差补偿原理对控制误差进行消除,以提高步进电机变速控制的精度。
1 步进电机DSP控制
1.1 PWM波的生成
PWM波是一种脉宽可调的脉冲波,用于交、直流电动机的电压控制。采用DSP程序控制输出PWM波。TI公司推出的TMS320LF2407A是电机控制专用DSP,集成了通用定时器和脉宽调制输出
PWM
PWM
于产生PWM。根据比较寄存器的不同,PWM波有2个来源[2]:① 期寄存器和比较寄存器作用输出PWM波;②使用比较单元的比较寄存器。6个比较单元,每个比较单元各输出2个可带死区的PWM波。
1.2 PWM波控制步进电机转速的原理
步进电机的角位移与脉冲数成正比,转速与脉冲频率成正比[3]。如果把PWM波上升沿(或下降沿)作为驱动步进电机转动的脉冲(称PWM脉冲),则通过实时调节PWM波的频率(或周期)以实现对步进电机的转速控制。该电机在每个PWM脉冲下转动1步,转动角度为1个步距角θb。当DSP产生k个PWM脉冲时,步进电机转动的角位移为:θ=θb·k (k N
∈) (1)步进电机转动的角速度为:
b
dθ∆k
ω==θ•
dt∆t
(2)
式中,∆k/∆t的物理意义是单位时间内的脉冲个数,即脉冲频率。由式(2)可计算出PWM脉冲频率,按此频率设置定时器周期值和比较寄存器比较值。DSP事件管理器依周期值和比较值输出上述频率的PWM波。在变速控制中,角速度随时间变化,
收稿日期:2007-09-04;修回日期:2007-10-19
基金项目:国家部委资助项目
作者简介:何平(1981-),男,四川人,国防科技大学在读硕士,从事机械电子工程研究。
要求DSP 程序实时改变定时器周期值,使PWM 脉冲频率随时间变化以实现变速控制。
在数字控制中,式
(2) 的∆k 、∆t 均为数字量,取整运算对小数的取舍导致速度控制精度降低。为提高步进电机速度控制精度,可利用DSP 软件调频方法来控制PWM 脉冲频率(或周期)。PWM 脉冲频率控制精度高,则步进电机速度控制精度也高。
1.3 积分定时调频法
在步进电机的一般速度控制中,需经“升速—恒速—降速”3个过程。为在不失步的前提下快速启动或停止,常采用阶梯形、直线型、指数型和抛物型等升降速运行曲线进行变速控制[4,5]。
设步进电机转速控制曲线为ω(t)。式
(2)
中单位时间∆t 被取为常数值,调节PWM 脉冲频率通过改变∆k 值实现,即调节单位时间内脉冲产生的个数。而∆k 为整数,运算时存在小数的取舍,造成运算误差,影响PWM 脉冲频率控制精度,降低步进电机速度控制精度。若∆k 取为常数,通过改变∆t 的值实现PWM 脉冲频率调节。即∆k 称为单位脉冲数。采用DSP 系统时钟频率为40MHz ,定时器频率最高可达40MHz ,周期最短为25ns ,则定时器定时精度可达25ns 。通过DSP 定时器按∆t 定时产生PWM 脉冲,其定时精度高,则PWM 脉冲控制精度也高,从而提高速度控制精度。根据转速控制曲线ω(t),可得时间区间(t i , t i+1)内步进电机的理论角位移: φ(t i+1)i+1
i
t t =ω(τ)d τ∫
(3)
现将角位移定为常数φ(t)=φ0=θb ·∆k ,
为步距角整数倍,由式
(3)
计算得:
φ0=W(t i+1)-W(t i ) (4)
式中W(t)为ω(t)的原函数。由式
(4)
可得:
t i+1=W -1
[φ0+W(t i )] (5)
从而:∆t i+1=t i+1-t i =W -1[φ0+W(t i )]-t i (6) 式
(3)~式
(6)
表示步进电机从t i 时刻起,经∆t i+1时间转动∆k 步,转过的角位移为θb ·∆k 。故在时间区间(t i , t i+1)内步进电机平均角速度为:
b ω=θ•∆k/∆t (7)
当∆k =1时,步进电机在各时间区间只转动一步,角位移为θb ,DSP 定时器在t i 时刻产生1个PWM 脉冲,发生比较中断,并根据∆t i+1确定产生下一个PWM 脉冲的时间间隔,即PWM 周期值。通过定时器的比较中断,实时更新定时器周期寄存器值和比较寄存器值,控制PWM 脉冲周期,实现对步进电机转速的实时精确控制。
在速度控制曲线简单的情况下,如直线型运行曲线,式
(5)、式
(6)
可实现在线计算。而在速度控制曲线较复杂的情况下,如指数型运行曲线,式
(5)的运算将占用较多系统时间,不利于实时控制,可根据式
(5)、式
(6)
离线计算各脉冲时间间隔,建立脉冲时序表。DSP 通过定时器比较中断查询该表,实现对PWM 脉冲的控制。
2 梯形近似调频法
该调频法的基本原理是:把检测到的信号求数值积分,用梯形面积近似表示积分值,并将近似处理误差传给下一个梯形面积以补偿控制误差。因采用了重复误差补偿,把上次运行时的偏差和现在的输入量一起加到步进电机进行控制,经几个周期的重复控制后可提高系统跟踪精度,改善系统品质。
设DSP 对信号的采样频率为f s ,速度控制信号的采样周期为T s =t i -t i-1。如图1,步进电机速度控制与控制信号采样同步,即速度控制周期T r =T s 。
图1 离散化角速度曲线 图2 梯形近似调频流程图
由梯形面积近似求得第i 个速度控制周期T r 内步进电机转动的理论角位移:
φi =(T r /2)(ωi +ωi-1) (i=1,2,3,…) (8) 根据速度控制周期内的理论角位移计算PWM 脉冲数。将理论角位移φi 对步距角θb 按商余关系分解,得出PWM 脉冲数k i 和偏差φe,i :
φi =θb ·k i +φe,i (i =1,2,3,…) (9)
根据重复误差补偿原理,将偏差φe,i 累计到下一个周期的角位移理论值φi+1中,从而在第i+1个周期内带补偿的角位移为:
φ′i+1=φi+1+φe,i (i =1,2,3,…) (10)
将φ′i+1按式
(9)
分解:
φ′i+1=θb ·k i+1+φe,i+1 (i=1,2,3,…) (11)
由式
(11)
得脉冲数k i+1。计算流程如图2。应用重复误差补偿原理,把第i 个周期内的控制误差在后续周期内逐步消除,以提高速度控制精度。
3 数值仿真计算
分别采用积分定时和梯形近似法,利用Matlab 对步进电机转速控制进行仿真。 (下转第89页)