控制理论:MindOpt Python API求解模型预测控制问题(Model Predictive Control)

1. MPC应用背景

模型预测控制(Model Predictive Control,MPC),也被称为滚动时域控制(Receding Horizon Control),是优化和控制两个领域的交叉。其基本思想是在每个需要控制的时刻预测受控系统在未来有限时间范围内行为,并基于预测结果计算当前时刻的最佳控制输入,在确保满足系统约束的同时,最小化成本函数。这个过程会反复进行,是一个滚动的动态过程。

以开车举例,假设司机行驶在路上,发现前面车辆踩刹车,车尾亮红灯。那在此刻有限时间内对系统未来行为的预测是前车减速,需要在满足自身车辆加速度约束的情况下,计算踩刹车的力度。此时,若踩刹车力度过大踩的太急容易发生后车追尾事故,因此需要控制踩刹车的力度,该力度可被视为最佳控制输入。在不变道的情况下,该过程是反复出现的,需要根据每一次道路上的情况对系统行为进行预测,从而动态的调整踩刹车/油门力度(油门可视为负的刹车)。

综上,MPC控制本质上可看成,通过构建模型预测未来有限时间内的变化,在满足约束的情况下,动态决策当前系统的最优控制量。由于预测是针对未来有限时间范围进行的,在每一个控制时刻都需要针对当前时刻的状态去迭代求解。


2. 问题描述

给定一个线性时不变动态系统(Linear Time-invariant Dynamical System),考虑通过模型预测控制实现对该系统的最优控制。假设该系统的控制时刻集合为 T T T,系统在 t t t时刻状态由变量 x t ∈ R n x x_t \in R^{n_x} xtRnx描述,系统输入由变量 u t ∈ R n u u_t \in R^{n_u} utRnu描述。通过推导可将该问题转化为一个二次规划模型,目标代价函数仅跟初始条件和输入量有关。在优化模型创建章节将对二次规划模型进行详细阐述。

在这里插入图片描述

3. 优化模型构建

下面我们构建二次规划模型求解MPC控制问题,分别定义该数学模型的决策变量、目标函数以及约束等。

具体的集合、参数与决策变量定义如下。

符号 含义
T T T 控制时刻集合,任意控制时刻用 i n d e x   t ∈ T index \ t \in T index tT表示;
Q Q Q 目标函数系数矩阵,状态代价矩阵,对称矩阵;
R R R 目标函数系数矩阵,控制代价矩阵,对称矩阵;
A A A 系数矩阵,状态转移系数,特征值小于1;
B B B 系数矩阵,状态转移系数;
x m i n x_{min} xmin 参数,状态取值下限;
x m a x x_{max} xmax 参数,状态取值上限;
u m i n u_{min} umin 参数,输入取值下限;
u m a x u_{max} umax 参数,输入取值上限;
x c u r x_{cur} xcur 参数,初始状态取值;
n x n_x nx 参数,状态变量的维度;
n u n_u nu 参数,输入变量的维度;
决策变量 含义
x t x_t xt 连续变量,表示 t t t时刻状态取值;
u t u_t ut 连续变量,表示 t t t时刻输入取值;
  • 目标函数:代价函数;

m i n   z = ∑ t = 0 T − 1 x t T Q x t + u t T R u t + x T T Q x T min \ z = \sum^{T-1}_{t = 0} x^{T}_{t}Qx_{t} + u^{T}_{t}Ru_{t} + x^T_{T}Qx_{T} min z=t=0T1xtTQxt+utTRut+xTTQxT

  • 约束1:状态转移约束, t + 1 t+1 t+1时刻的状态变量由 t t t时刻状态变量与 t t t时刻的系统输入变量共同决定;

x t + 1 = A x t + B u t ∀ t ∈ T − { T } x_{t+1} = Ax_t + Bu_t \quad \forall t \in T-\{T\} xt+1=Axt+ButtT{ T}

  • 约束2:状态取值上下限约束;

x m i n ≤ x t ≤ x m a x ∀ t ∈ T x_{min} \le x_t \le x_{max} \quad \forall t \in T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值