先进控制

线性二次型调节器

线性二次型调节器,几乎总是简称为 LQR,是一套用来算出“把系统拉回你想要的位置的唯一最佳方式”的配方,前提是你同时在意两件互相竞争的事:让系统紧贴目标,以及别为此花太多力气。想象在手掌上立一根扫帚柄。你希望柄是竖直的(误差要小),但你也不想把手挥得乱七八糟(力气要省)。LQR 会在这两个愿望之间找到精确的平衡——既能纠正、又不至于反应过度的那种最平滑的修正。

它的名字来自两个词。“线性”意味着它假设系统在目标附近以一种简单的、成比例的方式运作——推两倍的力就得到两倍的反应——这一点由状态空间模型来描述,那是一组紧凑的方程,列出系统的重要数值以及它们如何变化。“二次型”意味着你想压低的代价是写成平方项的:误差的平方加上力气的平方,各自乘上你自己选的权重。把误差的权重调大,LQR 就变得激进;把力气的权重调大,它就变得温和而“偷懒”。

LQR 的美妙之处在于:对于一个带二次型代价的线性系统,你根本不必去搜索或猜测。数学会直接交给你一张固定的数值表,称为增益,它把当前的误差直接映射成正确的修正量。机器人只需每个周期把当前状态乘上这个增益,所得结果在数学上可证明就是最佳的折中。这正是 LQR 成为平衡腿式机器人、稳住无人机、对准相机云台时首选入门工具的原因。

一台两轮自平衡机器人读取自己的倾角和速度,把它们乘上 LQR 增益,再恰好按这个量驱动轮子——以最小、最平滑的电机用力保持直立。

当前状态乘以一个固定增益,就得到可证明最佳的修正。

你所选的权重(通常称为 Q 和 R)是 LQR 中唯一真正需要设计的选项;用 LQR 调一台机器人,主要就是在决定你对误差和对力气各惩罚多重。

又称
LQRLQR 控制器LQR 控制器