本笔记来自北航诸兵老师的课程
课程地址:模型预测控制(2022春)lecture 1-1 Unconstrained MPC
文章目录
- 0 MPC 简介
- 0.1 案例引入
- 0.2 系统模型
- 0.3 MPC的优点
- 0.4 MPC的缺点
- 0.5 MPC的未来
- 1 详细介绍
0 MPC 简介
0.1 案例引入
MPC(Model Predictive Control)模型预测控制,是预测控制的一种,是基于模型来进行控制的。
老师举了下面这个例子来引入MPC的基本思想:
比方说我们为未来的一段时间制定计划,一天中几点到几点该做什么。但是计划赶不上变化,出现变化,出现拖延,计划就得做相应的调整。过了一段时间,根据计划的实际落实情况,再对接下来的计划进行调整。如此往复。不断地执行计划,也不断地修订计划。
0.2 系统模型
在控制系统中,有惯用表示:输入记作
u
u
u,状态变量记作
x
x
x,输出记作
y
y
y
假设系统是离散的,系统的状态方程为:
x
(
k
+
1
)
=
f
(
x
(
k
)
,
u
(
k
)
)
x(k+1)=f(x(k),u(k))
x(k+1)=f(x(k),u(k))
实际上系统可以是,线性的或非线性的,连续的或离散的或既包含连续又包含离散的,确定的或随机的,只要满足该方程即可
设当前时刻为
k
k
k,当前状态为
x
(
k
)
x(k)
x(k)
在输入
u
(
k
)
u(k)
u(k) 的作用下,系统的状态将由
x
(
k
)
x(k)
x(k) 变为
x
(
k
+
1
)
x(k+1)
x(k+1)
在输入
u
(
k
+
1
)
u(k+1)
u(k+1) 的作用下,系统的状态将由
x
(
k
+
1
)
x(k+1)
x(k+1) 变为
x
(
k
+
2
)
x(k+2)
x(k+2)
在输入
u
(
k
+
2
)
u(k+2)
u(k+2) 的作用下,系统的状态将由
x
(
k
+
2
)
x(k+2)
x(k+2) 变为
x
(
k
+
3
)
x(k+3)
x(k+3)
…
由上面的列举,知:输入序列➡️输出序列
但在此时,也就是时刻
k
k
k ,我们并不知道输入序列
{
u
(
k
)
,
u
(
k
+
1
)
,
u
(
k
+
2
)
,
⋯
}
\{u(k),u(k+1),u(k+2),\cdots\}
{u(k),u(k+1),u(k+2),⋯} 是多少
自然而然就会想到一个问题——怎么确定输入序列?
答:通过优化的方式,Optimization
将 状态序列 记为
X
(
k
)
X(k)
X(k)
将 输入序列 记为
U
(
k
)
U(k)
U(k)
输入序列的求解,可用如下优化问题的公式来描述:
U
∗
(
k
)
=
a
r
g
m
i
n
∑
i
=
k
∞
l
(
x
(
i
)
,
u
(
i
)
)
=
{
u
∗
(
k
)
,
u
∗
(
k
+
1
)
,
…
}
s
.
t
.
x
∈
X
,
u
∈
U
\begin{aligned} U^*(k) &= arg\ min\sum^{\infin}_{i=k}l(x(i),u(i)) \\ &=\{u^*(k),u^*(k+1),\dots\} \\ \\ s.t.\quad &x\in \mathscr{X}, u\in \mathscr {U} \end{aligned}
U∗(k)s.t.=arg mini=k∑∞l(x(i),u(i))={u∗(k),u∗(k+1),…}x∈X,u∈U
其中,
a
r
g
m
i
n
arg\ min
arg min 表示使 **代价函数(目标函数)**取值最小时,输入序列
U
(
k
)
U(k)
U(k) 的取值;
∗
^*
∗ 表示最优解;
s
.
t
.
s.t.
s.t. 表示约束条件;
l
(
x
(
i
)
,
u
(
i
)
)
l(x(i),u(i))
l(x(i),u(i)) 称为 “Stage cost”。
令
u
(
k
)
=
u
∗
(
k
)
u(k)=u^*(k)
u(k)=u∗(k) ,舍弃求出的
U
∗
(
k
)
U^*(k)
U∗(k) 中后续其他时刻的输入,则由
x
(
k
+
1
)
=
f
(
x
(
k
)
,
u
(
k
)
)
x(k+1) = f(x(k),u(k))
x(k+1)=f(x(k),u(k)) 可以求出时刻
k
+
1
k+1
k+1 的状态
接着,
k
+
1
k+1
k+1 变为当前时刻,重复上述步骤,求出时刻
k
+
2
k+2
k+2 的状态
x
(
k
+
2
)
x(k+2)
x(k+2),…
以上就是MPC的基本原理
如果只优化一次,将计算出的 U ( k ) U(k) U(k) 序列依次执行,那么就变成了开环优化;而这里每一时刻优化后都只取 u ∗ ( k ) u^*(k) u∗(k) 执行( u ∗ ( k ) u^*(k) u∗(k)是 x ( k ) x(k) x(k)的函数),并且不断进行优化,构成滚动优化(闭环优化), 因此MPC实际上引入了反馈
0.3 MPC的优点
- 处理控制输入和系统状态上的约束(Constraints)
- 约束来源:actuator limits; safety; environmental; economic constraints
- PID没办法解决约束问题
- 近似最优控制
- 与线性系统中的最优控制(LQR, 线性二次型调节器)有区别,在LQR中,我们找到的是最优的增益 k k k(假设,已知系统是线性反馈),MPC找的是 u u u
0.4 MPC的缺点
- 需要在线优化(online optimization),可能会有较大的计算负载
0.5 MPC的未来
随着计算机算力提升,MPC或替代PID成为工业界控制主流
1 详细介绍
见【MPC学习笔记】02:MPC详细简介(Lecture 1_1 Unconstrained MPC)