当前位置:首页 期刊杂志

基于处理器仿真的发动机控制软件平台

时间:2024-05-04

陶金伟,车 鑫,陈海泉

(中国航发商用航空发动机有限责任公司, 上海 200241)

0 引言

仿真技术由于其天生的优势, 在数控系统的研制过程中,已成为重要工具和手段, 由于实际发动机数控试车投入高、风险大,因此在数控系统装机之前, 需进行一系列仿真试验, 其中主要包括控制系统数字仿真、硬件在回路仿真、半物理仿真等环节, 各个环节相辅相成, 但功能、仿真回路、仿真目的不尽相同[2]。

构建发动机控制系统全数字仿真平台不仅可以在发动机研制的初期起到控制系统需求确认的作用,也可以在研制后期作为验证平台对需求进行验证;仿真平台主要目的是在研制前期尽可能多的发现软件故障,由于软件故障主要是在设计阶段产生的一种软件缺陷而造成的, 是在系统运行之前就已经存在的[1],因此利用计算机仿真验证平台可以很快的发现并修正软件错误,对比于实物验证平台,仿真平台可以并行验证,通常情况下能有效的提升效率。

控制软件作为发动机控制逻辑和故障检测和保护逻辑的实现载体,通常在整体发动机研制的后期才能得到充分的验证,且常常受制于硬件研制的进度滞后以及硬件研制数量限制的影响,而导致控制软件的研制进度落后于其他部件。因此,在发动机性能、部件和附件等仿真模型已具备的前提下,建立发动机全数字仿真平台是解决上述问题的有效方法。而控制软件不受环境影响的特点,使得其具备了在仿真环境下就可以完成验证的可能。

1 仿真平台的架构及原理

目前,商用的大涵道比涡扇发动机一般采用全权限数字电子控制(FADEC)技术。电子控制器(electronic engine control,EEC)是整个控制系统的核心,具有强大的数字计算能力和数据处理能力,从而能完成更加先进、复杂的控制[3]。EEC接收来自飞机的指令,采集发动机温度、压力、转速以及作动部件位置等参数,实现发动机在所有使用条件下的稳态、过渡态、起动、点火、反推的控制功能和限制保护(包括参数限制和极限保护)功能,保证发动机在飞行包线内不出现超温、超转、超压、失速及喘振等现象,允许飞行员无约束操作而发动机不出现异常现象和破坏性故障。因此,在构建控制系统仿真平台时,需要集成如飞机模型、发动机模型、燃油系统模型、传感器模型、电子控制器硬件模型等仿真模块,在此基础上,集成操作系统构建控制软件的开发平台。具体的仿真平台架构如图1所示。

图1 发动机全数字仿真架构

发动机控制软件开发平台构建的关键因素如下:

1)EEC仿真,即仿真硬件设计,EEC的仿真是构建闭环仿真平台的关键,模拟电子硬件,控制软件可以不经修改直接运行,使得控制软件是整个仿真系统中唯一的一个真件。

2)仿真系统集成,即软件设计,调度各仿真部件和控制软件以一定的周期和时序运行,以模拟真实情况下的并行运行。

2 硬件设计

EEC仿真主要基于风河公司的SIMICS平台,在此基础上开发处理器模型,存储器模型,外设模型等构建硬件仿真,同时在该硬件上模拟操作系统,共同构成EEC仿真平台。

2.1 电子控制器(EEC)

考虑到系统的可靠性和安全性设计,电子控制器EEC一般采用冗余设计的模式,由功能完全相同的双通道构成,双控制通道分为A、B两个通道,其中一个作为主控通道,另一个作为热备份通道,当主控通道发生故障时,可以进行平稳切换至另一通道。EEC的两个通道间通过数据总线进行数据交换,当主控通道的部分输入信号发生故障时,即可通过数据总线获取备份通道的数据,借用备份通道的输入信号进行系统重构。

2.2 计算机硬件模拟器(SIMICS)

Simics是一款高性能的计算机硬件模拟器,可以通过模拟不同硬件构建不同架构的计算机系统。Simics可以实现指令级别、处理器内核处理器级别、硬件电路板级别等不同级别的模拟,同时还具有较高的性能[4]。Simics 为开发者提供了一个通用的框架,基于该框架集成处理器、存储器、外设等构成硬件仿真,同时还可以支持固件、驱动程序和操作系统的开发等功能[5]。

