模型预测控制(MPC)原理及详细推导

模型预测控制:通过模型预测系统在某一未来时间段内的表现来进行优化控制。

具体控制方法可以分为以下几个步骤:

Step1:估计/测量当前k时刻的系统状态\pmb{x}_{k}

Step2:基于输入\pmb{u}_{k},\pmb{u}_{k+1},\cdots ,\pmb{u}_{k+N-1}(控制区间,自己选定)来对代价函数进行最优化控制,计算得到最优输入和系统输出\pmb{y}_{k},\pmb{y}_{k+1},\cdots ,\pmb{y}_{k+N}(预测区间)。

Step3:只选取最优化结果中的第一个(\pmb{u}_{k})作为系统输入实施。 

Step4:在下一时刻返回Step2重复上述步骤实现滚动优化过程。


针对Step2中的最优化控制(基于二次规划方法)下面给出详细数学推导:

首先给出系统状态方程

\begin{aligned} \boldsymbol{x}_{k+1}&=\boldsymbol{A}_{n\times n}\boldsymbol{x}_{k}+\boldsymbol{B}_{n\times p}\boldsymbol{u}_{k} \end{aligned}

其中\pmb{x}_{k}n\times 1矩阵,\pmb{u}_{k}p\times 1矩阵。

在k时刻进行预测(N为预测区间)

\boldsymbol{X}_{k}=\begin{bmatrix} \boldsymbol{x}(k|k)\\ \boldsymbol{x}(k+1|k)\\ \boldsymbol{x}(k+2|k)\\ \vdots \\ \boldsymbol{x}(k+N|k) \end{bmatrix}_{(N+1)n\times 1}

\boldsymbol{U}_{k}=\begin{bmatrix} \boldsymbol{u}(k|k)\\ \boldsymbol{u}(k+1|k)\\ \boldsymbol{u}(k+2|k)\\ \vdots \\ \boldsymbol{u}(k+N-1|k) \end{bmatrix}_{Np\times 1}

假设系统输出\boldsymbol{y}=\boldsymbol{x}且参考值\boldsymbol{R}=0,因此误差

\boldsymbol{E}=\boldsymbol{y}-\boldsymbol{R}=\boldsymbol{x}

代价函数\boldsymbol{J}

\begin{aligned} \boldsymbol{J}&=\sum_{k}^{N-1}(\boldsymbol{E}_{k}^T\boldsymbol{Q}\boldsymbol{E}_{k}+\boldsymbol{u}_{k}^T\boldsymbol{R}\boldsymbol{u}_{k})+\boldsymbol{E}_{N}^T\boldsymbol{F}\boldsymbol{E}_{N} \\&=\sum_{i=0}^{N-1}(\boldsymbol{x}(k+i|k)^T\boldsymbol{Q}\boldsymbol{x}(k+i|k)+\boldsymbol{u}(k+i|k)^T\boldsymbol{R}\boldsymbol{u}(k+i|k))+\boldsymbol{x}(k+N|k)^T\boldsymbol{F}\boldsymbol{x}(k+N|k) \end{aligned}

即误差加权和、输入加权和以及终端误差三者之和。

由于设计的控制器目标是控制输入u,所以需要消除状态变量x

\begin{aligned} \boldsymbol{x}(k|k)&=\boldsymbol{x}_{k} \\\boldsymbol{x}(k+1|k)&=\boldsymbol{A}\boldsymbol{x}(k|k)+\boldsymbol{B}\boldsymbol{u}(k|k)=\boldsymbol{A}\boldsymbol{x}_{k}+\boldsymbol{B}\boldsymbol{u}(k|k) \\\boldsymbol{x}(k+2|k)&=\boldsymbol{A}\boldsymbol{x}(k+1|k)+\boldsymbol{B}\boldsymbol{u}(k+1|k)=\boldsymbol{A}^2\boldsymbol{x}_{k}+\boldsymbol{ABu}(k|k)+\boldsymbol{Bu}(k+1|k) \\\vdots \\\boldsymbol{x}(k+N|k)&=\boldsymbol{A}^N\boldsymbol{x}_{k}+\boldsymbol{A}^{N-1}\boldsymbol{Bu}(k|k)+\cdots +\boldsymbol{Bu}(k+N-1|k) \end{aligned}

 \Rightarrow \boldsymbol{X}_{k}=\begin{bmatrix} \boldsymbol{I}_{n\times n}\\ \boldsymbol{A}_{n\times n}\\ \boldsymbol{A}^2\\ \vdots \\ \boldsymbol{A}^N \end{bmatrix}\boldsymbol{x}_{k}+\begin{bmatrix} \boldsymbol{O}_{n\times 1}\\ \boldsymbol{B}_{n\times p}& & & \\ \boldsymbol{AB}& \boldsymbol{B} \\ \vdots & \vdots & \ddots & \\ \boldsymbol{A}^{N-1}\boldsymbol{B}& \boldsymbol{A}^{N-2}\boldsymbol{B}& \cdots & \boldsymbol{B} \end{bmatrix}\boldsymbol{U}_{k}

