广东工业大学学报  2017, Vol. 34Issue (6): 83-87.  DOI: 10.12052/gdutxb.170031.
0

引用本文 

邹志强, 何玉定. 基于QT的步进电机加速曲线生成工具的研究与实现[J]. 广东工业大学学报, 2017, 34(6): 83-87. DOI: 10.12052/gdutxb.170031.
Zou Zhi-qiang, He Yu-ding. Research and Realization of Generation Tool for Acceleration Curve of Stepper Motor based on QT[J]. JOURNAL OF GUANGDONG UNIVERSITY OF TECHNOLOGY, 2017, 34(6): 83-87. DOI: 10.12052/gdutxb.170031.

作者简介:

邹志强(1992–),男,硕士研究生,主要研究方向为磁性材料及其功能器件。

通信作者

何玉定(1966–),男,副教授,主要研究方向为磁性材料. E-mail:yding2005@163.com

文章历史

收稿日期:2017-02-20
基于QT的步进电机加速曲线生成工具的研究与实现
邹志强, 何玉定     
广东工业大学 材料与能源学院,广东 广州  510006
摘要: 随着市面上越来越多步进电机驱动器的推广, 使得步进电机的操控和使用越来越方便, 但是在某些场合下需要步进电机运行在高速状态下, 为了防止步进电机的失步、过冲、堵转现象, 需要合理设计其加减速过程. 从步进电机的物理特性出发, 研究了步进电机的加速过程, 并开发出一款步进电机加速曲线生成工具软件, 该工具软件可以根据设定的步进电机参数和加速过程需求参数自动地生成加速曲线数据, 并且可以方便地导出成.C和.H文件供单片机程序调试和使用,最后通过单片机控制平台验证了其有效性与实用性.
关键词: 步进电机    加速曲线    单片机    
Research and Realization of Generation Tool for Acceleration Curve of Stepper Motor based on QT
Zou Zhi-qiang, He Yu-ding     
School of Materials and Energy, Guangdong University of Technology, Guangzhou 510006, China
Abstract: With the promotion of more and more stepper motor drivers on market, it is convenient to control and use stepper motors. In some cases the stepper motor needs running at high speed, and in order to prevent the loss of step, overshoot and stall, its acceleration and deceleration process need to be rationally designed. The theory of the acceleration process of stepper motor is studied based on the physical properties of the stepper motor and then the stepper motor acceleration curve generation tool software designed. This tool software can generate acceleration curve data automatically according to the stepper motor parameters and acceleration process demand parameters, and can be easily exported to .C and .H file for microcontrollers program debugging and using, and finally through the microcontroller control platform its effectiveness and practicability is verified.
Key words: stepper motor    acceleration curve    microcontroller    

步进电机是将电脉冲信号转换为角位移或者线位移的一种特殊开环线性执行元件[1]. 其主要优势在于成本低、驱动控制简单,且没有累积误差,因此被广泛应用于工业控制领域,如数控系统、医疗器械等[2]. 在步进电机的高速频繁启停、快速切换方向的应用场合下,电机启动过程中频率不能过高,否则会导致电机失步甚至堵转,同时在电机高速旋转时迅速停止或者切换方向将导致电机出现过冲现象. 为了有效解决上述问题,需要合理地设计步进电机加减速过程,使电机循序渐进地实现状态切换. 常见的步进电机加减速曲线有3类:梯形曲线、指数型曲线、S型曲线[3]. 其中梯形曲线具有计算简单的优点,但是该曲线没有考虑电机力矩变化的特点,加减速过程不符合步进电机的机械特性,同时在加减速完成时,加速度存在突变,将会产生机械冲击诱发振动. 指数型曲线较好地符合了步进电机力矩随速度升高而减小的特点,充分利用了电机的有效转矩,同时能够减弱机械冲击,但这种加速过程需要比较长的时间而且计算较复杂[4-5].S型曲线克服了梯形曲线的缺点,同时与指数型曲线相似符合步进电机的机械特性,而且计算简单,因此本文将对S型曲线加以研究.

1 步进电机S型曲线理论依据 1.1 步进电机的脉冲频率–转矩特性

