✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
个人主页:Matlab科研工作室
个人信条:格物致知。
更多Matlab仿真内容点击
智能优化算法 神经网络预测 雷达通信 无线传感器
信号处理 图像处理 路径规划 元胞自动机 无人机 电力系统
本论文旨在解决无人机发动机熄火问题,在该问题中无人机沿每个点进行应急检查。每一次检查都会模拟一个发动机故障,之后无人机被迫进入稳定下滑,必须能够到达在分配的时间内预定义的安全区。固有的困难在于以计算有效的方式处理非线性时间检查。这是因为高精度要求精细的路径离散化,这导致正在执行大量检查。解决方案还必须包含非完整性动力学、风扰动和防撞。
这个问题的重要性不能低估,因为民用无人机的需求随着美国联邦航空局计划整合无人机,预计未来10年该行业将有所增长进入国家空域系统。这显然是无人机经济产业的福音,然而,更加拥挤的空域会直接导致更严重的碰撞如果处理不当,可能会导致发动机故障。本论文利用最近开发的基于采样的规划器Fast行军树(FMT)。称为FMT的规范方法的扩展∗用作框架为了提高算法的效率,它建立在使用两种新颖的算法扩展:“路径重建”和“障碍聚类”算法。MATLAB仿真用于验证单个组件和核心算法在不同难度的问题情况下。结果表明,这两种算法扩展都显著提高了计算运行时间,而不会增加最终结果的路径成本。组合算法显示平均产率为76%在高复杂度环境下,对Brute-Force方法的运行时改进,以及对静态和变化的风场都具有鲁棒性。
function projection = calculate_projection(node1,node2,wind_struct)
path = node2-node1;
type = wind_struct.type;
path_magnitude = norm(path);
if path_magnitude == 0
projection = 0;
return;
end
if strcmp(type,'const')
wind = wind_struct.vector;
wind_magnitude = norm(wind);
if wind_magnitude == 0
projection = 0;
return;
end
cos_theta = dot(path,wind) / (path_magnitude * wind_magnitude);
projection = wind_magnitude * cos_theta;
else
wind1 = [1,1];
wind1_magnitude = norm(wind1);
wind2 = [1,1.5];
wind2_magnitude = norm(wind2);
% DEFINE GRIDS
% GRID 1: 300
% GRID 2: 300
% if ((node1(1)<300 && node2(1)<300) || (node1(2)<400 && node2(2)<400) || ...
% (node1(1)>500 && node2(1)>500) || (node1(2)>700 && node2(2)>700))
% display('not in grid');
% projection = 0;
% return;
% end
%
% if node2(2) < 550
% cos_theta = dot(path,wind1) / (path_magnitude * wind1_magnitude);
% projection = wind1_magnitude * cos_theta;
% else
% cos_theta = dot(path,wind2) / (path_magnitude * wind2_magnitude);
% projection = wind2_magnitude * cos_theta;
% end
if node2(2) > 600
cos_theta = dot(path,wind1) / (path_magnitude * wind1_magnitude);
projection = wind1_magnitude * cos_theta;
else
projection = 0;
end
end
end
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料