两台电动缸同步算法
说明
某项目设计两台电动缸同步,八台电动缸,原理都是一致的,不同项目要求的同步率不一样,有些项目要求起终点位置一致,有些项目要求整个运动过程中位置要一致,针对此类问题有如下设备可以选择,伺服电机配套伺服驱动器,加上减速机安装在电缸上面组成电动缸,现在一般比较重要的场合会使用电动缸,因为液压的可能会因为温度等因素出现问题。
控制电动缸运动,实际上控制好伺服电机就可以,市面上的伺服电机现在基本都很成熟,因此主要问题就在于驱动器和控制器上面。驱动器一般会配备多种通讯接口和控制的主机进行通讯,最常见的有CAN通讯、485串口通讯等。
驱动器配套其他控制设备使用,控制主机可以按项目进行选择,一般有以下几种
(1)控制器选择常见的可编程逻辑控制器(PLC),需要接各种传感器信号以及IO信号等和多个设备互相进行数据的收发时,可以使用PLC作为控制器。
(2)运动控制卡,专门为驱动器设计,方便易操作,控制精度高,很多人推荐使用,说是很方便,我暂时还没接触过。
专门定制的嵌入式设备,和驱动器一体的,这个成本高,相比于其他两种研发周期长,而且稳定性不如前面两个。
我在本次项目中使用PLC进行控制,因为我们本身就是销售PLC的,另外设备有IO信号要处理,并且还有上位机的各种数据要处理。驱动器使用CAN通讯总线控制。本次使用的驱动器并不是完全严格按照标准CANopen开发,驱动器厂家在某些底层参数上面进行了自己的更改,并且产品迭代后的更新并未在说明书上面说明,这导致我后期调试时有些问题一直找不到原因,大家在做项目时要注意,要和厂家沟通好,虽然有些人本身就懒得搭理你,因为他们也可能是套壳产品。
电动缸同步
相比而言PLC自带的CAN 通讯需要每个控制字去选择,整个流程还是比较麻烦的,并且PLC还受程序容量的影响,程序多了就会影响扫描周期,这就会导致数据更新速率不够快,这样的结果会导致无法实时判断位置。但是我作为PLC厂家必须使用PLC。
电动缸的同步一般需要两种考虑思路,
(1)两个电动缸受力大小一致,
①行驶过程中有两个电动缸受力波动不一致的现象
解决此问题有三种办法,
a、一种是选用功率更大的伺服电机,就相当于较大的功率带动小负载,所以这种情况下,负载重量的小波动对控制没什么影响,但是更大功率的意味着要选用更大体积的伺服电机伺服驱动器,
b、所以还有一种如下的方法,就是采用主从的办法,这种方法是一台伺服电机做主设备,另一台伺服电机做从站设备,从站设备完全跟随主站设备进行运行,这种的办法需要在硬件上进行线路改装,另外只需要控制一台电机,但是也有弊端,从站设备只能跟随主站设备进行运动。
c、还有一种就是位置环做外环,速度环做内环,主要原理是使用位置环来控制两台电动缸,因为位置环的原则是,我不考虑中间过程我只需要控制终点和起点的位置,因此当受力不均匀时可能会出现,负载较大的一个电机速度就会降低,导致两电动缸的位移不一致,这种情况下可以对实时读取的位置做判断,当位置有偏差时需要做速度补偿,但是补偿的对象需要慎重选择,因为可能受到阻力的电动缸加上阻力受力在电动缸承受范围内,这样的话给此电动缸施加较高的速度去做追平运动是没问题的(需要考虑多久追平,做对应的速度补偿),但是如果受力超出了这个承受范围,你再去施加更高的速度,就会导致过载损坏电机,这种情况下最好的就是,降低另一个电动缸的速度来尽量保持平衡;如果负载较重,一般可以使用减速比更高的减速机,这样可以很好的提高扭矩,但是也要注意减速比更高意味着整体的运动速度也会降低,所以相应的场合在不同的条件下应选用合适的减速机。但是我本次使用的驱动器没有以标准的CANOPEN功能开发,因此不支持位置环时速度平滑补偿,如果速度改变就会先停止再以补偿速度运行,这样会导致设备抖动更严重,严重损坏设备。因此我采用了使用速度环控制电机,但是这种情况下会出现另一种问题,设备走速度环时需要人为去控制减速度起终点,但是不同速度减速的距离又不一致,如果给定一样的减速位置,这就会导致速度高的时候超过终点,速度低的时候又到不了终点,这个是很糟糕的,我的想法是使用速度补偿的原则,检测几个位置计算出线性关系,以反比形式得出手动拟合的关系式,比如△X=kx+b,得出一个反比函数,当两电缸出现位置偏差时进行速度补偿,以减小误差,另外为了让补偿过程实现平滑的补偿,让设备不抖动,速度补偿应当是线性的补偿,而不是阶梯型补偿,这就意味着需要找一个合适的一种方法来进行补偿。规范的伺服电机位置环也有速度实时切换的功能,但是无奈我选用的驱动器恰好没有,因此我30ms读取一次电动缸的位置,通过两个电动缸的位置差值,决定是否对某个电动缸进行速度的补偿,补偿的算法是检测多个值,在上述线性公式中得出比较合理的系数,但是补偿中要注意如下问题,补偿要注意速度上限(这部分程序中可以分段写,当速度较大时,可以使用减速补偿,速度小时,加速补偿),以及电缸的偏差,如果偏差过大,就不适用于快速补偿,不能指望快速补偿在0.5秒就能弥补偏差的要求。偏差过大时,这种发如果系数过大,进行速度补偿试时,可能会产生一台电动缸加速,一台电动缸停止,反而会对设备产生二次损坏。