步进电机的基本特性包括电机静态特性、动态特性、电机启动特性和电机制动特性[6]. 在研究步进电机S型加速曲线中最关注的是步进电机的动态特性中的脉冲频率–转矩特性和脉冲频率–惯量特性,步进电机的动态转矩包括失步转矩和牵入转矩. 牵入转矩大小从0 pps到最大自起动脉冲频率范围内逐渐减小到0. 失步转矩大小从0 pps到最大效应频率范围内逐渐减小到0. 由牵入转矩曲线和失步转矩曲线围成的区域称为运行区域,电机在此区域内可带相应负载同步连续运行,超出范围的负载转矩将不能连续运行,出现失步现象[6-7]. 失步转矩与牵入转矩在0 pps时相等. 随着控制脉冲频率的增加,带负载能力会下降. 在运行开始,控制脉冲频率应缓慢增加,以便利用低速下的大转矩,提供电机在低速运行时需要的加速转矩,减小加速时间[8].

1.2 步进电机的脉冲频率–惯量特性

电机最大自启动脉冲频率P与负载惯量Jc的关系为: $P = \displaystyle\frac{{{P_s}}}{{\sqrt {1 + {{J}_c}/{{J}_R}} }}$ ,其中JR为步进电机转子惯量,Ps为电机空载的最大自启动频率. 步进电机在带惯性负载快速启动时,须有足够的启动加速度,并且随着负载惯量的增加,电机的启动频率将下降[9].

1.3 步进电机的动力学方程

步进电机的动力学方程为: ${T} = {J}\displaystyle\frac{{{\rm{d}}\mathit{\boldsymbol{\omega }}}}{{{\rm{d}}t}} + {B\omega + }{{T}_f}$ ,其中:T为电磁转矩,Tf为摩擦力矩,J为负载的转动惯量,B为磁感应强度,ω为角速度[8]. 在步进电机不失步的条件下,电机的角速度与驱动脉冲频率f成正比关系,即 ${\omega } \propto cf$ ,其中c为比例常数,得到关于脉冲频率f的方程 ${T = }c{J}\displaystyle\frac{{{\rm{d}}f}}{{{\rm{d}}t}} + cf{B + }{{T}_f}$ ,根据初始条件:t=0,ω=0,得到该微分方程的特解 $f(t) = F{}_{\max } \times $ $(1 - {{\rm{e}}^{ - t/\tau }})$ ,其中 $\tau = {J}/{B}$ ,该值决定步进电机的加速度,与电机本身参数有关, ${F_{\max }} = \displaystyle\frac{{{T} - {{T}_f}}}{{B}}$ 为步进电机运行的最高频率[10-11].

2 步进电机加速曲线生成工具软件的实现过程 2.1 确定加速完成时驱动器输出脉冲频率

根据电机加速完成后的转速要求,用符号v表示,单位r/min,该值应小于步进电机空载启动时候的最高转速,并且随着负载的增大,电机的空载启动转速下降. 然后根据步进电机的步距角θ、电机驱动器的细分数x,来确定输出脉冲的最高频率fmax,推导过程如下:(1) 由步距角θ和细分数x,可以得到步进电机旋转1周所需要的脉冲数 $p = \displaystyle\frac{{360x}}{\theta }$ ;(2) 根据电机旋转1周所需要的脉冲数p和加速完成的转速v,可以得到驱动器加速完成每分钟需要发出的脉冲数为pv;(3) pv/60即为输出脉冲的最高频率fmax.

2.2 确定电机的加速过程时间以及加速曲线阶梯数

步进电机加速过程的时间受到了电机力矩T、摩擦力矩Tf、负载大小L、转动惯量J等因素的影响[12].其中加速度力矩Ta=T-Tf,进一步得到加速过程的加速度a=Tf /J,注意这里的转动惯量是已将负载考虑进去的转动惯量J,最后得到加速时间 ${T_{{\rm{rising}}}} = $ $ v/{a = }\displaystyle\frac{{v{J}}}{{{T} - {{T}_f}}}$ v为加速完成时速度. 从公式中可以看出速度越大,负载越大,摩擦力矩越大,加速所需要时间越长. 在实际应用中,由于将负载折算到电机转子上的合转动惯量的计算十分复杂,并且摩擦力矩很难测得,因此以上公式一般用来作为经验公式,而实际的电机加速时间Trising是由经验和实验得出的. 对于一般的小型步进电机加速时间取0.5~1 s,而对于大型重电机的加速时间取1~3 s. 步进电机加速曲线阶梯数将影响到电机加速过程的平稳度,若阶梯数过小,则电机加速过程加速度跳变越大,容易引起振动,反之若阶梯数过大,则电机输出的脉冲频率变化过快,电机未能及时响应,将引起堵转. 因此加速曲线阶梯数的选择应该适中,一般取200~1 000个阶梯点数.

