MPC模型预测控制及在Matlab中实现函数定义_mpc代价函数(1)

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

基于b站DR_CAN老师的MPC控制视频【MPC模型预测控制器】4_数学建模推导–Matlab代码详解_哔哩哔哩_bilibili的学习分享如下:

一、研究目的

在约束条件(物理限制)下达到最优的系统表现。

1.对于单输入单输出(SISO)系统:

\int _{0}{t}e{2}dt越小,跟踪能力越强;

\int _{0}{t}u{2}dt越小,输入越小,能耗越低。(用平方项来衡量e、u的绝对值大小)

2.代价函数Cost Function

J=\int _{0}{t}qe{2}+ru^{2}dt\rightarrow minJ,通过设计u,寻找最小的J的过程为最优化

其中q,r为调节参数

①若q>>r,则误差e对于设计系统的影响权重更大

②若r>>q,则系统设计更看重输入u

3.对于多输入多输出(MIMO)系统:

状态空间:\left{\begin{matrix} \frac{dX}{dt}=AX+BU \ Y=CX \end{matrix}\right.

代价函数:J=\int _{0}^{\infty }E{T}QE+U{T}RUdt

具体地,例如已知系统\frac{d}{dt}\begin{bmatrix} x_{1}\ x_{2} \end{bmatrix} =A\begin{bmatrix} x_{1}\ x_{2} \end{bmatrix}+B \begin{bmatrix} u_{1}\ u_{2} \end{bmatrix},     \begin{bmatrix} y_{1}\ y_{2} \end{bmatrix}= \begin{bmatrix} x_{1}\ x_{2} \end{bmatrix},系统的参考目标Refer=\begin{bmatrix} refer_{1}\ refer_{2} \end{bmatrix}= \begin{bmatrix} 0\ 0 \end{bmatrix},则误差矩阵E=\begin{bmatrix} e_{1}\ e_{2} \end{bmatrix}=\begin{bmatrix} y_{1}-r_{1}\ y_{2}-r_{2} \end{bmatrix}=\begin{bmatrix} x_{1}\ x_{2} \end{bmatrix}

E^{T}QE=\begin{bmatrix} x_{1}\ x_{2} \end{bmatrix}^{T}\begin{bmatrix} q_{1}& 0\ 0& q_{2} \end{bmatrix}\begin{bmatrix} x_{1}\ x_{2} \end{bmatrix} =q_{1}x_{1}{2}+q_{2}x_{2}{2}

U^{T}RU=\begin{bmatrix} u_{1}\ u_{2} \end{bmatrix}^{T}\begin{bmatrix} r_{1}& 0\ 0& r_{2} \end{bmatrix}\begin{bmatrix} u_{1}\ u_{2} \end{bmatrix} =r_{1}u_{1}{2}+r_{2}u_{2}{2}

其中,Q,R为调节矩阵,q_{1},q_{2},r_{1},r_{2}为系统最优时的权重系数。

二、基本概念

MPC(Model Predictive Control)模型预测控制:通过模型来预测系统在某一未来时间段内的表现来进行优化控制,多用于数位控制,用离散的状态空间表达,即X_{k+1}=AX_{k}+BU_{k}

实现步骤:

Step1:估计/测量读取当前k时刻的系统状态

Step2:基于u_{k},u_{k+1},...,u_{k+N}的选择进行最优化

代价函数:J=\sum_{k}{k+N-1}E_{k}{T}QE_{k}+U_{k}{T}RU_{k}+E_{N}{T}FE_{N}

其中,E_{k}为k时刻的误差矩阵,U_{k}为k时刻的输入矩阵,E_{N}为终端(N时刻)误差,Q,R为调节矩阵,F为终端误差权重矩阵

Step3:实施一步u_{k}(即从t=k运行到t=k+1即可)

下一次从t=k+1时重复Step1到3,重新预测u_{k+1},...,u_{k+N+1}的输入

即每一轮的预测都是预测区间和控制区间整体右移一个单位,整个过程是向右滚动的,

称为滚动优化控制(Receding Horizon Control),系统对控制器的计算能力要求高。

三、MPC最优化建模

(对于模型求解的原理是基于二次规划(Quadratic Programming)模型的求解,通过调用Matlab、Python等二次规划函数求解,下面的代码用到Matlab的quadprog函数)

1.如何建立二次规划模型

已知系统模型:X(k+1) = AX(k) + BU(k),输出Y=X,参考目标Refer=0

其中,X(k+1) 为k+1时刻的状态变量,X(k) 为k时刻的状态变量,U(k)为k时刻的输入变量。

在k时刻:

①设u(k+i | k)表示在k时刻预测的第k+i时刻的输入值,在预测区间N内,有u(k | k),u(k+1| k),...,u(k+N-1 | k),即U_{k}=\begin{bmatrix} u(k|k)\ u(k+1|k)\ ...\ u(k+N-1|k) \end{bmatrix}

同理,X_{k}=\begin{bmatrix} x(k|k)\ x(k+1|k)\ ...\ x(k+N|k) \end{bmatrix},x(k+i | k)表示在k时刻预测的第k+i时刻的系统状态

②误差E=Y-Refer=X-0=X

代价方程J=\sum_{i=0}{N-1}x(k+i|k){T}Qx(k+i|k)+u(k+i|k){T}Ru(k+i|k)+x(k+N){T}Fx(k+N)

J=\sum(误差加权和 + 输入加权和 + 终端误差项)

③初始条件(k时刻)  x(k|k) = x_{k}

预测的k+1时刻  x(k+1|k) = Ax(k|k)+Bu(k|k)=Ax_{k}+Bu(k|k)

预测的k+2时刻x(k+2|k) = Ax(k+1|k)+Bu(k+1|k)=Ax_{k}^{2}+ABu(k|k)+Bu(k+1|k)

预测的k+N时刻x(k+N|k) =Ax_{k}{N}+A{N-1}Bu(k|k)+...+Bu(k+N-1|k)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值