【MPC】使用输入增量实现了不同的状态空间MPC公式研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

💥1 概述

使用输入增量实现不同状态空间MPC公式的研究

摘要:本文聚焦于使用输入增量的状态空间模型预测控制(MPC)在控制系统中的应用。首先阐述了传统状态空间MPC存在的问题,进而引出使用输入增量的优势,包括避免逆矩阵计算和提高通用性。详细推导了基于输入增量的状态空间MPC公式,并通过函数和Simulink块展示了其在控制系统中的具体实现方式。通过仿真实验验证了该方法的有效性,结果表明使用输入增量的状态空间MPC能够实现更加高效和通用的控制系统,为工程项目提供了更多的可能性和灵活性。

关键词:模型预测控制;状态空间;输入增量;控制系统

一、引言

模型预测控制(MPC)作为一种先进的控制策略,在工业控制领域得到了广泛的应用。状态空间模型是描述系统动态特性的重要工具,基于状态空间模型的MPC能够直接利用系统的状态信息进行控制决策,具有诸多优点。然而,传统的状态空间MPC在实现过程中往往需要进行逆矩阵的计算,这不仅增加了计算复杂度,而且在某些情况下可能导致数值不稳定问题。此外,传统方法的通用性也受到一定限制,难以适应不同类型系统的控制需求。

输入增量在MPC中的应用为解决上述问题提供了新的思路。通过引入输入增量,可以避免直接对矩阵求逆,从而降低计算复杂度并提高数值稳定性。同时,使用输入增量的状态空间MPC公式具有更强的通用性,能够更灵活地应用于各种不同的控制系统。本文将深入研究使用输入增量实现不同状态空间MPC公式的方法,并通过函数和Simulink块展示其具体实现过程,为实际工程应用提供参考。

二、传统状态空间MPC回顾

2.1 状态空间模型

考虑一个线性时不变系统,其状态空间模型可以表示为:

2.2 传统状态空间MPC公式

通过递推状态空间方程,可以得到预测状态与当前状态和预测输入之间的关系:

优化问题的目标函数通常定义为预测输出与参考轨迹之间的误差平方和以及输入变化量的平方和,即:

将预测输出 y(k+i∣k) 用状态和输入表示,并将预测状态关系代入目标函数,可以将优化问题转化为一个二次规划问题,通过求解该问题得到最优控制输入序列,并取第一个元素作为当前时刻的控制输入。

然而,传统方法在求解优化问题时,需要对矩阵进行求逆等运算,这在计算上较为复杂,并且可能存在数值不稳定的问题。

三、使用输入增量的状态空间MPC公式推导

3.1 输入增量定义

3.2 预测状态与输入增量的关系

同样考虑预测时域 Np​ 和控制时域 Nc​,定义预测状态序列 X 和预测输入增量序列 ΔU=

3.3 优化问题构建

目标函数仍然定义为预测输出与参考轨迹之间的误差平方和以及输入增量变化量的平方和(这里可以进一步考虑输入增量变化量的约束以增强控制的平滑性,为简化推导,暂不考虑)。预测输出 y(k+i∣k) 可以表示为:

这是一个关于输入增量序列 ΔU 的二次规划问题,与传统方法相比,避免了直接对矩阵求逆,降低了计算复杂度。

3.4 优化问题求解

将目标函数展开并整理成标准的二次规划形式:

四、使用输入增量的状态空间MPC在m - function中的实现

4.1 m - function框架设计

设计一个m - function来实现使用输入增量的状态空间MPC算法。该函数的主要输入参数包括系统矩阵 A、B、C、D,加权矩阵 Q 和 R,预测时域 Np​,控制时域 Nc​,当前状态 x(k),上一时刻输入 u(k−1) 以及参考轨迹 r。输出为当前时刻的控制输入 u(k)。

4.2 具体实现步骤

  1. 初始化参数:根据输入参数初始化系统矩阵、加权矩阵、预测时域和控制时域等。
  2. 构建预测矩阵:根据推导的公式计算 F~、Φ~ 和 G~。
  3. 构建目标函数矩阵和向量:根据预测状态与输入增量的关系以及目标函数定义,计算二次规划问题中的矩阵 H 和向量 f。
  4. 求解二次规划问题:使用Matlab中的二次规划求解器(如quadprog函数)求解关于输入增量序列 ΔU 的优化问题。
  5. 计算当前控制输入:从最优输入增量序列中取出第一个元素,结合上一时刻输入计算当前时刻的控制输入 u(k)。

4.3 示例代码

matlab