2.3 确定电机启动时驱动器输出脉冲频率

步进电机的最佳起动频率随着步距角θ、转动惯量J和摩擦转矩Tf 的增大而降低,而随着电机转矩T的增大而升高. 并且步距角θ和转动惯量J对最佳起动频率的影响较大,而摩擦转矩对最佳起动频率的影响较小. 对于负载较小、带有细分驱动器的步进电机,这里一般取fmin=0.1fm~0.3fm,其中fm为电机最大空载启动脉冲频率.

2.4 步进电机S型曲线模型的建立

本工具软件选用logistic函数作为步进电机加速曲线的模型,其函数表达式为 $f(x) = \displaystyle\frac{1}{{1 + {{\rm{e}}^{ - ax}}}}$ ,其中a为曲线的斜率,图1 $x \in ( - 3,3)$ a分别取0.5、1、2时函数图像. 该函数严格单调递增,函数的斜率为aa的取值将影响到加速过程的加速度大小,注意到在y轴附近函数值f(x)将出现较大跳变,并且随着a的增大跳变将增大,因此一般a的取值范围设定在(0, 1)之间,避免加速度急剧变化,造成堵转. 横坐标x的取值应关于y轴对称,x的取值范围不宜过小,否则曲线点集中在y轴附近急剧上升,加速度变化过大,造成堵转. 反之x的取值范围不宜过大,否则加速开始阶段和结束阶段过于平缓,无法起到加速的效果. 一般x的取值应该保证 $|x| \leqslant 10$ .

图 1 a取值分别为0.5、1、2时的logistic函数图像 Figure 1 The logistic function of the image of a value 0.5, 1, 2
2.5 确定加速曲线各点的频率

在确定a的取值和x的取值后,利用式(1)

$f(u) = {f_{\min }} + ({f_{\max }} - {f_{\min }})\frac{1}{{1 + {{\rm{e}}^{ - au}}}},$ (1)

得到加速曲线各点的频率,其中u为加速过程中t时刻曲线横坐标取值,u的取值为 $ - |x| + \displaystyle\frac{{2|x|}}{s}t$ t的取值(0,1,2,3,...,s),可以看出计算出来的f(u)将呈现出S型曲线的递增趋势,并且不断趋于fmax,从而实现加速过程.

3 加速曲线生成工具效果验证 3.1 加速曲线生成工具介绍

基于上面提到的步骤,利用QT平台开发出加速曲线生成工具软件[13-18],该工具软件能够根据用户设定的步进电机参数和加速过程要求参数,生成对应的曲线数据,并且可以将数据导出成.C和.H文件直接添加到单片机工程下进行调试. 生成工具界面如图2所示,界面右侧有曲线参数设定和电机参数设定,参数的设定值将决定生成的曲线数据,左侧为根据生成的曲线数据描绘出来的曲线图,点击导出曲线数据按钮将在用户指定的路径下生成.C和.H文件,该文件中包含了曲线的所有数据点,以C语言数组的形式提供给用户,可以将这两个文件添加到单片机的工程中,单片机程序将方便地使用生成的曲线数据.

图 2 加速曲线生成工具软件界面图 Figure 2 Software interface of acceleration curve generation tool
3.2 单片机控制平台实现

本系统由STM32F103主控MCU模块、TB6560AHQ步进电机驱动芯片模块、相对式旋转编码器速度检测模块、串口输出模块、PC端显示模块组成,系统框图如图3所示。

图 3 单片机控制平台系统框图 Figure 3 System block diagram of microcontroller control platform

