本页目录
现代 II · 极点配置与 LQR
层次:本科核心|🔗 前置:状态空间、线性代数、二次型(数学站)。 极点配置告诉我们“能把动态搬到哪里”,但没有告诉我们响应速度、控制能量和执行器负担如何取舍。LQR 把这个取舍写进二次代价,再由 Riccati 方程给出反馈;它很系统,但它的稳定性和裕度结论都有明确的模型、时域、权重与回路条件。
学习层:给航向稳定器选一个有限时域反馈
1. 具体工程情境:无人车横摆误差要压下去,但执行器能量有限
把采样周期为 \(0.1\ \mathrm s\) 的航向稳定器写成二状态离散模型:\(x_1\) 是航向误差,\(x_2\) 是横摆角速度。
本次只做有限时域调节:从 \(x_0=[1,0]^\mathsf T\) 出发,把状态压向零,同时不把控制输入当成免费的。实验的 \(N\)、\(Q\)、\(R\) 都是明确的设计选择,且本页暂不把执行器饱和伪装成 LQR 的约束处理。
预测门,必须先作答:
- 有限时域 Riccati 递推应以 \(P_N=Q_f\)、\(P_N=0\),还是某个 \(K_N\) 开始?
- 固定状态权重时,把 \(R\) 调大,反馈增益和控制能量通常怎样变化?
- “LQR 有 60° 相位裕度”能否无条件套在本页的离散、有限时域、MIMO 实验上?
2. 正式模型:后向 Riccati 证书接上前向成本账
令
有限时域代价为
从终端权重向前递推:
前向执行时
因此每一步的账本应同时列出 \(x_k,u_k,x_k^\mathsf TQx_k,Ru_k^2\),末端再加 \(x_N^\mathsf TQ_fx_N\)。\(\sum u_k^2\) 可以另作为控制能量指标,但它不等于已经加权进 \(J_N\) 的 \(\sum u_k^\mathsf TRu_k\)。
3. 动手实验:看 Riccati 递推如何把权衡传到每一个时刻
提交三项预测后,拖动 \(N,q_1,q_2,R\) 和初始误差。图上层画 \(x_1,x_2\),下层画 \(u_k\);第一张 ledger 是前向成本与控制能量,第二张 ledger 是每个 \(P_k,K_k,S_k\)。调大 \(R\) 后不要只看轨迹快慢:要同时核对 \(\sum x^\mathsf TQx\)、\(\sum Ru^2\)、\(\sum u^2\) 与 \(\min S_k\)。
JavaScript 失效时的静态 fallback:默认取
后向第一行给出
| 项目 | 默认读数 |
|---|---|
| \(P_0(1,1)\) | \(60.460\) |
| \(K_0\) | \([2.384,1.737]\) |
| \(S_0\) | \(0.836\) |
| \(\min_k S_k\) | \(0.720\) |
前三个前向时刻的账本为:
| \(k\) | \(x_1\) | \(x_2\) | \(u_k\) | \(x^\mathsf TQx\) | \(Ru^2\) |
|---|---|---|---|---|---|
| 0 | 1.000 | 0.000 | −2.384 | 6.000 | 3.977 |
| 1 | 1.000 | −0.238 | −1.875 | 6.057 | 2.462 |
| 2 | 0.976 | −0.407 | −1.440 | 5.883 | 1.452 |
默认前向汇总为:状态代价 \(48.814\)、加权控制代价 \(9.383\)、终端代价 \(2.263\)、总成本 \(J=60.460\)、未加权控制能量 \(\sum u_k^2=13.404\)。若只把 \(R\) 调到 \(8\),第一增益约降为 \([0.381,0.297]\),控制能量约为 \(0.446\);这不是“响应一定更好”,而是把代价偏好向省力移动。
4. 误区与模型边界
- \(P_N\) 不是随手置零的常数:有限时域的终端目标由 \(Q_f\) 表达;换了终端代价,前面所有 \(K_k\) 都会改变。
- “\(Q\) 大所以所有增益都更大”不是逐元素定理:\(Q,R\) 是矩阵,MIMO 方向会耦合;可靠的说法是代价权衡改变,需看完整 Riccati 解、闭环极点和控制能量。
- 经典 LQR 裕度不是本实验的无条件附赠:常见的单输入 \(GM\ge1/2\)、\(PM\ge60^\circ\) 结论属于标准连续时间、无限时域、全状态反馈 LQR 的特定输入回路语境,并需 \((A,B)\) 可稳定化、\((Q^{1/2},A)\) 可检测、\(Q\succeq0,R\succ0\) 等条件。离散/有限时域、输入饱和、时延或 LQG 组合不能直接继承这句话。
- MIMO 没有唯一的单通道相位裕度:应明确断开哪个输入回路、保持哪些回路闭合,并用 return-difference \(I+L(s)\)、最小奇异值或 disk margin 描述多变量余量;不能把 SISO 的每通道数字无条件复制。
- 最优不等于现实安全:LQR 代价不表达硬输入/状态约束;模型误差、量化、采样和观测器误差需另行验证,必要时使用抗饱和、MPC 或鲁棒设计。
迁移问题:如果横摆执行器有严格的峰值电流上限,你会先增大 \(R\)、缩短/延长 \(N\),还是改用带约束的 MPC?请把“成本权衡”和“硬约束可行性”区分开,并说明你会检查哪一张 ledger。
一、从极点配置到代价设计
状态反馈 \(u=-Kx\) 使闭环矩阵变为 \(A-BK\)。在 \((A,B)\) 能控时,理想线性模型允许配置闭环极点;在只要求稳定化时,重点是把所有可控不稳定模态移到稳定区域。极点配置的自由度很大,却没有告诉我们每一步控制要花多少能量,也没有天然处理输入限制。
LQR 换一个问题问法:在给定模型、初始状态和权重下,哪条轨迹使状态偏差与控制代价的总和最小?这让“快一点还是省力一点”成为可以审计的 \(Q/R\) 选择,而不是一句模糊的“把极点放左边”。
二、离散与连续 LQR
连续时间无限时域问题为
在标准条件下,代数 Riccati 方程
给出 \(K=R^{-1}B^\mathsf TP\)。离散时间有限时域问题则用本页的递推;当系统、权重和时域满足适当条件时,\(P_k\) 可趋近离散代数 Riccati 解,但有限 \(N\) 的前端增益仍会受终端权重影响。
权重应先处理量纲。Bryson 形式的起点是用允许的状态/输入尺度归一化,再选择相对权重;这只是整定起点,不是对非线性、饱和或噪声的保证。
三、LQR 稳定性与裕度:条件化的结论
标准连续时间无限时域全状态反馈 LQR 在 \((A,B)\) 可稳定化、\((Q^{1/2},A)\) 可检测、\(Q\succeq0\)、\(R\succ0\) 等条件下,Riccati 稳定化解产生稳定的标称闭环。这个稳定性结论与“某个具体频率裕度”不是同一句话。
对单输入或明确的 SISO 输入回路,经典 return-difference 推导给出常见的增益/相位裕度下界;教科书常压缩成增益可降至 \(1/2\)、相位至少 \(60^\circ\)。使用这些数字时必须写清楚:连续还是离散、无限还是有限时域、全状态还是估计状态、正负反馈约定,以及在哪个输入端断环。
对 MIMO,令输入回路传递矩阵为 \(L(s)\),应考察
及其频率上的最小奇异值/结构化裕度。不同输入方向可能有不同脆弱性,单一“相位裕度”无法完整描述矩阵回路。LQG 还会把观测器动力学放进回路,不能把全状态 LQR 的保证直接搬过去。
四、跟踪、积分与前馈
LQR 原生解决的是把状态调到零。非零参考可以用稳态前馈、参考预滤波或积分增广 LQI;积分增广要重新检查增广系统的可稳定化/可检测性和执行器饱和。前馈减小模型已知部分的误差,反馈负责修正不确定部分,两者的稳定性仍需按实际结构分析。
五、LQR 与 MPC、观测器的关系
LQR 没有硬约束,MPC 在每个采样时刻显式优化约束;LQR 假设状态可用,实际常与观测器或 Kalman 滤波器结合。分离设计在标称线性条件下很方便,但“控制器最优 + 估计器最优”不等于组合鲁棒性自动成立。若安全边界、测量噪声和延迟重要,就要把它们带回闭环验证。
六、要点
- 有限时域 LQR 的核心是 \(P_N=Q_f\)、后向 Riccati、前向 \(u_k=-K_kx_k\);
- \(Q\)、\(R\) 表达性能—控制代价权衡,前向 ledger 必须把状态、加权控制、终端代价分开;
- 标准连续时间无限时域 LQR 的稳定/裕度结论有稳定化、可检测、权重和特定回路条件;
- MIMO 应用 return-difference 与奇异值/结构化裕度,而不是套用一个 SISO 相位数字;
- LQR 不处理硬约束,LQG、采样、饱和和模型误差都需要额外验证。
下一页:LQR 需要状态,而真实系统往往只测到带噪输出。观测器与卡尔曼滤波会把“状态不可见”变成可计算的不确定度账。