Simics 的主要功能主要有如下几方面:

1)提供目标指令集运行的平台,Simics平台提供驱动软件目标指令集运行的能力,使得用户可以在PC环境下,运行真实的软件目标程序;

2)处理器仿真,Simics能仿真诸如ARM、PowerPc、X86等多种架构的CPU[6],并且可以在这些仿真硬件上运行多种实时嵌入式操作系统,包括VxWorks、Linux等;

3)存储器和外设的仿真,利用Simics提供的语言对硬件设备进行建模,建模的对象包括处理器、存储器、外设、网络通信等多种设备。具体SIMICS的架构及开发如图2所示。

图2 SIMICS架构[7]

综上,Simics 主要用来虚拟特定的嵌入式硬件平台来开发相应的软件[8]。

2.3 EEC仿真架构

发动机控制软件从大的方面可分为应用软件(AS)、操作软件(OS)以及操作软件与应用软件的接口(ASOS接口),操作软件直接与硬件交联,其功能主要是给应用软件提供运行环境,如任务调度,通信等,其行为主要包括调度的策略,异常的处理等,不具有主动行为,只要将其提供服务的能力限制在一定的范围内,不对整个系统的行为造成影响。因此,OS仍以仿真的形式提供。具体EEC软硬件仿真架构如图3所示。

图3 EEC软硬件仿真架构

在该仿真架构下,由于操作系统为仿真件,因此存储器、IO、引导、驱动等的仿真不影响系统整体的仿真性能,所以,而处理器作为应用软件运行的载体,其仿真程度直接影响应用软件的行为,处理器仿真是该平台实现的关键。

2.3.1 处理器仿真

基于仿真平台的总体架构,该平台并未针对驱动等的验证,主要面向于为应用软件的运行提供仿真平台,因此,在处理器的仿真上,无需完全仿真真实的处理器,而只需要仿真其内核即可,因此选取PowerPC处理器系列下的e500内核,基于该内核,模拟器寄存器的模型,指令集等,使得通过商用的编译器编译得到的目标码能直接在仿真的处理器上运行。

按照PowerPC体系下的e500内核实现寄存器模型,如通用寄存器,浮点寄存器,处理器控制寄存器,定时、中断寄存器,SPRs、BTB、Cache控制、MMU、调试寄存器,SPE和SPE APU等。

按照PowerPC体系下的e500内核实现指令集仿真,针对e500核的处理器架构,在X86计算机上,采用高级语言开发实现PowerPC指令[9],主要涉及如整数运算指令,浮点指令,存取操作指令,流程控制指令,处理器控制指令,同步指令,信号处理指令等的仿真。

由于是在X86平台下的PC机中进行仿真,因此在执行指令时,需要通过解释执行或者动态翻译的方法将PowerPC的指令转换为X86的指令;ISS 的基本仿真策略分为解释型和编译型两种[10],解释型指令集仿真策略,为CPU指令系统中每一条指令编写对应的函数来解释执行,执行这两种方法在运行效率上均不高,因此,在实际运行时,采用编译型策略加上一定的缓存技术,以提高指令运行的效率。

2.3.2 与真实硬件的差异

在寄存器与指令集本身的模拟上,除了部分特殊的SPE指令和Cache相关指令未实现外,其余均于真实处理器一致。

在指令的处理方面,由于真实的处理器存在流水线等架构,而仿真时并为考虑,如指令预取、译码、执行、写回等。

以上差异均与软件运行的效率,即运行时间相关,而在仿真运行时,由于并不实时,更多的考虑是在正常情况下完成功能,同时能通过故障注入的方式完成软件错误处理逻辑的验证;因此在软件设计时,可通过时间分区的调度设计、WCET分析和验证、故障模式分析及超时故障策略设计与验证等消除仿真平台与真实平台差异带来的影响,使得在仿真环境与真实处理器环境下,软件的行为(如调度顺序、通信方式)等,是一致的。

3 软件设计

系统软件集成的主要目的是驱动各个模型以特定的频率运转起来,并相互交联完成系统的功能,因此在构建数字仿真平台时,软件集成工作主要关注点如下:

1) 模型以何种方式交联?

