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 ξ为 n s n_s ns维状态变量,
u u u为 m c m_c mc维控制变量,
χ \chi χ为状态变量约束,
Γ \Gamma Γ为控制变量约束。
设定 f ( 0 , 0 ) = 0 f(0,0)=0 f(0,0)=0为系统的一个稳定点,即系统的控制目标。
对于任意时域 N N N,设定如式(2)优化目标函数 J N ( ∗ , ∗ ) J_N(*,*) JN(∗,∗):
J N ( ξ ( t ) , U ( t ) ) = ∑ k = 1 t + N − 1 l ( ξ ( 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−1l(ξ(k),u(k))+P(ξ(t+N))(2)
式中, U ( t ) = [ u ( t ) , … , u ( t + N − 1 ) ] T U(t)=[u(t),\dots,u(t+N-1)]^T U(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 U t , ξ t + 1 , … , ξ t + N , t J N ( ξ t , U t ) \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 , U k , 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
u k , t = Γ , k = t , … , t + N − 1 u_{k,t}=\Gamma,\space k=t,\dots,t+N-1 uk,t=Γ, k=t,…,t+N−1
ξ k , t = ξ ( t ) \xi_{k,t}=\xi(t) ξk,t=ξ(t)
ξ N , t ∈ χ f i n \xi_{N,t}\in\chi_{fin} ξN,t∈χfin
其中,第1个条件为系统所决定的状态约束,
第2、3个条件为状态向量和控制向量的约束,
第4个为初始状态的约束,
最后一个条件为终端状态约束。