基于Matlab和DSP的直线电机精准位置控制
2013-09-22,,,
,,,
(1.天津理工大学天津市复杂系统控制理论及应用重点实验室,天津 300384;2.天津瑞灵石油设备有限公司,天津 300308)
直线电机驱动系统负载的变化将直接作用于直线电机。在设计直线电机控制系统时,如何提高系统的稳态跟踪精度和动态响应能力[1],成为控制器设计的关键指标。TI公司的TMS320F2812 DSP是一类专业的运动控制芯片,不仅具有主频高、速度快的优点,而且还可以利用其带有死区单元的PWM输出,实现正弦脉宽调制算法。结合在Matlab/Simulink创建控制算法简单的特点,实现在Matlab中创建M文件,生成DSP代码,控制直线电机快速、精准运动。
1 直线电机伺服控制系统结构
目前,直线电机伺服控制系统主要采用3环控制结构,如图1所示。
图1 直线电机伺服控制系统框图Fig.1 Block diagram of linear motor servo system
从内到外依次是电流环、速度环和位置环,而且3个环所使用的调节器均可根据实际情况分开单独设计。其中,电流环作为底层内环,接受速度环传送的电流信号,与电机反馈电流信号比较,主要作用是提高系统的快速响应能力;速度环处于中间位置,接受位置环传送的信号,能够抵抗负载波动干扰,确保速度稳定;位置环[2]保证改善系统动态跟踪能力和静态性能。
在设置ELMO驱动器时,电流环和速度环就已经完成了调整工作,即当1台电机连接到驱动器上时,电流调节完全是自动的:软件Composer根据频繁的反馈信息创建一个电流环的技术编码器并且能找出最优PI参数;速度环调节中可根据提示进行速度自整定来完成速度驱动的调整,作为一个速度调节器。故在设计直线电机3闭环控制系统时只需要通过C space控制卡[3]采集直线电机的位置信号,与设定的信号(本实验中为方波)作比较得到误差信号,将该信号经过位置调节器(积分分离的PID算法)处理后得到控制信号,再经过驱动器放大驱动直线电机,构成直线电机的闭环控制系统,如图2所示。
图2 直线电机闭环控制系统硬件原理框图Fig.2 Block diagram of linear motor closed-loop system′s hardware principle
2 积分分离的PID调节器的设计
2.1 积分分离PID算法原理分析
积分分离的PID调节器的设计思想是:为了避免输入量有较大的变化而引起控制量超调,超出一个范围,从而产生饱和效应,此时,令PID调节器中的积分环节不起作用[4],只有比例和微分环节起作用;当输入量的变化较小时,重新使积分环节恢复,作用于系统,消除系统的静态误差。
本系统中采用光栅尺来测量直线电机的位置信号,C space控制卡上正交编码接口Encoder2是直线电机动子位置反馈接口,如图3所示。
图3 正交编码模块及其对应的C space控制卡上接口Fig.3 Orthogonal coding mode and its corresponding interface on C space control card
图3中模块输出的是编码信号经过解码后的脉冲个数,是A相或者B相信号4倍频以后的值。此接口会给出电机的实际位置信号与设定的预期信号比较得到偏差信号当偏差值绝对值大于一个设定的阈值为大于零的数)时,PID控制器中的积分环节不起作用,这时,控制器的输出为
从而使控制器具有消除系统静态误差的能力。
2.2 Matlab/Simulink仿真模型搭建
式(1)和式(2)给出了PD-PID控制算法,Matlab/Simulink搭建仿真模块见图4。其中,“Subsystem”,“Subsystem1”,“Switch”模块,完成对积分退出与恢复的条件判断和输出。根据输入条件的不同,判断“Subsystem”或者“Subsystem1”起作用,从而决定积分环节的加入和消除。
图4 PD-PID算法控制框图Fig.4 The block diagram of PD-PID algorithm control
在建立控制算法M文件时,可以利用Matlab/Simulink中加载了特有的C space软件包,该软件包中一些模块支持在线实时参数调整。因此,在运行时,可以首先通过在线改变参数,找到一组最优的P,I,D参数,并将这3个参数,作为之后控制电机的实际参数,加载到PD-PID控制器中,达到直线电机精准的位置跟踪控制。
3 C space硬件资源介绍
图5 U型直线电机驱动平台Fig.5 U-linear motor drive platform
Cspace电机试验平台不仅可以同时驱动3台磁阻无刷电机,还包含了直线电机驱动功能。本文针对直驱技术而言,直线电机试验平台包括硬件和软件2部分,主要有:U型永磁直线电机驱动平台(如图5所示),模块化组件,TI公司生产的TMS320F2812 DSP运动控制卡,控制软件和C space快速控制原型开发系统。其中直线电机驱动平台由精密直线导轨,直线电机(参数为:直线电机总质量11.4 kg,直线电机移动部分质量1.336 kg,负载块质量0.5 kg,磁栅分辨率5 μm。)位移传感器,负载块几部分组成。软件包括Matlab R2008a和CCS3.3,仿真器驱动软件Composer。在本实验平台的Matlab/Simulink中装载了特有的C space软件包,用于直线电机驱动控制设计建模。
实验可按如下过程进行:第1步,在Matlab的Work文件夹下建立Simulink算法文件编译、修改,直至无错误;第2步,连接硬件,包括上位机,主机箱,直线电机之间的通讯线和控制线;第3步,Simulink文件编译,连接到DSP;第4步,打开C space控制界面;第5步,在线改变参数,通过串口下载参数,然后启动电机;最后,进行在线调试,并可以保存数据,利用Matlab对数据进行处理。其中,第3步和第4步用到的模块如图6所示,“WM Model Build”编译Simulink 算法文件,生成DSP目标代码,“WM Model Run”使生成的代码下载到DSP卡并自动运行,启动临控界面。
图6 C space软件包中常用模块Fig.6 Module commonly used in C space software
4 实验仿真与结论
在试验中,设定幅值为1,占空比为2/3的方波信号,采样时间为0.005 s。由实验平台无需停止电机,就可进行PID参数在线调试,没有必要采用其它的PID参数的估算方法[5],只需通过观察C space控制界面,在输出曲线达到所要求标准时,记录3个参数的数值。最终采用的参数值分别为:相对应于比例环节、微分环节、积分环节的“WM-write2”“WM-write3”“WM-write4”的值分别为:3,30,0.003 3,取阈值ε为0.55。输出控制电压信号、位置跟随曲线、偏差信号的实验结果分别如图7~图9所示。
图7 输出控制信号Fig.7 Output control signal
图8 位置跟随曲线Fig.8 Position follow curves
图9 偏差信号Fig.9 Deviation signal
图7为调节器输出的模拟控制电压信号,通过“WM_DAC_1”通道接口,与Cspace控制卡16bit的DA相连,最终输出(-10,+10)范围内的电压值。
由图8可以看出,虽然在电机换向时仍有一定量的超调,经过0.2 s后,电机跟踪效果很好。
从整个实验现象可得知,PID设置不同值时,电机的实际位置控制效果不同,随着PID参数的调节优化,电机运动曲线逐步跟踪设定脉冲曲线,并且误差也很小。
本文通过对PID算法的研究设计了积分分离的PID控制器,并在Sinulink中编写了M文件,结合了C space硬件在回路控制的优势,通过在线适时调整参数,找到了PID比较好的参数值,实现了直线电机位置精准跟踪方波实验。实验结果表明:积分分离的PID调节器,能够减小系统超调,改善系统静、动态性能,提高了直线电机位置跟踪的性能。又因为直线电机直接存在于硬件中,在控制算法设计时,无需创建直线电机的数学模型,取代了传统的用理想电机数学模型代替实物带来的弊端,也验证了积分分离的PID控制器的有效性。
[1]陈幼平,张代林,艾武,等.基于DSP的直线电机位置伺服控制策略研究[J].电机与控制学报,2006,10(1):61-65.
[2]杜志强,陈幼平,艾武,等.DSP在短行程直线电机紧密位置控制中的应用研究[J].工业控制,2005,13(2):131-134.
[3]曹荣敏,周惠兴,梁文宇,等.基于C space的直线电机实时仿真控制系统研究实现[J].制造业自动化,2009,31(12):81-84.
[4]胡科峰,周云飞,李作清,等.基于积分分离的PID位置控制器的设计[J].机床与液压,2004,32(5):19-21.
[5]王素青,姜维福.基于MATLAB/Simulink的PID参数整定[J].工业控制与应用,2009,28(3):24-28.