【DR_CAN-MPC学习笔记】2.最优化数学建模推导

简介: 【DR_CAN-MPC学习笔记】2.最优化数学建模推导

1.最优化的方法之一:二次规划 Quadratic Programming


一般形式:




(包含两部分:——二次型,——线性)


若 𝑄 为对角矩阵,即   ,则转为最小二乘问题




如想了解更多有关二次规划的问题,可以参考这篇博客:


二次规划问题和MATLAB函数quadprog的使用


2.最优化建模数学推导


2.1系统的状态空间表达式


一个离散系统的状态方程:




其中  为状态向量, 为输入向量。


在 k 时刻:



 表示在k时刻预测 k 时刻的系统状态,


表示在k时刻预测 k+1 时刻的系统状态,


...


表示在k时刻预测 k+N 时刻的系统状态。


表示在k时刻预测 k 时刻的输入,


表示在k时刻预测 k+1 时刻的输入,


...


表示在k时刻预测 k+N 时刻的输入。


即前面的 k 表示预测对象,后面的 k 表示在 k 时刻的预测。


为简化分析,假设系统输出方程:  ,参考值 ,则误差


2.2代价函数


依据上一篇博客给出的代价函数表达式



可得:



即:代价函数 =  误差加权和 +  输入加权和 +  终端误差。


其中 为权重系数矩阵且均为对角矩阵,最优化的目标是最小化代价,即 .

的表达式中有两个变量(输入  和状态 ),相比于二次规划一般形式多了一个变量。由于控制目标为控制输入,因此要消去变量 .


2.3MPC数学模型推导


(个人理解:MPC目标为实现最优,也就是代价最小,数学形式即为代价函数的最小化,因此MPC公式推导主要是代价函数的推导和化简)


将状态变量用输入变量表示:


为初始条件



将上式整理后可得:





注意  为向量, 为初始状态。 中的0代表零矩阵,而非数值0。




将代价函数展开:







将  代入上式,消去变量  并化简:



因为  是一个 1×1 矩阵( 和  均为 n×1 矩阵, 和  均为 n×n 矩阵),因此实际上是一个数(至于为什么,可以参考线性代数中矩阵相乘相关内容),则  .



由于矩阵  和  互为转置且均为数值,则数值相等,即:







上式就是最终推导结果,符合二次规划的一般形式。其中  为线性部分, 为二次型部分,  表示初始状态,不影响最优化。


以上就是MPC数学模型推导过程,利用这个模型可以对系统进行最优化和模型预测控制设计。


(码了那么多公式,对 Latex 也越来越熟了...)


相关文章
|
Windows
mathtype7产品激活密钥最新
MathType是强大的数学公式编辑器,MathType公式编辑器可以说是专门为理科生准备的软件,它可以帮助用户快速的在各种文档中插入符号和公式,不论是简单的公式和符号,还是复杂的都可以非常轻松的输入,并且在与office文档结合使用时,表现的非常完美,是非常好的一款软件,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号,可用在编辑数学试卷、书籍、报刊、论文、幻灯演示等方面,是编辑数学资料的得力工具。
53988 0
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
23788 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
|
数据挖掘 Python
时间序列分析中的互相关与相干性分析:前导-滞后关系的理论基础与实际应用
时间序列数据在现代数据分析中广泛应用,从金融市场到生物医学领域。本文重点介绍两种分析工具:互相关和相干性分析。互相关用于量化两个时间序列的时域关系,揭示前导-滞后关系;相干性分析则评估信号在频率域的相关性,适用于脑电图等研究。通过实际案例和Python代码示例,展示了这两种方法的应用价值。
1317 8
时间序列分析中的互相关与相干性分析:前导-滞后关系的理论基础与实际应用
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
1408 13
|
机器学习/深度学习 自然语言处理 PyTorch
Transformers入门指南:从零开始理解Transformer模型
【10月更文挑战第29天】作为一名机器学习爱好者,我深知在自然语言处理(NLP)领域,Transformer模型的重要性。自从2017年Google的研究团队提出Transformer以来,它迅速成为NLP领域的主流模型,广泛应用于机器翻译、文本生成、情感分析等多个任务。本文旨在为初学者提供一个全面的Transformers入门指南,介绍Transformer模型的基本概念、结构组成及其相对于传统RNN和CNN模型的优势。
13181 1
|
机器学习/深度学习 资源调度 自然语言处理
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
19182 0
|
机器学习/深度学习
【机器学习】如何判断函数凸或非凸?(面试回答)
文章介绍了如何判断函数是凸函数还是非凸函数,包括凸函数的定义、几何意义、判定方法(一元函数通过二阶导数判断,多元函数通过Hessian矩阵的正定性判断),以及凸优化的概念和一些经典的凸优化问题。
1514 1
【机器学习】如何判断函数凸或非凸?(面试回答)
|
编译器 开发工具 C语言
vscode安装+配置+使用+调试【保姆级教程】
vscode安装+配置+使用+调试【保姆级教程】
59986 9
|
IDE 数据可视化 数据挖掘
Jupyter Notebook使用教程——从Anaconda环境构建到Markdown、LaTex语法介绍
Jupyter Notebook使用教程——从Anaconda环境构建到Markdown、LaTex语法介绍
4832 3