• 问题引出


一开始,人们想要控制机器人运动时,一般根据目标轨迹与机器人的逆模型,反算出所需的力矩,再把这个力矩发送给电机,这样就大功告成啦(图1)。然而事实却不尽人意,机器人着了魔似得,竟然不听我们的话跑偏了。事后分析,发现了影响了我们对机器人的控制:外界的扰动。

图1 开环控制框图


讨厌的扰动来源与哪呢。它主要有两个:一个是环境施加的,比如人为对机器人施加力,风带来的力等等(环境扰动),这种扰动我们一般可通过改变环境,使其处于较小的状态;另一个来源是由于建模不精确和系统参数辨识不精确带来的(系统扰动)。要想机器人听话,我们就得想方设法帮助机器人消除系统扰动,逃离魔掌。环境扰动一般可通过改变对象所处的环境来减小,我们这里更关心如何消除系统干扰的影响。

  • 仿真研究


瓦特创造性地将系统的输出反馈到控制器中,经过后来人的完善,奠定了PID反馈控制在控制中举足轻重的地位(图2)。我们结合Simulink(图3)做个简单的仿真研究。

图2 PID闭环控制框图

图3 SImulink建模图

先在无扰动的情况下整定好一组PID参数值,然后测试了两种不同程度的扰动(小扰动(1*sin)-图4,大扰动(10*sin)-图5),可以看出,当扰动较小时,PID可以将其压制地很好,可当扰动过大时,PID就有心无力了......

图4 小扰动Amp=1

图5 大扰动Amp=10

  • 理论解释

我们只结合控制框图,来直观的解释仿真的结果。外界扰动经过反馈回路后,会产生一个附加扰动,试想如果附加扰动能抵消外界扰动,那扰动不就消除了嘛,这也是PID反馈控制能压制外界扰动的原理(图6)。

图6 PID工作原理

回顾之前我们介绍的系统扰动来源。如果我们只用PID反馈控制,相当于我们不需要任何动力学建模,那我们最终设定的PID参数并不能完美适合系统,相当于引入了很大的系统扰动,这样我们不能完美地控制机器人。既然我们靠反馈无法把扰动全压下去,那我们是否可以考虑,通过预测外界扰动,再通过前馈补偿来解决呢?如图7。这样,如果外界扰动是10,我们前馈补偿可以消灭掉9,那剩余的1可由PID反馈轻松消灭掉。于是乎,我们需要构建一个由PID反馈控制+基于系统建模的前馈控制的控制器。

图7 前馈+反馈控制