lqr mpc adrc分别是什么
时间: 2023-09-06 22:13:19 浏览: 499
LQR是线性二次型调节器(Linear Quadratic Regulator)的缩写,是一种常用的控制算法,适用于线性动态系统的控制。它通过对系统状态和控制输入的二次型性能指标进行加权,最终得出最优的控制输入,使系统达到稳定、快速、精确的控制效果。
MPC是模型预测控制(Model Predictive Control)的缩写,也是一种常用的控制算法,适用于非线性动态系统的控制。它通过对系统的数学模型进行预测,得出一系列未来状态和控制输入的序列,再从中选择最优的控制输入,以达到控制目标。
ADRC是自适应阻尼控制(Active Disturbance Rejection Control)的缩写,是一种新型的控制算法,适用于非线性系统的控制。它通过对系统的扰动进行估计和补偿,使系统具有强鲁棒性,能够有效地抑制外部扰动对系统的影响,实现精确的跟踪和控制。
相关问题
LQR MPC
### LQR 和 MPC 的基本概念
线性二次调节器(Linear Quadratic Regulator, LQR)是一种基于最优控制理论的经典方法,用于设计控制器来最小化系统的性能指标函数[^1]。该算法通过求解代数黎卡提方程(Algebraic Riccati Equation),得到状态反馈增益矩阵 \( K \),从而实现闭环控制系统的设计。
模型预测控制(Model Predictive Control, MPC)则是一种现代控制策略,其核心思想是在每一个采样时刻优化未来一段时间内的输入序列,同时考虑约束条件并滚动更新控制动作[^2]。MPC 使用显式的动态模型对未来的行为进行预测,并在线解决有限时间范围内的优化问题。
---
### 数学描述与原理对比
#### 线性二次调节器(LQR)
对于一个离散时间系统:
\[
x_{k+1} = A x_k + B u_k,
\]
其中 \( x_k \in \mathbb{R}^n \) 是状态向量,\( u_k \in \mathbb{R}^m \) 是控制输入向量,目标是最小化如下代价函数:
\[
J(u) = \sum_{k=0}^\infty (x_k^T Q x_k + u_k^T R u_k),
\]
这里 \( Q \geq 0 \), \( R > 0 \) 分别表示状态和控制权重矩阵。通过解析计算可以得出最佳控制律为:
\[
u_k = -K x_k,
\]
其中 \( K \) 可由黎卡提方程推导获得[^3]。
```python
import numpy as np
from scipy.linalg import solve_discrete_are
def lqr(A, B, Q, R):
P = solve_discrete_are(A, B, Q, R)
K = np.dot(np.linalg.inv(R + np.dot(B.T, np.dot(P, B))), np.dot(B.T, np.dot(P, A)))
return K
```
#### 模型预测控制(MPC)
假设给定相同的离散时间系统形式,MPC 需要定义一个有限时域上的成本函数,通常写成:
\[
J(\textbf{U}) = \min_\textbf{U} \left( x_N^T P x_N + \sum_{k=0}^{N-1}(x_k^T Q x_k + u_k^T R u_k)\right),
\]
这里的 \( N \) 表示预测视界长度,而终端加权矩阵 \( P \) 常常取作稳定性的保障项。每一步都需要重新求解上述优化问题以获取当前的最佳控制信号[^4]。
---
### 应用领域比较
两种技术广泛应用于工业自动化、机器人技术和航空航天等领域。具体而言,
- **LQR** 更适合于那些能够被精确建模并且不需要实时调整参数的小规模线性系统;
- 而由于具备处理复杂非线性和多变量能力以及支持硬/软约束的特点,**MPC** 成为了许多实际工程场景下的首选方案,比如化工过程控制中的温度压力管理或者自动驾驶汽车路径规划等任务中都有出色表现[^5]。
---
### 总结
尽管两者都追求使某些量化标准达到最优点的目标,但在实现方式上存在显著差异——前者依赖固定公式快速给出全局最优解;后者则是借助数值迭代逼近局部极值点,在灵活性方面占据优势但也付出了更高的计算资源消耗作为代价。
---
pid lqr mpc 对比
PID,LQR和MPC都是控制系统中常用的控制算法。其中,PID是最基本的控制算法,LQR和MPC则是更加高级的控制算法。三者的主要区别如下:
1. PID控制器是一种反馈控制器,它通过测量系统输出与期望输出之间的误差来调整控制器的输出。LQR和MPC则是基于模型的控制算法,它们需要系统的数学模型来进行控制。
2. LQR和MPC都是优化控制算法,它们可以通过优化目标函数来得到最优的控制输入。而PID控制器则是通过调整比例、积分和微分系数来得到最优的控制输入。
3. LQR和MPC都可以处理多变量系统和非线性系统,而PID控制器只适用于单变量线性系统。
4. LQR和MPC都可以处理时变系统,而PID控制器则需要重新调整参数来适应时变系统。
综上所述,LQR和MPC相比于PID控制器具有更高的控制精度和更广泛的适用范围,但需要更多的计算资源和更复杂的数学模型。
阅读全文
相关推荐

















