基于反射内存网的飞机仿真试验数据库系统研究

2019-03-06 08:25高振江乔社娟
自动化与仪表 2019年2期
关键词:数据库系统数据表子系统

高振江,乔社娟,王 琪

(1.西安航空学院 能源与建筑学院,西安710077;2.西安航空学院 电子工程学院,西安710077;3.陕西四海测控技术有限公司 技术研发部,西安710075)

高速网络技术在各种研究型工程试验中的广泛应用[1-2],解决了多个子系统之间的实时数据共享与交互问题。 飞机仿真试验对数据的实时性要求非常高,要求实时获取、处理数据,确保飞行环境真实性。

目前,航空、航天领域中多使用以太网进行数据交互[3-4],文献[5-6]分别采用以太网与本地硬盘数据管理模式和以太网与SQL Server 数据库管理模式,时延仅达毫秒级。 毫秒级的时延会造成不真实的飞行环境和条件;长时间、高频次访问也会造成数据库响应延迟增大[7],因此,开发设计一套时延小、响应快、安全可靠的网络型数据库管理系统非常重要。

本文采用时延仅400 ns 的GE PCI-5565 反射内存卡构建数据共享型实时网络,采用Oracle 数据库存储各子系统的实时数据,中央控制中心系统实现历史数据同步快速回放,在不影响各子系统试验状态的前提下,提高了飞行机动性,保证了飞机飞行环境的真实性。

1 系统总体设计

1.1 系统总体分析

飞机仿真试验是一种综合性试验, 主要由飞控、液压、温度等子系统提供飞行环境数据,经仿真子系统对应算法运算后, 将结果数据提供给加载、频响、能源、视频监视等子系统。 一方面要求整个系统之间必须实现无缝连接,确保在数据交互、模式转换、接口匹配和数据管理等方面达到最高的兼容性;另一方面要求高速响应实时传输数据、快速运算仿真数据,以保证对当前飞行状态做出定量定性分析,对当前飞行环境做出真实确切判断,从而确保进一步的飞行动作;同时对于过程较长的复杂试验需要将多个子系统同一时刻的历史数据按照同一时间轴回放,分析决策下一步动作。 因此,飞机仿真数据管理是整个试验运行效率和飞行品质的关键技术所在。 本次设计选用时延400 ns 的反射内存卡构建网络结构、安全快速的Oracle 数据库存储管理多个系统的实时数据、中央控制中心系统整体协调同步规划试验与同步回放多系统同一时刻的海量数据。

1.2 系统网络结构设计

试验对象是1∶1 大型飞机模型, 各测控系统分散布置在模型周围,相隔距离小于200 m,飞控、液压、温度试验是非常重要的原理性试验,为了防止某个节点出现故障影响整个网络,整个系统采用星形网络拓扑结构,选用专用交换机和多模光纤进行数据交互。 数据库系统和中央控制中心系统选用主流高端配置服务器机作为高性能工作站,本系统设计了23 个节点,其中,飞控系统3 个、液压系统5个、温度系统1 个、仿真系统5 个、加载系统2 个、频响系统2 个、视频监控2 个、能源1 个、数据库系统1 个、中央控制中心系统1 个,需要4 台8 口光纤交换机完成全部组网,图1 所示是基于反射内存卡的系统实时网络结构。

图1 系统实时网络结构Fig.1 System real-time network structure

2 数据库分析与设计

2.1 数据库需求分析

数据库是整个系统数据存储和管理的核心部分, 不同试验选取的子系统和通道不完全相同,而且静态试验和动态试验的采样率也不尽相同,因此数据库设计需要满足以下要求:

完整性和实时性要求数据库在获取试验数据的同时,具有快速响应存储和查询;

同步性特性分析需要将各个子系统同一时刻的数据显示在同一时间轴进行数据回放,保证还原试验过程中综合状态于环境等因素的真实性,各种数据表需要带有同步性时标;

综合性和模块化试验种类繁多,单个子系统通道多达256 路,每个通道具有测量类型、滤波、增益、隔离等多种配置方式,既要将各个试验项目集中管理,又要将各个子系统的试验配置、通道配置与试验数据单独模块化管理。

