论文部分内容阅读
摘 要:在对民用飞机飞行显示警告系统的建模仿真中,研究人员面临着如何高效地对具有极多输入信号的庞大系统进行赋值,以及对多个相似模型如何进行统一地测试等问题。该文基于Matlab编程语言和Simulink工具提出了解决方案,研究了一套建模的方法,创造性地提出了运用时间序列对输入变量进行批量赋值的方法;通过开发模型测试软件,高效地对多个相似的模型进行测试和调试。
关键词:民用飞机 FDAS系统 建模仿真 Matlab Simulink
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2015)08(b)-0090-03
1 研究背景及问题描述
该文的研究背景是某民用飞机飞行显示警告系统的建模仿真。该系统决定“是否、何时、如何”将告警信号通知飞行员[1];该系统有上千条告警逻辑,每条逻辑的输入变量符合触发条件时,该条告警信号会被触发;该系统又根据告警根源的不同划分为几十个子系统,每个子系统结构相同,仅内容不同。
该系统在仿真和建模时,存在两大不利因素:一是输入信号数量庞大,达到了上千条,如何在仿真时对这些输入变量进行方便地赋值成为一大难题;二是该系统子系统众多,不同子系统的模型缺乏统一的测试运行平台。本文的目标是在Matlab软件Simulink工具环境下研究解决这些问题的有效方法。[2]
2 系统需求分析
该文章认为,如果要对该系统进行有效的建模和测试,至少需要满足以下要求:
建立的模型应具有完整的输入输出定义,包括输入的名称、类型、单位、默认值以及输出变量的取值范围。
根据告警根源划分为可单独运行的一个个子模型,每一个子模型可独立于其他子模型来运行。
模型调试软件能够对模型进行调试与验证。
模型调试软件能够对模型的输入变量进行读取,实时查看当前的输入变量的值。
模型调试软件能够对模型的输入变量进行修改,并验证模型运行结果。
3 系统设计与实现
文中提出一套仿真建模解决方案,其中包含建立一个样例模型以及一个模型调试软件,下面章节陆续介绍。[3-4]
3.1 模型框架
样例模型基于Simulink搭建,模型架构根据“接口文件”进行划分。每个“接口文件”对应一个飞机的子系统,该文件记录了该子系统可能触发的所有告警信号,以及这些告警信号相关信息。
每个子系统会可能会触发几十甚至上百条告警逻辑,每一条逻辑都有确定的输入变量定义,这些定义也都储存在接口文件中。这些告警可以是同时触发的。某个子系统告警逻辑模型的结构,是该系统接口文件定义的所有告警逻辑模型的并行集合,如图 1所示。
3.2 Simulink逻辑建模
每一条告警逻辑可以是AND和OR、与非门的简单逻辑,也可以是含有自定义函数的复杂逻辑。对于简单告警逻辑,采用模块库中Simulink库建模;对于复杂逻辑,使用simulink拓展库“state flow”库来建模。输入变量采用Inport模块搭建。逻辑判断操作使用Simulink逻辑运算模块搭建。
结果变量采用输出模块搭建。每条告警信息都有一个对应的告警编号值,这个值与是唯一的,也是一一对应的,作为告警逻辑判断的结果变量值,如果这条告警被触发,则结果变量的值就等于该告警编号,否者就输出0。
一条告警判断逻辑的模型如图2所示。
3.3 Simulink输入变量配置
在完成了某个子系统(如图3所示)的多条告警逻辑建模后,采用批量生成时间序列,以及批量匹配的方式对这个模型的输入变量进行赋值。
使用excel建立一个变量数值与时间的关联表格,如图4所示。该excel文件中变量名称同模型中的输入端口名称一一对应,数值取的是项目接口定义文件中定义的默认值。
接下来通过simulink的tstool工具批量生成时间序列,使用该工具选择从该Excel表格批量生成多个变量的时间序列。时间序列是simulink模型變量在仿真运行过程中在任意时刻所有取值的集合,要明确变量类型,变量初始值才能建立时间序列。
将这些生成的时间序列导入到Matlab工作区,并且保存到一个Matlab数据格式文件“A”中; 接下来在Simulink模型中,选择“编辑输入变量”工具,使用该工具将模型的输入变量与数据格式文件“A”根据模块名称进行匹配。匹配成功后,模型再次运行时,输入模块会从Matlab工作区中取值。
3.4 基于Matlab GUI的模型测试程序
模型测试程序部分基于Matlab“m语言”开发,对Simulink模型进行仿真配置与测试。
本项目设计的模型测试程序如图 5所示,本项目涉及到的几十个飞机子系统告警逻辑模型都可以通过它来完成测试。它包含配置文件读取功能区、变量列表区、变量当前值查看及修改功能区、仿真操作区以及仿真结果展示区域;它可以加载调试所用变量、编辑修改任意当前变量,在当前变量下运行Simulink模型并验证模型的正确性。
3.5 GUI模型测试程序框架
使用Matlab内置的GUI开发工具“GUIDE”,创建一个空白的图形用户界面,自动打开一个图形开发环境,开始图形用户界面的搭建。界面的布局使用uipanel面板控件来界定,设定好面板的位置后,修改其Title属性,使其标题可以表达该区域功能。本模型测试程序主要包含四个主面板:导入和重新加载文件面板(左上角)、变量与仿真操作面板(左下角)、CAS告警信息面板(右上角)以及CAS告警属性值(右下角)面板。
3.6 导入和重新加载文件面板
本面板的功能是为模型运行和结果分析准备好条件,包括导入仿真系统的配置信息、导入模型输入变量以及重新加载这三个功能。这些功能主要是通过导入按钮、配置文件名存储文本框、模型输入变量文本框和重新加载数据按钮实现的。 导入仿真系统的配置信息这个功能是通过导入按钮实现的,在按下该按钮时,会提示用户选取接口定义文件,系统会根据该文件自动生成一个配置文件,將仿真所需的信息保存在该文件中,并在配置文件名存储文本框中显示该文件名。导入模型输入变量主要是通过点击模型输入变量文本框,在弹出的对话框浏览并选择已生成好的输入变量文件即可。重新加载的功能通过点击重新加载数据按钮,系统会自动将已导入的配置信息和模型输入变量完成加载。
3.7 变量与仿真操作面板
本面板是与仿真运行直接相关的功能区域。该区域主要有三大部分功能,第一部分是查看模型输入变量列表以及默认值,第二部分是编辑模型输入变量当前值,第三部分是调用Simulink模型进行仿真。所涉及到的控件有五个:变量列表表格、坐标系、可编辑文本框、“编辑输入变量”按钮和“运行Simulink模型”按钮。
查看模型输入变量列表以及默认值的功能主要是通过变量列表表格和坐标系实现的。在完成“重新加载数据”后,变量列表表格显示该模型的输入变量名,变量类型和默认值,用户用鼠标点击选择其中的任意个数变量,选取变量的当前时序值会立即显示在坐标系上。
编辑模型输入变量当前值主要是通过变量列表表格和“编辑输入变量”按钮实现的。按下“编辑输入变量”按钮会启动时间序列编辑工具,可以用该工具对当前选中的变量的时间序列值进行修改。
调用Simulink模型进行仿真主要是通过可编辑文本框来选择应该对哪个模型进行仿真,而点击“运行Simulink模型”按钮则会开始进行仿真,并将结果显示到CAS告警信息面板、CAS告警属性值两个面板上。
3.8 CAS告警信息面板
在该用户图形界面程序的右上角部分,就是CAS告警信息面板部分。该面板主要控件只有一个,就是告警信息表格。该表格显示告警仿真警报文字,在仿真模拟结束后,如果仿真的结果包含告警,则显示所有产生过的告警信号的警报文字。
该表格在程序初始运行的时候是空白的,在执行了“运行Simulink模型”后,会更新告警信息表格的内容,根据模型仿真的结果来显示对应的告警警报文字。
3.9 CAS告警属性值面板
这一面板的主要功能是显示模型仿真结果所关联的其他告警属性值。涉及的控件有两个,一个是告警编号表另一个是告警属性值表。前者只有一列,内容是告警编号,后者为三列表格,内容分别为警报声音,警报级别和警报颜色。这两个表格控件,连同上一节的告警信息表,均会在点击模型运行后被更新。
4 方案验证
依照前述方法,搭建了液压系统告警逻辑模型来验证本文提出的解决方案。在点击运行模型按钮后,在模型测试程序的界面中显示出预期的告警结果如图6所示。
5 结语
文章提出了一套针对多变量模型建模及测试的解决方案,有效地解决了某型飞机民用飞机飞行显示警告系统模型仿真时存在的问题。问题主要是两方面:第一是模型输入变量过多,用常规的赋值方式耗时耗力的的问题;第二是多个相似的模型建立后,模型的测试和调试缺乏统一的工具平台的问题。该解决方案可以在未来类似的系统建模过程中应用,具有一定的参考价值。
参考文献
[1]张博.民用飞机机组告警系统设计[J].中国高新技术企业,2014(26):29-30.
[2]陈广永,龚华军,沈春林,等.基于性能的复杂报警系统设计方法研究[J].计算机仿真,2008(5):20-23.
[3]范学东.主、备用卫星信号报警系统的Matlab仿真[J].广播电视信息,2014(11):82-84.
[4]樊烨,董金文,张昆仑,等.基于Matlab/Simulink的高速磁浮列车车载电网系统仿真研究[J].系统仿真学报,2007(20):4803-4807,4839.
关键词:民用飞机 FDAS系统 建模仿真 Matlab Simulink
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2015)08(b)-0090-03
1 研究背景及问题描述
该文的研究背景是某民用飞机飞行显示警告系统的建模仿真。该系统决定“是否、何时、如何”将告警信号通知飞行员[1];该系统有上千条告警逻辑,每条逻辑的输入变量符合触发条件时,该条告警信号会被触发;该系统又根据告警根源的不同划分为几十个子系统,每个子系统结构相同,仅内容不同。
该系统在仿真和建模时,存在两大不利因素:一是输入信号数量庞大,达到了上千条,如何在仿真时对这些输入变量进行方便地赋值成为一大难题;二是该系统子系统众多,不同子系统的模型缺乏统一的测试运行平台。本文的目标是在Matlab软件Simulink工具环境下研究解决这些问题的有效方法。[2]
2 系统需求分析
该文章认为,如果要对该系统进行有效的建模和测试,至少需要满足以下要求:
建立的模型应具有完整的输入输出定义,包括输入的名称、类型、单位、默认值以及输出变量的取值范围。
根据告警根源划分为可单独运行的一个个子模型,每一个子模型可独立于其他子模型来运行。
模型调试软件能够对模型进行调试与验证。
模型调试软件能够对模型的输入变量进行读取,实时查看当前的输入变量的值。
模型调试软件能够对模型的输入变量进行修改,并验证模型运行结果。
3 系统设计与实现
文中提出一套仿真建模解决方案,其中包含建立一个样例模型以及一个模型调试软件,下面章节陆续介绍。[3-4]
3.1 模型框架
样例模型基于Simulink搭建,模型架构根据“接口文件”进行划分。每个“接口文件”对应一个飞机的子系统,该文件记录了该子系统可能触发的所有告警信号,以及这些告警信号相关信息。
每个子系统会可能会触发几十甚至上百条告警逻辑,每一条逻辑都有确定的输入变量定义,这些定义也都储存在接口文件中。这些告警可以是同时触发的。某个子系统告警逻辑模型的结构,是该系统接口文件定义的所有告警逻辑模型的并行集合,如图 1所示。
3.2 Simulink逻辑建模
每一条告警逻辑可以是AND和OR、与非门的简单逻辑,也可以是含有自定义函数的复杂逻辑。对于简单告警逻辑,采用模块库中Simulink库建模;对于复杂逻辑,使用simulink拓展库“state flow”库来建模。输入变量采用Inport模块搭建。逻辑判断操作使用Simulink逻辑运算模块搭建。
结果变量采用输出模块搭建。每条告警信息都有一个对应的告警编号值,这个值与是唯一的,也是一一对应的,作为告警逻辑判断的结果变量值,如果这条告警被触发,则结果变量的值就等于该告警编号,否者就输出0。
一条告警判断逻辑的模型如图2所示。
3.3 Simulink输入变量配置
在完成了某个子系统(如图3所示)的多条告警逻辑建模后,采用批量生成时间序列,以及批量匹配的方式对这个模型的输入变量进行赋值。
使用excel建立一个变量数值与时间的关联表格,如图4所示。该excel文件中变量名称同模型中的输入端口名称一一对应,数值取的是项目接口定义文件中定义的默认值。
接下来通过simulink的tstool工具批量生成时间序列,使用该工具选择从该Excel表格批量生成多个变量的时间序列。时间序列是simulink模型變量在仿真运行过程中在任意时刻所有取值的集合,要明确变量类型,变量初始值才能建立时间序列。
将这些生成的时间序列导入到Matlab工作区,并且保存到一个Matlab数据格式文件“A”中; 接下来在Simulink模型中,选择“编辑输入变量”工具,使用该工具将模型的输入变量与数据格式文件“A”根据模块名称进行匹配。匹配成功后,模型再次运行时,输入模块会从Matlab工作区中取值。
3.4 基于Matlab GUI的模型测试程序
模型测试程序部分基于Matlab“m语言”开发,对Simulink模型进行仿真配置与测试。
本项目设计的模型测试程序如图 5所示,本项目涉及到的几十个飞机子系统告警逻辑模型都可以通过它来完成测试。它包含配置文件读取功能区、变量列表区、变量当前值查看及修改功能区、仿真操作区以及仿真结果展示区域;它可以加载调试所用变量、编辑修改任意当前变量,在当前变量下运行Simulink模型并验证模型的正确性。
3.5 GUI模型测试程序框架
使用Matlab内置的GUI开发工具“GUIDE”,创建一个空白的图形用户界面,自动打开一个图形开发环境,开始图形用户界面的搭建。界面的布局使用uipanel面板控件来界定,设定好面板的位置后,修改其Title属性,使其标题可以表达该区域功能。本模型测试程序主要包含四个主面板:导入和重新加载文件面板(左上角)、变量与仿真操作面板(左下角)、CAS告警信息面板(右上角)以及CAS告警属性值(右下角)面板。
3.6 导入和重新加载文件面板
本面板的功能是为模型运行和结果分析准备好条件,包括导入仿真系统的配置信息、导入模型输入变量以及重新加载这三个功能。这些功能主要是通过导入按钮、配置文件名存储文本框、模型输入变量文本框和重新加载数据按钮实现的。 导入仿真系统的配置信息这个功能是通过导入按钮实现的,在按下该按钮时,会提示用户选取接口定义文件,系统会根据该文件自动生成一个配置文件,將仿真所需的信息保存在该文件中,并在配置文件名存储文本框中显示该文件名。导入模型输入变量主要是通过点击模型输入变量文本框,在弹出的对话框浏览并选择已生成好的输入变量文件即可。重新加载的功能通过点击重新加载数据按钮,系统会自动将已导入的配置信息和模型输入变量完成加载。
3.7 变量与仿真操作面板
本面板是与仿真运行直接相关的功能区域。该区域主要有三大部分功能,第一部分是查看模型输入变量列表以及默认值,第二部分是编辑模型输入变量当前值,第三部分是调用Simulink模型进行仿真。所涉及到的控件有五个:变量列表表格、坐标系、可编辑文本框、“编辑输入变量”按钮和“运行Simulink模型”按钮。
查看模型输入变量列表以及默认值的功能主要是通过变量列表表格和坐标系实现的。在完成“重新加载数据”后,变量列表表格显示该模型的输入变量名,变量类型和默认值,用户用鼠标点击选择其中的任意个数变量,选取变量的当前时序值会立即显示在坐标系上。
编辑模型输入变量当前值主要是通过变量列表表格和“编辑输入变量”按钮实现的。按下“编辑输入变量”按钮会启动时间序列编辑工具,可以用该工具对当前选中的变量的时间序列值进行修改。
调用Simulink模型进行仿真主要是通过可编辑文本框来选择应该对哪个模型进行仿真,而点击“运行Simulink模型”按钮则会开始进行仿真,并将结果显示到CAS告警信息面板、CAS告警属性值两个面板上。
3.8 CAS告警信息面板
在该用户图形界面程序的右上角部分,就是CAS告警信息面板部分。该面板主要控件只有一个,就是告警信息表格。该表格显示告警仿真警报文字,在仿真模拟结束后,如果仿真的结果包含告警,则显示所有产生过的告警信号的警报文字。
该表格在程序初始运行的时候是空白的,在执行了“运行Simulink模型”后,会更新告警信息表格的内容,根据模型仿真的结果来显示对应的告警警报文字。
3.9 CAS告警属性值面板
这一面板的主要功能是显示模型仿真结果所关联的其他告警属性值。涉及的控件有两个,一个是告警编号表另一个是告警属性值表。前者只有一列,内容是告警编号,后者为三列表格,内容分别为警报声音,警报级别和警报颜色。这两个表格控件,连同上一节的告警信息表,均会在点击模型运行后被更新。
4 方案验证
依照前述方法,搭建了液压系统告警逻辑模型来验证本文提出的解决方案。在点击运行模型按钮后,在模型测试程序的界面中显示出预期的告警结果如图6所示。
5 结语
文章提出了一套针对多变量模型建模及测试的解决方案,有效地解决了某型飞机民用飞机飞行显示警告系统模型仿真时存在的问题。问题主要是两方面:第一是模型输入变量过多,用常规的赋值方式耗时耗力的的问题;第二是多个相似的模型建立后,模型的测试和调试缺乏统一的工具平台的问题。该解决方案可以在未来类似的系统建模过程中应用,具有一定的参考价值。
参考文献
[1]张博.民用飞机机组告警系统设计[J].中国高新技术企业,2014(26):29-30.
[2]陈广永,龚华军,沈春林,等.基于性能的复杂报警系统设计方法研究[J].计算机仿真,2008(5):20-23.
[3]范学东.主、备用卫星信号报警系统的Matlab仿真[J].广播电视信息,2014(11):82-84.
[4]樊烨,董金文,张昆仑,等.基于Matlab/Simulink的高速磁浮列车车载电网系统仿真研究[J].系统仿真学报,2007(20):4803-4807,4839.