个人主页:研学社的博客
欢迎来到本博客❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
本文目录如下:
目录
1 概述
2 运行结果
3 Matlab代码实现
4 参考文献
本文 T 秒进行 N 次模拟,使用提出的使用多重拍摄的双模 NMPC 方案对倒立摆进行摆动和稳定。
分析了算法计算次数的性能,特别是“前向生成”、“DARE”、“矩阵”、“反演”和“QPsteps”所需的平均计算时间,以及平均“不受约束”和“约束”,所有这些都在结果部分报告。比较了两种不同的方法;标准多重射击NMPC,以及拟议的双模式多重射击NMPC。此外,如本文所述,考虑了两种不同的数值精度(浮点数和双精度数),以评估计算时间的好处。由此得出的结果与本文件表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_Comparisonlatex_preparation
%save('Condition_Numbers.mat','Condition_Numbers_Comparison');
save('results/Condition_Numbers.mat','Condition_Numbers_Comparison');
部分理论来源于网络,如有侵权请联系删除。
[1]Oscar Julian Gonzalez Villarreal (2019) Dual Mode Stable Prediction Models for Numerically Robust NMPC using Real-Time Iterations