多点步进电机的远程位置控制系统
摘 要: 步进电机的远程多点位置控制系统,利用TCP协议将服务器端控制中心和客户端控制器接入因特网,可实现控制数据和位置监控数据的远程同步传输。系统采用NI公司的CompactRIO作为核心控制器;通过LabVIEW编写改进专家PID控制算法,可根据设定位置与实时位置的偏差动态设定输出控制器参数,有效防止过冲现象,实现步进电机的精确位置控制。步进电机的驱动控制电路由单片机和LM298构成,结合多级细分控制方法可有效抑制步进电机的震动和失步。
关键词: 远程位置控制; CompactRIO; 改进专家PID算法; TCP协议
中图分类号: TN820.3⁃34 文献标识码: A 文章编号: 1004⁃373X(2013)13⁃0142⁃05
Remote position control system of multipoint stepper motor
LIU Yun⁃hong, LI Shi⁃yu
(Dalian University of Technology, Dalian 116024, China)
Abstract: By using transmission control protocol (TCP) to connect the sever control centre and client controller to Internet, the remote multipoint position control system of the stepper motor could realize the remote synchronous transmission of control data and position monitoring data. CompactRIO of National Instrument Company is taken as the core controller of the system. By writing the modified expert PID control algorithm in LabVIEW, the parameters of the output controller can be dynamically set according to the deviation between setting position and real⁃time position, the overshoot phenomenon can be prevented efficiently, and the precise position control of stepper motor can be realized. The drive control circuit of the stepper motor is consist of singlechip and LM298, which can effectively restrain the vibration and out⁃of⁃step of the stepper motor in combination with with multilevel subdivided control method.
Keywords: remote position control; CompactRIO; modified expert PID control algorithm; TCP
0 引 言
精确位置控制是精密仪器制造业、航天业以及军事领域中不可缺少的重要环节[1],这些领域中常常会遇到控制现场不便接近或存在危险性的问题,因此远程位置控制就具有非常重要的研究意义。已经广泛覆盖的因特网为实现远程控制提供了可能,并且具有通信速率高、可靠性高和成本低等诸多优势。本设计中的远程位置控制系统将因特网作为通信介质,同时应用TCP(Transmission Control Protocol)协议保证数据准确传输,能实现控制中心同时对多台步进电机的远程位置控制。
步进电机的开环位置控制虽然易于实现,但随着工业应用的不断深入和相关技术的发展,开环控制尚不能满足精密位置控制系统不断提高的精度要求,因此需要使用更为精确的闭环控制。还考虑到步进电机的扰动扭矩以及机械系统的阻尼、刚度惯量等因素,传统的PID控制方法无法提供最佳的PID参数[2],因此本文将专家经验与数字PID控制方法相结合设计出改进专家PID算法,并应用到位置控制系统中,有效抑制了步进电机定位过程中的过冲现象,大大提高了系统的控制精度,很好的解决了以上问题。
系统的核心控制器CompactRIO是NI公司生产的一款坚固耐用、可重新配置的嵌入式测控系统,包括实时控制器、可重配置的FPGA(现场可编程门阵列)和工业级I/O模块。内嵌FPGA的可重配置机箱是CompactRIO的核心,机箱中的FPGA直接和每个I/O模块相连,控制器可高速访问I/O电路与步进电机的驱动电路,无论在数据运算还是数据通信都十分快速,保证了系统的实时性。
本文将介绍系统的硬件结构,重点研究改进专家PID算法在精确位置控制中的实现方法,并分析了TCP协议在系统远程控制中的应用。
1 系统硬件结构
1.1 系统整体硬件结构
系统硬件的核心是cRIO⁃9014嵌入式实时控制器,该控制器带有10/100 BaseT以太网端口,可通过PC接入因特网。配合cRIO⁃9014选用了8槽cRIO⁃9112可重新配置的嵌入式机箱,支持所有CompactRIO I/O模块,使用Xilinx Virtex⁃5系列FPGA 核心,具有超强的处理能力。选用了8通道、5 V/TTL高速双向数字I/O模块NI⁃9401为步进电机驱动模块提供控制时序信号,由于NI⁃9401具有100 ns超高速数字输入/输出功能,基本消除了系统响应延迟。还选用了16位模拟输入模块NI⁃9215来实时采样步进电机的位置电压信号,NI⁃9215具有四通道100 KS/s的同步采样速率,可以满足对多点控制的要求。I/O模块的选择充分考虑了远程定位系统控制信号的频率以及采样信号的分辨率和采样率的要求。控制器结构如图1所示。
<\\192.168.0.25\$d\8月\8-2\补\补!现代电子技术201313\Image\29t1.tif>
图1 核心控制器结构图
系统硬件除了核心控制器CompactRIO外还包括上位机、由单片机和电机驱动芯片LM298构成步进电机驱动电路、步进电机位置信号采集电路和多台步进电机。系统整体结构如图2所示。
<\\192.168.0.25\$d\8月\8-2\补\补!现代电子技术201313\Image\29t2.tif>
图2 系统整体硬件结构图
安装了LabVIEW应用程序的PC作为系统的控制中心,与在控制现场载入了LabVIEW应用程序的CompactRIO控制器进行远程通信。通过接入网络,控制中心将各台步进电机的目标位置信息发送到控制现场的控制器,同时控制器将采集到的各台步进电机的实时位置反馈到控制中心。
CompactRIO将从控制中心接收到包含各台电机控制信息的数据报译码,得到十进制的位置角度值和控制器初始参数值,然后将各电机目标位置角度值与电机的实时位置角度值送入改进专家PID控制器进行比较分析。根据分析结果,数字量I/O模块NI⁃9401向电机的驱动控制模块中的单片机的I/O口发送控制信号,实现对步进电机的位置控制。
1.2 步进电机驱动控制电路结构
步进电机的驱动控制电路主要包括Atmel公司的ATmega8单片机和SGS公司的双全桥式电机驱动芯片LM298,LM298作为驱动电机的电力输出器件,单片机作为驱动控制器,电路结构如图3所示。LM298内含两个H桥的高电压大电流双向桥式驱动器,接受标准TTL电平信号,可驱动电压46 V、每相2.5 A及以下的步进电机[3]。由于采用双极性驱动,因此电机线圈完全利用,使驱动步进电机的效果最佳。NI⁃9401的DIO0、DIO1、DIO2、DIO3四路数字数字输出口分别接单片机的PC0~PC3口,向单片机发送时序信号控制指令。单片机的PD4~PD7口分别接到LM298的四路输入,LM298的四路输出则接到步进电机的A、B、C、D的四个控制端。为避免控制信号受到干扰,单片机I/O输出脚与LM298输入脚之间采用光耦TIL117进行信号隔离。
被控电机选择两相混合式42BYGH型步进电机,采用四相八拍制的多级细分通电方式,即对步进电机定子的A、B、C、D四相以A⁃AB⁃B⁃BC⁃ C⁃CD⁃D⁃DA或A⁃AD⁃D⁃DC⁃C⁃CB⁃B⁃BA的顺序单相与两相间隔通电,步进电机步距角为[θb=0.9°。]多级细分控制,通过把原有最小步距角再进行细分,可以把步进电机的步距角进一步减小(减小到几个角分)[4]。本设计利用单片机软件编程实现细分控制,可简化硬件电路。原理是将原有的八个通电状态中每组相邻状态的变化过程(单相通电到两相通电或两相通电到单相通电)分为四个阶梯状的阶段。以从A相通电到AB两相通电的过程为例,此过程中,A相保持通电状态,B相则处于通电与断电的交替过程中,但通电时间呈阶梯状上升,从1/4时间通电到1/2时间通电,再到3/4时间通电,最后到达B相完全通电即AB两相同时通电状态。AB两相通电到B相单相通电过程中A相的断电过程同样呈阶梯状,只是趋势相反。步进电机的相绕组中电流也成四层阶梯状变化,因此运行的每一步变为原来的[14],即[θb]=0.225°。这样步进电机运行更近似匀速运动,震动变小了,发生失步的概率也降低了。
1.3 位置信号采集电路结构
采用总阻值为10 kΩ的精密多圈旋转电位器(共10圈,每圈1 kΩ)替代绝对值式旋转编码器采集步进电机的位置信号,此设计可简化硬件、降低成本。电位器两固定端接10 V直流稳压电源的+10 V端和COM端,滑动端接NI⁃9215模拟量输入模块AI+端,稳压电源的COM端接NI⁃9215模块的AI-端和COM 端。
步进电机的起始位置为0°,对应0.000 V电压;终点位置为3 600°,对应10.000 V电压;步距角为0.9°,对应0.025 V电压。每个NI⁃9215模块可以同时采集四个节点步进电机的实时位置电压信号,为多路闭环位置控制提供了精确的实时位置反馈信号。
2 精确位置控制的算法设计
专家控制的实质是基于受控对象和控制规律的各种知识,以智能的方式利用这些知识来设计控制器。利用专家经验来设计PID参数便构成专家PID控制[5]。为使不同的被控步进电机在起始位置与设定位置不同情况下都能快速精确到达设定位置,就需要智能的调节控制器参数。将整个位置控制过程分为几个阶段,需要控制器参数能够适应不同阶段而进行自行调节,已达到最佳定位效果。本设计根据大量实验数据与前人经验相结合,设计了适应快速精确位置控制系统的改进专家PID控制器,并通过LabVIEW编程实现。
令[e(k)]表示设定的步进电机位置角度值[p0]与步进电机实时位置角度采样值[p(k)]之差,即当前位置角度差值;令[Δe(k)]表示当前位置角度差值与前次位置角度差值之差,反应位置角度差值的变化趋势。即有:
[e(k)=p0-p(k)] (1)
[Δe(k)=e(k)-e(k-1)] (2)
根据分析[e(k)]与[Δe(k)]将定位过程分成了4个阶段,因此根据这四种情况来设计专家PID的控制器:
(1)当[e(k)>M1]时,说明当前位置与设定位置相差很大,无论位置差变化趋势如何,都应考虑控制器的输出按最大(后最小),以迅速调整位置差,使位置差绝对值以最大速度减小。此时,只采用比例控制,且为提高响应速度比例系数应取大些,而积分系数与微分系数则为0,相当于实施开环控制。控制器输出可为:
[p(k)=p(k-1)+λp1∗Kp[e(k)-e(k-1)]] (3)
(2)当[M2 [p(k)=p(k-1)+Kp[e(k)-e(k-1)]+λi2*Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]] (4) (3)当[ε 若[e(k)∗Δe(k)>0],说明位置差在向绝对值增大的方向变化,为抑制超调,应加强微分控制,选较大的微分系数。输出控制器为: [p(k)=p(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+λd1*Kd[e(k)-2e(k-1)+e(k-2)]] (5) 若[e(k)∗Δe(k)0,]说明位置差的绝对值朝较小方向变化,或已经达到平衡位置,应减小微分系数。输出控制器为: [p(k)=p(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+λd2*Kd[e(k)-2e(k-1)+e(k-2)]] (6) (4)当[e(k)ε]时,当前位置已经很接近设定位置了。为较小稳态误差,此时采用PI控制,选择较大的积分系数并使微分系数为0。输出控制器为: [p(k)=p(k-1)+λp2*Kp[e(k)-e(k-1)]+λi1*Kie(k)] (7) 以上式中[λp1,][λi1,][λd1]为增益系数,大于1;而[λp2,][λi2,][λd2]为抑制系数,大于0小于1。[M1,][M2]及[ε]的值是根据位置控制系统实际情况而定的,本设计中它们的取值分别为18°,9°和3.6°。 某次位置控制过程中的改进专家PID控制器的参数变化如表1所示,其中设定的初始参数[Kp,][Ki,][Kd]分别为60,0.01,0.01。 表1 某位置控制过程中控制器参数设置 [\&[e(k)>18]\&[9 此次位置控制过程的起始位置为240.00°、设定位置为100.00°,过程采样图如图4所示。可见,在距设定位置较远时步进电机快速运行;而到接近设定位置时,由于比例调节减弱了,位置曲线变缓,在微分调节和积分调节的共同作用,有效抑制了超调现象的发生,而且稳态误差也非常的小,仅为0.10°,远小于最小步距角。 <\\192.168.0.25\$d\8月\8-2\补\补!现代电子技术201313\Image\29t4.tif> 图4 某次位置控制过程采样图 3 TCP协议在系统中的应用 系统远程通信部分是基于LabVIEW实现的。LabVIEW不仅在程序界面设计时采用了与其他高级语言类似的图形化方式[6],更重要的是,它针对不同的应用和不同的层次,提供了可以通过图形化编程实现的共享变量、DataSocket、TCP和UDP等多种网络通信方式。其中以TCP与UDP两种网络协议最基本、最流行。TCP是最常用的网络协议,它也是很多互联网协议(如HTTP 和FTP)的基础[7],在提供良好工作性能的基础上,具有编号系统、流量控制、差错控制、拥塞控制等机制[8]。可靠性(不丢失数据)是TCP最重要的特性,能保证数据能够最终到达设定的接收端,或者发送端能够接收到失败信息。在LabVIEW提供的所有通信标准中,TCP提供了最高的吞吐量和最好的可靠性,在传输大量数据的时候尤其能够体现其高效的特性。而另一种常见的网络协议是UDP和TCP不同,UDP可能会丢失数据。这意味着当发送数据时,不能保证数据能够准确到达目的地。如果网络过于拥挤或者接收方未成功响应,一些数据将会丢失[9]。 为保证远程位置控制系统在数据传输过程中的可靠性与高效性,选择TCP协议实现服务器端的控制中心和客户端的控制器之间的数据通信。本设计中主要应用到的几个VI函数的功能如表2所示。 表2 TCP编程VI函数功能列表 [VI函数名称\&功能\&TCP侦听\&在指定端口创建一个监听端,并等待客户端的连接\&打开TCP连接\&打开指定的TCP连接\&读取TCP数据\&从指定的TCP连接读取数据\&写入TCP数据\&向指定的TCP连接写入数据\&关闭TCP连接\&关闭指定的TCP连接\&] 所有TCP连接都由两对IP地址和TCP端口惟一识别,每个主机都有一个地址/端口对[10]。因此为系统的服务器端和客户端分别分配了独立的IP地址,分别为202.118.73.26与202.118.73.25。将服务器端PC的2055端口专门用于定位系统的数据通信。在控制中心PC和CompactRIO可以交换数据之前,服务器端先对2055端口进行监听,客户端向服务器端的2055端口发送请求,服务器端接收到请求后便建立连接,然后就可以进行通信了。 服务器端和客户端的TCP通信程序都分为发送和接收两部分。服务器端的发送部分采用双层While循环结构,内部循环监视设定位置的变化,当“输入设定位置”栏中的位置值发生变化且单击“发送键”时,内部循环将停止并把含有数据发至外部循环和“写入TCP数据”函数。然后清除“输入设定位置”栏,内部循环将重新监视设定位置的变化。服务器端的接收部分采用单While循环,“读取TCP数据”函数一直接收来自客户端的数据,可实时更新采样位置数据,并在实时位置采样图中显示。客户端的通信程序与服务器端的结构相似,这里不再详细介绍。服务器端和客户端的LabVIEW程序如图5所示。 系统运行时,服务器端的TCP侦听函数进行60 s的监听,等待有客户端发送通信请求,如果超过60 s没有请求,本次监听结束。若收到接听请求,与客户端建立连接,开始进行包含控制信息和电机实时位置信息的数据报双向传输。数据报为字符串格式的格式,包括电机号、位置信息、PID参数设定值和终止字符(“回车键”)。数据报的解析过程中,首先检测 “回车键”,以判断一条数据报是否接收完成;其次查询各台电机对应位置角度信息,将字符串格式的位置信息转化为十进制浮点型数据并记录;最后查询对应各台电机的PID控制器的初始参数,将字符串格式的参数转化为十进制浮点型数据并输入到控制器中。系统服务器端监控界面如图6所示。发出的控制信息“一号30Kp60Ki0.01Kd00.01二号60Kp60Ki0.01Kd00.01”,在客户端被解析为一号电机设定位置为30°,二号电机设定位置为60°,两电机控制器初始参数都为60,0.01,0.01。同时,在服务器端的实时位置采样图中可以同步显示出客户端被控电机的位置变化。 <\\192.168.0.25\$d\8月\8-2\补\补!现代电子技术201313\Image\29t5.tif> 图5 服务器端和客户端的通信程序 4 结 语 本设计对两台步进电机实现了无距离限制的远程位置控制,经过多次实验验证定位结果精确而且过程快速,成功解决了传统位置控制系统因过冲现象导致系统不稳定和效率低的问题。此系统的可扩展性很强,只需增加CompactRIO控制器中数字I/O模块与模拟量输入模块就可实现更多点电机的定位控制;而且只要服务器端可兼容多网卡,便可扩展到不同IP的客户端,实现分布式控制。 <\\192.168.0.25\$d\8月\8-2\补\补!现代电子技术201313\Image\29t6.tif> 图6 系统通信部分监控界面 参考文献 [1] 张莉松,胡祐德,徐立新.伺服系统原理与设计[M].北京:北京理工大学出版社,2006. [2] 孟英红,齐婉玉.用297,298组成的步进电机驱动电路[J].仪器仪表学报,2003,24(4):253⁃254. [3] 高文化,苏宏志.模糊自适应PID在数控进给伺服系统的应用[J].制造业自动化,2009,31(7): 35⁃36. [4] 史步海,张选正.特种电动机调速控制技术及应用[M].广州:华南理工大学出版社,2010. [5] 刘金琨.先进PID控制Matlab仿真[M].2版.北京:电子工业出版社,2004. [6] 阮奇桢.我和LabVIEW[M].北京:北京航空航天大学出版社,2009. [7] 张东,施奇峰,王云波.基于LabVIEW和TCP的数据采集系统的开发及应用[J].冶金自动化,2011,35(2):38⁃39. [8] 陈笑秋,徐小华.基于DataSocket技术的网络化测控系统[J].仪器仪表用户,2008,15(2):63⁃65. [9] 陈锡辉,张银鸿. LabVIEW 8.20程序设计从入门到精通[M].北京:清华大学出版社,2007. [10] 谢喆.基于FPGA的TCP/IP数据通信的设计与应用[D].武汉:武汉科技大学,2011.