前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于MATLAB的飞机襟副翼运动建模分析【GUI开发】

基于MATLAB的飞机襟副翼运动建模分析【GUI开发】

作者头像
巴山学长
发布2021-05-31 10:02:21
5990
发布2021-05-31 10:02:21
举报
文章被收录于专栏:巴山学长巴山学长

首先,深入了解了飞机襟副翼运动原理,构建了该运动机构简图,并计算其运动自由度,并利用解析方法,建立襟副翼运动学方程。最后,基于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('角速度/rad\cdots^{-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('角加速度/rad\cdots^{-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.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档