扩展性针对大型飞机研发项目的不断更新,要求本数据库采用分布式设计、 最小化共享资源,能够并行增加或删减内容。

2.2 数据库结构设计

针对以上需求和反射内存卡信息共享型的网络结构特点, 本系统在安全实时的Linux 环境下采用Oracle 数据库建立分布式模块化数据存储与管理系统。 飞机仿真试验的多样性,子系统试验配置参数、通道配置参数与试验数据通过反射内存网将数据共享给数据库,本数据库系统按照模型关系和结构层次设计多种数据表,为了保证数据不被任意篡改设计用户信息权限管理表,表1 是数据库设计的主要数据表。

表1 数据库设计的主要数据表Tab.1 Main data tables of database design

数据库中各表信息采用分布式层次设计,各表须同步,如某次冲击试验的子系统选取、子系统试验配置与通道配置、 子系统数据均需保持一致性,因此,每个试验的相关信息都需带有时标,同时带有试验启动、停止时标。 同一试验反复多次进行方可得到普遍性结论,高频动态试验数据量大、存储频率高,本文重点阐述试验项目管理表和各子系统数据表的结构。 实现由中央控制中心系统单独完成试验过程中海量数据回放, 确保系统分工合理、性能最佳。

项目管理表定义了36 个字段,包括22 子系统选取、试验名称、启停标识、启动时标、停止时标、操作者、环境等信息,项目操作由中央控制中心系统统一管理,由于仿真试验类型较多,试验中各子系统以及子系统配置不同,为避免同一试验中各个子系统可能提前结束或者异常终止影响整个试验进行, 表设计时采用试验名称和启动时标作为主键,缩短检索时间。

各系统数据表采用相同结构, 方便批量操作,如加载1 数据表定义了5 个字段, 主要包含时标、系统状态、传输数据序号、通道批数据、备注。 查询数据时首先通过试验名称和启动时标查询相应配置表,根据加载1 通道配置表中的通道选择情况分解对应通道数据, 对于冲击振动试验数据量很大,所有数据统一存储为int32 类型,double 型数据转换为int32 型数据的系数存储于每个子系统试验配置表中,节省存储空间和传输时间,提高反射内存网和数据库的利用率。

3 ORACLE 数据库系统实现

3.1 数据库的实时性

随着数据库在大型系统中的广泛应用,数据库的实时性要求越来越高,一般从硬件和软件两方面解决[8-9]。

硬件方面本系统选用反射内存卡和多模光纤组建分布式共享型网络, 从数据写入RAM 到其它节点的时延只有400 ns,各节点数据完全一致,反射内存卡通过向每个节点提供一套相同的数据备份,各节点可以并发访问相同内容,也可以访问组网内任意其他节点内存数据,与访问自身内存数据没有差别。 反射内存卡的数据传输速率高,没有以太网的多层协议,峰值传输速率43 MB/s~174 MB/s,而且无需开发额外通信软件, 通信开放透明,大大提高了传输速率、避免了网络堵塞、节省了软件开发。

软件方面在安全、 高效的Linux 环境下选用ORACLE 数据库,此数据库是一款可调性较强的复杂软件[10]。数据库的性能既取决于设计结构,又取决于存储和查询优化(如CBO(Cost Based Optimizer)、SQL 语句解析优化)[11-12]。 本数据库系统结合飞机仿真试验多而繁的特点,采用分布式、模块化、层次性结构设计,通过试验启停标识(Test_startstop)与传输数据序列(Data_id)字段判断数据更新,从对应节点内存获取批量数据保存在对应子系统通道批数据(Channels_data)字段中。在CBO 优化模式下通过优化器参数optimizer_mode 控制ORACLE 优化器生成不同模式下的执行计划[13-14],本数据库系统采用ALL_ROWS 模式以最快的速度将SQL 执行完毕,返回全部结果集, 可以通过下面语句修改optimizer_mode:

alter system set optimizer_mode=all_rows scope=both。

