线性二次调节器 (LQR)

2025年3月1日 | 阅读 6 分钟

引言

最优控制理论是数学控制理论的一个特定分支,在此分支下,为特定动态系统选择的控制律会最大化或最小化一个精确的性能指标。该理论在系统优化、速度、性能、能源和成本降低能力等方面具有应用兴趣,并集成到航空航天机器人技术和汽车平台中。

最优控制理论始于理解“最优”控制运动以实现期望结果的要素。结合“最佳”一词的出现,意味着需要利用成本函数(或性能指标)进行最小化(或最大化),以满足系统的需求。在大多数实际问题中,成本函数被定义为二次形式,公司的目标是在系统状态和控制量的偏差之间获得最佳平衡。

所建议的路径可以考虑到给定系统的动态特性和给定成本函数的性质,来响应最优控制问题。许多此类问题都导致了同时实现一个或多个目标的控制律的综合,例如,降低能源消耗、误差或变异性/敏感性,或实现稳定性;因此,最优控制理论是高级控制系统工程中不可或缺的理论。

LQR在控制系统中的关键作用

  • 最优状态调节:将控制问题公式化为跟踪调节器,LQR确保其状态变量——位置、速度或温度——被最优地驱动。
  • 能源和资源效率:LQR的主要目标包括最大化和有效利用控制资源,特别是能源。这使其非常适合能源或控制资源有限的系统,例如电池供电的机器人或无人机。
  • 鲁棒性和稳定性:对于定义明确的线性系统,LQR是一种稳定的控制律,因为它能够实现稳定的特征值配置。通过LQR获得的控制律可以确保所寻求系统的稳定性,前提是系统模型和期望的性能特性都设置正确。
  • 跨领域适用性:在机器人技术、航空航天工程和汽车应用领域,LQR因其在自然生活环境中提供精确控制方法的独特特性而被采用。

LQR的数学表示

在最优控制理论中,线性二次调节器(LQR)至关重要,因为它能为动态系统找到最佳控制律。该方法侧重于在状态空间建模的系统上,减少二次成本。

1. 创建状态空间模型

状态空间模型可以简洁有序地表示系统动力学。它包含一组一阶微分或差分方程,这些方程描述了系统状态随时间的发展。对于连续时间线性系统,状态空间表示为

ẋ(t) = A x(t) + B u(t)

y(t) = C x(t) + D u(t)

其中

  • 在时间 t,状态向量包含系统的所有内容。
  • 它表示 u(t) 是一个控制输入状态。这可能是最重要的状态方程,因为它表明控制输入将如何随时间管理或控制。
  • A 用于表示系统内部的复杂情况,通过状态矩阵。
  • 控制输入矩阵 B 指定了它影响状态的方式。
  • LQR 情况下的目标是确定 u(t) 控制输入,通过该输入系统将以最小的成本有效地运行。

2. 成本函数

对于 LQR,目标是最小化一个成本函数,该函数定义了性能与控制输入之间的关系。成本函数通过状态和控制输入的幂来确保采用的解决方案。LQR 问题的标准二次成本函数表示为

J = ∫( x(t)T Q x(t) + u(t)T R u(t))dt

其中

  • J 的减小表示目标成本。d,
  • Q 是一个决定状态偏离预期路径的矩阵。
  • R 具有正确定性,增加了施加控制努力的成本。

选择的 Q 和 R 决定了与控制工程师相比的控制努力的侧重点。Q 值越高,系统在状态上的控制就越严格,而 R 值越大则减少控制努力以节省能源。

3. 控制律

对于 LQR,控制输入以线性方式与系统状态相关,称为线性状态反馈控制律。控制输入 u(t) 设计为

u(t) = -K x(t)

K 表示通过解决优化问题找到的最佳增益矩阵。这意味着实施控制输入会将系统运动反转到预期状态。

为了实现最佳性能并减少控制输入需求,必须优化 K 以平衡系统。在计算出 K 后,系统以最佳状态运行。

4. 优化问题

求解优化问题以最小化成本函数 J 是 LQR 问题的本质。目标是找到最佳反馈增益矩阵 K。该优化问题的解通过连续时间代数Riccati方程(CARE)获得

AT P + P A - P B R-1 BT P + Q = 0

Riccati 方程产生 P 作为半正定解。一旦计算出 P,最优反馈增益矩阵 K 为

K = R-1 BT P

我们求解 Riccati 方程以获得矩阵 K,该矩阵 K 最小化二次成本函数并为系统施加最优控制输入。优化的目的是协调最小化状态误差(通过 Q)和最小化控制努力(通过 R)之间的权衡。

Linear-Quadratic Regulator (LQR)

用于 LQR 设计的软件工具

LQR 可在各种软件工具中实现,用于仿真、分析和实时控制

1. MATLAB

作为控制系统工程领域广泛使用的工具,MATLAB 提供了许多执行 LQR 算法的功能。要设计 LQR 控制器,只需调用函数 lqr(A, B, Q, R),该函数根据系统变量和权重找到增益矩阵 K。

MATLAB 中的示例代码

2. Simulink

因此,在控制系统仿真中,Simulink 提供了与 MATLAB 集成的图形化控制系统仿真。Simulink 是另一个软件;它用于状态空间建模技能,从而在实际应用之前模拟 LQR 控制器。

3. Python

LQR 开发现在可以使用上面介绍的 `scipy 和 control` 模块在 Python 中完成。在 Python 的控制库中,有一个 lqr(A, B, Q, R) 函数,它有一个类似 MATLAB 的函数

Python 中的示例代码

LQR 的应用

1. 航空航天系统

因此,在航空航天工程中,为了达到建议的稳定性和效率水平,必须精确控制姿态和高度。LQR 提供了更好的控制动作,因为控制变量可以使用来自系统状态的实时数据。

2. 机器人技术

机器人需要对其在空间中的移动或执行复杂程序时的动作进行全面控制。LQR 的用途通常在自行动设备(包括机械臂和移动机器人)的运动规划和控制应用中。

3. 汽车系统

然而,为了在驾驶过程中保持车辆的运动控制,会考虑其动态状态。LQR 保持特定的方向,使汽车和所有相关系统在自动驾驶和辅助驾驶过程中保持在正确的轨道上。

4. 电气系统

通过 LQR 解决方案,可以确保在电网中实现最小的电压和频率控制,并有效补偿需求或发电的变化。为了控制可再生能源系统(如太阳能发电厂或风力发电)向电网的能量流,LQR 发挥着控制作用。

结论

从结果可以得出结论,LQR 确实是一种有效的最优控制方法,可以确保复杂系统中稳定且高效的现象。本文揭示了 LQR 通过旨在提高能源效率,从而提高了航空航天和机器人系统的性能和产出。


下一主题Lyapunov 稳定性