摘要:本文首先对起落架进行了概述,总结了起落架的国内外研究背景,针对飞机起落架的收放机构进行了功能原理和收放运动分析,阐述了起落架工作原理。以虚拟样机技术的相关理论和功能虚拟样机的实现过程为基础,并绘制出飞机起落架机构的运动简图,并对其自由度进行了分析,又利用解析方法,建立飞机起落架运动学方程,最后运用MATLAB软件对该飞机的起落架进行了运动学仿真分析。
关键词:飞机起落架,平面四杆机构,仿真,MATLAB
1.引言
飞机起落架是飞机着陆时的一个关键部件,主要用于飞机的起飞、着陆、地面滑跑和地面停放,起飞之后收入起落架窗中,见图1。
图1 飞机起落架模型图
(图片来源:www.mfcad.com/jixiejichu/yuanli/show_2537.html)
2.飞机起落架机构简图及其自由度分析
该飞机起落架可以看作是由两个平面铰链四杆机构组成,分别是ABCD和DCEF,如图 2所示。其中,E点是末端执行器,与轮胎相连接。
图2 飞机起落架机构简图
该飞机起落架机构的自由度为
该飞机起落架机构的自由度数等于原动机数,均为1,故有固定唯一确定的运动。
各杆件尺寸如下:
AB=40,BC=90,CD=80,AD=120,CE=100,EF=300,DF=301,无偏置。
3. 运动模型的建立
利用解析方法,建立飞机起落架运动学方程。
平面四杆机构,如图 2所示。
图 3 平面四杆机构
4. 基于 MATLAB的联合起落架机构运动仿真分析
代码语言:javascript复制%该飞机起落架机构可视为由两个平行四杆机构组成
clc
clear all
%输入已知数据
L21=40;L22=90;L23=80;L24=120;
L1=80;L2=100;L3=300;L4=301;
omega1=150;
alpha1=0;
hd=pi/180;
du=180/pi;
%调用子函数crank_rocker计算四杆机构运动方程
for n1=1:361
theta1=(n1-1)*hd;
[theta,omega,alpha]=crank_rocker(theta1,omega1,alpha1,L21,L22,L23,L24);
% theta2(n1)=theta(1);
theta3(n1)=theta(2);
% omega2(n1)=omega(1);omega3(n1)=omega(2);
% alpha2(n1)=alpha(1);
% alpha3(n1)=alpha(2);
%曲柄从动,输入的
[theta_2,omega_2,alpha_2]=crank_rocker(pi-theta3(n1),omega1,alpha1,L1,L2,L3,L4);%pi是重点
theta3_2(n1)=theta_2(2);
theta2(n1)=theta_2(1);
% theta3(n1)=theta_2(2);
omega2(n1)=omega_2(1);
omega3(n1)=omega_2(2);
alpha2(n1)=alpha_2(1);
alpha3(n1)=alpha_2(2);
end
%角位移、角速度、角加速度和机构图形输出
figure(1);
n1=1:361;
subplot(2,2,1);
plot(n1,theta2*du,n1,theta3_2*du,'k');
title('角位移线图');
xlabel('曲柄转角theta_1/circ')
ylabel('角位移/circ')
grid on; hold on;
text(140,130,'theta_3')
text(140,60,'theta_2')
subplot(2,2,2);
plot(n1,omega2,n1,omega3,'k')
title('角速度线图');
xlabel('曲柄转角theta_1/circ')
ylabel('角速度/radcdots^{-1}')
grid on;
hold on;
text(250,-100,'omega_2')
text(250,0,'omega_3')
subplot(2,2,3);
plot(n1,alpha2,n1,alpha3,'k')
title('角加速度曲线图');
xlabel('曲柄转角theta_1/circ')
ylabel('角加速度/radcdots^{-2}')
grid on;
hold on;
text(200,5000,'alpha_2')
text(200,0,'alpha_3')
subplot(2,2,4);
% x(1)=0;
% y(1)=0;
% x(2)=L21*cos(70*hd);
% y(2)=L21*sin(70*hd);
% x(3)=L24 L23*cos(theta3(70));
% y(3)=L23*sin(theta3(70));
% x(4)=L24;
% y(4)=0;
% x(5)=0;
% y(5)=0;
% plot(x,y);
% grid on; hold on;
x(1)=-L24;
y(1)=0;
x(2)=L21*cos((70-1)*hd)-L24;
y(2)=-L21*sin((70-1)*hd);
x(3)=L24 L23*cos(theta3(70))-L24;
y(3)=-L23*sin(theta3(70));
x(4)=0;
y(4)=0;
%下四杆
% x(5)=L1*cos((n1-1)*hd);
% y(5)=-L1*sin((n1-1)*hd);
x(5)=-(L4 L3*cos(theta3_2(70)));
y(5)=-L3*sin(theta3_2(70));
x(6)=-L4;
y(6)=0;
plot(x(1:4),y(1:4),'k','MarkerSize',25);
grid on;
hold on;
plot([x(3),x(5),x(6)],[y(3),y(5),y(6)])
grid on;
hold on;
plot(x(1),y(1),'o');
plot(x(2),y(2),'o');
plot(x(3),y(3),'o');
plot(x(4),y(4),'o');
plot(x(5),y(5),'o');
plot(x(6),y(6),'o');
title('飞机起落架铰链机构');
xlabel('mm')
ylabel('mm')
% axis([-50 350 -20 200]);
axis([-350 100 -200 150]);
%飞机起落架机构运动仿真
figure(2)
m=moviein(20);
j=0;
for n1=1:5:360
j=j 1;
clf;
x(1)=-L24;
y(1)=0;
x(2)=L21*cos((n1-1)*hd)-L24;
y(2)=-L21*sin((n1-1)*hd);
x(3)=L24 L23*cos(theta3(n1))-L24;
y(3)=-L23*sin(theta3(n1));
x(4)=0;
y(4)=0;
%上四杆
% x(5)=L1*cos((n1-1)*hd);
% y(5)=-L1*sin((n1-1)*hd);
x(5)=-(L4 L3*cos(theta3_2(n1)));
y(5)=-L3*sin(theta3_2(n1));
x(6)=-L4;
y(6)=0;
plot(x(1:4),y(1:4),'k','MarkerSize',25);
grid on;
hold on;
plot([x(3),x(5),x(6)],[y(3),y(5),y(6)])
grid on;
hold on;
plot(x(1),y(1),'o');
plot(x(2),y(2),'o');
plot(x(3),y(3),'o');
plot(x(4),y(4),'o');
plot(x(5),y(5),'o');
plot(x(6),y(6),'o');
% plot(x(7),y(7),'o');
axis([-350 100 -200 150]);
title('飞机起落架铰链机构');
xlabel('mm');
ylabel('mm')
m(j)=getframe;
%%
w=VideoWriter('起落架动画.avi');
open(w);
writeVideo(w,m);
%%
%gif动画
im=frame2im(m(j));
[I,map] = rgb2ind(im,256);
if n1==1
imwrite(I,map,'result.gif','gif','loopcount',inf,'Delaytime',0.05)
else
imwrite(I,map,'result.gif','gif','writemode','append','Delaytime',0.05)
end
end
movie(m);
关键子函数 —— crank_rocker
代码语言:javascript复制function[theta,omega,alpha]=crank_rocker(theta1,omega1,alpha1,L1,L2,L3,L4)
% 本function程序来源:www.ilovematlab.cn/thread-538655-1-1.html。
%四杆机构的代码参照matlab论坛,两个四杆机构联合属于原创。
% 1.计算从动件的角位移
L=sqrt(L4*L4 L1-2*L1*L4*cos(theta1));
phi=asin((L1./L)*sin(theta1));
beta=acos((-L2*L2 L3*L3 L*L)/(2*L3*L));
if beta<0
beta=beta pi;
end
theta3=pi-phi-beta;
theta2=asin((L3*sin(theta3)-L1*sin(theta1))/L2);
theta=[theta2;theta3]
% 2.计算从动件的角速度
A=[-L2*sin(theta2),L3*sin(theta3);
L2*cos(theta2),-L3*cos(theta3)];
B=[L1*sin(theta1);-L1*cos(theta1)];
omega=A(omega1*B);
omega2=omega(1);
omega3=omega(2);
% 3.计算从动件的角加速度
A=[-L2*sin(theta2),L3*sin(theta3);
L2*cos(theta2),-L3*cos(theta3)];
At=[-omega2*L2*cos(theta2),omega3*L3*cos(theta3);
-omega2*L2*sin(theta2),omega3*L3*sin(theta3)];
B=[L1*sin(theta1);-L1*cos(theta1)];
Bt=[omega1*L1*cos(theta1);omega1*L1*sin(theta1)];
alpha=A(-At.*omega alpha1.*B omega.*Bt);
运行时,请在当前目录下建立关键函数crank_rocker的m文件。
联合起落架机构仿真结果
动画效果图
5. 结束语
本文分析了飞机起落架国内外研究现状,接着阐述了起落架工作原理,并绘制出飞机起落架机构的运动简图,并对其自由度进行了分析,又基于解析法建立了飞机起落架运动学模型,最后运用MATLAB软件对该飞机的起落架进行了运动学仿真分析,得到了末端执行器的运动轨迹、角速度和角加速度。
参考资料:
[1]孙桓等主编.机械原理[M].高等教育出版社,2013.
[2]孙靖民主编.机械优化设计(第三版) [M].北京:机械工业出版社,2005.
[3]方世杰,綦耀光主编.机械优化设计[M].北京:机械工业出版社,1997.
[4]王昆等主编. 机械设计课程设计手册[M].北京:机械工业出版社,2004.
[5]曹维庆等主编.机构设计[M].机械工业出版社,2000.
[6]冯远生主编.飞机结构设计[M].国防工业出版社,1985.
[7]丽正能主编.飞机部件与系统设计[M].北京航空大学出版社,2003.
[8]王志瑾主编.飞机结构设计[M].国防工业出版社,2007.
[9]Shigley JE, UicherJJ.Theory of machines and mechanisms[M].New York:McGaw-Hill Book Comepany,1980.