一种飞行模拟器数据多周期存储和回放方法与流程

文档序号:17286090发布日期:2019-04-03 03:34阅读:458来源:国知局
一种飞行模拟器数据多周期存储和回放方法与流程

本发明为一种数据存贮和回放方法,具体为一种将飞行模拟器飞机仿真数据多周期存储和回放的方法,属于飞机飞行仿真技术领域。



背景技术:

在飞行员使用飞行模拟器进行训练过程中,飞行员教学讲评、飞行质量评估等功能非常重要。通过飞行模拟器的回放功能,将虚拟视景、座舱系统、教员控制台、声音系统等与飞行数据相结合,再现飞行员操纵、飞机飞行状态、飞行轨迹、音效及故障信息等数据,使所记录的数据进行真实回放。为了保证数据回放或分析的真实性和全面性,必须将飞机仿真系统发往视景、座舱、教员台和声音系统的数据按周期全部记录下来。

一般地,仿真数据更新率要求不低于60赫兹。若以该周期存储所有的飞行数据,数据量巨大(经统计,存储2小时的数据超过2g);若将数据全部读取到内存中,会出现抛出异常。

由于存储数据流的复杂性、多样性和周期性,因此单周期存储会造成数据包过大,难以满足飞行模拟器回放要求。



技术实现要素:

针对上述技术现状和现实要求,本发明要解决的技术问题是提供一种将飞行模拟器飞机仿真数据多周期存储和回放的方法,以实现飞机模拟飞行过程中的所有飞行数据实时存储,同时实现数据的实时回放及控制开始、暂停、停止、循环及回放进度等定位功能。

为解决上述技术问题,本发明提供的技术方案为:

(一)一种飞行模拟器数据多周期存储方法

数据包括飞行员操纵装置、油门杆位移、视景驱动参数、座舱控制盒操纵信号、飞机系统操作逻辑参数(包括飞控、发动机、机电和航电系统)、座舱仪表显示数据、教员台监视参数、告警音及环境噪音等,上述数据的存储步骤为:

(a)定义数据结构体和存储周期。设置飞行员操纵装置、油门杆位移和视景驱动参数的存储周期为1个仿真步长,将其他数据的存储周期设为10个仿真步长,分别定义对应的两个数据结构体对象a和b,对应的存储次数m和n,初始化均为0;

(b)创建数据文件。当飞机仿真计算机开始存储数据时,在本地硬盘下采用二进制格式创建一个数据文件flightdata.rep;

(c)发送数据存储任务。每执行一帧仿真步长,m和n均在前一帧基础上叠加1,若m等于数据a的存储周期1,则发送一次数据a存储任务,同时将m清零。若n等于数据b的存储周期10,则发送一次数据b存储任务,同时将n清零;

(d)写入文件头信息。接收到存储任务后,以二进制格式打开数据文件,将文件指针置于数据文件头处,写入固定长度的文件头信息,包括飞机型号、文件描述、版本号、记录时长、数据流个数,用于更新文件头信息;

(e)写入数据流。将文件指针置于文件末尾处,将单个数据流写入文件。数据流由固定长度的数据头和不定长度的数据结构体对象组成,数据头包括数据结构体类型、数据结构体存储周期、数据结构体长度,数据结构体对象a和b对应的类型分别为0x01,0x02。数据头用于数据读取过程的数据对象标识;

(f)重复步骤(c)到步骤(e)的过程,直到数据停止存储。

(二)一种飞行模拟器数据多周期回放方法

将按照上述方法存储的数据采用下列步骤回放:

(a)发送数据回放任务并初始化。当飞机仿真计算机开始回放数据时,连续发送两次数据读取任务,分别读取数据对象a和数据对象b,并定义对应的回放位置pos1和pos2,初始化均为0;

(b)打开数据文件并读取判断文件头信息。接收文件读取任务后,在本地硬盘下采用二进制格式打开数据文件flightdata.rep,以固定长度读取该文件的文件头信息,比较文件头信息中版本号是否正确,若正确进行下一步,否则退出任务;

(c)判断文件指针位置并解析数据头数据。计算当前文件指针的位置,若以固定长度再读取一帧数据头仍未到文件末尾,则解析数据头得到数据结构体类型、数据结构体存储周期、数据结构体长度,并进行下一步,否则跳至步骤(g);

(d)继续判断文件指针位置。计算当前文件指针的位置,若以上一步的数据结构体长度再读取相同的字节仍未到文件末尾,则进行下一步,否则跳至步骤(g);

(e)判断数据结构体类型并执行存入操作。对比数据结构体类型是否为0x01,若是则将上一步读取的字节存入数据对象a的容器vector1中;

(f)重复步骤(c)到步骤(e)的过程,直到文件读取结束;

(g)执行另一类数据读取和存入操作。关闭文件,进行下一次读取任务,跳至步骤(b),读取文件挑选数据结构体类型为0x02的数据对象b,存入容器vector2中;