试验过程中多系统海量数据同步回放和试验后期数据分析是试验结论或试验改进的一个重要环节,因此,查询工作是本数据库系统的又一个重要操作, 原本的SOL 语句消耗数据库资源高达90%,实时查询技术的关键在于SQL 语句优化[15],中央控制中心系统对数据库查询设计使用的优化方式主要为以下几点:

首先,缩小海量数据查询范围。 不使用‘*’的SELECT 语句,避免全表遍历。 根据多个条件字段逐层准确定位,使用一个或多个字段限定条件;

其次,在ORACLE 中选择软解析过程。 通过绑定变量重复提交相同的SQL 语句,降低了硬解析所消耗的CPU 和重要latch 资源;

再次,尽量少嵌套子查询。 嵌套子查询会消耗大量CPU 资源,对于较多or 运算的查询分成用union all 联结起来的多个查询;

最后,尽量多用commit 语句提交事务。 即使释放资源、解锁、释放日志空间、减少管理消耗,同时应减少大事务查询操作。

如:查询试验名称(Test_name)为“Vibrate”的某次试验数据,可将名称都为“Vibrate”以及对应的操作者、启停时间等相关信息查询列示出,后台根据时标的唯一性查询加载1 参数配置表得出试验选取通道ID 及通道数目, 再批量获取所需时间段内的数据。 所用语句如下:

sprintf(cTestName,“Vibrate”);

select Operater,Start_time,Stop_time from TestManage where Test_name = cTestName;

select Data from LoadData1 where Time_flag >= Start_time and Time_flag <= Stop_time;

通过绑定变量模块化逐层查询,数据库返回10 min 内的加载1 采样率为10 kHz 的64 路通道数据(1500 MB),仅耗时2.46 s。

3.2 多系统数据回放同步快速性

飞机仿真试验过程中根据前期试验数据分析情况决策后续试验操作,本系统设计中央控制中心系统与数据库并行管理整个系统运行。 如图2 所示是管理层功能。

大量数据显示几乎消耗全部CPU,将数据多系统的数据回放从子系统中独立在中央控制中心系统有两方面的优势: ①降低了子系统运行负担,避免了回放数据异常时导致子系统运行中断情况发生;②可以将多个子系统同时刻数据在同一坐标轴中综合分析。

图2 管理层功能图Fig.2 Management function diagram

3.3 飞机仿真试验数据库实现

本数据库系统和中央控制中心系统均选用专用图形设计工作站HP Z840 作为主机、 采用GE PCI-5565PIORC 反射内存卡和ACC-5595-208 交换机组建数据共享性高效分布式数据库网络。 数据库系统采用ORACLE 11g R2 平台, 中央控制中心系统使用测控领域成熟的LabWindows CVI 2014,系统之间通过数据交换传递信息。

4 结语

本文建立了一种基于反射内存网的飞机仿真试验ORACLE 数据库系统,针对飞机仿真试验子系统繁杂的特点,介绍了系统网络结构设计,描述了数据库结构,利用响应速度快的反射内存网达到了多系统之间的数据交互的实时性要求, 采用ORACLE 数据库系统和中央控制中心系统实现了实时存储、管理、维护和试验过程中同时刻海量历史数据快速回放等功能。 本方案已应用在某型飞机研究设计的仿真试验中,试验结果表明本方案构建的实时网路系统之间数据交互最大时延为670 ns; 此数据库系统能够实时存储、 管理21 个节点的试验配置、通道配置与试验数据,并能在某子系统出现异常时不影响整个系统运行的情况下保证试验完整进行;同时开发中央控制中心系统,在数据库优化查询的原则下能够快速回放液压、温度、飞控、能源等多系统至少两小时以上的历史数据,真实决策飞机飞行动作,提高飞行的真实度和飞行机动性。

猜你喜欢
数据库系统数据表子系统
不对中转子系统耦合动力学特性研究
GSM-R基站子系统同步方案研究
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
关键信号设备检修自动盯控子系统研究
基于Oracle数据库系统的备份和恢复技术
Oracle数据库系统的性能优化研究
计算机数据库系统在企业管理中的应用
QH165点焊机器人数据库开发技术