MPC第一篇是以线性模型预测控制作为开始,然而实际情况中大多数情况下,系统都不是线性系统。因此,相对于非线性模型预测控制,线性时变模型预测控制是一种次优的选择。
对于一个非线性系统,一般有如式(1)的离散模型:

ξ(t+1)=f(ξ(t),u(t))(1) \xi(t+1)=f(\xi(t),u(t))\tag{1} ξ(t+1)=f(ξ(t),u(t))(1)
ξ(t)∈χ, u(t)∈Γ\xi(t)\in\chi,\space u(t)\in\Gammaξ(t)∈χ, u(t)∈Γ
式中,f(∗,∗)f(*,*)f(∗,∗)为系统状态转移函数,
ξ\xiξ为nsn_sns​维状态变量,
uuu为mcm_cmc​维控制变量,
χ\chiχ为状态变量约束,
Γ\GammaΓ为控制变量约束。

设定f(0,0)=0f(0,0)=0f(0,0)=0为系统的一个稳定点,即系统的控制目标。
对于任意时域NNN,设定如式(2)优化目标函数JN(∗,∗)J_N(*,*)JN​(∗,∗):
JN(ξ(t),U(t))=∑k=1t+N−1l(ξ(k),u(k))+P(ξ(t+N))(2) J_N(\xi(t),U(t)) =\displaystyle\sum_{k=1}^{t+N-1}l(\xi(k),u(k))+P(\xi(t+N)) \tag{2} JN​(ξ(t),U(t))=k=1∑t+N−1​l(ξ(k),u(k))+P(ξ(t+N))(2)
式中,U(t)=[u(t),…,u(t+N−1)]TU(t)=[u(t),\dots,u(t+N-1)]^TU(t)=[u(t),…,u(t+N−1)]T是在时域N内的控制量输入序列,
ξ(t)\xi(t)ξ(t)是在控制量输入序列U(t)U(t)U(t)的作用下,系统状态向量的轨迹,
l(∗,∗)l(*,*)l(∗,∗)表示对期望输出的跟踪能力,
P(∗)P(*)P(∗)表示终端约束。

结合(1),(2)式可知,非线性模型预测控制就是在每一步长内求解出带约束的有限时域优化的问题。
min⁡Ut,ξt+1,…,ξt+N,t JN(ξt,Ut)\underset{U_t,\xi_{t+1},\dots,\xi_{t+N},t}{\min}\space J_N(\xi_t,U_t)Ut​,ξt+1​,…,ξt+N​,tmin​ JN​(ξt​,Ut​)
s.t.s.t.s.t.  ξ(k+1,t)=f(ξk,t,Uk,t), k=t,…,N−1\space \xi_(k+1,t)=f(\xi_{k,t},U_{k,t}),\space k=t,\dots,N-1 ξ(​k+1,t)=f(ξk,t​,Uk,t​), k=t,…,N−1
ξk,t∈χ, k=t+1,…,t+N−1\xi_{k,t}\in \chi,\space k=t+1,\dots,t+N-1ξk,t​∈χ, k=t+1,…,t+N−1
uk,t=Γ, k=t,…,t+N−1u_{k,t}=\Gamma,\space k=t,\dots,t+N-1uk,t​=Γ, k=t,…,t+N−1
ξk,t=ξ(t)\xi_{k,t}=\xi(t)ξk,t​=ξ(t)
ξN,t∈χfin\xi_{N,t}\in\chi_{fin}ξN,t​∈χfin​
其中,第1个条件为系统所决定的状态约束,
第2、3个条件为状态向量和控制向量的约束,
第4个为初始状态的约束,
最后一个条件为终端状态约束。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