👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚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.