\Rightarrow \boldsymbol{X}_{k}=\boldsymbol{M}{\color{red} _{(N+1)n\times n}}\boldsymbol{x}_{k}+\boldsymbol{C}{\color{red} _{(N+1)n\times Np}}\boldsymbol{U}_{k}

将上式代入代价函数中可以得到,

\begin{aligned} \boldsymbol{J}&=\sum_{i=0}^{N-1}(\boldsymbol{x}(k+i|k)^T\boldsymbol{Qx}(k+i|k)+\boldsymbol{u}(k+i|k)^T\boldsymbol{Ru}(k+i|k))+\boldsymbol{x}(k+N)^T\boldsymbol{Fx}(k+N) \\&= \begin{bmatrix} \boldsymbol{x}(k|k)\\ \boldsymbol{x}(k+1|k)\\ \vdots \\ \boldsymbol{x}(k+N|k) \end{bmatrix}^T\begin{bmatrix} \boldsymbol{Q}\\ &\boldsymbol{Q}\\ &&\ddots\\ &&&\boldsymbol{F} \end{bmatrix}\begin{bmatrix} \boldsymbol{x}(k|k)\\ \boldsymbol{x}(k+1|k)\\ \vdots \\ \boldsymbol{x}(k+N|k) \end{bmatrix}+ \begin{bmatrix} \boldsymbol{u}(k|k)\\ \boldsymbol{u}(k+1|k)\\ \vdots \\ \boldsymbol{u}(k+N-1|k) \end{bmatrix}^T\begin{bmatrix} \boldsymbol{R}\\ &\boldsymbol{R}\\ &&\ddots\\ &&&\boldsymbol{R} \end{bmatrix}\begin{bmatrix} \boldsymbol{u}(k|k)\\ \boldsymbol{u}(k+1|k)\\ \vdots \\ \boldsymbol{u}(k+N-1|k) \end{bmatrix} \end{aligned}

\begin{aligned} \Rightarrow \boldsymbol{J}&=\boldsymbol{X}_{k}\bar{\boldsymbol{Q}}\boldsymbol{X}_{k}+\boldsymbol{U}_{k}^{T}\bar{\boldsymbol{R}}\boldsymbol{U}_{k} \\&=(\boldsymbol{Mx}_{k}+\boldsymbol{CU}_{k})^T\bar{\boldsymbol{Q}}(\boldsymbol{Mx}_{k}+\boldsymbol{CU}_{k})+\boldsymbol{U}_{k}^{T}\bar{\boldsymbol{R}}\boldsymbol{U}_{k}\\&=(\boldsymbol{x}_{k}^T\boldsymbol{M}^{T}+\boldsymbol{U}_{k}^{T}\boldsymbol{C}^T)\bar{\boldsymbol{Q}}(\boldsymbol{Mx}_{k}+\boldsymbol{CU}_{k})+\boldsymbol{U}_{k}^{T}\bar{\boldsymbol{R}}\boldsymbol{U}_{k} \\&=\boldsymbol{x}_{k}^T\boldsymbol{M}^{T}\bar{\boldsymbol{Q}}\boldsymbol{Mx}_{k}+\boldsymbol{x}_{k}^T\boldsymbol{M}^{T}\bar{\boldsymbol{Q}}\boldsymbol{CU}_{k}+\boldsymbol{U}_{k}^{T}\boldsymbol{C}^T\bar{\boldsymbol{Q}}\boldsymbol{Mx}_{k}+\boldsymbol{U}_{k}^{T}\boldsymbol{C}^T\bar{\boldsymbol{Q}}\boldsymbol{CU}_{k}+\boldsymbol{U}_{k}^{T}\bar{\boldsymbol{R}}\boldsymbol{U}_{k} \end{aligned}

         \begin{aligned} &=\boldsymbol{x}_{k}^T\boldsymbol{M}^{T}\bar{\boldsymbol{Q}}\boldsymbol{Mx}_{k}+2\boldsymbol{x}_{k}^T\boldsymbol{M}^T\bar{\boldsymbol{Q}}\boldsymbol{CU}_{k}+\boldsymbol{U}_{k}^{T}(\boldsymbol{C}^T\bar{\boldsymbol{Q}}\boldsymbol{C}+\bar{\boldsymbol{R}})\boldsymbol{U}_{k} \\&=\boldsymbol{x}_{k}^T\boldsymbol{Gx}_{k}+2\boldsymbol{x}_{k}^T\boldsymbol{EU}_{k}+\boldsymbol{U}_{k}^{T}\boldsymbol{HU}_{k} \end{aligned}

