欢迎来到本博客❤️❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码实现
四旋翼无人机具有垂直起降、自由悬停、飞行灵活等特点,现已被应用于高空航拍、资源勘探、抢险救灾等多个领域,具有良好的发展前景。但因其多输入、欠驱动、强耦合的特性,在复杂环境下,抗干扰的高精度姿态控制系统设计一直是理论研究的难题。
Elkhatem等[1]提出了一种鲁棒线性二次型(linear quadratic regulator, LQR)控制器和LQR—比例积分(proportional integral, P⑴)控制器用于无人机的位置姿态跟踪,两种控制策略都能使四转子稳定在期望的位置和姿态,具有更好的性能和鲁棒性。杨旭等^提出了一种自耦比例积分微分(proportional-integral-derivative,PID)控制器,用于四旋翼无人机的姿态控制,在Matlab/Simulink中通过仿真实验验证了所提出算法的有效性,姿态控制超调量最好时可控制在6%左右。Phinguyen等[3针对外界干扰情况下的滑模控制问题,提出了一种基于神经网络的自适应滑模控制器用于无人机的姿态控制,所提出控制方法性能良好,有很强的抗干扰能力和跟踪性能。
动态:
部分代码:
function [u,trajDB]=DynamicWindowApproach(x,model,goal,evalParam,ob,R)% DWA参数输入
% Dynamic Window [vmin,vmax,wmin,wmax]
Vr=CalcDynamicWindow(x,model);
% 评价函数的计算
[evalDB,trajDB]=Evaluation(x,Vr,goal,ob,R,model,evalParam);
if isempty(evalDB)
disp('Initial Error!!');
u=[0;0];return;
end
% 各评价函数正则化
evalDB=NormalizeEval(evalDB);
% 最终评价函数的计算
feval=[];
for id=1:length(evalDB(:,1))
feval=[feval;evalParam(1:3)*evalDB(id,3:5)'];
end
evalDB=[evalDB feval];
[maxv,ind]=max(feval);% 最优评价函数
u=evalDB(ind,1:2)';%
[1]梁子斌 ,李擎 .用于四旋翼无人机姿态的改进遗传算法优化LQR控制[J].北京信息科技大学学报(自然科学版),2022,37(04):8-15.DOI:10.16508/j.cnki.11-5866/n.2022.04.002.