1function u = input_increment_MPC(A, B, C, D, Q, R, Np, Nc, x, u_prev, r) 2 % 构建预测矩阵 3 [F_tilde, Phi_tilde, G_tilde] = build_prediction_matrices(A, B, Np, Nc); 4 5 % 构建目标函数矩阵和向量 6 [H, f] = build_cost_function(A, B, C, D, Q, R, Np, Nc, x, u_prev, r, F_tilde, Phi_tilde, G_tilde); 7 8 % 求解二次规划问题 9 options = optimoptions('quadprog', 'Display', 'off'); 10 DeltaU_opt = quadprog(H, f, [], [], [], [], [], [], [], options); 11 12 % 计算当前控制输入 13 u = u_prev + DeltaU_opt(1); 14end 15 16function [F_tilde, Phi_tilde, G_tilde] = build_prediction_matrices(A, B, Np, Nc) 17 % 此处省略具体构建过程,根据推导公式计算F_tilde, Phi_tilde, G_tilde 18 % 示例代码框架 19 n = size(A, 1); 20 m = size(B, 2); 21 22 F_tilde = zeros(n * Np, n); 23 Phi_tilde = zeros(n * Np, m * Nc); 24 G_tilde = zeros(n * Np, m); 25 26 % 具体计算过程... 27end 28 29function [H, f] = build_cost_function(A, B, C, D, Q, R, Np, Nc, x, u_prev, r, F_tilde, Phi_tilde, G_tilde) 30 % 此处省略具体构建过程,根据推导公式计算H和f 31 % 示例代码框架 32 n = size(A, 1); 33 p = size(C, 1); 34 m = size(B, 2); 35 36 % 初始化H和f 37 H = zeros(m * Nc, m * Nc); 38 f = zeros(m * Nc, 1); 39 40 % 具体计算过程... 41end

五、使用输入增量的状态空间MPC在Simulink中的实现

5.1 Simulink模型搭建思路

在Simulink中实现使用输入增量的状态空间MPC,可以通过自定义S - function块或者使用基本模块搭建算法逻辑。这里采用基本模块搭建的方式,主要思路是将MPC算法的各个步骤分解为不同的模块,包括状态预测模块、目标函数计算模块、优化求解模块和控制输入生成模块。

5.2 具体模块实现

  1. 状态预测模块:根据输入增量的状态空间方程,使用矩阵运算模块(如Matrix Multiply模块)实现预测状态的计算。输入为当前状态 x(k)、上一时刻输入 u(k−1) 和预测输入增量序列 ΔU,输出为预测状态序列 X。
  2. 目标函数计算模块:根据预测状态和参考轨迹,使用矩阵运算和加法模块计算目标函数中的误差项和输入增量项,然后进行加权求和得到目标函数值。
  3. 优化求解模块:由于Simulink中没有直接的二次规划求解模块,可以通过编写M文件函数,并使用MATLAB Function模块调用该函数来实现二次规划问题的求解。输入为目标函数矩阵 H 和向量 f,输出为最优输入增量序列 ΔU∗。
  4. 控制输入生成模块:从最优输入增量序列中取出第一个元素,与上一时刻输入相加得到当前时刻的控制输入 u(k)。

5.3 仿真示例

以一个简单的二阶系统为例进行仿真,系统矩阵 A=[01;−1−2],B=[0;1],C=[10],D=0。设置预测时域 Np​=10,控制时域 Nc​=5,加权矩阵 Q=diag([10.1]),R=0.01。参考轨迹为阶跃信号。通过Simulink仿真可以得到系统的响应曲线,结果表明使用输入增量的状态空间MPC能够有效地跟踪参考轨迹,实现良好的控制效果。

六、结论

本文深入研究了使用输入增量实现不同状态空间MPC公式的方法。通过推导基于输入增量的状态空间MPC公式,避免了传统方法中逆矩阵的计算,降低了计算复杂度并提高了数值稳定性。同时,该方法具有更强的通用性,能够适应不同类型系统的控制需求。通过在m - function和Simulink中的实现,展示了该方法的实际应用过程。仿真实验结果表明,使用输入增量的状态空间MPC能够实现更加高效和通用的控制系统,为工程项目提供了更多的可能性和灵活性。未来的研究可以进一步考虑输入增量变化量的约束以及非线性系统的应用等问题。

📚2 运行结果

部分代码:

%% Simulation
% 150 seconds (1500 sampling intervals) simulation is conducted with
% several setpoint changes and random cooling water temperature changes
% within positive and negative 1 degree.
% Simulation length and variables for results
N=1500;
x0=zeros(6,1);
Y=zeros(N,2);
U=zeros(N,2);
% Predefined reference
T=zeros(N,2);
T(10:N,1)=1;
T(351:N,1)=3;
T(600:N,1)=5;
T(1100:N,1)=3;
T(100:N,2)=2;
T(451:N,2)=1;
T(700:N,2)=4;
T(1200:N,2)=2;
% Simulation
%%
for k=1:N
% Process disturbances
w=Bd*(rand(2,1)-0.5)*2;
% Measurements noise
v=0.01*randn(2,1);
% actual measurement
y=C*x0+v;
% online controller
u=ssmpc(y,T(k:end,:)');
% plant update
x0=A*x0+Bu*u+w;
% save results
Y(k,:)=y';
U(k,:)=u';
end

%% Results
% The simulation results are summarized in two sub-plots.
t=(0:N-1)*0.1;
subplot(211)
plot(t,Y,t,T,'--','linewidth',2)
title('output and setpoint')
ylabel('temp, C^\circ')
legend('T_1','T_2','T_1 Ref','T_2 Ref','location','south','Orientation','horizontal')
subplot(212)
stairs(t,U,'linewidth',2)
legend('u_1','u_2','location','southeast')
title('input')
ylabel('flow rate, m^3/s')
xlabel('time, s')

🎉3参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]周锐森,冯友兵.基于状态空间MPC的无人机无人车联合运动控制[J].计算机与数字工程, 2021, 049(011):2383-2390.

[2]周锐森,冯友兵.基于状态空间MPC的无人机无人车联合运动控制[J].计算机与数字工程, 2021, 49(11):8.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1191485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

价值分配革命:洋酒商高增长背后的底层逻辑

在酒类行业普遍面临增长压力的背景下,福建某酒商在半年内实现显著盈利的表现值得关注。这一案例并非依靠大规模营销投入,而是通过调整价值分配方式,探索可持续的生态系统构建路径。一、行业面临的现实挑战获客成本结构性上升 电商平台流量分配…

2026 年最新版 Java 面试题及答案整理(纯干货,超详细)

程序员一步入中年,不知不觉便会被铺天盖地的“危机感”上身,曾经的那个少年已经不在,时间就是这样公平。就算你能发明 Java 语言,随着时间的推移,你注定还是要成为慢慢变蔫的茄子,缓缓变黑的葡萄。 看着秋…

救命!这款教学软件承包我所有课务✨

谁懂啊老师们😭 线上课卡到怀疑人生?学生走神摸鱼管不住?改作业改到深夜崩溃?课程被偷录盗卖更是心梗暴击!直到挖到魔果云课这个宝藏,直接解锁轻松教学模式,用过的老师都在疯狂建议✅✅直播丝滑…

“全栈模式”必然导致“质量雪崩”!和个人水平关系不大~

在经济下行的大背景下,越来越多的中小型企业开始放弃“前后端分离”的人员配置,开始采用“全栈式开发”的模式来进行研发费用的节省。 这方法真那么好吗? 作为一名从“全栈开发”自我阉割成“前端开发”的逆行研发,我有很多话想说…

ARM架构学习路径规划:新手入门必看建议

ARM架构学习路径规划:从零开始的实战指南 你是不是也曾面对“ARM架构”这个词感到既熟悉又陌生?它无处不在——你的手机、智能手表、路由器,甚至家里的智能灯泡里都有它的身影。但当你真正想深入学习时,却发现资料庞杂、门槛高、…

多波形输出发生器设计:三种波形切换方案

多波形输出发生器设计:三种波形切换方案的实战解析在电子系统开发中,信号源的设计从来都不是一件“简单的事”。尤其是当我们需要一个既能输出正弦波、又能随时切到方波或三角波的多波形发生器时,问题就从“能不能出波”变成了“怎么切得快、…

NX二次开发驱动PLC仿真:项目应用详解

NX二次开发驱动PLC仿真:从原理到实战的深度解析在智能制造浪潮席卷全球的今天,产线设计早已不再局限于“画完图纸等设备”的传统模式。越来越多的企业开始将数字孪生和虚拟调试作为新项目的标准流程。这其中,一个看似低调却极具威力的技术组合…

PEEK取代金属:精密注塑齿轮蜗杆驱动机器人灵巧手技术与成本革新

当人形机器人灵巧手从实验室走向千行百业,轻量化、低成本、低噪音的核心传动部件成为技术普及的关键瓶颈。传统金属齿轮蜗杆虽然性能可靠,却因重量大、加工复杂、摩擦噪音需求高等限制难以突破,而一场聚焦于灵巧手精密齿轮蜗杆传动部件革新的…