(h)数据处理。文件完成两次读取后,每执行一帧仿真步长,计算回放位置pos1和pos2,pos1=回放进度x(%)*vector1容量*1(数据对象a存储周期)+回放速度(1,2,4,6,...)取整,pos2=回放进度y(%)*vector1容量*1(数据对象a存储周期)/10(数据对象b存储周期)+回放速度(1,2,4,6,...)/10(数据对象b存储周期)取整,x(%)=pos1/vector1容量*100,y=pos2/vector2容量*100。若接收到暂停回放指令,则不计算回放位置,回放进度保持不变。若接收到停止回放指令,则回放位置跳至0,回放进度跳至0%。根据计算结果在vector1和vector2中取位置pos1和pos2的数据对象a和b,并将数据映射至飞行员操纵装置、油门杆位移、视景驱动参数、座舱控制盒操纵信号、飞机系统操作逻辑参数(包括飞控、发动机、机电和航电系统)、座舱仪表显示数据、教员台监视参数、告警音及环境噪音等参数中,驱动回放功能;

(i)重复步骤(h),若循环播放,则回放进度到100%时重新跳至0%开始,否则回放停止在100%,直至退出回放。

采用上述数据多周期存储和回放步骤,既降低了存储数据文件的占有空间,又满足了回放过程中虚拟视景、座舱系统与教员控制台、声音系统等实时再现飞行数据的要求,并可对回放过程进行定位控制操作。

附图说明

图1文件头结构信息。

图2数据头结构信息。

图3数据存储仿真流程图。

图4数据回放仿真流程图。

具体实施方式

下面将结合图1~图4,对本发明实施例中的技术方案进行清楚、完整地描述。

通信配置:

将飞行模拟器系统内所有计算机的网络配置为同一网段(192.168.1.xx),数据通讯采用以太网方式。教员控制台向飞机仿真计算机发送数据存储或回放、回放控制指令,飞行仿真软件解析指令,将飞行数据存储至文件中,或从文件中读取飞行数据进行回放,同时将回放的数据发送至虚拟视景、模拟座舱及教员控制台进行显示和监控。为了保证模拟器仿真的实时性和逼真度,飞机仿真软件运行在vxworks系统上,单步运行周期设定为100赫兹(10毫秒)。

数据存储:

飞机仿真软件接收到数据存储指令,按图1流程调用存储仿真模块,存储的飞行数据分为两种类型,飞行员操纵装置、油门杆位移和视景驱动参数定义为数据结构体对象a,数据类型为0x01,以10毫秒周期存储。其他数据定义为数据结构体对象b,数据类型为0x02,以100毫秒周期存储。

首先在本地硬盘路径"ata0b\\bin\\replay\\"下以二进制格式创建一个空白数据文件”flightdata.rep”,每次单步仿真中数据结构体对象a和b的存储次数m和n均在前一帧基础上叠加1,若m等于数据a的存储周期1,则更数据流(包括数据头及数据a,数据头按图2的固定格式),发送一次数据a存储任务,同时将m清零。若n等于数据b的存储周期10,则更数据流(包括数据头及数据b,数据头按图2的固定格式),发送一次数据b存储任务,同时将n清零。循环进入下一帧单步仿真。存储任务被触发后,以二进制格式打开数据文件,将文件指针置于数据文件头处,以图1的固定格式写入更新的文件头信息,然后将文件指针置于未见末尾处,将单个数据流写入文件后,关闭文件,等待下次存储任务。

数据回放:

飞机仿真软件接收到数据回放指令,按图4流程调用回放仿真模块,连续发送两次数据读取任务。

首先数据读取任务1被触发后,在本地硬盘路径"ata0b\\bin\\replay\\"下以二进制格式打开数据文件flightdata.rep,以图1中固定格式读取该文件的文件头信息,比较文件头信息中版本号是否正确,若正确进行下一步,否则退出任务。计算当前文件指针的位置,若以图2中固定格式再读取一帧数据头仍未到文件末尾,则解析数据头得到数据结构体类型、数据结构体存储周期、数据结构体长度,并进行下一步,否则结束读取。计算当前文件指针的位置,若以得到的数据结构体长度再读取相同的字节仍未到文件末尾,则进行下一步,否则否则结束读取。对比数据结构体类型是否为0x01,若是则将读取的字节存入数据对象a的容器vector1中。循环读取,直至文件指针到文件末尾处,关闭文件,等待回放任务2。

数据读取任务2被触发后,以与上相同的方式读取文件,其中对比的数据结构体类型为0x02,数据存入的容器为数据对象b的vector2中。

文件完成两次读取后,每次单步仿真中,计算回放位置pos1和pos2,pos1=回放进度x(%)*vector1容量*1(数据对象a存储周期)+回放速度(1,2,4,6,...)取整,pos2=回放进度y(%)*vector1容量*1(数据对象a存储周期)/10(数据对象b存储周期)+回放速度(1,2,4,6,...)/10(数据对象b存储周期)取整,x(%)=pos1/vector1容量*100,y=pos2/vector2容量*100。若飞机仿真软件接收到暂停回放指令,则不计算回放位置,回放进度保持不变。若飞机仿真软件接收到停止回放指令,则回放位置跳至0,回放进度跳至0%。根据计算结果在vector1和vector2中取位置pos1和pos2的数据对象a和b,并将数据映射至飞行员操纵装置、油门杆位移、视景驱动参数、座舱控制盒操纵信号、飞机系统操作逻辑参数(包括飞控、发动机、机电和航电系统)、座舱仪表显示数据、教员台监视参数、告警音及环境噪音等参数中,驱动回放功能;循环进入下一帧单步仿真。若循环播放,则回放进度到100%时重新跳至0%开始,否则回放停止在100%,直至退出回放。

以上为本发明的一种具体实施例,但本发明并不限于这一种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1