基于VxWorks的飞行器模飞测试方法研究
2020-04-07
(北京航天长征飞行器研究所,北京 100076)
0 引言
在飞行器研发过程中,为对大部分电气系统的功能、性能进行检查,对飞行程序、时序控制指令的正确性和匹配性进行测试以及对一些故障状态飞行弹道进行模拟,均需要利用综合测试系统进行检验和测试,而且人们希望该系统能够尽可能地逼近真实飞行条件[1-2]。
传统综合测试系统更侧重于电气系统的接口匹配性测试,且往往需要配套转台等多种外部设备,导致测试程序繁多、测试流程复杂、测试效率低下[3-4]。针对这种情况,本文设计了一套基于VxWorks的模飞测试方法,在减少设备数量的同时提高测试覆盖性和测试效率。
1 系统结构及原理
在静态测试条件下,惯性器件无法随着弹体转动输出相应的姿态角和视加速度,因此通过数学模型运算产生惯性数据,采用模拟注入方式实现闭环模飞测试。整个模飞测试方法的设计原理如图1所示,具体原理如下:
1)模飞软件的开发基于实时操作系统VxWorks完成,该系统具有开发简便、系统响应速度快、实时性好、内核稳定等优点[5];
2)控制计算机(内部运行飞行控制软件)接收到综合测控系统发出的起飞指令后开始进行飞行流程,输出飞行控制指令,该指令以RS422串行通讯接口发送给模型机(内部运行模飞程序);
3)模飞软件根据接收到的控制指令实时解算数学模型,产生飞行器的模拟惯组数据(姿态角速度和视加速度数据),并通过RS422串行通讯接口发送给控制计算机;
4)控制计算机根据接收到的模拟惯组数据,计算完成下一步控制指令并输出,从而形成闭环模飞测试。
5)执行机构根据控制计算机的控制指令执行相应动作;
6)遥测系统采集实时模飞产生的所有数字量和模拟量遥测数据,其他系统与控制计算机之间根据飞行时序交互信息。
2 硬件设计方案
2.1 综合测控系统
该系统采用前后端设计思想,其中前端为系统地面站、后端为主控计算机,前后端通过光纤或网线连接,系统拓扑图如图2所示,具体系统设备组成图3所示。
图2 综合测控系统拓扑图
图3 系统设备组成图
主控计算机通过PCIe-8375与综合测控地面站相连,为降低总线延迟二者采用有源光纤连接,组成透明的PCI桥。全部的计算和控制均由主控计算机完成,因此主控计算机的处理能力决定系统的实际工作效率。为保证控制系统地面站的能力发挥到最大,选用联想的ThinkStation P900工作站作为主控计算机,并配合GV-N75TOC-2GI显卡及多台显示器组成的显示界面完成人机交互。P900工作站采用E5-2620V3处理器,具有2.4 GHz主频、15 MB缓存、6个内核;工作站主板具有4个PCI-E x16插槽、2个PCI-E x4插槽、1个PCI-E x1插槽和1个PCI插槽,能够满足PCIe-8375 PCI-E桥、GV-N75TOC-2GI显卡以及网卡的需求。
综合测控地面站主要用于飞行器的供电、通信指令收发处理、电压采集、阻值测试等功能,是系统的主要地面测试设备。该系统的主要设备为一台由18槽兼容式PXI机箱PXIe-1085和配套板卡组成的测控机箱。PXIe-1085机箱具有16个混合插槽,可安装兼容式PXI或PXIe模块。通讯接口包含RS422和1553B两种,为保证RS422接口的隔离特性,采用PXI-8433/2作为通讯模块,能够满足921600b/s的带宽要求;1553B模块采用4M双通道模块。在测试过程中地面站还负责对飞行器的多种电压进行测量、监控以及对电源的电压和电流进行测量,为减少系统不同电源母线间的耦合和串扰,采用PXIe-4300 8通道隔离A/D模块进行电压测量。PXIe-4300输入阻抗为10 kΩ,可以实现每通道25 k/s的采样率,电压测量精度也可达到12.6 mV(10 V量程)。飞行器的起飞信号和测试状态控制信号需要通过常闭触点保持接通28 V地,在测试过程中打开。据此选用PXI-2566 16通道2A SPDT继电器模块。供电控制方案采用通过开关直接控制电源输出的方式,即采用PXI-2564大功率SPST继电器并联进行供电[6-7]。
为了实现对综合测控地面站电源的控制,将站内电源通过LAN总线进行连接,并通过光纤交换机与后端的主控计算机连接,通过软件指令控制电源的输出和关断。为了实现对电压和电流精细化采集和监控,将前端综合测控地面站内的程控直流稳压电源的电压电流信号通过PXIe-1085机箱内的A/D模块进行采集,避免了由于网络延迟导致的数据偏差。
2.2 模型机
该模型机的设计力求可靠性高、维修性好且易于外场携带,本系统选择了一款基于PCI总线的便携式工控机。该机集成了液晶显示器、键盘、触控板。结构上为铝型材框架机箱、下翻键盘模式,电气上包括总线底板、计算机主板、二次电源、28 V输出直流电源等电气功能模块以及DVD-RW刻录光驱、硬盘、扬声器等功能部件,对外接口信号从安装在测面板上的连接器引出。
为提高通用性、扩展性并考虑降低成本,该模型机采用PCI总线架构,通过配置PCI总线的专用接口功能单元可实现特定功能设备的数据采集与处理。
3 软件设计方案
3.1 综合测控系统
综合测试软件运行于Windows操作系统,主要作用是响应用户的操作并根据用户操作实现控制计算机对相应动作的执行响应。软件采用面向对象的程序设计方式,以综合测控系统和飞行器控制系统为核心对象构建,采用Visual Studio2010和Measurement Studio 2013为开发平台。
根据对综合测试对象的分析,整个测试软件从功能上可分为3大部分:用户交互UI部分、功能应用模块和底层驱动模块,软件架构如图4。
图4 系统设备组成图
3.1.1 UI设计
用户交互UI为父子窗体模式,父窗体设置软件的打开、关闭、新建、配置、软件信息、单项测试等功能,子窗体为信息显示和指令收发按键或显示框,采用该设计可根据待测对象个数灵活打开单个或多个子窗体,保证呈现关键信息给用户。为保证软件的用户体验,用户界面的UI响应均采用异步方式进行处理,在控制计算机允许的条件下可以同时进行多个不冲突的测试操作。在测试程序的自动化方面,软件允许用户通过自主创建测试流程的方式实现灵活的自动化测试,用户可将需要测试项目拖拽至自动流程窗口,并可对当前流程进行修改、保存、导入等操作。
3.1.2 功能应用模块划分
功能应用模块主要完成电源管理、发射和起飞控制、通讯指令收发及测试状态监控功能。各功能模块严格按照紧耦合的思路进行设计,内部互相关联、对外相对独立,可根据用户的操作同时或依次执行。
为保证测试的安全性,在电源管理模块中实现了对电压电流的自动检测控制,仅当电压电流满足要求时软件才会控制电源输出;一旦出现异常,软件自动切断电源,保证硬件产品安全。
在发射和起飞控制模块中,对飞行器的关键的安全状态进行了判断,仅当满足条件时才能对发射状态进行切换,保证了测试人员的安全。
对于通信模块,则充分利用的模块内部的缓冲区,将通讯协议预先写入模块缓冲区,通过消息ID直接实现指令的发送。
3.1.3 驱动程序重构
驱动程序包括模块厂商的驱动程序和用户驱动程序两部分。厂商的驱动程序负责模块的基本操作,用户驱动程序负责将厂商的驱动程序二次封装,将模块或通道的操作转换为行为域的操作、将动作映射为用户的行为。
3.2 模型机模飞软件
模型机模飞软件设计包括实时仿真软件和模型计算软件两个模块,实时仿真软件模块完成与控制计算机的数据交互、模型计算软件的任务调度与处理等工作;模型计算软件模块则根据接收的控制指令完成飞行器数学仿真模型的解算,并将计算得到的惯组数据交由实时仿真软件模块发送给控制计算机,从而形成闭环模飞测试[8]。
3.2.1 实时仿真软件
为保证模飞软件计算的实时性,本方案采用VxWorks实时操作系完成模型的实时解算、控制指令接收以及模拟惯组数据的输出。软件采用了基于状态机的设计思路,对输入、计算、处理等环节采用状态机进行轮转切换,软件状态机如图5。
图5 实时仿真系统软件状态机
同时软件采用面向对象的设计方法,对仿真模型进行抽象、创建对象,利用VxWorks任务间资源的独立性,同一队象在多个任务中具有独立的任务控制块和内存区域,可以实现同一模型的多个飞行器模飞的计算。
由于需要同时运行多个飞行器模型,每个RS422通讯接口负责一个飞行器模型的控制指令输入和模拟惯组数据的输出,因此在软件设计过程中需要通过合理的任务调度机制借助信号量实现对临界资源的互斥访问,避免竞争冒险的发生。在实际设计过程中,当RS422接口接收到有效指令后,同样采用信号量控制使计算任务由阻塞态(PENDING)切换到运行态(READY)[9-10]。
为保证计算的实时性,软件设计时充分利用了VxWorks抢占式和时间片轮转结合的调度模式,对于指令接收和计算采用抢占式调度模式,对于多个模飞对象的任务采用时间片轮转的调度模式。当有多个对象时,可以充分利用VxWorks提供的SMP架构实现任务的多核运行。
3.2.2 模型计算软件
建立准确的飞行器仿真模型是实现模拟飞行的前提,针对模拟飞行使用场景,需建立一套可实现控制计算机闭环的飞行器仿真模型。
飞行器模型划分为四大模块,分别为运动学/动力学仿真模块、惯性测量器件仿真模块、执行机构仿真模块与飞行环境仿真模块,模型计算软件原理框架如图6所示。模型运行流程如下:运动学/动力学模块根据当前飞行状态与环境信息,计算弹体受力与力矩情况,积分计算下一时刻的飞行运动状态,并将加速度与角速度传递给惯性测量器件仿真模块。惯组仿真模块根据输入计算飞行器弹体相对于惯性空间的视加速度与角速度,并通过通RS422通讯发动给控制计算机。控制计算机接收惯组输入并按照特定制导控制律进行控制指令解算,并将控制指令通过RS422通讯接口发出。执行机构仿真模型接收控制指令,并模拟相应的机械动作,将动作结果反馈至弹体运动学/动力学模型中,用于下一时刻状态解算。至此飞行器仿真模型与控制计算机实现闭环飞行仿真。
图6 模型计算软件原理框图
3.2.3 运动学/动力学仿真模块
作为飞行器建模的基本模块,运动学/动力学仿真模型通常为描述飞行器推力、重力、气动力、操纵力与力矩间关系的六自由度刚体(或弹性体)方程,包括动力学方程、运动学方程、质量方程和几何关系方程等。其中,运动学方程主要是对其质心运动及角运动进行积分求解,动力学方程则根据运动学环节提供的飞行器姿态、位置,计算飞行器所受到的力和力矩,而后反馈回运动学环节,迭代求解飞行器的运动姿态及弹道轨迹。质量方程根据燃料消耗情况实时计算飞行器质量,而后反馈至运动学与动力学方程中。
3.2.4 惯性测量器件仿真模块
惯性测量器件仿真模块主要包含加速度计仿真模型与陀螺仪仿真模型。模块依据飞行器运动学/动力学模块仿真的飞行器运动状态,结合惯性器件动力学模型、惯性器件误差模型与器件安装位置等信息,实现飞行器相对于惯性系的视加速度与角速度的模拟,输出信息用于控制计算机的制导控制解算。
3.2.5 执行机构仿真模块
执行机构仿真模块主要为舵机模型。模型的建立充分考虑实际产品特性,保证模型有较高的拟真度。舵机模型主要考虑舵机系统动力学特性、舵机系统速率限制、舵机系统位置回环宽度、舵机系统比例误差、舵机系统零位误差等。模块接收控制计算机发出的控制指令,实时模拟舵机动作,模型输出反馈至飞行器运动学/动力学模块,驱动飞行器按照控制指令运动。
3.2.6 飞行环境仿真模块
飞行环境仿真模块用于模拟飞行器飞行的外部环境模型,模块考虑综合飞行器在大气层内及大气层外的飞行环境,依据相关标准文件,建立相关环境模型,主要有地球重力模型(转动椭球模型)、标准大气模型、风场模型等。
4 实验结果与分析
测试过程为:飞行器通过综合测控系统实现供电,单机各项自检功能正常后执行参数装订,主要包括当前模飞的起始点位置、目标点位置、当前飞行模式、模型运行个数等信息。该指令由控制计算机同步分发给模型机,运行在VxWorks系统上的软件会根据装订信息自动确定当前飞行模式,进入相应的程序执行段。各项飞行前准备工作完成后,综合测控系统向控制计算机发出起飞指令,飞行控制软件和模型软件同步运行,按照装订信息实现闭环模飞,执行机构会根据实时生成的控制指令动作,其余外设也会根据实时信息完成各自的飞行功能。
所有飞行信息都会通过遥测数据传回到地面接收计算机存盘。事后对飞行数据进行判读,所有飞行时序动作均按照装订弹道正常发出,飞行器准确落入预订地点,各系统间接口工作协调,整个系统均工作正常。图7~图8分别为控制计算机发出的舵偏角指令和模型机计算得到的惯组数据。
图7 控制计算机发出的舵偏角指令
图8 模型机计算得到的惯组数据
除此之外,还对多飞行器同时模飞的工况进行了测试,以硬件资源可承载的最大情况进行测试,系统可最大支持到4个飞行器同时进行模飞,经对各飞行器模飞结果进行数据判读,各项测试结果均满足要求。
5 结束语
本文主要针对传统模飞程序繁多、测试流程复杂、测试效率低下、测试覆盖性不足等情况设计了一套基于VxWorks的飞行器模飞综合测试系统。经过对某型飞行器综合测试试验验证,该系统可以测试到几乎所有飞行时序,提高了系统的测试覆盖性;可装订多种飞行工况,包括:不同点位、不同弹道等,具有很强的适应性;可支持多飞行器并行模飞,极大地提高了测试效率。