👨🎓个人主页
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
💥1 概述
本文 T 秒进行 N 次模拟,使用提出的使用多重拍摄的双模 NMPC 方案对倒立摆进行摆动和稳定。
分析了算法计算次数的性能,特别是“前向生成”、“DARE”、“矩阵”、“反演”和“QPsteps”所需的平均计算时间,以及平均“不受约束”和“约束”,所有这些都在结果部分报告。比较了两种不同的方法;标准多重射击NMPC,以及拟议的双模式多重射击NMPC。此外,如本文所述,考虑了两种不同的数值精度(浮点数和双精度数),以评估计算时间的好处。由此得出的结果与本文件表2的结果有关。
基于实时迭代的数值鲁棒非线性模型预测控制(NMPC)是一种在控制系统中使用的先进控制技术。它通过使用数学模型来预测系统的未来行为,并根据这些预测结果来生成控制策略,以实现系统的稳定和优化。
在传统的NMPC中,通常使用优化算法来求解非线性优化问题,以生成最优控制策略。然而,在实际应用中,由于模型不确定性、测量误差等因素的存在,传统的NMPC可能会导致控制性能下降甚至系统不稳定。
为了解决这个问题,基于实时迭代的数值鲁棒NMPC方法被提出。该方法通过在每个控制周期内进行迭代优化,将实际系统的测量数据与模型预测进行比较,并根据误差来调整控制策略。这样可以使控制系统更加鲁棒,能够适应模型不确定性和测量误差的影响。
双模稳定预测模型是基于实时迭代的数值鲁棒NMPC的一种扩展方法。它将系统的动态行为建模为两个模式,分别是稳定模式和非稳定模式。在每个控制周期内,通过比较实际系统的测量数据与两个模式的预测结果,确定当前系统处于哪个模式,并相应地调整控制策略。
这种基于实时迭代的数值鲁棒NMPC双模稳定预测模型可以提高控制系统的鲁棒性和稳定性,使其能够在实际应用中更好地适应模型不确定性和测量误差的影响。它在许多领域中都有广泛的应用,如化工过程控制、机械控制、智能交通系统等。
一、NMPC的基本原理与局限性
非线性模型预测控制(NMPC)通过在线滚动优化实现动态系统的约束控制和性能优化。其核心流程为:在每个采样时刻,基于当前状态和系统模型预测未来状态轨迹,求解最优控制序列,并仅应用第一个控制输入,形成闭环控制。然而,NMPC存在以下固有局限性:
- 模型不确定性:实际系统与模型的参数偏差、外部扰动及未建模动态会导致预测失准,进而影响控制性能甚至引发不稳定。
- 计算复杂度:非凸优化问题的在线求解对计算资源要求极高,尤其在高维系统中难以满足实时性。
- 稳定性挑战:NMPC的稳定性需通过额外设计(如终端约束)保证,但理论证明复杂,实际应用中难以直接实现。
二、鲁棒NMPC的理论框架
为应对模型不确定性,鲁棒NMPC将不确定性纳入控制器设计,常见方法包括:
- min-max NMPC:针对有界不确定性集合,优化最坏情况下的性能指标,提供严格的鲁棒性保证,但计算复杂度较高。
- Tube-based NMPC:构建围绕名义轨迹的“管道”,确保实际轨迹在管道内,平衡计算效率与鲁棒性。
- Scenario-based NMPC:通过多情景优化覆盖可能的扰动模式,灵活处理复杂不确定性。
三、实时迭代优化方法
为降低计算负担,实时迭代(RTI)策略通过以下技术实现高效求解:
- 有限次迭代:在每个采样周期内仅执行有限次优化迭代,利用前一时刻的解作为初始猜测,加速收敛。
- Advanced Step NMPC (asNMPC):将部分计算(如雅可比矩阵更新)离线预处理,减少在线计算量。
- Gauss-Newton算法:适用于非线性最小二乘问题,具有快速收敛和数值稳定性优势。
四、双模稳定预测模型的设计
传统NMPC依赖单一模型,难以兼顾精度与效率。双模模型通过以下分工提升性能:
- 高精度模型:用于长时域状态预测,准确捕捉非线性动态特性(如复杂动力学方程)。
- 简化稳定模型:通常为线性或低阶非线性模型,用于设计终端约束集(如Lyapunov函数),确保闭环稳定性。
五、实时迭代框架下的双模模型实现
结合实时迭代与双模模型的具体步骤包括:
- 模型构建
- 高精度模型:如基于物理方程或数据驱动的非线性模型。
- 简化模型:通过线性化或模型降阶(如平衡截断法)生成。
- 鲁棒控制设计
- 采用Tube-based或Scenario-based方法,将不确定性范围嵌入优化问题。
- 终端约束设计
- 基于简化模型分析稳定性,设计终端代价函数和约束集(如收缩约束)。
- 实时迭代优化
- 结合RTI框架,每次迭代中先用高精度模型预测,再通过简化模型优化控制输入。
- 反馈校正
- 利用实际状态与预测偏差在线修正模型参数或扰动估计,增强鲁棒性。
六、稳定性分析方法
双模模型的稳定性通过以下方法保证:
- Lyapunov函数:基于简化模型设计Lyapunov函数,证明闭环系统的渐近稳定性。
- 收缩分析:通过终端约束集确保状态轨迹收敛至平衡点邻域。
- 参数敏感性分析:评估模型参数摄动对稳定性的影响,验证鲁棒性。
七、应用案例与性能验证
- 倒立摆控制:采用双模NMPC实现摆动与平衡控制,对比实验表明计算时间减少30%以上,同时保持鲁棒性。
- 风机攻角优化:结合Gauss-Newton实时迭代算法,动态调整参数以降低叶片应力,仿真显示应力波动减少45%。
八、研究趋势与挑战
- 分布式NMPC:在合作控制场景中扩展实时迭代框架,如多智能体系统的分散式优化。
- 执行时间认证:通过Riccati迭代和牛顿法保证算法的最坏情况执行时间,适用于嵌入式系统。
- 数据驱动模型:融合机器学习(如LSTM)提升高精度模型的预测能力。
九、结论
基于实时迭代的数值鲁棒NMPC双模模型通过分层建模(高精度预测+简化稳定分析)和滚动优化加速(RTI策略)有效解决了传统NMPC的稳定性与实时性矛盾。未来研究可进一步探索以下方向:
- 自适应终端约束:根据实时工况动态调整约束集边界。
- 硬件加速:利用GPU或FPGA实现并行化求解,满足毫秒级实时需求。
- 混合鲁棒策略:结合Tube-based与Scenario-based方法处理多源不确定性。
📚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');
🌈3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]谢树光.非线性模型预测控制(NMPC)在微型飞行器自适应控制中的应用[J]. 2002.
[2]马乐乐.非线性迭代学习模型预测控制研究[J].[2023-09-19].
[3]马乐乐,刘向杰.变参考轨迹下的鲁棒迭代学习模型预测控制[J].自动化学报, 2019, 45(10).