\begin{aligned} \boldsymbol{G}&=\boldsymbol{M}^{T}\bar{\boldsymbol{Q}}\boldsymbol{M} \\\boldsymbol{E}&=\boldsymbol{M}^T\bar{\boldsymbol{Q}}\boldsymbol{C} \\\boldsymbol{H}&=\boldsymbol{C}^T\bar{\boldsymbol{Q}}\boldsymbol{C}+\bar{\boldsymbol{R}} \end{aligned}

即代价函数\boldsymbol{J}可以转化为初始状态\boldsymbol{x}_{k}^T\boldsymbol{Gx}_{k}和二次规划形式2\boldsymbol{x}_{k}^T\boldsymbol{E}{\color{red}\boldsymbol{U}_{k}}+{\color{red}\boldsymbol{U}_{k}^{T}}\boldsymbol{H}{\color{red}\boldsymbol{U}_{k}}的结合。

之后便可以通过二次规划的方法求得最优解。

### MPC模型预测控制)概述 模型预测控制(Model Predictive Control, MPC)是一种先进的过程控制系统设计方法,它利用系统的动态模型,在线求解一个有限时域内的优化问题,得到当前时刻的最佳控制作用,并不断滚动前进。这种方法能够处理多变量耦合系统以及具有约束条件的过程控制问题[^1]。 #### 实现原理 MPC的核心在于通过建立被控对象的数学模型对未来一段时间内系统的输出进行预测。具体来说: - **建模阶段**:构建描述受控系统行为的动力学方程; - **预测机制**:基于上述动力学模型计算未来多个采样周期后的预期响应; - **优化算法**:针对给定的目标函数(如跟踪误差最小化),采用合适的最优化技术寻找最优输入序列; - **反馈校正**:考虑到现实世界中的不确定性因素影响,实施闭环调整策略以修正偏差。 ```matlab % 基本MPC框架伪代码示例 for k=0:N-1 % N为预测步数 u_opt(k)=solveOptimizationProblem(x(k),r); % 解决优化问题获取最佳u end applyControlSignal(u_opt(0)); % 应用第一个控制信号并等待下一个采样时间 ``` ### UOC (Unconstrained Optimal Control) 无约束最优控制(Unconstrained Optimal Control, UOC)是指不考虑任何物理边界或其他限制条件下寻求使性能指标达到极值的一类控制理论和技术。这类方法通常依赖于变分法、极大值原理等经典工具来推导必要的条件,并据此开发相应的数值求解器。 然而值得注意的是,在实际工程实践中很少会遇到完全没有约束的情况;因此,当提到UOC时往往指的是相对于特定应用场景下简化了某些复杂性的理想情况下的分析手段。 ### 应用场景实例 在光伏发电领域中,为了提高能量转换效率,可以运用带有预测功能的模糊PID控制器来进行最大功率点追踪(Maximum Power Point Tracking, MPPT)。此方案不仅提高了传统固定增益比例积分微分(PID)调节方式对于光照强度快速波动适应能力不足的问题,而且借助短期天气预报数据提前规划发电计划,从而更好地满足电网调度需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值