译码器学习

https://mp.weixin.qq.com/s/rhFpVGbRpzpjevP7I4a7oQhttps://mp.weixin.qq.com/s/rhFpVGbRpzpjevP7I4a7oQ 进制转换 十进制→二进制 利用“短除法”来列出这一计算过程 2 | 46 -> 0 ^ 低位---- |2 | 23 -> 1 |---- …

硬件电路电源设计:快速理解隔离与非隔离电源区别

硬件电路电源设计:搞懂隔离与非隔离,不再选错方案你有没有遇到过这样的问题——系统莫名其妙重启、传感器信号跳动剧烈、甚至设备外壳“带电”?很多时候,这些看似玄学的故障,根源就藏在电源设计里。而最关键的决策之一…

iverilog仿真入门必看:搭建第一个Verilog测试平台

从零开始:用iverilog搭建你的第一个Verilog测试平台 你有没有过这样的经历?写完一段Verilog代码,烧进FPGA却发现功能不对,信号飞了、时序乱了,查来查去不知道问题出在哪。别急——在动手做硬件之前, 先仿…

RS232接口引脚定义与电平匹配问题图解说明

RS232接口引脚定义与电平匹配:从踩坑到精通的实战指南你有没有遇到过这种情况?MCU代码写得一丝不苟,串口配置也反复核对,可设备就是“哑巴”——收不到数据、发出去的数据全是乱码,甚至一通电,MAX232芯片就…

智能物流系统架构的AI推理优化:架构师的6大策略

智能物流系统架构的AI推理优化:架构师的6大实战策略 ——从延迟优化到成本控制,全面提升物流AI效能 摘要/引言 在智能物流系统中,AI推理是驱动决策的“引擎”——从仓储机器人的实时避障、分拣系统的物品识别,到运输路径的动态…

职称小论文撰写遇上AI:从焦虑到从容的破局指南

去年冬天,我窝在书房里对着电脑屏幕发愁——职称评审截止日期只剩两周,小论文却卡在“如何降重”的环节。窗外飘着细雪,键盘敲击声混着暖气片的嗡嗡声,屏幕上重复率38%的红色数字刺得眼睛发酸。直到朋友推荐了PaperPass论文查重&a…

IL-4/IL-4R信号通路:过敏性炎症的核心驱动与治疗靶点

一、IL-4/IL-4R通路的生物学基础 白细胞介素-4及其受体是调控2型免疫反应的关键分子。IL-4R是一种属于红细胞生成素受体超家族的跨膜蛋白,其功能复合物的形成依赖于与IL-4的结合。IL-4主要通过与IL-4受体α亚基的高亲和力结合,继而招募不同的共亚基&…

麻了!00后在西二旗当街发简历推销自己?

小伙伴们好,我是小嬛。专注于人工智能、计算机视觉领域相关分享研究。【目标检测、图像分类、图像分割、目标跟踪等项目都可做,相关领域论文辅导也可以找我;需要的可联系(备注来意)】前两天在某音刷到一个视频&#xf…

AD画PCB低噪声电源分区设计深度剖析

用AD画PCB如何搞定低噪声电源设计?一位老工程师的实战笔记最近在调试一块高精度数据采集板时,又碰到了那个熟悉的老对手——ADC采样值跳动、信噪比始终上不去。示波器一抓电源轨,果然!3.3V模拟供电上爬满了高频毛刺,像…

在虚拟世界造车:数字孪生如何加速车型投产与工艺迭代?

在奥迪一汽智能生态工厂,工人们见证了一个奇特的景象:工厂在钢架林立之前,其数字孪生体已在云端历经了无数次的模拟运行与优化。机械九院的工程师们则早已习惯,在实体生产线安装前,于虚拟空间中验证每一次工艺布局。汽…

【AI内卷】还在为RAG评估头疼?四大神器助你弯道超车,小白也能轻松玩转大模型!

本文详解RAG评估四大框架:Self-RAG通过反思Token控制检索和评估;Corrective RAG使用评估器判断文档质量并触发不同动作;RAGAs提供无参考文本的三维度评估;MultiCONIR针对多条件信息检索的评估基准。这些技术帮助开发者精准定位RAG…

IL-6/IL-6R信号通路与细胞因子风暴:病理机制与靶向干预

一、细胞因子风暴:免疫平衡失调的病理核心 细胞因子风暴是一种严重的全身性免疫失调综合征。其本质在于,当病原体感染等强烈刺激发生时,机体免疫系统被过度激活,导致促炎与抗炎反应之间的精细平衡被破坏。这种失调引发免疫细胞异…