基本模型预测控制(MPC)原理

模型预测控制(MPC)是一种基于状态空间模型的优化控制策略。该方法利用未来的状态预测来优化控制输入,确保系统行为接近期望状态且输入变化平滑。文章详细介绍了MPC的基本思想,包括从连续到离散模型的转化,算法原理,以及约束条件的转化。通过设置损失函数并考虑约束优化,MPC能够解决各种约束条件下系统的控制问题。
摘要由CSDN通过智能技术生成

1 模型预测控制的基本思想

假设拥有一个精度较高的可以描述系统的状态空间方程,显然我可以根据当前的状态的未来的输入预测出未来的状态。由此可以定义包含两项的损失函数

  • 一项是预测的未来状态和期望的未来状态的距离
  • 另一项是输入变化量的模长

显然,我们希望优化关于未来输入的损失函数,使得这两项最小,即预测状态最贴近期望状态,并且输入不会变化地太剧烈。与PID控制不同,可以明显看出MPC计算输入的过程,本质上是一个优化问题,既然是优化问题,那么就可以加上约束,这是PID做不到的。

2 简单离散情况下的MPC

2.1 状态空间以及连续到离散的转化

一般地,用状态空间方程可以描述系统为:
x ˙ = f ( x , u , t ) , y = g ( x , u , t ) (2.1.1) \dot x = f(x,u,t), y=g(x,u,t) \tag{2.1.1} x˙=f(x,u,t),y=g(x,u,t)(2.1.1)
其中x是状态向量,y是输出,u是输入。
对于线性时不变系统,则可以简单地描述为:
x ˙ = A x + B u , y = C x + D u (2.1.2) \dot x = Ax+Bu, y = Cx+Du \tag{2.1.2} x˙=Ax+Bu,y=Cx+Du(2.1.2)
接下来考虑近似的离散化模型,当采样周期T足够小时,可以认为 d x = x ( k + 1 ) − x ( k ) T dx=\frac{x(k+1)-x(k)}{T} dx=Tx(k+1)x(k),代入式(2.1.1)与(2.1.2)中可得到
x ( k + 1 ) = x ( k ) + T f ( x ( k ) , u ( k ) , k T ) ,   y ( k ) = g ( x ( k ) , u ( k ) , k T ) (2.1.3) x(k+1)=x(k)+Tf(x(k),u(k),kT), \ y(k)=g(x(k),u(k),kT) \tag{2.1.3} x(k+1)=x(k)+Tf(x(k),u(k),kT), y(k)=g(x(k),u(k),kT)(2.1.3) x ( k + 1 ) = ( I + T A ) x ( k ) + T B u ( k ) ,   y ( k ) = C x ( k ) + D u ( k ) (2.1.4) x(k+1)=(I+TA)x(k)+TBu(k), \ y(k)=Cx(k)+Du(k) \tag{2.1.4} x(k+1)=(I+TA)x(k)+TBu(k), y(k)=Cx(k)+Du(k)(2.1.4)
本文接下来讨论的所有情况均使用模型(2.1.4),但因为以原理为主,对于一般化的非线性系统(2.1.3)仍然可以使用相同地方式具体推导。

2.2 算法原理

考虑系统
x ( k + 1 ) = A x ( k ) + B u ( k ) y ( k ) = C x ( k ) (2.2.1) x(k+1)=Ax(k)+Bu(k) \\ y(k)=Cx(k) \tag{2.2.1} x(k+1)=Ax(k)+Bu(k)y(k)=Cx(k)(2.2.1)
由于损失函数需要优化输入向量的变化量,所以我们首先做一些变换,将状态方程中的输入向量替换为输入变化量。
Δ x ( k + 1 ) = x ( k + 1 ) − x ( k ) \Delta x(k+1)=x(k+1)-x(k) Δx(k+1)=x(k+1)x(k),有
Δ y ( k + 1 ) = C A Δ x ( k ) + C B Δ u ( k ) y ( k + 1 ) = y ( k ) + C A Δ x ( k ) + C B Δ u ( k ) (2.2.2) \Delta y(k+1)=CA\Delta x(k)+CB\Delta u(k) \\ y(k+1)=y(k)+CA\Delta x(k)+CB\Delta u(k) \tag{2.2.2} Δy(k+1)=CAΔx(k)+CBΔu(k)y(k+1)=y(k)+CAΔx(k)+CBΔu(k)(2.2.2)
写成紧凑的形式
[ Δ x ( k + 1 ) y ( k + 1 ) ] = [ A O C A I ] [ Δ x ( k ) y ( k ) ] + [ B C B ] Δ u ( k ) (2.2.3) \left [ \begin{matrix} \Delta x(k+1) \\ y(k+1) \end{matrix} \right] = \left [ \begin{matrix} A & O \\ CA & I \end{matrix} \right] \left [ \begin{matrix} \Delta x(k) \\ y(k) \end{matrix} \right] + \left [ \begin{matrix} B \\ CB \end{matrix} \right] \Delta u(k) \tag{2.2.3} [Δx(k+1)y(k+1)]=[ACAOI][Δx(k)y(k)]+[BCB]Δu(k)(2.2.3)
y ( k ) = [ O I ] [

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值