首先,深入了解了飞机襟副翼运动原理,构建了该运动机构简图,并计算其运动自由度,并利用解析方法,建立襟副翼运动学方程。最后,基于MATLAB对飞机襟副翼进行运动仿真。
1.引言
飞机襟副翼通常在起飞或者下降时提供升力或者阻力示。B787 飞机需求襟副翼可以旋转 43°,而A320大约旋转35°。
1)画出机构的运动简图;
2)利用解析方法,建立襟副翼运动学方程;
3)基于 Matlab 完成仿真分析。
2. 机构简图
飞机襟副翼运动机构简图如图所示。
该飞机襟副翼运动机构的自由度为
该飞机襟副翼运动机构的自由度数等于原动机数,均为1,故有固定唯一确定的运动。
各杆件尺寸如下:AB=80,BC=250,CD=180,AD=300,无偏置。
3. 运动学模型的建立
与基于飞机起落架的MATLAB设计与仿真分析同。
4. 基于 MATLAB的运动仿真分析
为了便于交互操作,特采用GUI界面来做本次分析,通过交互界面,可独立控制分析角位移、角速度以及角加速度等关键参数指标,同时支持输出模型图与动态分析结果。
飞机襟副翼运动模型核心程序:
代码语言:javascript复制%初始化参数
l1=80;l2=250;l3=180;l4=300;%各杆长
omega1=180;
alpha1=0;
%弧度制与角度制转换
hu_du=pi/180;
jiao_du=180/pi;
%计算四杆机构位移,角速度,角加速度
for n=0:360
theta1=n*hu_du;
[theta,omega,alpha]=crank_rocker(theta1,omega1,alpha1,l1,l2,l3,l4);
theta2(n 1)=theta(1);
theta3(n 1)=theta(2);
omega2(n 1)=omega(1);
omega3(n 1)=omega(2);
alpha2(n 1)=alpha(1);
alpha3(n 1)=alpha(2);
end
% %%
n=1:361;
%%
if get(handles.radiobutton1,'value')
plot(n,theta2*jiao_du,n,theta3*jiao_du,'k');
title('角位移曲线图');
xlabel('曲柄转角theta_1/circ')
ylabel('角位移/circ')
grid on;
hold on;
text(140,100,'theta_3')
text(140,30,'theta_2')
elseif get(handles.radiobutton2,'value')
plot(n,omega2,n,omega3,'k');
title('角速度曲线图');
xlabel('曲柄转角theta_1/circ');
ylabel('角速度/radcdots^{-1}');
grid on;
hold on;
text(250,50,'omega_2')
text(130,50,'omega_3')
elseif get(handles.radiobutton3,'value')
plot(n,alpha2,n,alpha3,'k')
title('角加速度曲线图');
xlabel('曲柄转角theta_1/circ')
ylabel('角加速度/radcdots^{-2}')
grid on;
hold on;
text(230,0.1e4,'alpha_2')
text(150,-0.7e4,'alpha_3')
elseif get(handles.radiobutton4,'value')
x(1)=0;
y(1)=0;
x(2)=l1*cos(70*hu_du);
y(2)=l1*sin(70*hu_du);
x(3)=l4 l3*cos(theta3(70));
y(3)=l3*sin(theta3(70));
x(4)=l4;
y(4)=0;
x(5)=0;
y(5)=0;
plot(x,y);
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');
title('平面四杆机构');
xlabel('mm')
ylabel('mm')
elseif get(handles.radiobutton5,'value')
%四杆机构运动仿真
fig = figure('NumberTitle','off',...
'Color','w',...
'menubar','none',...
'toolbar','none',...
'Resize','off');
title('平面四杆机构');
xlabel('mm');
ylabel('mm');
grid on;
box on;
axis([-100 330 -100 200]);
m = moviein(20);
j=0;
hold on;
for n=1:5:360
x(1)=0;
y(1)=0;
x(2)=l1*cos((n-1)*hu_du);
y(2)=l1*sin((n-1)*hu_du);
x(3)=l4 l3*cos(theta3(n));
y(3)=l3*sin(theta3(n));
x(4)=l4;
y(4)=0;
x(5)=0;
y(5)=0;
if n == 1
line0 = plot(x,y);
line1 = plot(x(1),y(1),'o');
line2 = plot(x(2),y(2),'o');
line3 = plot(x(3),y(3),'o');
line4 = plot(x(4),y(4),'o');
else
set(line0,'XData',x,'YData',y);
set(line1,'XData',x(1),'YData',y(1));
set(line2,'XData',x(2),'YData',y(2));
set(line3,'XData',x(3),'YData',y(3));
set(line4,'XData',x(4),'YData',y(4));
end
j=j 1;
m(j)=getframe;
end
movie(m,100);
hold off;
end
飞机襟副翼运动动态仿真效果图
最后感谢大家的阅读,初来乍到,不周之处请多包涵。如有问题,欢迎在本文下方留言讨论。
参考资料:
[1]陈垚光. 精通MATLAB GUI设计[M]. 电子工业出版社, 2008.
[2]邱金蕙, 王矞辉, 李振全. 基于Matlab/GUI的新型界面开发方式[J]. 河北工业科技, 2008(04):233-235.