💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
文献来源:
摘要
飞机控制中最困难的任务之一是实现安全舒适的着陆。事故统计数据表明,超过45%的通用航空事故发生在飞行的进场和着陆阶段。进一步分析显示,超过90%的事故是由飞行员引起的。失控也是其中33%事故的主要因素。在许多情况下,事故发生是因为未能在目标着陆时间内着陆。在假设飞机的横向和纵向动力学是解耦的,并且横向控制器负责处理飞机偏离跑道中心线的情况下,在本项目中,我们设计了一个固定翼飞机的纵向控制器,以跟踪期望的着陆轨迹。
介绍
飞机着陆过程由五个不同的阶段组成:基本腿、滑行坡度、抬头、着陆和着陆后滚动。在这五个阶段中,滑行坡度阶段和抬头阶段是最重要的[1]。在本项目中,我们设计了一个跟踪控制器,指导飞机实现平稳舒适的着陆。本项目考虑了着陆的抬头阶段。我们在本项目中使用的系统模型取自[1]。在该论文中,考虑了飞机的运动模型。为了得出系统模型,我们做出了以下假设:风扰动被假定为零,偏离平衡飞行状态为零,滑行路径角被假定为小,因此可以进行小角度近似,飞机速度恒定,纵向运动由副翼偏转控制,横向运动被忽略。详细文章见第4部分。
📚2 运行结果
主函数代码:
Parameters % Load the given parameters
%sinit = zeros(10,1); % S(tf) = C'PC, where C is eye(4). And P=[0.9 0 0 0;0 0.01 0 0;0 0 1 0;0 0 0 1]
s0 = [0.9 0 0 0 0.042 0 0 1 0 1];
v0 = [0,0.000142,0,0]';
%First solve for S using the DRE
[t1,s] = ode45(@DRE_S,[-Tf:0.01: 0],s0);
sf = flipud(s);
%calculate K using K = inv(R)*B'*S(t)
for i =1:length(s)
Kf(i,:)= (1/r)*B'*[sf(i,1) sf(i,2) sf(i,3) sf(i,4);
sf(i,2) sf(i,5) sf(i,6) sf(i,7);
sf(i,3) sf(i,6) sf(i,8) sf(i,9);
sf(i,4) sf(i,7) sf(i,9) sf(i,10)];
end
%solve for V using the DRE
[t2,v] = ode45(@(t,v) DRE_V(t,v,Kf,t1),[-Tf:0.01: 0],v0);
%closed loop simulation
tt = -flipud(t2);
vf = flipud(v);
%calucalte xdot
[tx, x] = ode45(@(t,x) Xstates(t,x,tt,vf,tt,Kf),[0:0.01:Tf],x0);
%calculate control input
for i=1:length(x)
u(i) = -Kf(i,:)*x(i,:)' + (1/r)*B'*vf(i,:)';
end
plot(tx,u,'LineWidth',1.2 )
grid on
title('elevator defelection angle')
reference = desired_trajectory(Tf);
subplot(2,2,1)
plot(tx,x(:,1),'LineWidth',1.2 )
hold on
plot(tx,reference(1,:),'LineWidth',1.2 )
grid on
legend('simulated','reference')
title('altitude')
subplot(2,2,2)
plot(tx,x(:,2),'LineWidth',1.2 )
hold on
plot(tx,reference(2,:),'LineWidth',1.2 )
grid on
legend('simulated','reference')
title('rate of descent')
subplot(2,2,3)
plot(tx,x(:,3),'LineWidth',1.2 )
hold on
plot(tx,reference(3,:),'LineWidth',1.2 )
grid on
legend('simulated','reference')
title('pitch angle')
subplot(2,2,4)
plot(tx,x(:,4),'LineWidth',1.2 )
hold on
plot(tx,reference(4,:),'LineWidth',1.2 )
grid on
legend('simulated','reference')
title('pitch rate')
%
plot(tx,u,'LineWidth',1.2 )
grid on
title('elevator defelection angle')
%%
subplot(2,2,1)
plot(tx,Kf(:,1),'LineWidth',1.2 )
grid on
title('altitude gain')
subplot(2,2,2)
plot(tx,Kf(:,2),'LineWidth',1.2 )
grid on
title('rate of descent gain')
subplot(2,2,3)
plot(tx,Kf(:,3),'LineWidth',1.2 )
grid on
title('pitch angle gain')
subplot(2,2,4)
plot(tx,Kf(:,4),'LineWidth',1.2 )
grid on
title('pitch rate gain')
%%
subplot(2,2,1)
e1 = x(:,1)-reference(1,:)';
plot(tx,e1,'LineWidth',1.2 )
grid on
title('error on altitude')
subplot(2,2,2)
e2 = x(:,2)-reference(2,:)';
plot(tx,e2,'LineWidth',1.2 )
grid on
title('error on rate of descent')
subplot(2,2,3)
e3 = x(:,3)-reference(3,:)';
plot(tx,e3,'LineWidth',1.2 )
grid on
title('error on pitch angle')
subplot(2,2,4)
e4 = x(:,4)-reference(4,:)';
plot(tx,e4,'LineWidth',1.2 )
grid on
title('error on pitch rate')
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。