步进电机期望控制脉冲的无抖动输出方法
2018-05-14张元飞樊绍巍刘宏谭久彬
张元飞 樊绍巍 刘宏 谭久彬
摘要关键词:步进电机;开环控制;速度跟踪控制;控制器IP核;3D打印
DOI:10.15938/j.emc.2018.02.003
中图分类号文献标志码:A文章编号:1007-449X(2018)02-0017-07
收稿日期基金项目作者简介:
通信作者:张元飞Desired pulse no jitter output method for stepping motor control
ZHANG Yuanfei1,2,FAN Shaowei1,LIU Hong1,TAN Jiubin3
(1.State Key Laboratory of Robotics and System, Harbin Institute of Technology, Harbin 150001,China;
2.State Key Laboratory for Manufacture System Engineering, Xi′an Jiaotong University, Xi′an 710054,China;
3.Institute of Ultraprecision Optoelectronic Instrument Engineering, Harbin Institute of Technology,Harbin 150001, China)
Abstract:In order to improve the speedtracking performance of stepping motor under openloop control, the desired pulse no jitter output (DPNJO) method is proposed based on conditional updating of a control parameter,which was used to control the period of output pulse.First of all, according to the possible mathematics relationships of two adjacent desired pulse periods,the timing analysis model was built and the pulse jitter output phenomenon was analyzed.Then, update conditions of the control parameter without pulse jitter output was summarized.At last, according to the update conditions summarized above,a controller IP core was built using VHSIC hardware description language (VHDL). Theoretical and experimental results indicate that this DPNJO method can effectively solve the pulse jitter output problem caused by unconstrained update of the control parameter, and improve the speedtracking control performance of stepping motor.
Keywords:stepping motor; openloop control;speedtracking control;control IP core; 3D printing
0引言
步进电机是将控制脉冲信号转变为角位移或线位移的离散值控制电动机,它结构简单而且步距无累计误差,因此得到广泛应用[1-3]。在熔融沉积(fused deposition modeling,FDM)3D打印領域中,送丝机构几乎均以步进电机作为核心驱动单元。
随着空间探索对大型结构平台需求发展,国内外近年来开展了3D打印制造技术面向空间应用的探索研究[4-8]。传统3D打印机往往采用箱式或框式结构,灵活性受限,无法制造出大于自身结构尺寸的构件,且无法直接完成受损构件现场修复任务。因此,为了有效推进空间现场制造技术的发展,多自由度机器人技术[9-10]与3D打印技术[11-12]融合势在必行。对于多自由度3D打印机器人而言,送丝机构可以等效成末端关节。考虑到FDM工艺特性,在进行机器人末端运动轨迹和出丝速率规划时,优选集中规划模式。该方案能够有效降低步进电机控制模块的结构复杂度,即步进电机控制模块仅需要完成期望速度跟踪控制。
目前,有关提高步进电机驱动控制性能的研究,涉及细分驱动[13]、速度及加速度规划[14]、控制模块结构设计[1]等方面。对于控制模块结构设计而言,通常集运动规划功能和控制脉冲发生功能于一体。该类控制模块结构更适用于分立规划控制系统,而不适用于集中规划控制系统。因此,针对多自由度3D打印机器人的送丝机构,设计了仅具有控制脉冲发生功能的步进电机控制模块。研究过程中发现,在无约束条件下更新该模块的控制参数值时,可能导致输出的控制脉冲发生抖动,进而降低了步进电机的期望速度跟踪控制性能。
因此,为了解决该问题,本文提出步进电机期望控制脉冲的无抖动输出方法。首先,构建时序分析模型,理论分析脉冲抖动输出现象;然后,归纳总结脉冲无抖动输出的控制参数值更新条件;其次,根据归纳总结的控制参数值更新条件,采用VHDL语言,构建脉冲无抖动输出的控制器IP核;最后,通过实验验证该方法的有效性。
1脉冲抖动输出现象分析
对于多自由度3D打印机器人的送丝机构的步进电机控制而言:其核心就是构建脉冲输出控制模块,实现步进电机对期望速度的恒速跟踪控制。
控制过程:首先,根据顶层任务规划,中央控制器周期性地计算期望脉冲的周期值;然后,将该值下传给送丝机构控制器;最后,脉冲输出控制模块利用该值,输出期望脉冲。
為了分析脉冲抖动输出现象,依据相邻通信周期的两个期望脉冲周期值间的数学关系,先构建时序分析模型,而后进行模型分析。
1.1时序分析模型构建
不失一般性,采用计时器的值t和脉冲输出控制模块的控制参数值T相比较的方式,实行期望脉冲输出。假设:t和T均为整型值;当t小于T>>1(表示T右移一位)时,脉冲输出模块输出逻辑‘0,否则输出逻辑‘1;当t大于等于T时,清空计时器,同时脉冲输出模块输出逻辑‘0。
考虑时域覆盖的完备性,与上个通信周期(即第n-1时刻)的期望脉冲周期值相比,当前通信周期(即第n时刻)的期望脉冲周期值存在4种可能,分别满足如下关系:
(Tn-1>>1) Tn-1 Tcn≤(Tn-1>>1),(3) 2Tn-1≤Tdn。(4) 式中:Tn-1为第n-1时刻的期望脉冲周期值,为整型值;Tn-1>>1表示Tn-1右移一位;Tan、Tbn、Tcn和Tdn分别为第n时刻的4种可能的期望脉冲周期值,为整型值。 在第n时刻的期望脉冲周期值T*n(其中*∈[a,b,c,d])尚未赋值给控制参数变量或寄存器前,控制参数值等于Tn-1。因此,当控制参数值更新时,计时器的值t可能等于0到Tn-1区间的任意整型值。利用相邻通信周期的期望脉冲的跳变沿,将可能发生控制参数值更新的相对时间域分割成6个子区域,构建时序分析模型,如图1所示。其中,CLK表示计时器输入时钟,周期为TCLK;Puls表示控制参数值更新前的实际输出脉冲,周期为Tn-1;Pulse_a、Pulse_b、Pulse_c和Pulse_d表示控制参数值更新后的4种可能的期望输出脉冲,周期分别为Tan、Tbn、Tcn和Tdn;I、II、III、IV、V和VI表示可能发生控制参数值更新事件的6个相对时间域。 1.2模型分析 对于控制参数值由Tn-1更新为Tan的情况:当控制参数值在6个不同时间域内更新时,依据实际脉冲发生机制,可分析得到控制参数值更新前后的相邻输出脉冲的高低逻辑持续时间长度。为了便于后续的脉冲抖动输出现象分析,采用图形化的方式,显示高低逻辑持续时间长度,如图2所示。 对于控制参数值由Tn-1更新为Tbn、Tcn和Tdn的情况:分析过程及手段与前一种情况相同,得到的图形化显示结果分别如图3、图4和图5所示。 根据控制参数值更新前后的相邻输出脉冲的高低逻辑持续时间长度,可以计算出各种情况下的中间过渡脉冲的周期值。 根据式(1),分析图2(b)可知,存在两个中间过渡脉冲,其周期值分别为(Tn-1-(Tn-1>>1)+taIII)和(Tan-taIII+(Tan>>1)),前者大于等于Tn-1,后者小于等于Tan;分析图2(c)可知,存在一个中间过渡脉冲,其周期值为(Tan-(Tn-1>>1)+(Tan>>1)),小于等于Tan;分析图2(d)可知,存在一个中间过渡脉冲,其周期值为(taVI-(Tn-1>>1)+(Tan>>1))。当taVI小于((Tn-1>>1)+(Tan-(Tan>>1)))时,该周期值小于等于Tan。 根据式(2),分析图3(b)可知,当控制参数值在时间域IV中进行更新时,中间过渡脉冲的周期值为((Tbn>>1)-(Tn-1>>1)),该值明显小于Tn-1和Tbn,且该值的极小值可达Tclk。 根据式(3),分析图4(b)可知,当控制参数值在时间域II和III的子区间[(Tcn>>1),…,Tcn)进行更新时,中间过渡脉冲的周期值为(Tcn-tc1II&III+(Tcn>>1)),该值小于等于Tcn;分析图4(c)可知,当控制参数值在时间域II和III的子区间[max(Tcn,((Tn-1>>1)-(Tcn>>1))),…,(Tn-1>>1)]中进行更新时,中间过渡脉冲的周期值为(Tn-1-(Tn-1>>1)+(Tcn>>1)+tc2II&III),该值大于Tn-1;分析图4(d)可知,当控制参数值在时间域IV、V和VI的子区间((Tn-1>>1),…,((Tn-1>>1)+(Tcn-(Tcn>>1))))中进行更新时,中间过渡脉冲的周期值为(tcIV&V&VI-(Tn-1>>1)+(Tcn>>1)),该值小于Tcn。 根据式(4),分析图5(b)可知,当关系式(Tdn>>1)≤(Tn-1+(Tn-1>>1))成立时,在时间区域IV、V和VI中进行控制参数值更新,中间过渡脉冲的周期值为((Tdn>>1)-(Tn-1>>1)),该值小于等于Tn-1。 综上所述,当中间过渡脉冲的周期值超出Tn-1和T*n(其中*∈[a,b,c,d])所构成的闭区间时,便产生了脉冲抖动输出现象。 2脉冲无抖动输出的控制参数值更新条件归纳针对脉冲抖动输出现象,上节已经进行了详细的阐述,并确定了该事件方式的充分必要条件。因此,只需依据Tn-1和T*n(其中*∈[a,b,c,d])的相互数学关系,避开可能导致脉冲抖动输出的控制参数值更新的时间域,就能够实现期望控制脉冲无抖动输出目标。这为构建后续的脉冲无抖动输出的控制器IP核,奠定了理论基础。 为了降低控制器IP核内部的控制参数值更新模块的逻辑复杂度,归纳总结共性的脉冲无抖动输出的控制参数值更新条件。通过分析图2(a)、图3(a)、图4(a)和图5(a)可知,中间过渡脉冲的周期值为(Tn-1-(Tn-1>>1)+(T*n>>1)),该值明显介于Tn-1和T*n之间,其中*∈[a,b,c,d]。归纳分析可知,当在时间域[0,…,min((T*n>>1),(Tn-1>>1)))中进行控制参数值更新时,不会产生脉冲抖动输出现象。
对于Tcn远小于(Tn-1>>1)的情况,如果仅基于上述条件进行控制参数值更新,会导致期望脉冲周期值下传后控制参数值更新时延过大,即控制参数值更新不及时。因此,对脉冲无抖动输出的控制参数值更新条件进行补充。通过分析图4(c)可知,当(Tcn+(Tcn>>1))小于(Tn-1>>1)时,控制参数值在时间域[Tcn,…,((Tn-1>>1)-(Tcn>>1)))进行更新产生的中间过渡脉冲的周期值介于Tn-1和Tcn之间。
根据前述分析的脉冲无抖动输出的控制参数值更新条件,便可构建脉冲无抖动输出的控制器IP核,进而实现脉冲无抖动输出控制。
3脉冲无抖动输出的控制器IP核构建由于现场可编程门阵列( fieldprogrammable gate array,FPGA)具有开发难度小、开发时间短、经济成本低等优点,在信号处理及控制领域得到了广泛应用[15-17]。因此这里将基于FPGA采用VHDL语言构建脉冲无抖动输出的控制器IP核。如图6所示,该IP核主要由Nios交互进程模块、控制参数值更新进程模块、脉冲输出进程模块和模块间数据交互的寄存器构成。相关寄存器定义如下:
CtrlMode_reg:控制模式寄存器;
TimeCounter_reg:计时寄存器;
CtrlPeriod_reg:控制参数寄存器;
NewPeriod_reg:当前期望脉冲周期值寄存器;
OldPeriod_reg:上个通信周期的期望脉冲周期值寄存器;
Set_reg和Clr_reg:控制参数值更新指示寄存器。图6脉冲无抖动输出的控制器IP核
Fig.6Controller IP core for pulse output without
jitter problem
Nios交互进程模块是软硬件数据交互的桥梁,将每个通信周期中央控制器下传的步进电机控制参数,写入寄存器CtrlMode_reg和NewPeriod_reg中,并更新寄存器OldPeriod_reg和Set_reg;控制参数更新进程模块主要依据上节归纳的脉冲无抖动输出的控制参数值更新条件,更新寄存器CtrlPeriod_reg和Clr_reg;脉冲输出进程模块的主要作用是输出以寄存器CtrlPeriod_reg的值为周期的脉冲和其他控制信号,完成步进电机驱动电路的逻辑控制。各个进程模块的工作流程如下:
Nios交互进程模块工作流程:
步骤A1:判断系统时钟信号sys_clk是否为上升沿,是,则执行步骤A2,否,则退出该进程;
步骤A2:判断写使能信号write_n是否有效,是,则执行步骤A3,否,则退出该进程;
步骤A3:根据Avalon地址总线address_bus的地址值,判断Avalon数据总线data_bus上的数据含义。若为期望脉冲期周期数据,则先将NewPeriod_reg中的值赋给OldPeriod_reg,再该数据赋值给NewPeriod_reg,而后将Clr_reg中的值取反赋值给Set_reg,并退出该进程;若为控制模式数据,则将该数据赋值给CtrlMode_reg,并退出该进程。
控制参数值更新进程模块的工作流程:
步骤B1:判断信号sys_clk是否为上升沿,是,则执行步骤B2,否,则退出该进程;
步骤B2:判断Set_reg和Clr_reg中的值是否不同,是,则执行步骤B3,否,则退出该进程;
步骤B3:判断NewPeriod_reg是否为空,是,则执行步骤B4,否,则执行步骤B5;
步骤B4:清空CtrlPeriod_reg,同时将Set_reg中的值取反赋给Clr_reg,并退出该进程;
步骤B5:判断TimeCounter_reg中的值是否同时小于NewPeriod_reg中的值右移1位和OldPeriod_reg中的值右移1位,是,则执行步骤B6,否,则执行步骤B7;
步骤B6:将NewPeriod_reg中的值赋给CtrlPeriod_reg,同时将Set_reg中的值取反赋给Clr_reg;
步骤B7:判断OldPeriod_reg中的值是否大于NewPeriod_reg中的值加上该值右移一位的和值,是,则执行步骤B8,否,则退出该进程;
步骤B8:判断TimeCounter_reg的值是否既大于NewPeriod_reg中的值,又小于OldPeriod_reg中的值右移一位减去NewPeriod_reg的值右移一位后的差值,是,则执行步骤B9,否,则退出该进程;
步骤B9:将NewPeriod_reg中的值赋给CtrlPeriod_reg,同时将Set_reg中的值取反赋给Clr_reg,并退出该进程;
脉冲输出进程模块的工作流程:
步骤C1:判断信号sys_clk是否为上升沿,是,则执行步骤C2,否,则退出该进程;
步骤C2:首先,将CtrlMode_reg中的对应控制位分别赋值给信号DIR、ENA、M1、M2和M3;然后,判断CtrlMode_reg中的步進电机使能位是否为‘0,是,则执行步骤C3,否,则执行步骤C4;
步骤C3:PULUp赋值为‘0,同时清空TimeCounter_reg和计数单元;
步骤C4:计数单元累加‘1,每完成TimeCounter_reg的一个时间单位循环计数后,清空计数器,同时TimeCounter_reg中的值累加‘1;判断TimeCounter_reg中的值是否大于等于CtrlPeriod_reg,是,则执行步骤C5,否,则执行步骤C6;
步驟C5:清空TimeCounter_reg,PULUp赋值为‘0,并退出该进程;
步骤C6:判断TimeCounter_reg中的值是否小于CtrlPeriod_reg中的值右移一位,如果是,则执行步骤C7,否,则执行步骤C8;
步骤C7:将PULUp赋值为‘0,并退出该进程;
步骤C8:将PULUp赋值为‘1,并退出该进程。
4实验
为了验证提出的步进电机期望控制脉冲的无抖动输出方法的有效性,利用上节脉冲无抖动输出的控制器IP核构建了送丝机构的步进电机控制模块。对比实验对象是基于控制参数无约束更新的步进电机控制模块。实验过程如下:
首先,利用多自由度3D打印机器人的中央控制器规划期望脉冲周期参数,每隔200us下传一次;
然后,送丝机构控制器在接收到上位机下传的数据后,写入步进电机控制模块,输出控制脉冲;
最后,利用matlab软件处理期望脉冲周期参数和实际输出脉冲原始数据(由QuartusⅡ软件中的SignalTapⅡ逻辑分析仪完成采集),生成时-频图,如图7所示。
通过对比分析实验结果可知,利用脉冲无抖动输出的控制器IP核构建的步进电机控制模块输出的实际脉冲未发生抖动现象;然而,在控制参数无约束更新时,实际输出的脉冲存在非常显著的抖动现象。因此,验证了所提方法及构建的脉冲无抖动输出的控制器IP核的有效性。
5结论
本文构建了控制参数值无约束更新时所有可能输出的中间过度脉冲的周期参数数学分析模型,详细阐述了脉冲抖动输出问题,归纳了脉冲无抖动输出的控制参数更新条件,构建了脉冲无抖动输出的控制器IP核,实验验证了基于控制参数值条件更新的期望脉冲无抖动输出方法及控制器IP核的有效性。研究成果适用于步进电机的期望速度跟踪控制领域,对提高多自由度3D打印机器人的送丝机构的运动控制性能有积极促进作用,为后续的多自由3D打印机器人和送丝机构的速度协调运动优化问题研究奠定了基础。
参 考 文 献:
[1]周磊, 刘庆想, 李相强, 等. 用于阵列天线连续跟踪的步进电机控制器IP核设计[J]. 强激光与粒子束, 2011(11): 3099.
ZHOU Lei, LIU Qingxiang, LI Xiangqiang, et al. Design of stepping motor control IP core for array antenna successive scanning[J].High Power Laser and Particle Beams, 2011(11): 3099.
[2]周一飞, 刘庆想, 李相强, 等. 螺旋天线步进电机控制系统仿真及运行曲线优化[J]. 强激光与粒子束, 2014(06): 96.
ZHOU Yifei, LIU Qingxiang, LI Xingqiang, et al. Simulation of helical antenna stepper motor control system and optimization of running curve[J].High Power Laser and Particle Beams, 2014(06): 96.
[3]张斌. 3D打印驱动关键技术研究[D]. 北京: 北京印刷学院, 2015.
[4]CESARETTI G, DINI E, DEKESTELIER X, et al. Building components for an outpost on the lunar soil by means of a novel 3d printing technology[J]. Acta Astronautica, 2014, 93: 430.
[5]MA S, LI F. The solution of future space transport the patent analysis of 3dp technology application in aerospace[C]//64th International Astronautical Congress 2013 (IAC 2013), September 23-27, 2013, Beijing, China Paris: International Astronautical Federation, IAF, 2013: 8804.
[6]LIANG X, CHEN J, DING P, et al. The applications of additive manufacturing in space developments[C]//64th International Astronautical Congress 2013 (IAC 2013),September 23-27, 2013,Beijing, China.Paris: International Astronautical Federation, IAF, 2013: 6287.
[7]HEYT R P,CUSHING J I,SLOSTAD J T,et al. Spiderfab: an architecture for selffabricating space systems[C]//AIAA SPACE 2013 Conference and Exposition. September 10-12,2013,San Diego, CA, United states. Reston: American Institute of Aeronautics and Astronautics Inc., 2013: 1.
[8]DUNN J J,SNYDER M, NAPOLI M, et al. 3d printing on the international space station: reducing earth dependency and opening new space based markets[C]//64th International Astronautical Congress 2013 (IAC 2013),September 23-27, 2013, Beijing, China. Paris: International Astronautical Federation, IAF, 2013: 8976.
[9]HUO X,LIU Y,JIANG L, et al. Design and development of a 7Dof humanoid arm[C]//2012 IEEE International Conference on Robotics and Biomimetics, ROBIO 2012Conference Digest,December 11-14, 2012, Guangzhou, China. Tokyo: IEEE Computer Society, 2012: 277.
[10]譚民, 王硕. 机器人技术研究进展[J]. 自动化学报, 2013(07): 963.
TAN Min, WANG Shuo.Research progress on robotics[J]. Acta Automatica Sinica,2013, 39(07):963.
[11]王红军. 增材制造的研究现状与发展趋势[J]. 北京信息科技大学学报(自然科学版), 2014(03):20.
WANG Hongjun. Research status and development tendency of additive manufacturing[J]. Journal of Beijing Information Science and Technology University, 2014, 29(03): 20.
[12]卢秉恒, 李涤尘. 增材制造(3D打印)技术发展[J]. 机械制造与自动化, 2013(04):1.
LU Bingheng, LI Dichen. Development of the additive manufacturing(3D printing)technology[J].Machine Building&Automation,2013, 42(04):1.
[13]赵海洋, 崔翠红, 陈斌, 等. 基于FPGA的步进电机细分驱动器[J]. 仪表技术与传感器, 2009(12):67.
ZHAO Haiyang, CUI Cuihong, CHEN Bin, et al. Design of microstepping motor driver by FPGA[J]. Instrument Technique and Sensor, 2009(12):67.
[14]周黎, 杨世洪, 高晓东. 步进电机控制系统建模及运行曲线仿真[J]. 电机与控制学报, 2011(01):20.
ZHOU Li, YANG Shihong, GAO Xiaodong. Modeling of stepper motor control system and running curve simulation[J]. Electric Machines and Control, 2011(01):20.
[15]ZHANG Yuanfei, JIN Minghe, ZHANG Yu, et al. Development of highspeed and highly integrated CCD laser range sensor based on FPGA[C]// Proceeding of the 11th World Congress on Intelligent Control and Automation, Jun 27-30, 2014, Shenyang, China.Piscataway: IEEE Robotics and Automation Society, 2014:3618.
[16]王邦继, 刘庆想, 周磊, 等. FPGA在多轴步进电机控制器中的应用[J].电机与控制学报, 2012, 16(3): 78.
WANG Bangji, LIU Qingxiang, ZHOU Lei, et al.FPGAbased multipleaxis stepper motor controller[J]. Electric Machines and Control, 2012, 16(3): 78.
[17]张奇, 谢宗武, 刘宏, 等.FPGA软硬件编程方法的模块化关节控制器设计[J]. 电机与控制学报, 2013, 17(8):91.
ZHANG Qi, XIE Zongwu, LIU Hong, et al. The design of a modular joint controller based on FPGA with software/hardware codesign methods[J]. Electric Machines and Control, 2013, 17(8): 91.
(编辑:贾志超)