基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)

简介: 基于实时迭代的数值鲁棒NMPC双模稳定预测模型(Matlab代码实现)

💥1 概述

本文 T 秒进行 N 次模拟,使用提出的使用多重拍摄的双模 NMPC 方案对倒立摆进行摆动和稳定。


分析了算法计算次数的性能,特别是“前向生成”、“DARE”、“矩阵”、“反演”和“QPsteps”所需的平均计算时间,以及平均“不受约束”和“约束”,所有这些都在结果部分报告。比较了两种不同的方法;标准多重射击NMPC,以及拟议的双模式多重射击NMPC。此外,如本文所述,考虑了两种不同的数值精度(浮点数和双精度数),以评估计算时间的好处。由此得出的结果与本文件表2的结果有关。


📚2 运行结果

%Plot
t=[0:kT-1]*dt;
fig=4;
figure(fig);
subplot(4,1,1);
plot(t(1:end-1),Condition_Numbers(1,:),'-b','LineWidth',1);
hold on
plot(t(1:end-1),Condition_Numbers(2,:),'--r','LineWidth',1);
ylabel('Condition Number of E');
title('Inverted Pendulum Simulation');
lim=axis;
legend('DM NMPC','STD NMPC');
axis([lim(1:2),0,50]);
set(gca,'xtick',[]);
subplot(4,1,2);
plot(t,X(4,:),'-b','LineWidth',1);
hold on
% plot(t,X2(4,:),'--r','LineWidth',1);
hold off
ylabel('Angles (rads)');
legend('\theta');
set(gca,'xtick',[]);
subplot(4,1,3);
plot(t,X(3,:),'-b','LineWidth',1);
hold on
plot(t,Xmax*ones(length(t),1),'-r','LineWidth',2);
plot(t,Xmin*ones(length(t),1),'-r','LineWidth',2);
% plot(t,X2(3,:),'--r','LineWidth',1);
hold off
legend('p','p_{max}/p_{min}');
ylabel('Positions (m)');
set(gca,'xtick',[]);
subplot(4,1,4);
plot(t,U,'-b','LineWidth',1);
hold on
plot(t,Umax*ones(length(t),1),'-r','LineWidth',2);
plot(t,Umin*ones(length(t),1),'-r','LineWidth',2);
% plot(t,U2,'--r','LineWidth',1);
hold off
legend('u','u_{max}/u_{min}');
ylabel('Inputs');
xlabel('Time (s)');
%Compare
Condition_Numbers_Comparison(index,1)=max(Condition_Numbers(1,:));
Condition_Numbers_Comparison(index,2)=max(Condition_Numbers(2,:));
%Save Figure
%filename=sprintf('Condition_Number_Response_Np%d.jpg',Np);
filename=sprintf('results/Condition_Number_Response_Np%d.fig',Np);
saveas(fig,filename);
close all
end
end
% Condition_Numbers_Comparison
latex_preparation
%save('Condition_Numbers.mat','Condition_Numbers_Comparison');
save('results/Condition_Numbers.mat','Condition_Numbers_Comparison');

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。


[1]Oscar Julian Gonzalez Villarreal (2019) Dual Mode Stable Prediction Models for Numerically Robust NMPC using Real-Time Iterations


相关文章
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
2月前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
213 13
|
2月前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
3月前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
4月前
|
机器学习/深度学习 算法 数据处理
基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真
本项目基于最小二乘法,利用Matlab对太阳黑子活动进行模型参数辨识和预测。通过分析过去288年的观测数据,研究其11年周期规律,实现对太阳黑子活动周期性的准确建模与未来趋势预测。适用于MATLAB2022a版本。
|
4月前
|
算法
基于Kronig-Penney能带模型的MATLAB求解与仿真
基于Kronig-Penney能带模型的MATLAB求解与仿真,利用MATLAB的多种数学工具简化了模型分析计算过程。该模型通过一维周期势垒描述晶体中电子运动特性,揭示了能带结构的基本特征,对于半导体物理研究具有重要价值。示例代码展示了如何使用MATLAB进行模型求解和图形绘制。
|
6月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
272 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
6月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
162 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
6月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
138 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码

热门文章

最新文章