基于ARM+DSP的三轴工业机器人运动控制器设计
2019-07-17王成琼麦麦提明阿不都克力木尹福成刘武周
王成琼,麦麦提明·阿不都克力木,尹福成,刘武周
(1.内江职业技术学院自动化技术系,四川内江 641100;2.喀什大学数学与统计学院,新疆喀什 844006; 3.内江师范学院数学与信息科学学院,四川内江 641100;4.内江职业技术学院教育研究所,四川内江 641100)
0 引言
我国正处于工业制造向工业创新转化的重要阶段,工业机器人越来越多被应用。工业机器人中涉及到多种技术包括运动控制、信号读取部分、传动部分等部分[1],其中最核心部分是运动控制部分。在工业控制机器人中设备常用控制方式有2种。一种是集中式控制即完成核心处理器的设计,运动控制部分采用成熟驱动器,另一种是分布式控制,CPU完成主要分配任务而DSP完成精确定位信号处理部分。由于便于管理后者越来越成为工业工厂的发展趋势[2]。
为了研制一款成本低、性能和可靠性满足一般三轴运动工业机器人的控制系统,闭环控制输出3路电机脉冲和模拟量输出信号完成伺服驱动器的控制,输入部分也有3路正交增量式编码器信号输入和开关量输入。最后对关键电路和定位精度完成验证。
1 定位嵌入式整体功能介绍
图1 运动控制整体结构
三轴工业机器人的运动控制整体结构如图1所示,电机控制部分的电机和驱动器采用MR-JE-70A数字式交流类型,主要控制步骤开始为专用软件写入配置参数,然后采用脉冲和模拟量信号控制电机工作在位置、扭矩和速度模式[3]。被控驱动器采用ARM为核心处理芯片与DSP协同配合处理运动控制信号。
控制器主要具备功能包括人机交互、脉冲输出和输入、模拟量输出、驱动器控制接口控制模式I/O配置等,除此之外还具有一般嵌入式电路的下载功能、内存扩展功能等。多CPU之间采用SPI总线进行50 Mbit/s传输速度通信[4],DSP主要负责每个关节伺服控制定位和控制输出脉冲计算。ARM板控制核心采用S5N8946,DSP采用TMS320。
2 运动控制硬件设计
此运动控制器电路还包括电源设计、最小系统、高速光耦、高速脉冲等多个电路[5],根据三轴工业机器人的运动控制特点对主要部分电路进行设计说明。
2.1 24 V-5 V电源转换电路
24 V-5 V电源转换电路核心芯片主要分2类:一类是线性稳压芯片,这类芯片通常有高稳定度和小波纹的特点,由于内部采用的是多组变压器相互作用输出电压,当电压幅度要求比较高时需要散热更好的多组变压器,其利用效率会不足30%,典型代表有LM78系列芯片。另一类开关关稳压芯片的转换效率比较高,由于采用的外置变压器和电容,内部只有逻辑电路造成纹波电压很大,需要进行良好的滤波处理,典型芯片有LM2575和LM2576[6]。本电源系统中采用转换效率更高的开关稳压管LM2575-5.0作为第一级转换芯片[7],供电源经LM2575-5.0开关稳压管后输出5 V的稳定直流电压,给系统各板载IC供电,24 V-5 V电源转换电路如图2所示。
图2 24 V-5 V电源转换电路
如图2所示,输入端C25、C26电容并联,增大容值,减小容抗,滤波效果更好。输出端采用电感L1和π型滤波结合设计[8],在电路中,电感L1可以滤除信号中的交流电压成分,因此在直流电源中可以起到平滑电压的作用。电感对直流阻抗小,交流阻抗大,可以起到抑制干扰信号的作用,在输出端就获得比较纯净的直流电流。同时利用二极管D1的单向导电性可以起到保护后级电路作用。
2.2 关节电机控制接口电路
在输出接口电路中S5N8946与输出负载间也要进行隔离,输入电路与输出接口电路一样,将通道定义为4个一组并进行模块化设计,隔离器件采用TLP521-4光电隔离器。与输入接口通道不同的是MCU输出电流小不足以直接驱动负载,设计中需将MCU输出电流放大,输出电路采用8路达林顿管ULN2803,输出接口电路如图3所示。
图3 输出接口电路
S5N8946上电时引脚呈高电平状态,故设计输出电路原理时光电耦合器的前级上拉电阻R23与电源连接,MCU 发出的信号通过Y.xOUT与前级构成回路,MCU输出低电平时有效使得光电耦合器内部二极管导通,D5作为耦合器前级导通的指示[9]。由于光耦器件本身输出电流能力就非常弱,因此不可能带动后续的高电流负载,必须选择一个具有电流和功率放大作用的器件。
ULN2803集成8路达林顿管,内置非门逻辑单元,相当于反向放大器,输入端接收逻辑电平信号,在高电平下对应输出端导通,为防止上电导通引起输出端控制执行器件的误动作[10],在器件输出引脚外侧上拉一个发光二极管表示电路的工作状态。其内部已经集成消除感性负载断电时产生的反向电压功能,外部采用环路形式连接负载器件,只要保证负载内电流和器件内电流形成一个环路即可,此电路的公共端接入负载负端,在ULN2803COM和GND之间放置去耦电容来提高输出模块的抗干扰能力。
2.3 位置控制模式脉冲输出
当直流伺服电机工作在位置控制或速度控制模式时,都可以通过脉冲来实现控制效果,主要的控制线号有2个,一是DSP计算出目标位置脉序列信号pulse和电机转动的方向信号dir,接口信号为TTL电平[11],采用常用高速光耦芯片6N137进行信号转换,可以起到保护MCU端口的作用,信号输出脉冲可以达到1 MHz,具体高速光耦电路如图4所示。
图4 高速光耦电路
6N137的VE引脚作为使能作用,一般采用高电平控制。为了保证芯片有一个稳定电压,采用C30电容进行去耦[12]。后侧电路也采用限流电阻加发光二极管的设计方法来保护电路,且为提高电路驱动能力需要上拉电压。
2.4 速度控制模式模式脉冲输出
当伺服电机处于速度控制模式的时候,需要输入-10~+10 V模拟电压来控制电机转速,数字芯片即MCU无法稳定输出可靠的电压值,需要设计DAC转换电路。需要3路以上的模拟信号,所以选择有4路模拟电压输出信号的D/A芯片DAC7724,需要12路并行数字信号进行控制,其中6位信号是地址等信号,6位为模拟输出信号,输出电压可以达到0.05 mV精度。
如图5所示VOUT可以分别输出4路模拟电路,而且数模转换芯片的正模拟和负模拟电源电压分别为±15 V,能够保证电机工作在满转速状态。为了保证3路信号的驱动能力,利用运算放大器设计一种低噪声高输入阻抗的模拟隔离电路,选择的TL074具有4路输出能力,且电源参考电压采用专用精密电压参考源芯片,并且利用反向比例放大电路可以保证系统电压输出精度在2.5 mV。
图5 速度控制模拟量电路
3 运动控制软件设计
在运动控制系统中起到决定性作用的电路有2个方面,就是通讯速率和经过DSP计算后电机的精确定位程序,下面分别对这2个方面进行设计。
3.1 SPI通讯程序设计
SPI协议要求主从设备进行数据交换的过程中严格遵从同一个时钟频率,因此在使用时需要对串行时钟进行设置。串行时钟用高低电平分别表示同步时钟的工作状态,时钟相位配置可以选择数据信号在上升或下降沿进行传输,当设定好CPHA状态后数据信号碰到第一个设定好的时钟脉冲沿时就可以传送数据。SPI串行通讯有4种工作方式,结果如下所示。
(1)SPI0:CPOL=0,CPHA=0;
(2)SPI1:CPOL=0,CPHA=1;
(3)SPI2:CPOL=1,CPHA=0;
(4)SPI3:CPOL=1,CPHA=1。
工作过程如图6所示,其余4个过程基本类似,因此选择比较有代表性的信号传输过程进行分析。
图6 SPI工作方式图
当时钟信号即SCK开始出现上升趋势时就开始数据接收,SDI中的信号即0或1信号被放入到主控芯片寄存器中并保存下来。如此实现8位数据即0xXX的传送,然后从高电平到低电平依次把数据罗列好即完成一段数据的发送,数据可以被主控处理器调用处理。发送过程大致类似不再赘述。
3.2 电机定位信号处理程序
伺服系统有3个控制回路,构成三环结构[13],分别为:电流环、速度环和位置环,其中电流环是提高控制精度和响应速度、改善控制性能的关键,速度环控制有助于系统得到良好的静态和动态特性,位置环作用是产生速度指令并使电机准确定位和跟踪,作为外环依赖于电流环和速度环的控制结果。除此之外还有伺服电机和其他一些功能单元也不可或缺,拿其中定位更精确的定位环为例进行设计。由于闭环系统中位置环的闭环效果远远好于速度,因此把速度认定为位置的惯性部分并降低为一阶。将速度环忽略高次项后可降阶为一阶惯性环节,位置定位控制结构如图7所示。
图7 位置定位控制结构图
4 运动控制系统的实验分析
验证工业机器人运动控制系统分2个部分,第一部分通过设定不同采样点观察系统输出的脉冲和模拟电压值,第二部分通过现场测量速度和理论数据之间的误差观察运动控制器整体控制效果。
4.1 D/A电路的功能模块实验
通过实验仪器测量设备为RIGOL数字示波器,最小分辨率可以达到1 mV/div,最大采样频率可以达到500 MHz。实验主要目的是通过电路性能测试观察设计电路和运动控制系统的精度是否可以满足系统要求[14]。DAC初始数据如表1所示。
表1 DAC初始部分数据
如图8所示,数据是通过采样间隔为100个数字脉冲通过40次测量得出的数据,通过最小二乘法拟合出曲线,数据中可以看出实际数据和拟合后数据的绝对误差最大值可以达到24 mV,因此D/A电路线性误差就是24 mV,为了得到更高精度系统,采用数据补偿程序对系统进行改进。
图8 D/A输出电压曲线图
4.2 定位精度实验
定位精度主要是为了测试脉冲输出模式时的数据波动,主要因素就是脉冲个数和频率,通过系统设定输出10 000个脉冲时,采用10 kHz进行脉冲输出,通过定位过程中信号的跟随误差,发现当脉冲未发送完毕时始终会有跟随误差,从低到高的整个过程中跟随误差为450个脉冲,定位时间为1 s,而且根据所显示的数据可知,最终位置误差约为4个脉冲。
如图9所示经过试验发现,在相同参数下输出脉冲频率越大误差会增加,最终系统的定位误差为4/10 000左右。
图9 输出600 Hz频率脉冲偏差
5 结束语
本文通过嵌入式ARM+DSP架构完成三轴工业机器人运动控制系统的设计,首先设计高速SPI通讯、高速I/O输入输出和多路D/A等硬件电路,并通过高速通讯程序和高效的定位反馈程序完成系统软件设计,最后测试电路D/A输出信号和电机的定位精度。实验证明系统可以驱动多轴工业机器人且满足工业生产的定位精度要求。