任碧诗
【摘 要】以某型飞机起落架收放控制系统收放控制逻辑为对象,建立Matlab GUI(graphic user interface)和Simulink联合仿真模型,与单独采用Simulink建模相比,联合仿真模型具有显示直观、便于测试分析等优点。仿真结果表明,联合仿真模型能够实现不同测试方案的快速测试、仿真结果对比分析及记录,能够完成起落架收放控制逻辑的全数字仿真需求,为起落架收放控制逻辑的验证分析提供有力的支持。
【关键词】起落架控制系统;GUI;Simulink;收放控制逻辑
【Abstract】Based on aircraft landing gear retraction and extension, a control logic simulation model is constituted by GUI and Simulink. Compared with model based on Simulink, joint model has advantage at display directly, easy to test and analysis and so on. The simulation result shows the joint model could realize multiple cases test, result analysis and record. Its also carried out the requirement of landing gear retraction and extension control logic simulation, and support to the logic validation.
【Key words】Landing gear control system; GUI; Simulink; Retraction and extension control logic
0 引言
起落架收放控制系是飞机的一个重要子系统,其控制逻辑的设计及性能影响着飞机的起降安全,因此需要对收放控制逻辑建立模型进行仿真分析,以验证控制逻辑的性能和功能。
Matlab Simulink是目前应用较为广泛的建立仿真软件,通过添加display、scope、sin和constant等模块可实现模型输入输出的设置和显示。但是当模型的输入、输出的变量很多时,通过手动逐一修改输入参数等进行模块测试就显得特别麻烦,容易出错;并且显示结果不直观。Matlab GUI是一种图形化的沟通界面,通过定制界面能够弥补Simulink显示和设置不直观的问题。将Simulink和GUI联合起来进行仿真无疑是一种较好的分析手段。
近年来,一些学者采用GUI和Simulink相结合进行建模的方式来分析解决实际遇到的问题。其中,葛述卿[1]以滑块-单摆为研究对象,采用了一种在Simulink模型中自动打开GUI界面,通过GUI界面输入仿真数据的方式实现Simulink和GUI的联合建模仿真。这种方式以Simulink作为主导,方便对Simulink进行调试,但是对于模型无须更改或者需要对模型进行加密封装以及存在大量仿真数据的情况,这种方法就略显不足。安树[2]等人以整流电路为研究对象,利用GUI GUIDE向导进行建模,实现整流电路的建模与仿真,但对于界面中存在多个相同类型控件的情况,利用GUIDE向导无疑增加了建模的工作量。
本文根据起落架收放控制系统仿真需求,设计了一种Simulink和GUI联合仿真模型,在Simulink中搭建起落架收放控制逻辑仿真模型,并对模型进行封装;同时,借助GUI便于实现人机交互的特点,通过编写脚本文件的方式,实现仿真数据的输入、输出初始化设置、仿真数据的显示与记录,实现了对收放控制逻辑进行仿真的目标。
1 Simulink仿真模型
飞机起落架收放系统采用电传操纵、液压作动形式;正常收放系统由两个起落架控制单元冗余控制,控制单元接收起落架收放手柄以及相关传感器的信号,经过逻辑运算,控制起落架选择阀电磁铁的通断电状态,通过液压作动,完成起落架的收放动作控制。
根据控制单元的控制逻辑,在Simulink中分别利用“AND”,“OR”和“NOT”等模块搭建模型,实现控制逻辑的仿真。主要包括:轮载信号逻辑仿真模块、起落架手柄信号逻辑仿真模块、起落架上位锁信号判断逻辑仿真模块、起落架下位锁信号判断逻辑仿真模块、起落架选择阀控制信号逻辑仿真模块等。
图1所示为控制逻辑子模型示意图。图2为整个控制逻辑模型示意图;其中,模型中对关键控制逻辑部分进行了封装;并根据真实的输入信号的类型及数据长度,对输入和输出数据进行拆分和打包。此外,还在模型中添加了数据显示模块,模型的便于调试、检测和分析处理。
2 GUI建模
Matlab中GUI的创建有两种方式。一种是利用uicontrol、uimenu等函数以编写m文件的方式来创建GUI模型,这种方式的优点是当界面上需要布置较多相同类型的控件时,利用for、while等函数能够快速方便的实现;并且代码的通用性较高。另一种方式是利用Matlab提供的GUIDE向导来创建,通过鼠标对控件进行拖拽即可快速构建出整个GUI[3];但是,控件较多时,这种方法实现起来比较繁琐。本文针对起落架收放控制系统输入输出变量控件较多(40余个)的情况,采用编写m文件的方式,快速构建GUI模型,便于理解和后续维护修改,简化模型代码。图3为利用编写M文件的形式编写的仿真界面示意图。
在GUI界面中,利用“for”、“set”以及“get”等函数,实现批量的创建和设置check box控件,以完成对控制系统输入信号的设置。此外,为了能够简化操作、方便测试,设置导入数据按钮,将设置好的excel测试数据文件导入,完成对输入变量名字和数值的设置,实现多组测试方案的快速测试,避免模型修改后,手动逐一设置带来不必要的麻烦。而经过Simulink仿真运算获得的数据,以表格的形式在界面上显示,并且通过导出数据选项将测试数据记录保存在excel文件中。
3 Simulink和GUI联合建模仿真
本文采用GUI和Simulink联合建模的方式,以GUI界面作为主要的平台,实现模型的仿真分析,仿真流程如图4所示。通过GUI将数据导入Simulink模型,运行Simulink模型,输出数据到GUI,并在GUI 中显示记录仿真结果。
联合仿真过程中,Simulink和GUI的数据交互是仿真的一个关键的问题,主要通过以下4个步骤来实现这一问题。
1)打开名为control.mdl 的Simulink模型。语句如下:
open_system(control);
2)将GUI界面中设置或导入的数据data_from_GUI赋给Simulink模型中名为input_1的常量模块。语句如下:
set_param(control/input_1,Value,data_from_GUI);
3)运行Simulink模型,语句如下:
sim(control);
4)获取Simulink仿真结果,方法为通过evalin函数,从workspace中,获取名为output变量的值,具体语句如下:
evalin(base, control/output)。
4 仿真结果
以飞机位于空中,起落架处于放下上锁的位置作为输入状态,对联合仿真模型进行测试。
图5(b) 所示为利用GUI进行输入参数设置界面,运行程序,得到图5(a) 所示的模型参数,从图中可以看出,若在Simulink中设置参数,则需要输入较长的数据,且没有相应的信息提示,而利用GUI进行设置则清晰明了,并且在GUI中还可以通过导入数据文件功能直接参数导入,方便测试。
图6所示为联合仿真结果,GUI界面将Simulink的仿真结果进行解码,以列表的形式显示出来。从图中可以看出,经过仿真运算,得到起落架的状态为“放下上锁”,仿真运行结果正确,此外,联合仿真模型还可以实现不同信号输入条件下的仿真,仿真结果准确可靠。
5 结论
利用Simulink和GUI联合建模充分发挥二者的优势,特别地,对于起落架收放控制逻辑测试这种输入输出信号多,仿真测试过程中,具有多组输入信号的情况,利用联合建模的方式,达到了对起落架收放控制逻辑联合建模仿真的目的,实现了对控制逻辑的快速测试和分析,且模型交互性好,方便数据的管理,编程简洁便于后期维护和使用。
【参考文献】
[1]葛述卿.Simulink和GUI结合实现机械系统仿真及动画[J].机械研究与应用,2006,19(1):104-106.
[2]安树,赵霞,徐小华.基于Matlab GUI 的整流电路仿真设计[J].现代电子技术,2011,34(4):155-158.
[3]李显宏.Matlab界面设计与编译技巧[M].北京:电子工业出版社,2006.
[责任编辑:汤静]