基于改进模拟退火(HDSA)的飞行器紧急着陆时的轨迹平面轨迹规划的最优方案研究(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客   

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

作为一种远程精确打击武器,高超声速滑翔飞行器备受世界各军事强国的关注,单个飞行器的轨迹优化问题一直是各国研究的热点和难点[4] 。轨迹优化技术是飞行器总体设计过程中的一项关键技术,在初始任务阶段,主要用于分析飞行器的弹道特征、机动能力等。
从单纯的数学本质上讲,轨迹优化问题实际上是一个需要求解泛函极值的最优控制问题,求解过程中需要同时满足动力学微分方程、代数方程以及不等式约束。近年来,国内外相关学者对此方面做了大量的研究,并从不同的角度对飞行器轨迹优化研究进行了文献综述[5-9] 。从这些文献综述中可以发现,轨迹优化方法按照不同的分类标准通常可以分为以下几类:直接法和间接法;积分法和微分法;仅有一个目标的优化以及存在多个目标同时等,其中直接法和间接法是最常用的分类方法。

📚2 运行结果

 

 

部分代码:

% % % figure(4)
% XX=maintraj1([20000,20000,5000,pi/3],[0,0,1000,2*pi/5],[2500,2500,2500],cen);
XX=maintraj1([20000,20000,5000,pi/3],[0,0,1000,2*pi/5],[2500,2500,2500,2500],cen);
%    1.0e+04 *
%     0.0568    1.0833    1.4166    0.9167    0.5834
% XX=maintraj1([20000,20000,5000,pi/3],[0,0,1000,2*pi/5],[2500,2500,2500,2500],[10883 9167;14166,5834]);


%% main section

    zini=posini(3);tta=gamaland;
    zz=zini;
    for i=1:size(XX,2)-1
        zz=[zz,zz(i)+tan(tta)*sqrt((XX(1,i+1)-XX(1,i))^2+(XX(2,i+1)-XX(2,i))^2)];
    end
    
    %transfer to NM
    XX=XX.*0.000539956803;
    %tr to ft
    zz=zz.*3.2808399;
    figure(10)
% % %      subplot(4,2,cc)
    hold on
    plot(XX(1,:),XX(2,:),'linewidth',2);grid on;
    set(gca,'FontSize',18,'FontWeight','bold')
    xlabel('Longitude Distance (NM)','FontSize',16,'FontWeight','bold')
    ylabel('Latitude Distance (NM)','FontSize',16,'FontWeight','bold')
    hold on 
   
    %wind
    [x,y] = meshgrid(-5:1:15,-5:1:15);
    % [x,y] = meshgrid(0:0.2:2,0:0.2:2);
    % u = cos(x).*y;
    % v = sin(x).*y;
% %     u=0.5*ones(length(y),length(x));
% %     v=zeros(length(y),length(x));
% %     h1=quiver(x,y,u,v);
% %     set(h1,'AutoScale','on', 'AutoScaleFactor', 0.5)
    u = cos(x/10).*25;
    v = -sin(x/2).*25;
    h1=quiver(x,y,u,v);
    hold on
    
    figure(11)
% % % subplot(4,2,cc+1)       
    hold on
    plot3(XX(1,:),XX(2,:),zz,'linewidth',2);grid on;%axis square;
    set(gca,'FontSize',18,'FontWeight','bold')
    xlabel('Longitude Distance (NM)','FontSize',16,'FontWeight','bold')
    ylabel('Latitude Distance (NM)','FontSize',16,'FontWeight','bold')
    zlabel('Altitude (ft)','FontSize',16,'FontWeight','bold')
    view(-23,10)

% end
% end
% cc=cc+2
% end

% % % XX=maintraj1([5000,5000,5000,pi/3],[0,0,1000,4*pi/5],[500,500,500,500,500],cen);
    zini=5000;tta=-3*pi/180;
    xx=zini;
for i=1:size(XX,2)-1
    xx=[xx,xx(i)+tan(tta)*sqrt((XX(1,i+1)-XX(1,i))^2+(XX(2,i+1)-XX(2,i))^2)];
end
plot3(XX(1,:),XX(2,:),xx);grid on
load('obstcl1-10.mat')  %load obstacle parameter
load('obstcl3-10.mat')  %load obstacle parameter
%%%  load('obstcl3-3.mat')  %load obstacle parameter
%load('obstcl4-30.mat')

figure(12)
for i=1:no
    plot([xobs(i)-robs(i),xobs(i)-robs(i),xobs(i)+robs(i),xobs(i)+robs(i),xobs(i)-robs(i)].*0.000539956803,...
         [yobs(i)-robs(i),yobs(i)+robs(i),yobs(i)+robs(i),yobs(i)-robs(i),yobs(i)-robs(i)].*0.000539956803,...
         'linewidth',2);
     hold on
     plot(XX(1,:),XX(2,:),'linewidth',2);
     set(gca,'FontSize',18,'FontWeight','bold')
         xlabel('Longitude Distance (NM)','FontSize',16,'FontWeight','bold')
    ylabel('Latitude Distance (NM)','FontSize',16,'FontWeight','bold')
    legend('without saftey distance','with saftey distance')
    hold on 
     %wind
    [x,y] = meshgrid(-5:1:15,-5:1:15);
    % [x,y] = meshgrid(0:0.2:2,0:0.2:2);
    % u = cos(x).*y;
    % v = sin(x).*y;
% %     u=0.5*ones(length(y),length(x));
% %     v=zeros(length(y),length(x));
% %     h1=quiver(x,y,u,v);
% %     set(h1,'AutoScale','on', 'AutoScaleFactor', 0.5)
    u = cos(x/10).*25;
    %v = -sin(x/2).*25;
    v = -sin(x/2).*40;
    h1=quiver(x,y,u,v);
    hold on
    
end

🎉3 参考文献

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

[1]Hassan Haghighi, Daniel Delahaye, Davood Asadi (2022) Trajectory Planning Optimization in Emergency Landing.

[2]许强强. 多飞行器协同轨迹规划与制导研究[D].国防科技大学,2020.DOI:10.27052/d.cnki.gzjgu.2020.000380.

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值