FADEC可靠性试验HIL仿真自动化技术研究
2022-10-28乔伯真柳亚冰
乔伯真, 柳亚冰
中国航发控制系统研究所,江苏 无锡 214063)
在航空发动机全权限数字电子控制(Full Authority Digital Electronic Control,FADEC)系统中,数字电子控制器及其搭载的控制软件是组成这个安全关键系统的核心成附件。为证明其设计符合性,针对电子控制器和控制软件开展子系统级测试验证成为FADEC系统研制过程中的关键环节,一种有效的测试手段就是充分开展硬件在环(Hardware-in-Loop,HIL)仿真,这在航空航天、汽车电子和医疗设备等领域的系统研发工作中已被广泛应用。在国内航空发动机FADEC系统工程研制领域,也已在控制软件测试和电子子系统集成测试过程中广泛采用了HIL闭环仿真验证这一测试手段。
电子控制器作为控制系统的核心硬件产品,需要开展可靠性试验,对产品的可靠性进行验证。根据《可靠性鉴定和验收试验》(GJB 899A—2009)的规定,机载电子设备的可靠性测试验证方式已逐步转向含控制软件的系统级测试[1],即应用HIL仿真测试手段模拟电子控制器在典型飞行任务剖面下的输入输出信号,使电子控制器承受典型的运行负荷,并与环境载荷的模拟过程同步进行,从而在系统/子系统层面更真实有效地验证电子设备的可靠性。
可靠性试验是按特定的环境应力载荷谱和典型飞行任务HIL仿真谱执行的循环测试,随着控制系统研制过程的推进,单次试验时间从几百小时到数千小时不等,因此测试自动化相关技术对解决可靠性试验的循环操作显得尤为重要。目前环境应力载荷可以通过环境模拟设备实现自动操作,HIL仿真的自动化技术取决于所用测试设备的软硬件环境,没有统一的、标准的技术途径。黄奕丹[2]介绍了自动化技术在航空电子设备自动测试过程中应用的现状;冯亚冬[3]介绍了自动化技术在FADEC控制软件适航工作中的应用情况;黄胜龙[4]以MATLAB/Simulink的xPC Target构建汽车电子控制单元(Electronic Control Unit,ECU)的HIL仿真环境,用Python语言来编写自动化测试程序;肖前远[5]以Python脚本语言为基础,通过扩展Python模块实现全数字仿真环境中的自动测试脚本。
本文以电子控制器可靠性试验任务要求为牵引,围绕测试任务谱的特点,利用基于Python的关键字驱动测试自动化框架Robot Framework作为自动化使能工具,构建HIL仿真自动化技术方法,从自动脚本分层构建、执行时间显形、工具软件自动整合、自动执行流程构建等方面,设计了适用于可靠性试验任务谱的仿真自动化技术方案,并针对以下两个目标开展技术创新:
① 降低测试任务谱时间线设计实现和执行时间误差优化的难度;
② 实现非自动化软件工具的自动化整合。
通过某型FADEC控制器的可靠性摸底试验进行了技术验证,证明所提出方法的试验效率和系统验证的有效性均显著提高。
1 测试平台简介
1.1 硬件环境
本文以某平台级地面维护设备(Ground Maintenance Equipment,GME)作为HIL仿真试验器,该设备的上位机利用自动化中控软件作为自动流程的控制中枢,通过用户数据报协议(User Datagram Protocol,UDP)通信形式的自动化接口或批处理调用方式执行自动脚本指令。
GME设备由3个防振便携式小型机柜组成,机柜内安装有程控电源、综合测控下位PXI计算机、主控PXI计算机、信号调理箱、信号断连箱和控制器接口适配装置等设备,各设备之间通过电缆连接,由程控电源供电,电子控制器通过电缆和接口适配装置与GME设备连接,使控制器和仿真试验器在硬件链路层面实现闭环。
综合测控下位PXI计算机通过信号负载箱接收电子控制器的输出信号,提供给执行机构模型和发动机模型程序,在LabVIEW RT实时环境下进行计算后,将模型计算结果和其他仿真信号通过信号调理箱输出给电子控制器,实现HIL闭环仿真。
此外,主控PXI计算机通过以太网与综合测控下位PXI计算机连接,通过试验器仿真软件实现人机交互和上下位机交互,并实现HIL仿真测试的相关外部操作。
1.2 软件套件
仿真试验器的软件套件主要由HIL环境仿真软件、自动化中控软件、上位机监视软件、数据分析软件、报表生成工具软件等组成。
HIL环境仿真软件提供数据设备资源监视、信号设定、故障注入、飞发通信模拟等人机交互功能,同时,实现输入信号采集、模型程序加载、输出信号设定、设备操控等上下位机交互功能。
自动化中控软件采用基于Python语言的开源工具Robot Framework开发,包括图形化操作前端RIDE,通过UDP端口按接口协议与具备对应接口的应用软件进行交互,通过批处理调用方式启动某个软件或脚本,进而按其语言格式编写脚本代码即可实现自动操作逻辑。
上位机监视软件可实现启动/停止监视、数据保存、停止保存等功能操作,具备常规的交互操作接口。
数据分析软件和报表生成工具是C++控制台应用程序,可在后台自动运行,不影响前台窗口程序,具有执行效率高的优点,适合于控制器可靠性试验的自动执行场景。但当前的软件是项目早期的工具软件,不具备自动化操作接口。
2 HIL仿真自动化技术研究
2.1 仿真流程分析与设计
仿真运行流程主要涉及仿真环境部署、飞行任务剖面的HIL仿真运行过程和电子控制器电应力循环操作等几方面任务。
电应力循环执行周期为24 h,包括3个8 h执行周期,每8 h分别按DC 30.8 V、DC 28 V、DC 25.2 V顺次设定电子控制器的输入电压。
飞行任务剖面的运行流程以8 h为一个执行周期,包括4 h冷天和4 h热天测试,分别执行一次4 h飞行任务剖面(含冷浸或热浸阶段的30 min),该过程与环境模拟设备同步;GJB 899A规定湿度应力循环和振动应力循环均由环境模拟设备自动设置,包含于8 h执行周期内。
因此,为了支持整个HIL测试过程随环境模拟设备的周期自动连续运行,需要以完整电应力循环为单位,设计以24 h为周期的运行流程。同时,为了便于测试数据链和证据链管理,需要满足数据截取、命名、归类、分析和报表制作等自动化需求。
综上,HIL闭环测试的执行流程应包含4 h飞行任务剖面、8 h温度循环和24 h电应力循环的嵌套,兼顾数据自动截断和分析的功能,其自动运行流程可设计为仿真运行环境初始化、启动监视、数据存储、任务执行、数据截断、数据分析调用、报表制作调用等执行步骤,不同的流程步骤按需接续执行或循环执行,4 h飞行任务自动测试执行流程如表1所示,可靠性试验自动运行流程示意图如图1所示。
图1 可靠性试验自动运行流程示意图
表1 4 h飞行任务自动测试执行流程
2.2 仿真流程自动化设计
仿真运行自动化由中控软件Robot Framework通过脚本调用相关工具软件、辅助脚本代码来实现,在Robot Framework软件中设计开发脚本实现仿真流程中的每一步具体操作[6]。
在所使用的工具软件中,HIL环境仿真软件和上位机监视软件具备UDP通信功能和自动化接口协议,可由中控软件Robot Framework直接操作,因此,仿真流程涉及的运行环境初始化、启动监视、执行状态操作指令、停止监视、数据截取与命名等操作可通过直接在中控软件中开发脚本来实现。
数据分析软件不具备UDP通信功能和自动化接口,属于非自动化工具软件,如果仅通过自动脚本调用批处理命令的方式直接打开,则无法按需分析指定数据,因此,需要专门设计自动化整合方法。
数据分析软件自动化整合主要有以下3种解决途径。
① 扩充分析软件的功能,开发UDP通信功能和接口协议,实现与自动化中控软件的交互功能。
② 改造数据分析软件的功能结构,修改分析软件的数据文件加载方式,使软件启动后自动分析默认目录下最新的一份数据文件,在Robot Framework中通过执行批处理文件,间接调用分析软件,分析最近一次截取的数据段。
③ 开发一组外部辅助脚本,实现对分析软件配置文件的改写操作,先执行辅助脚本改写配置文件信息,再调用数据分析和报表生成工具,实现按需对指定数据段的分析和报表输出。
基于投入产出比最优的工程思想,为了以最小的软件开发投入获得最优的自动化构建效率,优选途径③。本文根据数据分析软件的运行原理,运用Python脚本语言编写了一套简洁的辅助脚本[7],由自动化中控软件通过批处理指令间接调用运行,通过改写工具软件的配置文件,为数据分析软件指定待分析的文件路径和文件名,建立分析数据源输出目录,为报表制作软件指定报表数据源、报表模板和报表输出路径等信息,实现对数据分析软件和报表制作软件的按需操作,进而间接实现该类型非自动化工具软件的自动化整合。外部辅助脚本流程如图2所示。
图2 外部辅助脚本流程图
综上,可得出可靠性试验HIL测试的自动化调用关系,如图3所示。中控软件Robot Framework的脚本操作仿真软件、上位机软件和相关的批处理指令,不同的批处理指令再间接操作辅助脚本、数据分析软件和报表工具。
图3 HIL测试自动化调用关系设计示意图
2.3 自动脚本设计
2.3.1 脚本分层封装
中控软件Robot Framework的脚本语言规则是以“关键字”代表模块,可以将有紧密联系的若干操作步骤封装为一个单独的模块,以便于模块复用和脚本维护,类似于C语言中的函数。
基于高内聚低耦合的模块化程序设计思想,从有利于顶层应用设计、底层操作解耦以及有利于脚本复用和继承的角度出发,按3层结构规划自动化脚本,具体如下。
① 基础封装层。该层包括项目、设备相关的基础配置以及对信号资源和各自动化接口的操作封装。
② 应用功能封装层。该层建立在基础封装层之上,包括环境初始化、上位机数据记录操作、控制系统功能操作、数据分析操作、试验任务基础操作等应用类事务操作的模块化封装。
③ 测试任务执行层。该层以应用功能封装层为基础,是按测试大纲或试验工艺文件等设计实现的测试任务脚本集合。
应用功能封装层承上启下,其模块化程度越高,测试任务脚本的开发效率和质量越高,可维护性越好。
2.3.2 显形脚本执行时间的必要性
从提高测试任务脚本开发效率和执行时间精度的目标出发,需要根据设计的仿真试验流程,对仿真任务谱的时间编排和脚本模块实际执行时间进行设计和统筹。
中控软件自动脚本的执行过程需要花费一定时间,这个时间包括中控软件下发指令至被控软件接收到指令的时间和被控软件响应相关操作的时间。尽管单条基础操作的脚本一般比较简单,其执行花费的时间并不多,一般仅为10 ms级,但是在设计应用功能封装层的脚本模块时,会涉及大量基础操作脚本的组合和重复调用。在设计顶层测试任务脚本时,会涉及应用功能封装层模块的组合和重复调用,从而产生大规模的脚本嵌套。以本文设计的某型控制器可靠性测试任务脚本为例,按应用功能封装层模块的单步脚本为最小统计单位,8 h任务脚本一共包含1014条脚本,24 h任务脚本一共包含3066条脚本,如果按基础封装层的单步脚本为最小单位统计,脚本数将成倍增加,可到达万条的量级。因此,各条脚本的执行时间误差,无论大小,最终都将通过顶层的测试任务脚本的执行过程累加为一个总的时间误差,这个误差可以从单条脚本的10 ms级发展为1 min量级,甚至可能为10 min量级,导致执行时间误差的累积放大。电子控制器可靠性试验流程对环境应力模拟和HIL仿真的执行时间敏感,如果测试任务谱执行时间误差较大,则会导致HIL仿真过程和环境应力模拟的变化过程在时间轴上错位,可靠性试验的效果就会偏离试验的设计初衷,影响电子软件子系统的验证有效性。
因此,显形应用功能层的模块执行时间,对于顶层测试任务谱时间线的设计过程是十分必要的,有助于计算分配各模块的执行时间并统筹优化执行时间误差。
2.3.3 按名义执行时间模块化设计
本文提出了一种按脚本模块的理论执行时间(即名义执行时间)进行任务谱时间线设计的方法,在脚本模块的关键字中显形注明模块的名义执行时长,相当于脚本执行时间随脚本封装也实现了模块化,其实际执行时间和时间误差随封装而确定,由此有利于在顶层任务谱中设计分配时间线,也有利于统计执行时间误差和显形时间误差的组成,便于综合分配执行过程必要的等待时长,从而统筹减小整个任务谱的执行时间误差。同时,根据脚本模块组成的占比情况,可以有针对性地优化调用次数较多或时间误差较大的模块的执行时间,进而达到优化整个任务脚本时间线的目的。
在应用层模块设计与调试的方法层面,不仅要提供模块的集成度和接口设计,而且要考虑适当提高模块的执行时间尺度,在其中适当添加执行等待时长。一方面利用等待时长凑整模块的执行时间,达到1 s或10 s量级,以便于调用模块时进行时间计算;另一方面通过调整执行等待时长,补偿其他脚本执行带来的时间花费,将名义执行时间与实际执行时间的误差控制在较小范围内,等效于降低了单条操作指令执行时间误差及其累计效应对模块外部产生的关联性影响,这样更便于模块的调用者统计分配执行时间。例如,在本文设计的“数据分析10s”模块中,数据分析工具的批处理调用操作实际花费不到0.1 s时间,为了覆盖分析工具后台运行时间,并实现模块执行时间尺度扩大并凑整,为其封装一定的等待时长,定义模块的名义执行时间为10 s,通过调试,将等待时长调整为9.91 s,使模块实际执行时间达到9.97 s,误差0.03 s,执行时间和时间误差显形受控。部分脚本模块执行时间统计如表2所示。
表2 部分脚本模块执行时间统计 单位:s
按名义执行时间进行模块化设计的方法,降低了模块间的时间耦合,进一步增强了脚本的模块化程度,对于强调执行时间精度的顶层测试任务脚本开发过程,增强了脚本时间线设计的模块化程度,降低了任务脚本编写过程中时间线的控制与优化的难度,提高了开发效率和质量。
3 技术应用
在某型电子控制器1000 h可靠性试验中,应用了本文研究的可靠性试验HIL仿真测试自动化技术方案,试验执行过程流畅,无人值守,数据报表输出完整。根据Robot Framework软件的运行记录统计,每8 h试验任务脚本的执行时间误差预计值为93 s,实际执行时间误差为106±2 s,误差受控,与理论预计值的差异约13 s,该差异主要由未使用名义时间方法封装的部分脚本执行时间累加而来,例如高度、马赫数和油门杆等单一参数设置脚本,且该误差不影响自动化测试的结果判定。部分8 h任务脚本执行时间记录如表3所示。
表3 部分8 h任务脚本执行时间记录
4 结束语
以FADEC系统电子控制器可靠性试验为对象,研究了HIL仿真测试自动运行流程及其自动脚本设计方法,一方面通过开发辅助脚本实现了非自动化软件工具套件的自动化整合,实现对既有的非自动化工具软件的有效利用;另一方面,通过按名义执行时间封装脚本模块的方法,实现对执行时间及其误差的显形与控制,满足了可靠性试验对HIL仿真自动运行的需求。
经过某型FADEC控制器1000 h可靠性摸底试验应用,HIL仿真自动运行流程实施效果良好可靠,每8 h循环的脚本执行时间误差稳定受控。
在后续工作中,可以将高度、马赫数、油门杆角度等一条参数设置脚本,依据其相关性,按名义执行时间方法优化封装,可进一步减小顶层测试任务脚本的执行时间误差,优化执行时间分配。