本实验中步进电机参数设定为:电机稳定运行后的频率fmax=40 kHz,电机启动频率为fmin=4 kHz,电机加速时间fmin=1 500 ms,加速曲线阶梯数s=200. 为了保证电机的平稳性,设定驱动器的细分数为8,选用电机的固定步距角为1.8°. S型曲线的横坐标范围为(–5, 5),a的取值为0.8,根据式(1)得到速度曲线数据如表1所示,由于设定的曲线阶梯数为200,数据较多,这里只显示部分数据.

表 1 加速曲线数据表 Table 1 Tables of acceleration curve data
3.3 实验结果与分析

本实验通过单片机的2个定时器,其中一个定时器控制50%占空比的驱动脉冲PWM输出来驱动步进电机的运转,电机加速过程中,另一个定时器在每Δt时间间隔内改变驱动脉冲PWM的输出频率f(t)直到加速完成,加速完成后保持输出频率为fmax,在整个过程中将单位时间内(0.2 s)旋转编码器的变化值通过串口上传至PC机,PC机通过软件将数据绘制成曲线形式,得到步进电机加速过程的速度曲线变化如图4所示.

图 4 步进电机加速过程速度曲线 Figure 4 Stepper motor speed curve of acceleration process

图中横坐标t表示步进电机加速过程的时间,单位ms,纵坐标f(t)是每0.2 s时间间隔内,相对式旋转编码器的变化值,该值与步进电机的转速成正比,因此纵坐标可以看做是步进电机的转速,通过加速过程速度曲线可以看出,步进电机能够从预设的启动速度平稳地加速到预期要求速度,说明生成的加速曲线数据符合步进电机加速规律,并且设定的参数与实验所用电机相匹配. 注意在实际应用中可以通过调整电机参数和曲线参数来生成得到较理想的加速曲线.

4 结语

本文引出了几种常见的步进电机加速曲线模型,并通过步进电机的脉冲频率–转矩特性、脉冲频率-惯量特性以及步进电机动力学方程得到了S型加速曲线的理论依据,然后利用QT平台设计出了一款以logistic函数为模型的S型加速曲线生成工具软件,该工具软件提供良好的用户界面,用户可设定步进电机参数和加速需求参数来生成针对特定步进电机的加速曲线,最后通过单片机控制平台来验证加速曲线数据点的正确性,通过实验得到的步进电机加速过程速度曲线,可以得出结论该工具软件能够根据需求参数得到加速曲线数据,并且生成的曲线数据可以满足步进电机加速过程的速度控制要求.

