基于DSP和CPLD的伺服运动控制器研究
扫描二维码
随时随地手机看文章
1 引 言
运动控制器是数控机床、机器人等一类机电一体化设备中常用的核心运动控制部件。现代数控技术对运动控制系统的开放性、实时性、加工速度和精确度等性能指标提出了越来越高的要求。随着集成电路技术、微电子技术、计算机技术不断发展,运动控制器已经从以单片机、微处理器和专用芯片作为核心的运动控制器发展到基于PC机平台的以数字信号处理器(DSP)和复杂可编程逻辑器件(CPLD)作为核心处理器的协处理架构的开放式运动控制器。这种将P C机的信息处理能力和开放式的特点与运动控制器很强的运动轨迹控制能力有机地结合在一起,具有信息处理能力强、开放程度高、运动轨迹控制准确和通用性好的特点。这种模式在一个统一的人机对话平台上,通过DSP算法和CPLD配置进行适当的调整来实现不同的硬件功能模块,可以方便地和多种类型的驱动器进行连接。因此现在基于PC的新一代运动控制器成为控制系统的主流和发展方向。
本文开发的开放式运动控制器以PC机为平台,完成坐标变换、轨迹规划、粗插补运算等控制指令的设置和发送,同时可以实时显示当前伺服系统的运动位置、速度和电机状态等参数。运动控制器以DSP芯片作为核心处理器,完成数据处理和控制算法、进行保护中断的处理,通过PCI或USB总线与PC机实时通讯。CPLD芯片作为协处理器完成编码信号的采集,鉴相处理,对脉冲和模拟量进行配置和输出,把DSP处理过的控制数据经过内部转换送到外部设备,并管理DSP和各种外部设备的接口。该运动控制器可以完成非匀速比同步运动控制,支持NURBS插补,并提供了丰富的动态链接库函数。
2 运动控制器工作原理和硬件构成
该控制器可实现四路编码器反馈和电机控制,其核心是TI公司的TMS320LF2407数字信号处理芯片和ALTERA 公司的MAX 7000S系列CPLD器件EPM7128SLC84。控制器的硬件结构如图1所示。DSP完成与上位机的实时通讯,对伺服电机速度和位置的精确控制,电机状态监测和外部信号检测等功能。双口SRAM(DUAL-PORT STATIC RAM)不仅提供控制器与上位机的通讯接口,而且还为运动轨迹控制提供了足够的缓冲区。由于一片DSP只提供两组正交编码脉冲(QEP)电路,对于多于两个电机的控制器,若用多片DSP不仅会造成DSP资源的浪费,而且还会增加由于协调DSP之间的工作而产生的难度,因此这里我们用CPLD来提供另外两组正交编码脉冲电路,对速度、位置进行采样,同时用CPLD提供高速稳定的其它逻辑控制电路。
图1 运动控制器的硬件结构
运动控制器由基板和接口卡组成,集成了DSP核心电路,通信电路,CPLD译码、中断、正交编码处理电路,编码器信号处理电路,电压转换电路,光电隔离电路等。运行过程中,PC机把粗插补的数据通过ISP-1581芯片传递给DSP进行时间分割精插补。在每一个伺服周期中,CPLD器件和DSP各处理两路反馈的正交编码信号进而获取实时位置和速度,DSP计算出理论插补位置与实际位置的偏差,基于速度和加速度前馈进行PID调节,计算获得速度控制量,产生的输出信号经DAC7625进行数模转换及放大电路放大后将模拟电压发送至伺服驱动器以控制电机。
DSP两个事件管理模块中的正交编码脉冲(QEP)电路可以实现对两对正交编码信号的四倍频和方向检测,其定时器工作在增减计数模式,依据电机运行情况进行计数。根据不同伺服周期定时器内数值的变化,可以计算获得电机的实际位置,由M/T测速法可求得其运行速度。另外两个电机的反馈信号由EPM7128进行处理,DSP与之通讯以获取电机运行信息。扩展4个32位寄存器用来存储电机当前位置,通过实时从计数器读取每个伺服周期走过的脉冲数与之累加实现。每隔一定的伺服周期,将4个16位的计数器赋初值32000使之重新计数。
2.1 CPLD处理电路
CPLD主要包括正交编码检测逻辑电路,DSP地址译码电路和计数器及中断逻辑四个部分,它对两个正交编码输入四倍频后进行计数,反馈给DSP。正交编码脉冲电路的方向检测逻辑决定了输入序列中的哪一个是先导序列,接着就产生方向信号作为计数器的计数方向输入。如果QEP1是先导序列,则所选的定时器增计数;如果QEP2是先导序列,则所选的计数器减计数。正交编码脉冲电路对输入的两列脉冲的两个边沿都进行计数,因此,由它所产生的时钟频率是每个输入脉冲序列频率的四倍。中断逻辑,限位和报警等信号产生时向DSP申请中断。每个轴的正负限位信号、归零信号和报警信号,四个轴共计16个信号,这些信号相或,只要有一个信号产生时就产生一个上升沿信号,此上升沿触发DSP中断,DSP以查询方式判断是哪个信号产生的中断。
2.2 控制卡通讯及接口
早期PC机通过ISA总线实现对电机的控制,但响应速度慢,实时性差,后来的PCI局部总线,解决了ISA的传输速度慢等问题。近几年通用串行总线USB(Universal Serial Bus)以其较快的传输速率和支持热插拔等诸多优点而受到用户的广泛受青睐。得到了许多硬件和软件厂商的支持。USB 2.0接口的最高传输速率由12Mb/s提高到了480Mb/s,能够更好地支持数据实时传输。把USB引入运动控制器,实现了运动控制器的热插拔,解决了计算机接口资源有限等问题,满足了多轴运动控制卡对数据实时通讯的需要。为提高运动控制器硬件上的开放性,开发了通用的接口卡,辅助完成基板与外部的通讯。除了进行反馈信号等的必要传输外,还提供了电机的限位、回零、报警、伺服使能等信号和通用I/O各8路。为防止外界信号干扰,保证控制器的可靠性和安全性,输入输出信号都经由TLP521进行光电隔离。
3 速度、加速度前馈PID控制算法
本控制器采用典型的三环调节,其中速度调节器和电流调节器的功能由伺服电机驱动器完成,电流环用来提高系统的动态响应指标,增强系统抗干扰能力;速度环用于调节伺服电机的转速。位置闭环调节原理框图如图2所示,它包括位置PID调节和速度、加速度前馈,由运动控制器底层程序完成,用于实现精确定位、回零等,输出饱和控制可保证输出电压不会超过设定范围。
图2 伺服电机位置环系统结构图
位置环的计算公式为:
其中En为第n个采样时刻的位置误差;Ptarget为第n个采样时刻的累积误差值;Vt为当前目标速度;Kvff为速度前馈增益;At为当前目标加速度;Kvff为加速度前馈增益;Kp、Ki、Kd分别为比例、微分和积分增益。
4 Matlab仿真及结果分析
基于KLD-200二维数控平台进行仿真。平台由两个Panasonic公司的MSMA012A 1E伺服电机及配套的MSDA013A1A驱动器进行控制。电机最高转速为3000RPM,功率1 00W,增量式编码器,2500P/r,丝杠导程为4mm/r。取Kp=100、Ki=12、Kd=2进行仿真。Y轴电机速度曲线与余弦曲线类似,跟随误差曲线如图3所示。无前馈情况下电机跟随误差从开始的63个脉冲在0.137秒后上升到114个脉冲,随后作类似余弦曲线的变化。引入前馈后,跟随误差从开始的63个脉冲迅速上升到109个脉冲,然后逐渐下降,在大约0.2秒后稳定在±2个脉冲之间。可见,速度和加速度前馈大大减小了系统的跟随误差。利用自己开发的运动控制器对数控平台反复进行控制实验,效果良好。梯形曲线控制实验中,设定加速度为10rev/s2,目标速度300RPM,位移120mm。到达目标速度后,驱动器显示的电机速度波动范围在±2RPM之间。利用VC的OnTimer()函数实时获取位置信息并进行显示,可以看出,到位后的最大超调量约为5~10个脉冲,稳态误差在±2个脉冲之内,小于1mm。
图3 跟随误差比较
5 结束语
本运动控制采用基于DSP和CPLD的硬件方案充分发挥了DSP芯片实时高效的处理能力,系统设计合理,可以实现变传动比的电子齿轮和多轴插补功能。控制器采用了基于速度和加速度前馈的PID调节和NURBS插补等先进理论,实验和仿真结果表明,该运动控制器实时性好,控制精确度高,跟随误差小,理论跟随误差小于2个脉冲,位置控制误差小于1mm,可以满足高速高精度加工的要求。