基于DSP的多轴运动控制系统设计*
2021-09-27齐山成刘海华
齐山成,刘海华,刘 毅
(河南工学院 电气工程与自动化学院,河南 新乡 453003)
0 引言
步进电机是一种将电脉冲转换为机械角位移的机电元件,具有易精确控制、无累计误差、成本低廉等优点,在运动控制系统中应用广泛。步进电机作为运动控制系统中的执行机构,其机械角位移和转速分别与输入的脉冲个数和频率成正比。对输入脉冲的精确控制至关重要,相应的软硬件设计一直都是步进电机控制的重点研究方向。目前,市面上的运动控制板卡多为通用型单轴控制板卡,难以满足具有特定需求的多轴系统控制[1]。随着嵌入式技术的快速发展,DSP控制芯片的性能有了大幅提升,将DSP用于多轴运动控制系统中,不仅可以提高实时性和可靠性,而且能够降低系统成本。本文设计了一款多轴运动控制系统,该系统以DSP为控制核心,采用正弦细分和恒流斩波并用的驱动方法,实现步进电机的闭环控制,通过直线插补算法和圆弧插补算法实现多轴联动。此外,通过数码管显示步进电机的实时转速和SCI串行总线将转速信息上传至上位机,实现多轴运动控制的远程监控。所设计的多轴运动控制系统能够实现多轴步进电机的独立启停、转速控制、正反转控制、转速显示、上位机通信等功能,具有控制稳定、价格低廉等优点。
1 多轴运动控制系统原理框架
本文所设计的基于DSP的多轴运动控制系统的原理框架如图1所示。系统采用TI公司生产的专用电机控制DSP芯片TMS320F2812作为控制核心,实现对三台步进电机的控制。系统硬件电路主要由数模转换电路、恒流斩波电路、功率驱动采样电路、SPI接口电路、SCI接口电路等组成。上位机通过SCI串行通信,将步数给定、启停、正反转、细分选择等信号发送至DSP,而DSP则向上位机反馈各个轴电机的转速。DSP自行产生脉冲信号,并实现环形分配,同时给出细分电流的数字给定信号,经数模转换器AD7528转换为模拟信号,与采样电路采得的绕组电流进行比较, 经SG3525实现恒流斩
图1 基于DSP的多轴运动控制系统的原理框架
波,产生功率驱动芯片LMD18201所需的PWM信号,在电流相序信号的共同作用下,最终驱动各个轴步进电机转动[2-3]。
2 硬件设计
2.1 DSP主控部分
多轴运动控制系统采用TMS320F2812作为主控芯片,主要实现如下功能:(1)DSP响应并执行各个轴电机的启停、正反转及细分选择信号,三轴电机互不影响,可独立运动,也可以同步运行;(2)DSP向外部输出步进电机控制信号,包括八路细分电流给定信号、电流相序信号以及功率驱动芯片的制动信号;(3)实现过温保护;(4)步进电机单轴运动的实现,即电机的定位和加减速实现;(5)利用SPI同步串行通信,实现各个轴电机的转速显示;(6)利用SCI异步串行通信,实现上下位机的通信。
2.2 正弦细分、恒流斩波电路
本文采用正弦细分和恒流斩波并用的驱动方法对步进电机进行控制,该方法是一种电流控制技术,给定的电流为正弦形阶梯信号,给定电流信号与绕组电流比较,通过恒流斩波电路,实现电流的闭环控制。正弦细分电流的数字给定由DSP给出,通过AD7528转换为模拟信号,恒流斩波电路通过集成模块SG3525实现,正弦细分恒波斩流电路原理如图2所示。
图2 正弦细分恒流斩波电路原理
AD7528输出的模拟电流信号经运放LM358转换为模拟电压信号,该信号作为SG3525的同相端输入,而反相端输入为经A、B相电流采样转换得到的绕组电压。
SG3525主要用来产生PWM波,它输出的PWM波的最大占空比为50%,为了扩大占空比,将两路信号经过逻辑或,最终产生PWM波的占空比在4%—96%之间[4]。当绕组电流变小即反馈减小时,SG3525输出的PWM波占空比增大,最终导致绕组电流增加;反之,占空比减小,绕组电流减小。
3 软件设计
3.1 单轴运动实现
单轴运动包括电机的加、减速运动和定位实现。系统采用EVA、EVB里的周期中断作为三个轴电机的脉冲源。本文采用梯形加减速模式,通过改变各自的周期值实现。
根据位移长短的不同,梯形加减速控制有以下三种方式:短距离控制(方式一)——以接近启动频率运行,只有恒速阶段;中短距离控制(方式二)——只有加减速过程,速度曲线是三角形;中长距离控制(方式三)——不仅有加减速过程,还有恒速过程,速度时间曲线是标准的梯形曲线。而定位则是电机按照设定的步数,自行判断梯形加减速的方式,最终实现电机的定位。
单轴运动控制流程图如图3所示,采用查表法对速度进行控制,把事先计算好的周期值放在一个数组中,这些数值的获得是通过频率和转速之间的关系再加上梯形控制曲线计算得来。用查表法简化了运算过程,同时也提高了效率。
图3 单轴运动实现流程图
3.2 多轴联动实现
上面介绍了控制系统单轴运动的实现,现对二轴联动的插补算法进行详细的介绍。本文采用最小偏差法实现插补[5-7],基本原理是选取变化快的坐标轴作为连动坐标,然后按偏差最小的原则判断其他坐标轴是否运动。
3.2.1 直线插补算法
为获得最小偏差,直线插补算法对步进电机进给方向作了以下规定:设目标直线AB位于第一象限,起点O(0,0),终点Z(xZ,yZ)。当xZ≥yZ时,向x方向或对角线方向偏差小的方向进给;当xZ xZy-yZx=0 (1) 设加工点M(x,y),直线的偏差函数为: F=xZy-yZx (2) 进给Δx时, F(Δx)=xZy-yZ(x+1)=F-yZ (3) 进给(Δx,Δy)时, F(Δx,Δy)=xZ(y+1)-yZ(x+1) =F+xZ-yZ (4) 令f=F(Δx)+F(Δx,Δy),f为偏差比较函数,将式(3)、式(4)代入得: f=2F+xZ-2yZ (5) 若f≥0,说明F(Δx)≤F(Δx,Δy)进给Δx;若f<0,说明F(Δx)>F(Δx,Δy)进给(Δx,Δy)。根据f的符号,便可确定下一步的进给方向。 下面利用Matlab软件对最小偏差法直线插补算法进行编程仿真,在理论上对该算法进行验证。设第一象限直线AB起点坐标A(0,0),终点坐标B(8,5),利用Matlab软件进行直线插补模拟,对应的直线插补图形如图4的折线所示。 图4 最小偏差法生成的直线AB 3.2.2 圆弧插补算法 现以圆心在原点的逆时针圆弧为例,说明最小偏差法圆弧插补原理。圆的方程为: x2+y2=R2 (6) 设加工点M(x,y),F(x,y)为加工点M(x,y)的偏差函数,令: F(x,y)=x2+y2-R2 (7) 任一时刻加工点的偏差函数为: Fn=F(xn,yn) (8) Fn+1(Δy)=xn2+(yn+1)2-R2=Fn+2yn+1 (9) Fn+1(-Δx,Δy)=(xn-1)2+(yn+1)2-R2 =Fn-2xn+2yn+2 (10) 则偏差比较函数为: fn(x,y)=Fn+1(Δy)+Fn+1(-Δx,+Δy) =2Fn-2xn+4yn+3 (11) 若fn(x,y)≥0,则应走(-Δx,+Δy)步,否则,走+Δy步。根据fn的符号,便可确定下一步的进给方向。 图5 最小偏差法生成的圆弧 3.3.1 SPI同步串行通信 为使电机的转速显示更加直观明了,设计系统时采用了LED数码显示方式,通过按键选择各轴向的电机,就可以显示各个轴的转速。显示的实现通过SPI同步串行通信来完成。 3.3.2 SCI异步串行通信 本文采用DSP自带的SCI串行通信接口,可以减少DSP的I/O口使用,也节约了资源,使控制器更加可靠[8-9]。上位机接收采用中断方式进行,发送则采用查询方式。 同时,采用VB6.0专业版提供的功能强大的ActiveX控件MSCOMM实现微机与DSP的通信。图6为步进电机多轴控制的通信界面图。 图6 上下位机通信界面图 图7为研制的多轴控制器工作时的图片,数码管显示Z轴步进电机的转速为200r/min,旁边的指示灯显示电机为正转。由程序可以实现选择显示任意一台电机的转速,电机转向的显示与转速的显示是同步的,指示灯亮时表示电机正转,反之,电机为反转。 图7 多轴控制器图 图8 二相电流相序图 图8为X轴二相混合式步进电机的A、B两相电流相序信号。由相序波形图知,电机实现了四步一循环的运行方式。本文电机的运行为双四拍运行,即AB-/AB-/A/B-A/B,整步时换相。该运行方式可以充分利用电动机的容量,从而增大输出转矩。 图9为Y轴电机的A、B两相绕组4细分电流经LM358转换后的两相绕组电压信号,可以看出两者互错一定的角度,具体到本系统中为90°,电压可达128细分。 图9 由4细分电流转换的电压波形图 实验结果表明,本文所设计的多轴步进电动机运动控制系统不论是在硬件电路上,还是在软件设计上,都达到了基本的性能要求,同时集成度高、可移植性好。利用DSP对多轴步进电机进行控制,实现简单,控制灵活,整个控制系统具有丰富的接口和通讯功能,在机器人控制、数控等领域具有广阔的应用前景。3.3 串行通信
4 实验结果及分析
5 结语