2) 模型以何种频率运行、运行的顺序如何、模块之间如何协同工作?

就以上两个问题,分别以软件架构以及同步设计两个方面进行介绍。

3.1 软件架构

图4 软件架构图

总线结构的出现大大促进了计算机的发展。总线结构使计算机能够方便的组件化,设备接入总线,从总线上获取设备所需要的输入,通过总线发送处理后的输出。采用基于总线的思想,将总线结构引入软件中,协同仿真总线提供了基本的数据读写操作,从而满足各个模块之间的互联互通。

通过用例模拟飞行包线,驱动飞机模型和发动机模型,控制发动机进入各个状态,从而达到发动机仿真的目的,同时,可以通过故障注入,模拟发动机不同飞行包线、不同状态下的故障,从而完整的验证FADEC的控制逻辑等。配合集成测试软件完成部分相关的验证活动,如测试覆盖率获取等。

3.2 同步设计

仿真平台区别于真实平台,其时间特性是相对的,因此在仿真频率的选取上,将发动机对于控制的最大频率的要求进行归一化,通过量化的频率作为分辨率进行控制时序的设计,因此,在运行效率上,仿真的效率是应该高于真实硬件的。

同步运行是仿真平台运行正常的关键,如果各个模块之间运行不同步,将造成各模型之间信号的传递出现延迟,从而造成整个系统功能丧失。最简便的同步方法是将所有的模型通过软件的方式集成编译至一个镜像内运行,但由于发动机模型等仿真模型集成方法的各不相同,该方法并不适用。只能采用类似分布式仿真的方法,各个模型独立运行,通过通信的方法进行同步。

考虑到如上两方面,本文设计的仿真运行环境主要有如下设计:

1) 单个模型异步运行,运行的时钟由协同仿真总线提供。

2) 协同仿真总线提供统一的仿真运行时钟,时钟的频率为系统控制要求频率的最大公倍数。该时钟为非周期时钟,需要等到所有的模型在单个仿真步长内完成所有工作后,才开始下一个仿真周期。

3) 对于多任务的模型,由模型内部自行调度,如EEC仿真模型,其运行时序由OS进行调度,其调度顺序应与目标平台一致。

如图5所示,由于并未采用绝对时间仿真,因此每一个仿真周期不相等,即达到了仿真同步的效果,又不影响模块的逻辑顺序,缺点周期内任务肯定能运行完成,所以无法模拟在单个周期内任务运行超时的故障,但是该故障可以通过其他方法模拟,如直接注入等。

图5 同步调度图

4 实验结果与分析

4.1 实验用例概述

为验证仿真平台的正确性,设计如下的用例:上电运行,待所有模块同步运行后,通过用例注入一个飞行循环,验证控制发动机在各个状态下的功能,具体如表1所示。

表1 用例说明

测试执行方法及预期输出:在基于SIMICS的仿真平台、真实硬件平台中,分别运行上述用例,得到结果,并比对两种平台运行的结果是否正确且一致。

4.2 验证结果

在SIMICS平台执行用例,将结果与真实硬件平台的结果进行对比,对比发动机状态从巡航状态->最大巡航状态->爬升状态转换的过程数据,如图6所示。

图6 测试结果及比对

可以观察到:

1) 对SIMICS平台的仿真结果分析,输出的发动机状态切换符合预期期望,高压转子转速和低压转子转速变化趋势满足发动机的控制要求,SIMICS仿真平台上用例运行结果正确。

2) 除在信号精度等方面存在差异外,在SIMICS平台和真实硬件平台上执行结果与SIMICS仿真平台执行结果基本保持一致。

5 结束语

基于以上的论述,以处理器仿真为核心,构建发动机控制软件与发动机模型的闭环仿真系统,能有效的进行控制系统控制逻辑的验证,同时减小PC机环境与真实目标环境的差异,可以作为发动机研制过程中,控制软件的开发与验证平台。

在验证方面,对仿真平台的正常功能进行了验证,但对于异常处理,如各类系统故障、硬件故障、随机瞬时故障(如由电磁干扰、粒子辐射等原因引起的短暂功能失效,并且是一次有效性[11])等,未进行详细的论述。以该平台为基础,模拟硬件和系统故障注入,发现更多的软件故障将是下一步的工作。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!