参考文献
[1] 麦志忠, 高军礼. 步进电机软控制器的设计[J]. 广东工业大学学报, 2008, 25(1): 73-76.
MAI Z Z, GAO J L. Design of step motor soft controller[J]. Journal of Guangdong University of Technology, 2008, 25(1): 73-76.
[2] 廖永富, 罗忠, 冉全. 一种新型S 形曲线步进电机加减速控制方法[J]. 湖北第二师范学院学报, 2015, 32(8): 32-34.
LIAO Y F, LUO Z, RUAN Q. A new S-curve acceleration and deceleration method for controllingstepping motor[J]. Journal of Hubei University of Education, 2015, 32(8): 32-34.
[3] 曾康玲, 杨向宇, 赵世伟, 等. 步进电机指数加速曲线优化与实现[J]. 微机, 2014, 47(6): 37-40.
ZENG K L, YANG X Y, ZHAO S W, et al. Optimization of exponential acceleration curve of stepper motor and realization on PIC[J]. Micromotors, 2014, 47(6): 37-40.
[4] 曹东杰, 韩峰, 任云燕. 单片机控制步进电机按S形曲线升降频设计[J]. 弹箭与制导学报, 2015, 26(2): 157-159.
CAO D J, HAN F, REN Y Y. A method to accelerate or decelerate the speed of step motor controlled by singlechip following S curve[J]. Journal of Projectiles, Rockets, Missiles and Guidance, 2015, 26(2): 157-159.
[5] 李东君. 步进电动机加减速控制的查表算法研究[J]. 微特电机, 2015, 43(11): 77-79.
LI D J. Study on the lookup table algorithm of acceleration and deceleration control of stepper motor[J]. Small Special Electrical Machines, 2015, 43(11): 77-79. DOI: 10.3969/j.issn.1004-7018.2015.11.019.
[6] 刘筱, 吴文江, 郑默, 等. 柔性S 型加减速控制算法研究[J]. 组合机床与自动化加工技术, 2014(3): 66-68.
LIU X, WU W J, ZHENG M, et al. Research on S-shaped acceleration and deceleration algorithm with high flexibility[J]. Modular Machine Tool & Automatic Manufacturing Technique, 2014(3): 66-68.
[7] ZHOU L, MISAMA E A. Vibration suppression control profile generation with both acceleration and velocity constraints[J]. Proceedings of the American Control Conference, 2005, 6(2): 4736-4741.
[8] MECKL P H, ARESTIDES P B, WOODS M C. Optimized curve of motion profiles for minimum residual vibration[J]. Proceedings of the American Control Conference, 1998, 23(5): 2627-2631.
[9] 郭新贵, 李丛心. S 曲线加减速算法研究[J]. 机床与液压, 2002, 22(5): 60-62.
GUO X G, LI C X. Studying S-shape acceleration/deceleration algorithm[J]. Machine Toll & Hydraulics, 2002, 22(5): 60-62.
[10] 王勇, 王伟, 杨文涛. 步进电机升降速曲线控制系统设计及其应用[J]. 控制工程, 2008, 15(5): 556-559.
WANG Y, WANG W, YANG W T. Control system design of acceleration and deceleration curves of stepping motor and its application[J]. Control Engineering of China, 2008, 15(5): 556-559.
[11] 蔡锦达, 郭振云, 许智. 基于Cortex-M3 的S 型加减速控制[J]. 控制工程, 2016, 23(2): 206-210.
CAI J D, GUO Z Y, XU Z. S-shape acceleration and deceleration control based on Cortex-M3[J]. Control Engineering of China, 2016, 23(2): 206-210.
[12] 林宇, 刘建群, 李锻能, 等. 电机直线驱动动力学参数测试教学实验台研制[J]. 广东工业大学学报, 2010, 27(1): 67-70.
LIN Y, LIU J Q, LI D N, et al. The design of the laboratory equipment for motor driven linear parameters test[J]. Journal of Guangdong University of Technology, 2010, 27(1): 67-70.
[13] 李鹏军, 兰殿星, 宁文斌, 等. 基于Windows下Qt与脉冲发生器的串口通讯实现[J]. 计算机测量与控制, 2016, 24(4): 206-209.
LI P J, LAN D X, YU W B, et al. Implementation of serial communication to pulse generator based on Qt in Windows enviroment[J]. Computer Measurement & Control, 2016, 24(4): 206-209.
[14] 严贤, 韩秀玲. 基于Qt的串口通信应用研究与实现[J]. 微计算机信息, 2012, 12(8): 114-116.
YAN X, HAN X L. The research and realization of communication of serial port based on Qt[J]. Microcomputer Information, 2012, 12(8): 114-116.
[15] 余立, 李志强. 基于Qt的多串口多协议数据接收解析软件的设计与实现[J]. 电子质量, 2011, 11(3): 34-36.
YU L, LI Z Q. Design and realization of multi-port, multi-protocol data receiving analytical software based Qt[J]. Electronics Quality, 2011, 11(3): 34-36.
[16] 陈旭红, 高文学. Qt/Embedded串口类的设计及应用[J]. 湖北汽车工业学院学报, 2010, 04(12): 51-53.
CHEN X H, GAO W X. Qt/Embedded serial port class design and application[J]. Journal of Hubei University of Automotive Technology, 2010, 04(12): 51-53.
[17] 胡军锋, 宋文杰, 尤泽萌. Qt中基于线程串口采集方式的实现[J]. 科技视界, 2014, 28(1): 5-6.
HU J F, SONG W J, YOU Z M. Realization of sample method based on thread serial port in Qt[J]. Science & Technology Vision, 2014, 28(1): 5-6.
[18] 罗立元, 何鸿肃, 王鸿贵, 等. 电动汽车驱动装置测试与仿真系统软件的研究[J]. 广东工业大学学报, 2001, 18(4): 14-19.
LUO L Y, HE H S, WANG H G, et al. Development of software system for test and simulation of motor electrical vehical[J]. Journal of Guangdong University of Technology, 2001, 18(4): 14-19.