【控制理论】从黎卡提方程到最优反馈:LQR算法在连续与离散系统中的核心推导与应用
1. 理解LQR控制器的核心思想我第一次接触LQR控制器是在研究生阶段当时被它优雅的数学推导和强大的控制效果所震撼。简单来说LQR线性二次调节器就是一种通过最小化状态偏差和控制能量的加权和来设计最优控制器的方法。想象一下开车时的场景你既希望车辆能快速准确地跟随预定轨迹状态偏差小又不想方向盘打得太猛控制能量小这就是LQR要解决的典型问题。LQR之所以被称为线性二次调节器是因为它针对的是线性系统并且使用二次型作为性能指标。这种组合的妙处在于它能给出解析解而这个解的关键就是著名的黎卡提方程。在实际工程中从航天器姿态控制到机器人运动规划LQR都有着广泛应用。2. 连续时间系统的LQR推导2.1 问题建模与代价函数设计让我们从一个简单的倒立摆例子开始。假设我们要设计一个控制器来保持倒立摆直立系统的状态方程可以表示为x_dot A*x B*u其中x是状态向量包括角度和角速度u是控制输入电机扭矩。LQR的核心是设计一个代价函数J \frac{1}{2} \int_{0}^{\infty} (x^T Q x u^T R u) dt这个函数包含两部分xᵀQx惩罚状态偏离uᵀRu惩罚控制输入。Q和R就像调节旋钮——增大Q意味着我们更关注快速稳定增大R则意味着要节省控制能量。2.2 黎卡提方程的推导过程推导最优控制律的过程就像在解一个精心设计的谜题。我们需要找到一个控制律u-Kx使得代价函数J最小。这个推导中几个关键步骤假设存在一个矩阵P使得d(xᵀPx)/dt -xᵀ(QKᵀRK)x将控制律代入后经过一系列矩阵运算最终得到连续时间代数黎卡提方程(CARE)A^T P P A - P B R^{-1} B^T P Q 0解这个方程得到的P矩阵就像是系统的一个价值地图告诉我们每个状态的重要性。而最优反馈增益K则可以通过K R^{-1} B^T P直接计算得到。2.3 实际应用中的注意事项在我的项目经验中有几点特别值得注意Q矩阵通常取对角阵对角线元素表示对各状态的重视程度R矩阵的选取会影响控制输入的幅值解黎卡提方程时要注意系统的可控性对于高阶系统可能需要调整权重多次才能得到满意的响应一个实用的技巧是从较小的R值开始逐步增大直到控制输入在合理范围内。3. 离散时间系统的LQR推导3.1 离散系统建模的特点现代数字控制系统大多工作在离散时间域系统模型表示为x_{k1} A x_k B u_k与连续系统相比离散系统的推导采用了动态规划的思想从终端时间反向递推。3.2 离散黎卡提方程的推导离散时间LQR的代价函数为J \sum_{k0}^{N} (x_k^T Q x_k u_k^T R u_k)通过贝尔曼最优性原理我们可以推导出离散时间代数黎卡提方程(DARE)P_{k} Q A^T P_{k1} A - A^T P_{k1} B (R B^T P_{k1} B)^{-1} B^T P_{k1} A这个方程需要从终端条件P_NQ开始反向迭代求解。在实际应用中我们通常关心的是无限时间问题即求P的稳态解。3.3 离散LQR的实现步骤根据我的工程实践离散LQR的实现可以分为以下步骤初始化P矩阵通常设为Q迭代求解DARE直到收敛计算反馈增益矩阵K实现控制律u_k -K x_k在MATLAB中可以直接使用dlqr函数来求解[K, P, eigvals] dlqr(A, B, Q, R);4. LQR的工程应用与扩展4.1 实际应用中的调参技巧LQR的性能很大程度上取决于Q和R的选择。经过多个项目的积累我总结出以下调参经验首先确定哪些状态需要重点控制给对应的Q元素较大值初始时设R为单位矩阵根据控制输入大小调整观察闭环系统响应逐步微调权重可以使用Bryson法则进行归一化一个倒立摆的典型权重设置可能是Q diag([100, 1, 10, 1]); % 重视角度和位置 R 1; % 单输入系统4.2 LQR的局限性及改进方法虽然LQR很强大但它也有局限只适用于线性系统需要全状态反馈无限时间假设可能不现实针对这些问题工程中常用的解决方法包括使用LQR结合观测器LQG在工作点附近线性化结合终端代价设计有限时域控制器4.3 与其他控制方法的比较与MPC相比LQR具有计算量小的优势但不适合处理约束。在实际项目中我经常在快速内环使用LQR在外环使用MPC处理约束。与PID相比LQR能系统性地处理多变量系统但需要准确的模型。在机器人控制中LQR经常用于平衡控制而MPC用于轨迹跟踪。这种组合既能保证实时性又能处理状态和输入约束。