MPC(2)非线性模型预测控制

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=1t+N1l(ξ(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+N1)]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,,N1
ξ 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+N1
u k , t = Γ ,   k = t , … , t + N − 1 u_{k,t}=\Gamma,\space k=t,\dots,t+N-1 uk,t=Γ, k=t,,t+N1
ξ 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个为初始状态的约束,
最后一个条件为终端状态约束。

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
非线性模型预测控制(NMPC)是一种目前广泛应用于工业控制领域的方法,它可以用于处理涉及非线性动态模型的控制问题。而MATLAB是一种功能强大的数值计算软件,具有丰富的工具箱和函数,使得实现非线性模型预测控制成为可能。 在MATLAB中,我们可以使用预测模型来构建非线性模型的预测控制器。首先,我们需要使用系统的动态方程构建非线性模型,并且可以使用MATLAB的符号计算工具箱来简化生成过程。然后,我们可以使用非线性预测模型来预测系统的未来行为。 接下来,我们可以使用非线性模型预测控制器来确定控制量的最优值,以实现对系统的高性能控制。传统的非线性模型预测控制方法使用非线性优化算法来解决控制器的最优化问题,但这种方法在计算复杂度和实时性方面存在一定的困难。 幸运的是,MATLAB提供了一种使用模型预测控制的函数:"mpc"函数。该函数可以自动解决最优化问题,并生成设计好的非线性模型预测控制器。除此之外,MATLAB还提供了其他强大的工具箱,如优化工具箱和控制系统工具箱,用于帮助我们在非线性模型预测控制中处理不同的问题。 总结起来,MATLAB是一个非常适合实现非线性模型预测控制的工具。它提供了丰富的函数和工具箱,帮助我们构建和求解非线性模型,生成设计好的预测控制器,并且能够处理不同类型的问题。通过使用MATLAB,我们可以更轻松地进行非线性模型预测控制的设计和实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值