张浩,唐敦兵,郑庆康
(南京航空航天大学 机电学院,江苏 南京 210016)
伺服电机常见的控制方式多为单片机控制、DSP控制、ARM控制以及PLC控制等。这些控制方式的实现较为复杂,需从底层开发做起,配线复杂,开发周期长。而通讯运动控制的方式可以避免传统脉冲控制方式带来的系统兼容性和稳定性问题。设计的多自由度煤样抓取系统作为机电一体化设备,其控制核心在于多轴联动插补运动。本文设计了基于运动控制卡的开放式多轴联动控制系统,其核心技术在于开放式模块体系结构平台与多轴运动伺服控制系统[1]。控制系统的整体架构以PC机为支撑单元,以运动控制卡为控制单元,以伺服电机为执行单元。采用DMCNET通讯控制的方式,实现多轴高速联动,以满足多工位、多任务、多目标的机械手动态调度需求。基于Microsoft Visual Studio开发平台,层次化构建各系统功能模块,开发了软件系统。
硬件控制系统主要包含PC机、运动控制卡、伺服系统以及各类反馈传感器。控制系统硬件架构如图1所示,该架构易于保证系统进行模块化和开放式设计,增强系统的扩展性。
图1 控制系统结构图
PC机是系统的上位机管理层,负责搭建系统数据库,系统的控制指令以及数据信息均需经过数据库进行存储与处理。用于内嵌PID控制算法实时处理运动数据信息,通过建立PC机与运动控制卡间的通讯,精确调整电机转速,完成机械手终端的路径规划。此外PC机还用于机交互界面的管理以及多轴联动系统的监控。
运动控制卡通过PCI插槽内嵌在PC机中,系统采用PCI总线型运动控制卡-PCI-DMC-B01。PCI总线传输效率高,支持即插即用,数据吞吐量大。运动控制卡实现运动模式切换、参数调节、路径监测等细节操作。多伺服电机的协同控制基于运动控制卡的微处理器(DSP),其共享多伺服电机的参数数据。程序设计过程中通过调用运动控制卡的动态函数库,整合处理关联参数,生成高速脉冲指令,实现多电机同步驱动。设计运动控制卡通过DMC-NET总线高速连接伺服系统以及远程扩展模块,该架构大大提升了系统的整合能力。
伺服电机控制方式采用的是位置(PR)控制,脉冲输出模式采用CW/CCW方式。伺服驱动器通过读取数据缓冲区的通讯指令,实现对工作电机运转参数的实时调节。伺服驱动器通过采集电机编码器以及光栅尺的位置反馈信号,校正电机的运动控制参数,构成全闭环控制系统,实现多轴联动的精准定位[2]。此外控制系统还包括限位、故障、报警以及原点信号等电路。
针对终端机械手的具体功能,控制系统需满足以下4点要求:
1) 控制系统能够实现四轴联动,完成三维空间任意轨迹的插补运动,重点介绍x、y、z轴的协调控制。
2) 控制系统能够实现任意工况下的回原点操作。
3) 控制系统能够快速响应多工位、多任务、多目标的动态请求,以最优路径完成动态调度。
4) 控制系统能够实现现场监控与手动调控功能。
PCI-DMC-B01运动控制卡封装动态函数库,支持Windows环境下的实时系统开发。依托VS平台,设计软件系统,主要实现系统数据处理、界面显示、手动调试等功能的模块化集成。软件系统开发总体思路采用模块化设计,各模块对应既定的功能集成[3]。
系统功能模块可分为硬件初始化、参数设定、操作模式切换、动态调度算法实现、执行运动控制、状态监控等。程序设计流程如图2所示。
图2 系统程序设计流程图
1) 控制系统硬件初始化
系统程序设计的第一步是实现对运动控制卡及通讯总线等硬件设备的初始化,主要函数见表1。
表1 初始化函数
通过调用动态函数库中的相关函数,指定运动控制卡适配卡号,可实现运动控制卡的初始化操作,将所有寄存器恢复为默认状态。
2) 运动控制
采用DMCNET通讯控制的方式,上位机管理系统下达控制指令,运动控制卡通过DMC-NET通讯方式操作伺服驱动器寄存器,实现电机运动控制。系统中多轴插补轨迹的实现是基于单轴运动控制,单轴可完成点位运动和连续轨迹运动。电机可实现S-Curve曲线与T-Curve曲线方式加减速,运动过程中可实现速度、位置以及转矩调节。最终实现系统三轴线性插补运动控制、二轴圆弧插补运动控制以及三轴螺旋插补运动控制等操作,完成终端机械手三维空间任意轨迹的连续运动。
3) 全闭环控制方法实现
针对终端机械手定位精准、运动平稳的控制要求,结合经典PID算法,本文PID算法结合速度与加速度前馈增益以及前馈低通滤波器的特点,提出双环PID调节控制的方法,并采用扰动观察器来抑制低频扰动,调节比例、积分、微分3个环节来实现对系统的控制。控制算法框图如图3所示。
图3 PCI-DMC-B01控制算法框图
本文PID算法允许用户通过操作寄存器参数来实现增益切换功能,决定积分环节是否发挥作用,避免积分饱和现象。由于终端机械手的运动轨迹前期已离线规划完成,因此在连续运动状态下,可获得前馈信号的各阶导数与超前量,从而实现对控制系统的极点进行前期改造。通过设置速度和加速度前馈增益,可提升系统动态响应速度,减小跟随误差[4]。此外前馈环节的增加还可以实现对系统的相差和增益进行补偿,实现控制系统的完全追踪。
为消除多轴联动过程中的高低频震荡现象,系统增加了闭环控制器。核心点在于该控制器的鲁棒性以及针对不确定扰动的抑制能力。通过采集系统的输出对象,经逆变换后作为系统的理论输入,与实际输入变量做比较,得到系统的扰动量,然后将扰动补偿给输出对象,即可抵消扰动的影响。通过逐步增大比例增益Kp,直至电机出现微震迹象。再降低Kp,增大Kd,降低系统超调量,实现系统参数整定操作。在电机运行过程中,可通过设置驱动器相对应的参数,选择电机加减速方式,该控制系统实现电机参照T-Curve和S-Curve速度剖面下的相对于绝对坐标进行加减速操作,具体实现us层级的速度快速响应变化。
4) Windows用户软件设计
基于VS开发平台,进行多轴联动系统控制界面设计,可实现启动多线程操作,运动指令手动设置,驱动器状态监测等功能。界面设计与模块化功能程序相匹配,可以有效调控硬件系统组件。本文对主要界面进行简要介绍。
图5为单轴操作接口界面,窗口区分为6大功能区块。① 区块实现运动控制卡的检索与初始化,伺服扩展单元的查找、选择、站号设置等功能。② 区块通过调用相对应的动态函数库函数,实现伺服电机操作模式的切换。函数的具体定义如表2所示。③ 区块用于设置运动指令,包含初始速度、最大速度、运动行程、加速时间等参数,实现伺服电机不同运动状态的调节。④ 区块通过获取命令数值、反馈值、速度值、运动状态等参数,实现对伺服电机运动的监测。此外,可通过Reset按钮执行重置命令。⑤ 区块实现伺服电机运动速度与位置置换操作。⑥ 区块主要用于执行运动指令为正转、反转与停止等操作。
图5 单轴运动控制界面
表2 运动模式函数
图6为多轴联动操作界面,窗口区分为7大功能区块。多轴联动功能的实现基于单轴运动的精确控制,后者的功能界面也是前者的高度集成。两者的界面形式存在诸多相同点,诸如运动控制卡的初始化、运动参数的设置与监测以及运动指令的执行等操作。差异性体现在以下几点:
1) 增添了二轴、三轴线性插补,三轴螺旋插补、二轴圆弧、螺旋插补等运动模式。
2) 增添了圆弧中心坐标、螺旋高度、z轴深度等参数设置。
3) 实现了多轴协调控制,完成了多轴联动操作。
通过点击⑤区块的命令执行按钮,即可实现多轴联动操作。
图6 多轴联动控制界面
结合现有三坐标实验平台,进行多轴联动控制系统的现场联调。PC机通过运动控制卡发出运动指令,伺服电机带动线性模组移动。通过光栅尺反馈位置以及伺服电机编码器反馈信息获取定位信息。通过多次实验,设定不同的目标位置、运行速度、加速度等参数。经过数据处理,得到结果为各轴高速动态响应:正反向误差:0.5 m;重复定位精度:58 μm;综合定位精度:15.6 μm;三轴联动响应时间10 μs内。
该测试结果与传统的控制器加配线的方式相比,定位精度都有所提高,实现了多轴的高速联动,满足了多工位的复杂动态调度请求。
以PC机为平台,基于运动控制卡的通讯控制技术,结合Windows开发环境,在VS平台上开发上位机管理软件,实现了多伺服电机的协调控制,使终端机械手能够完成三维空间内任意轨迹的动态插补运动,满足了多工位、多任务、多请求的系统目标,使系统具备极强的可移植性与开放性[5]。
利用PCI-DMC-B01运动控制卡提供的动态函数库,采用C#编程语言编制多轴联动的实验平台界面。该界面实现了单轴速度、位置运动控制,二轴线性以及圆弧插补运动控制,三轴线性、螺旋插补运动控制。在该界面上,可方便设置、监测多伺服电机的运动参数,实现运动轨迹显示功能。最终结合四自由度煤样抓取实验平台,充分验证了该控制系统的可靠性与稳定性。
[1] 江小玲,舒志兵. 基于CAN总线多轴伺服电机的同步控制[J]. 机床与液压,2012,40(8):120-122.
[2] 刘洋. 永磁同步电机伺服系统实用技术的研究 [D]. 南京:南京航空航天大学,2010: 20-36.
[3] 张剑,殷苏民. 基于运动控制卡的开放式数控系统研制[J]. 机床与液压,2003(3):171-175.
[4] 鲁文其,胡旭东,史伟民,等. 基于扰动补偿算法的拉床主溜板双伺服同步驱动控制策略[J]. 机械工程学报,2013,49(21):30-37.
[5] 刘思捷. CANopen协议在伺服系统中的软件实现与植入研究[D]. 武汉:华中科技大学,2011.