近地告警系统自动化测试方法
2022-08-23商飞软件有限公司孟潇峰叶晨黄伟林
商飞软件有限公司 孟潇峰 叶晨 黄伟林
为了更方便快捷的对近地告警系统进行测试验证,减少测试成本和风险,提出了一种自动化的测试方法。首先介绍了自动化测试方法的设计需求;然后通过飞机仿真模型、接口模块和自动化测试环境,组成了近地告警设备的测试环境;最后对告警模式1进行了验证。验证结果表明,提出的方法可以应用到近地告警设备的测试中去。
民航领域,在近地告警系统(GPWS)出现以后,显著提高了飞机在起飞阶段和进近着落阶段的安全性,对减少CFIT的发生着关键作用。近地告警系统对飞机的飞行安全起到了很重要的作用,然而近地告警系统典型的提供商都是国外企业,核心技术对我国封锁。因此,研制具有自主知识产权的近地告警系统意义重大。近地告警系统验证的过程中,若直接采用试飞的方式,不但成本高,而且要考虑飞行安全,选择合适的可触发告警的地形等一系列因素。本文提供了一种近地告警系统的自动化测试方法,可在近地告警系统设备研制的各阶段对告警算法和包线设计进行验证,并可将设备接入测试环境实现半物理仿真验证。
1 系统设计需求
针对近地告警系统的验证测试,需构建一套半物理仿真测试环境,接入EGPWS工程样机,对其算法和告警模式、告警包线进行测试。如图1所示,测试环境包括:
(1)飞行仿真激励环境,使用Matlab/Simulink构建某型飞机的仿真模型,提供测试需要的激励数据;
(2)自动化测试环境,具备测试用例编辑、执行、数据显示记录以及报告生成等功能;
(3)数据接口模块,完成整个测试环境的数据传输,将工程样机接入测试环境。
2 系统设计
2.1 飞机仿真模型
飞机仿真模型参照某型民用飞机,通过Simulink完成仿真模型的搭建。飞机仿真模型涵盖了近地告警系统的各种告警模式需要的飞机构型。模型组成如图2所示。
图2 飞机仿真模型组成图Fig.2 Composition diagram of aircraft simulation model
2.1.1 空气动力学模型
空气动力学模型仿真飞机所受到的空气动力特性,采用气动系数查表的方式进行建模。
空气动力学模型包括以下的气动效应:
(1)翼身组合体的气动效应;
(2)操纵舵面偏转引起的气动效应;
(3)起落架收放引起的气动效应;
(4)地面效应引起的气动效应;
(5)侧滑引起的气动效应;
(6)不同大气环境下的气动效应。
以升力为例,计算方式如式(1)所示:
式中:ρ
为大气密度;V
为飞机速度;S
为机翼面积;C
为升力系数。2.1.2 飞机运动仿真模型
飞机运动仿真模型模拟飞机的运动轨迹。
飞行动力学的力和力矩方程如式(2)、式(3)所示:
其中,m
为飞机质量,V
、V
、V
为飞机三个方向的速度,w
、w
、w
为角速度,F
、F
、F
为各自方向上的力。其中,w
、w
、w
为角速度,M
、M
、M
为各绕各自坐标轴的力矩,I
、I
、I
、I
为转动惯量。2.1.3 动力系统模型
动力系统模型模拟飞机发动机包线范围内的所有工作状态,能正确模拟发动机在不同环境和飞行状态下的操纵响应,并综合大气温度、飞行高度、马赫数等因素解算出发动机转速、排气温度等状态参数和发动机螺旋桨拉力、燃油流量等性能数据。
2.1.4 飞行控制系统和自动驾驶系统
飞行控制系统和自动驾驶系统的模型主要是为了完成飞机的基本控制,自动驾驶系统的高度保持模式、速度保持模式、升降速率保持模式等,可以辅助完成近地告警系统的自动测试。
2.1.5 传感器及无线电导航模型
近地告警设备的运行需要从多种机载系统和传感器等获得必要的数据。具体包括:
(1)大气数据系统模型;
(2)惯性基准系统模型;
(3)无线电高度表模型。
2.1.6 数据传输模型
数据传输模型使用C-MEX S-Function编写的UDP接收和发送模块,模块可封装为Simulink中的LIB库。仿真模型通过UDP协议完成数据的接收与发送。
2.2 模型运行环境
近地告警系统的验证对时间的要求很严格,这就对仿真模型的实时性要求很高。本次仿真模型运行在Linux系统中,Linux系统实时性更加优秀。模型通过Simulink自带的RTW编译功能,将仿真模型编译为在Linux系统下运行的可执行程序,这种方式可提高仿真模型的运行效率。编译流程如图3所示。
图3 RTW编译流程Fig.3 RTW compilation process
具体操作可采用Linux版本下的Matlab/Simulink进行建模,所有的建模过程和编译过程均在Linux系统下进行,最终在Linux系统中的Simulink进行编译,即可生成Linux系统下的可执行文件或so文件。
2.3 数据接口模块
数据接口模块提供Arinc429和离散量通信接口,用以接入近地告警设备,并将Arinc429信号和离散量信号转换为以太网信号供系统使用,如图4所示。
图4 数据接口模块示意图Fig.4 Schematic diagram of data interface module
数据接口模块使用一台工控机,工控机上插入1块429板卡和1块离散量板卡,通过板卡与近地告警设备连接。通过数据协议转换功能将近地告警设备发出的告警信号转换为以太网信号,并发送给数据显示与记录模块触发告警显示;将飞机仿真模型发出的飞机状态参数转换为Arinc429格式的数据发送给近地告警设备,近地告警设备接收参数进行告警逻辑运算。
2.4 自动化测试环境
自动化测试环境与Linux下位机上运行的飞机仿真模型通过以太网通讯连接,可通过用例编辑与执行模块对飞机仿真模型中的参数进行修改,使其按照测试用例中设置的状态飞行。
系的转换矩阵如图5所示。
图5 自动测试环境实现原理Fig.5 Implementation principle of automatic test environment
2.4.1 用例编辑与执行
测试用例使用Python脚本语言进行开发,可以控制飞机仿真模型的运行,直接修改飞行仿真模型中的参数,如:自动驾驶系统的飞行模式,设置飞机的当前经纬度、高度、指示空速等。同时可以指定试验结束的条件,并设置试验次数,之后自动转入下一次试验。
用例编辑与执行模块提供如下几个核心函数:
(1)RtPy.BeginTest():脚本实验开始,用在每个脚本代码的开始;
(2)RtPy.OnceBegin():单次实验开始,用在每单次实验循环的开始;
(3)RtPy.SetArrayValue(name,index,value):设置变量名并赋值;
(4)RtPy.GetArrayValue(name,index):获取对应变量的值;
(5)RtPy.canNextOnce():跳出循环的标志;
(6)RtPy.canStopTest():用于整个实验循环内,作为结束脚本的标志。
2.4.2 数据显示与记录模块
数据显示与记录模块通过Qt开发,具有人机交互界面,提供数据动态监视和曲线绘制功能。主要提供如下功能:
(1)数据动态监视:可通过曲线或数字列表的形式实时监测飞机仿真模型和EGPWS设备输出的数据;
(2)告警面板功能:模拟民机驾驶舱内的告警面板,提供各类告警抑制功能;
(3)曲线绘制功能:可设置曲线的横纵坐标绘制X-Y图或时间历程曲线;
(4)告警包线绘制功能:可通过设置曲线的阈值,实现告警包线的绘制功能。对包线内的警戒区域和警告区域进行颜色区分,并可随时修改;
(5)数据记录功能:可将每次试验的数据记录下来,分析试验过程中是否出现其他因素的影响;
(6)试验报告功能:可根据提前设置好的文档模板,自动加入试验曲线、试验名称和试验结论等;
(7)EGPWS视频集成功能:可将EGPWS输出的视频信号采集,并集中显示到软件界面上;
(8)提供了可视化的告警灯功能:当告警触发时,相应的告警灯会闪烁提示。
3 验证
以近地告警系统告警模式1过快的下降速率为例,对HoneyWell某型EGPWS设备进行了测试验证。参考其告警模式1的包线,在数据显示与记录模块中提前绘制好包线,原包线如图6所示。
图6 某型EGPWS设备模式1告警包线图Fig.6 Mode 1 alarm envelope diagram of EGPWS equipment
本次验证设置飞机初始状态如表1所示。
表1 飞机初始状态参数表Tab.1 Aircraft initial state parameter table
测试用例中设置飞机位于空中,自动驾驶仪为下降率保持模式和速度保持模式,飞机以恒定的空速和下降率下降。通过数据显示与记录模块监控飞机实时的无线电高度与下降率,并绘制包线,观察飞机多次试验的告警时间和与包线的交叉位置,来快速验证设计的算法是否与试验结果吻合。
如图7所示,在数据显示与记录模块中绘制告警包线,横坐标为垂直速率,单位为英尺每分钟;纵坐标为无线电高度,单位为英尺。
图7 模式1告警包线测试图Fig.7 Mode 1 alarm envelope test diagram
运行Linux系统下的飞行仿真模型,并执行用例脚本,可以看到坐标系中绘制出了飞机的VertSpeed-RA图,当曲线与包线相交时即为告警触发点,此时EGPWS设备也发出了告警音,并通过数据接口模块发出了告警信号。我们记录了曲线和包线相交的时刻和收到告警信号的时刻,通过对比发现误差小于1%。误差造成的原因是由于网络延迟以及Arinc429板卡和离散量板卡的数据延迟。实验结果表明:该方法测试出的告警响应基本与EGPWS设备的告警响应同步,可以用作EGPWS设备的告警算法验证。
4 结语
本文提供了一种基于飞行仿真模型激励的自动化测试近地告警系统设备的方法,并通过对告警模式1的场景验证,触发了告警模式1的警戒和警告两层告警。通过与真实的告警包线对比,两者告警响应基本同步,并且告警点均落在了设计包线内,证明了该方法可用于近地告警设备的告警算法测试。在近地告警设备的研制的各个阶段,均可采用此方法进行测试,可直接对告警算法进行数字化验证,也可接入真实工程样机进行算法和数据通讯的验证。本方法为通用型的测试方法,后续可通过对告警包线的阈值修改,不断迭代,进行多种类型告警模式和告警设备的测试。