本笔记来自北航诸兵老师的课程
课程地址:模型预测控制(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)