关键词:全闭环 PCI总线 交流伺服 运动控制卡
GUAN Jian, SHU Zhibing
(Automation College, Nanjing University of Technology, Nanjing 210009, China)
关键, 舒志兵
(南京工业大学自动化学院运动控制研究所, 江苏南京210009)
Abstract:The open servo motion control system based on PCI BUS is modular, intelligent, flexible. With motion controller and PC as high level control unit, AC servo driver and servo motor as execute component, the optical grating ruler and data collection as position examination part, a motion control system of full-closed loop is designed. And by VC++ the system can control servo motor with high speed and high precision.
Keywords:Full-closed Loop PCI BUS AC Servo Motion Controller
0 引言
现代工业生产中,交流伺服控制系统已经被广泛使用。但随着机电一体化产品的发展,对交流伺服控制系统的定位精度和动态响应的要求越来越高,传统系统已经难以满足现代化生产的需要。以数字替代模拟、交流替代直流、闭环替代开环的设计思想,成为目前构建开放式控制系统的主要方法。
在多种开放式控制系统中,PC机(包括工业PC)具有生产批量大、性价比高、技术进步的特点,同时配有高性能应用软件和程序设计软件。因此利用PC机的标准PCI总线,设计出PC+运动控制卡的上位控制器,可满足控制系统核心部件的要求。
交流伺服控制系统大多工作在半闭环的控制方式,这种控制方式对于传动链上的间隙及误差不能克服或补偿。为了获得更高的控制精度,应在最终的运动部分安装高精度的检测元件(如:光栅尺、光电编码器等),即实现全闭环控制[1]。全闭环控制克服半闭环控制系统的缺陷,上位控制器可以直接采样装在最后一级机械运动部件上的位置反馈元件作为位置环,这样伺服系统就可以消除机械传动上存在的间隙(如齿轮间隙、丝杠间隙等),补偿机械传动件的制造误差(如丝杠螺距误差等),实现真正的全闭环位置控制功能,获得较高的定位精度。
1 控制系统的硬件设计
1.1系统硬件组成
该系统的是一种教学和实验使用的X-Y轴全闭环交流伺服运动控制系统。系统由四个部分组成(图1):(1)上位控制部分包括通用PC机、ADT850运动控制卡;(2)松下MINAS A4系列交流伺服驱动器和交流伺服电机组成驱动部分;(3)负载部分为X-Y轴滚珠丝杠平台;(4)闭环反馈部分由光栅尺和数据采集卡来实现。
图1 全闭环伺服系统结构图
Fig.1 the structure of the full-closed servo loop system
1.2 全闭环控制结构设计
控制系统采用双环结构,即内环和外环。内环是保证系统的稳定性和对外干扰及参数变化的鲁棒性。外环提高系统的控制精度,使闭环系统响应和参考模型接近。
(1)内环是通过交流伺服驱动器接收伺服电机的编码器反馈信号,实现对电机的控制。松下MINAS A4系列交流伺服驱动器包含了伺服控制器与PWM功率放大器。伺服控制器以位置环控制器、速度环控制器和电流环控制器组成。伺服控制器的功能在于完成伺服系统的闭环控制,如转矩控制、速度控制、和位置控制。伺服驱动器中IPM(智能功率模块)是以IGBT为功率器件的新型模块。(PWM变频调速技术)这种功率模块是将输出功率元件IGBT和驱动电路、多种保护电路集成在同一模块内,提高了系统性能和可靠性,降低了IPM通态损耗和开关损耗,同时减小了整个系统的尺寸。
(2)外环构成是由光栅尺采集负载平台位移信号量,通过数据采集卡反馈给上位控制系统。光栅尺采用直线增量式光栅尺。增量测量法的光栅采用周期性的光栅刻线,位置信息是通过计算自某点开始的增量数(测量步距)获得的[2]。如图2所示,光栅尺的输出信号为相位角相差90°的A、B两路方波信号,信号的空间位置周期为W,最高分辨率为η=W/4。W越小,意味着光栅尺的分辨率越高。当系统正向运动时,A信号的上升沿及下降沿均比B信号超前1/4W;反之当系统反向运动时,A信号的上升沿及下降沿均比B信号滞后1/4W。根据采集到的运动信号方向和A信号变化的周期数用计数器进行计数,就可以测算出位移,即位移量X=nW,n为计数值。
图2 光栅尺信号采集原理图
Fig.2 principle of the linear encoder signals collection
(3)运动控制卡负责系统的实时控制。ADT850运动控制卡是PCI总线的运动控制卡,用于控制步进电机和数字伺服电机, 进行直线、圆弧插补和样条函数等运动。ADT850运动控制卡作为步进电机的上位单元, 与计算机构成主从式控制结构。计算机主要完成人机交互界面的管理、控制系统的检测和控制工作,运动控制卡接收计算机CPU的发出的指令, 进行运动轨迹的规划。这包括脉冲的方向和方向信号的输出、自动升降速处理、原点和限位开关等信号的检测。系统具有软件搜索参考点和软件限位功能, 这样可以保证电机和滚珠丝杠等精密部件不在系统运行中损坏。同时ADT850支持DOS、Windows95/98/NT/2000/XP等操作系统, 提供底层库函数, 可用VC++、VB等进行软件开发[3]。
2 基于ADT850卡的软件开发
本系统同时采用基于PCI总线的运动控制卡和数据采集卡,两种卡都提供底层VC库函数,为在一个软件框架下进行开发提供了便捷的途径。开发中选择在Windows系统下,利用VC++ 的MFC以面向对象方式进行编程[4]。软件的开发过程主要包括三个部分,如系统结构图3所示:程序的初始化;二维轨迹设计;检测信号的误差比较。
图3 系统软件结构流程图
Fig.3 system software structure flow
(1)ADT850运动控制卡的初始化
ADT850运动控制卡本身提供静态库ADT850.LIB、头文件ADT850.H、WindowsNT/2000使用的文件winio.sys,动态库中的函数已在头文件ADT850.H中有声明。在程序头声明了#include “adt850.h”之后,调用库函数,确认adt850卡的安装,设置脉冲输出的模式,位置反馈的模式,限位开关的工作模式,伺服信号的使用与否,是否使用软件限位等,这些参数应根据具体的硬件平台来设置,一般只在程序初始化时设置一次,以后不应再设置。部分函数调用如下:
adt850_initial() //检测安装ADT850卡
int set_pulse_mode() //设置输出脉冲的工作方式
int get_status() //获取各轴的驱动状态
int get_inp_status() //获取插补的驱动状态
int set_range() //范围设定
int set_startv() //初始速度设定
int set_speed() //驱动速度设定
(2)KPCI-811多功能数据采集卡的初始化
采用KPCI-811多功能数据采集卡,在初始化中同运动控制卡一样,调用数据采集卡库函数进行卡的初始化设置。包括创建设备对象,设置采集频率,定时计数工作模式等。部分函数调用如下:
IO_HANDLEL_KP811_LocateAndOpen() //创建设备对象
void KP811_TimerWrite() //设置AD采集频率
void KP811_ModeWrite() //设置工作模式
void KP811_ChannelWrite() //设置A/D通道号
WORD KP811_CheckSF_ReadFIFO() //软件触发A/D并读取数据
void KP811_8254_CTRL_Write() //设置8254定时计数工作模式
(3)二维轨迹程序设计
利用VC++的MFC设计基于对话框的运动控制轨迹设计。以直线插补轨迹为例,实现从原点到指定位置的直线运动。部分程序如下:
void CMyDlg::OnOrigin()
{
…….
char ch1[10],ch2[10];
GetDlgItem(IDC_LOG_POS1)->GetWindowText(ch1,10);
GetDlgItem(IDC_LOG_POS2)->GetWindowText(ch2,10);
num1=atoi(ch1);
num2=atoi(ch2);
……
}
void CMyDlg::OnLine()
{
……
inp_move2(cardno,1, num1, num2);
……
}
3 实际运行中的关键问题分析和解决方法
(1)实际检测信号的误差
在控制端,定时器产生中断,程序会去读光栅尺检测的实际位置值信号,同时暂停电机运行程序,等待校正结果。然而在负载端,如果在伺服电机还没真正停稳的时候去读光栅尺检测的实际位置值,就会产生检测的误差。解决方法可以通过中断产生时给电机适当的延长一段时间,延时后再去检测光栅尺的实际位置,然后再去校正。显然这个延时的设置要考虑配合采样周期的设定和伺服驱动器,伺服电机的性能。因为这个延时会随着中断数的增加形成积累,延时过长会影响系统的性能;延时也不能短过伺服驱动器和伺服电机的性能要求。
(2)采样周期的确定
采样周期决定着系统定位精度和响应频率。采样周期越小,控制精度就越高,但会加大控制器的计算量,同时造成频繁的中断,减慢电机的运行速度和连续性,从而影响其响应频率。因此在实际选择采样周期时,必须从需要和可能两方面综合考虑。从控制系统的动态性能和抗干扰性能来考虑,要求采样周期短些。这样系统可以通过给定值的改变,快速定位,减小误差,提高抗干扰性能。从响应频率来考虑,采样周期则应该取的长些,这样可以减少DSP的计算量,减少电机运动的步数,从而提高电机运行的速度和频率,控制的连续性得到加强。从上述分析可以看到,各种因素对采样周期的要求是不同的,甚至是相互矛盾的,因此,必须根据具体的情况和要求综合做出选择。实现方法为:在定时器的比较中断中来改变采样周期,实现系统控制的最优化。
(3)光栅尺造成的读数误差
系统的精度就是依靠光栅尺保证,但光栅尺的安装和环境温度容易造成光栅尺的读数误差。首先要保证光栅尺的安装与运行的导轨平行。另一个方面就是减少环境温度对最后测量的影响,尽量在允许的环境条件下运行系统。
4 结论
本文通过在半闭环交流伺服控制系统的基础上,构建了全闭环控制系统。同时针对目前半闭环控制系统在市场已经被普遍使用的实际情况,以及用户希望加强控制系统的控制精度的目的,采用了基于PCI总线的数据采集卡和直线光栅尺。这种设计同基于PCI总线的运动控制卡和两轴滚珠丝杠平台相结合,简化了控制程序的开发设计和硬件安装。在保证系统的稳定性的同时,提高了系统的控制精度的。
参考文献
【1】樊亚妮,刘克荣.基于运动控制器的全闭环控制系统[J].现代电子技术,2006(23):140-142.
【2】张百海,柴森春,等.数据采集系统中光栅尺信号处理方法的研究[J].机床与液压,2003(02):118-119.
【3】舒志兵.交流伺服运动控制系统[M].北京:清华大学出版社,2006.
【4】孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006.
作者简介:
关键(1981-),男,江苏人,研究生,主要研究方向:交流伺服系统、运动控制技术、数控系统、机电一体化。
Email:helloguanjian@126.com
舒志兵(1965-),男,江苏南京人,南京工业大学运动控制研究所所长,中国人工智能学会智能检测与应用技术研究协会秘书长,主要研究方向:交流伺服系统、DSP技术、现场总线、数控系统、运动控制、机电一体化系统等
联系方式:
地址:南京市新模范马路5号南京工业大学自动化学院
邮编:210009 电话:025-83587369,83306120(Fax)
手机:13776653504