鲁棒控制
鲁棒控制是一种设计机器人控制器的方法,即使你为机器人建立的数学模型有偏差,只要偏差落在已知的范围之内,控制器依然能良好工作。任何模型都是被简化过的故事:真实的机械臂也许比图纸上重一点,某个关节在寒冷的早晨摩擦力会更大,夹爪夹着的负载也许并没有被精确测量。鲁棒控制不去假装这些数字完全准确,而是假设它们落在一个被「围栏」圈起来的不确定范围之内,然后设计出一个固定的控制器,保证对围栏内的每一种可能情形,系统都能保持稳定、性能也都还过得去。
可以把它想象成出门旅行前打包:你不知道确切的天气,只知道气温会在「凉」到「暖」之间。你不会为每一摄氏度都准备一套衣服,而是带一套能覆盖整段天气预报的衣服。鲁棒控制器就是这一套衣服:它对任何单一的精确状况也许都不是最优的,但在整个预期范围内的任何地方都不会崩溃。工程师把不确定性描述成围绕标称模型的一个有界集合,再用一些设计工具(例如 H 无穷方法),用数学证明这个集合里最坏的情况依然是安全的。
代价就是为这份安全所付的账。由于鲁棒控制器是按「可能出现的最坏偏差」来调校的,它往往会偏保守一些——比起只对着某一个完美模型调出来的控制器,它会稍慢、动作没那么激进。这种保守恰恰是它的意义所在:在机器人领域,一个又快又脆弱的控制器可能意味着零件被摔落或发生碰撞,而一个从不让你意外、可靠的控制器,通常比一个只在纸面上出色的天才控制器更有价值。
一只取放机械臂的额定抓取重量为 0.5 公斤到 2 公斤。工程师没有为每个零件重新调参,而是设计出一个鲁棒控制器,把未知的负载当作有界的不确定量,让机械臂在整个重量范围内都保持平稳和稳定。
一个控制器,按能扛住整段负载范围来设计。
鲁棒控制是事先固定一个控制器去覆盖整个不确定范围;自适应控制则是在运行中边学习真实数值、边调整控制器——两者从相反的方向解决同一个问题。