机器人控制在实际应用中用到了动力学控制吗
- 作者 · robocky
- 934次浏览
- 2018-01-04
- 来源 · 知乎
- 分享
- 字体-+
作者根据自己工作经验和技术积累,探讨机器人控制在实际中是否用到了动力学。
楼主提问:
国内厂商绝大部分 都是国外控制器,codesys一类(多),pmac(少),再加上 国外的伺服驱动器(安川 松下 力士乐~)。 这种方案,很多驱动器都不支持力矩控制模式,而且如果做纯动力学控制 需要大量运算,控制器控制周期能够很好的支持么? 动力学控制建模的不精确,摩擦力建模的不精确,摩擦系数随着使用时间的变化, 外部负载的变化。 各种不精确,导致很多机器人都是位置控制。请各位能谈一谈你们实际机器人用到了动力学控制吗? 实际!
robocky回答:
这样,讲点实际的吧。
我在国内做工业机器人四年,从原型机做起,最终做到产品占据一定国内市场。应该说动力学模型在机器人原型的时候就仿真计算过的,当然摩擦部分使用了一个经验系数并没有去深究,负载也只是做了刚体的理论负载。
在实际开发原型机和样机的过程中我们并没有把动力学部分加进去,因为当时还处于验证阶段,对精度和动态响应要求并不高,对振动抑制的要求也并不强烈,因此那时的机器人就是运动学计算位置并对位置进行控制,而位置环以下的控制都通过优化驱动器参数来让驱动器进行。
在经过两年多的时间里,这样做并没有太大问题,由于机器人一般的工作都是高速运行,低速操作和执行,因此并没有什么必要把动力学加进去,直到我们遇到了一个对路径要求比较严格的项目,单纯位置控制的机器人在理论路径和实际路径上是存在一定偏差的,尤其是在高速运动中,这个偏差包括运动中的位置偏差以及无法完全消除的位置抖动,在这个时候我们才一步步的去改善我们的系统。
之所以说是一步步的原因就是我们并不是一上来就把转矩量输出的,事实上我们早期做的机器人就是用的驱动器的转矩模式,然后在控制器内部做速度闭环和位置闭环,应该说效果很不好,原因就是控制带宽不能做到很高,因此无法实现好的闭环效果,因此单纯使用转矩模式是不能很好控制电机的,更加常见的做法是使用位置控制,并提供速度和转矩前馈,而电机的闭环控制仍然交给驱动器来做。控制模型如下图所示。
首先我们增加的就是速度值的前馈。这个付出的代价最小,而收益也最明显,通过雅可比矩阵计算轴端的实时速度并提供给驱动器前馈,这在很大程度上削弱了动态位置偏差,当然振动仍然不能完全消除,但事实上在增加了速度前馈之后我们那个项目上的需求已经基本解决了,而速度前馈实际上跟动力学并没有关系,仍然是运动学的范畴。下面两个图就是速度前馈增加前和增加后的设定位置和实际位置偏差对比图,虽然缺少坐标信息,但从图像形状上也能看出效果改善明显。
尽管解决了问题,我们仍然希望更好的改善机器人的运动特性,使其运动更加细腻,因此我们把机器人的静力学模型和动力学模型都导入了控制器,并将计算得到的理论输出转矩前馈输入到了驱动器。但是,实际测试的结果来看,虽然一定程度上改善了动态响应,并抑制振动50%以上,但距离我们的预期仍然有较大差距,原因应该和摩擦的计算不完全,高速运动中物体并非刚性,以及电机控制自身带来的影响有关,很遗憾我们并不是研究所或者大学,没有办法把这个更加深入下去,国内的企业有国内企业的无奈,因此动力学的引入我们只做到了这个程度。下图不知道能否看清,位置的动态偏差从最大将近20的指令单位降到了不到8个指令单位。
最后我们的产品还是带上了这个不完整的动力学算法,虽然改善不是很明显,这些都不妨碍我们的机器人在客户那里使用。实事求是的讲,动力学的计算对机器人的控制应该是有很大帮助的,但是在国内做的话,一般做到速度前馈已经算不错了,在转矩的控制上确实存在很多局限性,单纯工程上的应用并不一定能够取得比较好的效果,当然重力补偿除外,严格意义上来说这个也并不是动力学的范畴吧。
本文转载自知乎,作者:robocky,如若转载请联系原作者。
参与评论