典型飞行器视景仿真系统的制作方法

文档序号:6397782阅读:648来源:国知局
专利名称:典型飞行器视景仿真系统的制作方法
技术领域
本发明涉及计算机仿真技术领域,特别涉及基于分布式仿真架构的典型飞行器的实时视景仿真。具体讲,涉及典型飞行器视景仿真系统。
背景技术
随着计算机技术的飞速发展,科学家可以得到越来越多、越来越准确的科学实验数据,但是,这些数据的复杂性、多祥性远远超出了人脑分析解释这些数据的能力。由于缺乏对复杂数据信息分析的有效手段,大量信息被浪费,科学研究的步伐严重受到阻碍。迎接这ー挑战,视景仿真应运而生。视景仿真不仅仅是ー门新颖的技术,更重要的是ー种高效的思維和研究方式。它是ー种计算方法,将符号转换为几何,使研究者能观察它们的模拟与计算;它将不可见转化为可见,丰富了科学发展的过程,给予人们意想不到的洞察力。视景仿真在很多研究領域中使科学家的研究方式发生了根本变化。”在航空航天科学研究中,我们同样面临因数据复杂导致的信息浪费问题。实际上,对各种飞行器的研究一直是国家的热点研究方向,飞行器类飞行技术的发展具有科学前瞻性、发展战略性以及学科带动性。但是飞行器系统研制过程往往集中在MATLAB仿真层面,无论对建模工程的描述,对控制方法的介绍,还是对仿真结果的分析,研究者面对着大量的数据曲线,很难得到ー个整体、直观、形象的视觉效果。对复杂曲线数据的研究无疑是低效的,与此形成鲜明对比的视景仿真就在此显得尤为重要。视景仿真技术将需要处理的飞行器六自由度信息通过虚拟建造的飞行器模型展示出来,辅以逼真的飞行场景再现,给予研究者更加直观的视觉效果。在实际应用中,视景仿真常常和纯数字仿真以分布式方式开发,进行纯数字仿真的计算机作为上位机将仿真数据通过通信接ロ传输给视景仿真计算机。视景计算机和单个上位机组成的仿真系统成为单机系统,和多个上位机的组成的系统成为多机群控系统。但是,在航空航天领域的视景仿真应用中,存在大量重复开发问题,不同的视景仿真系统除飞行器模型种类和数量外,其他功能具有很大相似性,如飞行场景建模、数据可视化实现等。所以,需要提出一种适用于各种飞行器进行仿真的,具有通用性的视景仿真实现方法。

发明内容
本发明g在克服现有技术的不足,本发明g在设计ー个适用于典型飞行器(高超声速飞行器、无人机、卫星三类飞行器)的视景仿真系统。在此系统下,研究人员对飞行数据的分析不再局限于纯数字,而是通过虚拟飞行器的姿态变化将纯数字信息转化为人类更容易理解的三维图像化信息;在此系统下,无论高超声速飞行器、无人机、卫星均可以进行视景仿真,达到多个飞行器模型共享同一系统的目标;在此系统下,可以进行单机仿真或多机群控仿真,具体工作方式由上位机数量決定;更进ー步而言,本系统需要解决常见的视景系统重复开发问题。为达到上述目的,本发明采取的技术方案是,典型飞行器视景仿真系统,包括:飞行器模型库模块、飞行场景库模块、网络通信模块、视景显示与驱动模块、数据库接ロ模块、数据可视化模块、ニ维态势模块、模型解析模块、人机交互接ロ模块;飞行器模型库模块:该模块中以3ds文件的形式存储有各类飞行器模型,包括高超声速飞行器模型、卫星模型、无人机模型;该模块属于可扩展模块,任何3ds格式的模型均可以人工放置到此模型库模块中;飞行场景库模块:该模块存储有高超声速飞行器、无人机和卫星需要的不同飞行场景;各种场景基于OpenGL技术独立开发,并以子模块方式存在;模块中包括比较全面的飞行场景,包括近空间模型、地球模型、海洋模型、山地模型、机场模型、城市建筑模型、天空模型,如果不满足需求,可以对该模块进行二次开发,添加不同种类模型;网络通信模块:作为实时仿真,采用UDP通讯,基于套接字编程(Socket)实现局域网环境中和上位机的通讯;同时,基于数据缓冲建立差错重建功能,防止UDP通信过程中的掉包事故;当飞行回放模式开启时,该模块自动关闭;视景显示与驱动模块:基于OpenGL双缓存技术初始化飞行器模型和场景模型,使两者拥有合适的空间位置和显示效果;基于计时重绘技术驱动飞行器模型在飞行场景中飞行;数据库接ロ模块:为实现回放飞行模式开设的接ロ,实现视景仿真系统和MySQL数据库的交互操作;为避免数据库和系统之间的交互延时,在两者之间建立缓冲环节,基于集合类对象方式暂存飞行器飞行数据信息;可以分为数据存储接口和数据读取接ロ ;数据存储接ロ在开启数据存储功能时打开,实现暂存飞行数据信息并将其转存至外部数据库的功能;数据读取接ロ在开启飞行回放模式时打开,实现暂存读取的数据库信息并转发给飞行器类对象的功能;数据可视化模块:添加数据显示模块,使研究者对飞行数据有更准确的认识;基于编辑框控件实现对飞行器不同属性的实时可视化效果;ニ维态势模块:描绘飞行器的飞行轨迹,使研究人员对飞行器的飞行过程,空域位置等信息有准确的了解;ニ维地图不是孤立存在的,它和各种飞行场景绑定存在,只要选定了飞行场景,系统会自动指定ニ维地图;该模块属于可选模块,当模块功能选中时,可以显示在窗ロ左下角,不影响主视角观察效果;模型解析模块:解析外部飞行器模型,即解析以3ds格式存储的飞行器模型,并基于OpenGL三角形近似方式建立重绘显示列表,方便视景显示与驱动模块调用;在此环节基于包围盒原理确定加载的飞行器模型大小和最优模型(其大小在整个视景显示窗口中有最优效果)的大小比例,方便以后对飞行器进行大小放缩,使其在视景系统中不会过大或过小;人机交互接ロ模块:利用MFC平台技术特点开发的应用程序和用户交互的接ロ,包括系统初始化时的人机交互和后期运行过程中的人机交互。系统初始化时实现飞行器模型选择、飞行场景选择、数据存储功能选择的人机交互;后期运行时实现飞行模式选择、仿真启停控制、观察视角选择、ニ维态势选择的人机交互。上述所有模块的连接关系如下所述:点选人机交互接ロ模块的模型选择选项,选择飞行器模型库中的模型,利用模型解析模块解析出模型中的信息,随后利用视景显示与驱动模块将解析出的信息重绘在视景显不窗ロ中;点选人机交互接ロ模块的场景选择选项,选择飞行场景库中的飞行场景,视景显示与驱动模块依据选择结果绘制飞行场景,同时ニ维态势模块根据选择结果自动关联ニ维地图;点选人机交互接ロ模块的数据存储功能选项,开启数据存储功能,通过数据库接ロ模块暂时存储飞行数据,在程序运行结束后,再次利用数据库接ロ模块将暂存的飞行数据存储至外部数据库;点选人机交互接ロ模块的实时飞行选项,实现在线视景仿真功能,当选择了该功能后,利用网络通信模块实时接收上位机发送来的实时数据,并将其传送给视景显示与驱动模块;点选人机交互接ロ模块的飞行回放选项,实现离线飞行回放功能,当选择了该功能后,摒弃网络通信模块,转而利用数据库接ロ模块读取外部数据库中存储的飞行数据,井将其传送给视景显示与驱动模块;点选人机交互接ロ模块的ニ维态势按钮,实现对ニ维态势模块的剪裁操作,依据自己的喜好,选择是否启用ニ维态势功能,使其显示在窗ロ左下角;点选人机交互接ロ模块的视角选择按钮,更改视景显示与驱动模块的相关參数值,切換观察视点;在模块化结构中,视景显示与驱动模块为核心模块,在实时仿真模式下,网络通信模块将飞行数据传送给视景显示与驱动模块,随后视景显示与驱动模块将这些数据以广播方式传送给数据可视化模块、ニ维态势模块、数据库接ロ模块;在飞行回放模式下,视景显示与驱动模块仍负责接收与广播数据,不同之处在于,数据来源于数据库接ロ模块。在模块化结构中,网络通信模块为可剪裁模块,当网络通信模块开启时,进行实时在线视景仿真,当网络通信模块关闭时,视景显示与驱动模块依靠数据库接ロ模块读取存储的飞行数据,进行回放离线视景仿真。各个模块的设置均按照多机飞行方式设置,单机飞行当做多机群控的特例;在网络通信模块中,建立了 n个接收不同上位机数据的数组,其初始值均为0,通过判断数组中的数据是否发生变化分析得出上位机的数量;在视景显示与驱动模块中,已经初始化了 n个飞行器模型的数据信息,只是飞行器处于不可绘制状态,如果判断得到某飞行器的飞行数据信息有变化,则直接使该飞行器模型可绘制;在ニ维态势模块中,已建立好n个不同顔色的ニ维航迹绘制画笔,通过判断和画笔相关联的飞行器ニ维坐标信息是否发生变化决定是否使用某画笔描绘航迹;在数据可视化模块中,同样已经建立好针对多个飞行器的数据可视化功能,只是均处于不可见状态,当检测到相应的可视化飞行数据发生变化吋,动态的使编辑框控件可见,显示飞行器飞行数据;在数据库接ロ模块中,建立了 n组起到数据缓冲作用的集合类对象,每组集合类对象均可以保存单个飞行器的不同属性的飞行数据。当存储数据子模块进行数据存储工作时,通过判断集合类对象中的数据变化决定是否存储对象中的数据,同时,在存储数据时,不同组别的集合类对象数据为其添加不同的数据标志位,当读取数据子模块进行数据读取工作时,通过判断数据库中的数据标志位将其读取到不同的集合类对象中。基于上述模块化设计,由四个线程实现,分别为:图像处理线程、数据处理线程、网络通信线程、数据库接ロ线程;图像处理线程为系统的主线程,完成人机交互模块、模型解析模块、视景显示与驱动模块功能实现;数据处理线程:对通信模块接收的数据进行二次处理,实现数据可视化功能,ニ维态势显示功能;网络通信线程主要负责完成网络通信功能,负责接收上位机数据;当开启回放飞行模式时,该线程自动关闭;数据库接ロ线程完成系统和MySQL数据库的交互操作,实现数据库接ロ模块功倉泛;各个线程的开启顺序为:最先开启图像处理线程,启动人机交互界面;当系统确定采用实时仿真模式时,则自动开启网络通信线程,否则该线程默认关闭;当系统确定采用回放飞行模式或开启数据存储功能后,则自动开启数据库接ロ线程;上述线程设置完毕后,数据处理线程自动开启,随后所有已开启线程并行工作。本发明的技术特点及效果如下:本发明充分利用MFC平台和OpenGL图形图像接ロ的技术特点,基于模块化设计思想构造了具有如下所述特点的视景仿真系统。1、通过嵌入包围盒原理的3ds文件解析功能,实现了对不同种类、不同大小飞行器模型的加载,实现了系统的智能性、通用性、扩展性。2、采用OpenGL技术,基于子模块方式自主开发各种飞行场景,形成飞行场景库,实现了不同飞行场景的选择、绘制功能,增强了系统的智能性、通用性、扩展性。3、同时开发实时仿真模式和飞行回放模式,实现了在线仿真和离线仿真的双重效果。4、系统中各个模块,包括网络通信模块、数据库接ロ模块、ニ维态势模块、数据可视化模块和视景显示与驱动模块均按照多机群控方式开发,单机仿真作为多机群控的特例。这种开发方式实现了系统功能的多祥性和通用性。5、基于MySQL数据库的数据管理技术开发飞行回放模式。添加数据库接ロ模块,建立了具有数据缓冲作用的集合类对象,防止因数据库和系统直接实时交互造成的时延。6、添加基于双缓存技术的ニ维态势模块,实现了观察飞行器三维立体效果及把握飞行整体状态的双重功效;同时将三维飞行场景和ニ维地图绑定,增强了系统的智能化程度。7、基于多线程的设计方法,四个线程并行工作,有效的利用了 CPU资源,解决了视景显示过程中因计算量过大造成的动画效果停顿、不连续的问题。8、基于UDP实时通信技术,实现了视景系统的实时性目标,在通信过程中建立差错重建功能,防止数据掉包,使通信数据平滑、连续。9、充分利用MFC平台的技术特点,利用其对话框技术、Ribbon技术、GDI技术设计了人性化的人机交互接ロ界面,系统操作过程清晰、简便。本发明为典型飞行器视景仿真系统,能逼真显示高超声速飞行器、卫星和无人机的实时视景飞行效果,将工作人员需要分析的纯数字信息转化为更容易被接受、理解的图像信息,帮助提高工作人员分析信息、利用信息的能力;同时,本发明建立了飞行器模型库和飞行场景库,实现了对不同种类、不同大小的飞行器的视景仿真;再次,系统各个模块均按照多机群控方式开发,实现了系统单机视景仿真和多机视景仿真的双重功效。总之,该系统将专门针对高超声速飞行器、卫星和无人机的多个系统集成为唯一的、功能齐全的典型飞行器视景仿真系统,避免了多个系统开发造成的能源浪费及开发重复问题。


附图1典型飞行器视景仿真系统总体结构框图。附图2典型飞行器视景仿真系统中的数据结构及流向说明。附图3典型飞行器视景仿真系统初始运行界面。附图4典型飞行器视景仿真系统仿真界面。附图5系统飞行场景库中各种飞行场景图。附图6典型飞行器视景仿真系统执行流程图。附图7系统网络通信模块接收数据流程图。附图8系统模型解析模块工作流程图。附图9飞行器包围盒求取流程图。附图10视景显示与驱动模块工作流程图。附图11数据库接ロ模块中存储数据子模块工作流程图。附图12数据库接ロ模块中读取数据子模块工作流程图。附图13 ニ维态势模块工作流程图。
具体实施例方式为提高系统的可扩展性和通用性,根据仿真功能需求,在MFC平台下基于模块化设计方法,将系统划分为:飞行器模型库模块、飞行场景库模块、网络通信模块、视景显示与驱动模块、数据库接ロ模块、数据可视化模块、ニ维态势模块、模型解析模块、人机交互接ロ模块。飞行器模型库模块:该模块中以3ds文件的形式存储有各类飞行器模型,包括高超声速飞行器模型、卫星模型、无人机模型;该模块属于可扩展模块,任何3ds格式的模型均可以人工放置到此模型库模块中;飞行场景库模块:该模块存储有各类飞行器需要的不同飞行场景;各种场景基于OpenGL技术独立开发,并以子模块方式存在;模块中包括比较全面的飞行场景,包括近空间模型、地球模型、海洋模型、山地模型、机场模型、城市建筑模型、天空模型,如果不满足需求,可以对该模块进行二次开发,添加不同种类模型;网络通信模块:作为实时仿真,采用UDP通讯,基于套接字编程(Socket)实现局域网环境中和上位机的通讯;同时,基于数据缓冲建立差错重建功能,防止UDP通信过程中的掉包事故;当飞行回放模式开启时,该模块自动关闭;视景显示与驱动模块:基于OpenGL双缓存技术初始化飞行器模型和场景模型,使两者拥有合适的空间位置和显示效果;基于计时重绘技术驱动飞行器模型在飞行场景中飞行;数据库接ロ模块:为实现回放飞行模式开设的接ロ,实现视景仿真系统和MySQL数据库的交互操作;为避免数据库和系统之间的交互延时,在两者之间的建立缓冲环节,基于集合类对象方式暂存飞行器飞行数据信息;可以分为数据存储接口和数据读取接ロ ;数据存储接ロ在开启数据存储功能时打开,实现暂存飞行数据信息并将其转存至外部数据库的功能;数据读取接ロ在开启飞行回放模式时打开,实现暂存读取的数据库信息并转发给飞行器类对象的功能;数据可视化模块:添加数据显示模块,使研究者对飞行数据有更准确的认识;基于编辑框控件实现对飞行器不同属性的实时可视化效果;ニ维态势模块:描绘飞行器的飞行轨迹,使研究人员对飞行器的飞行过程,空域位置等信息有准确的了解;ニ维地图不是孤立存在的,它和各种飞行场景绑定存在,只要选定了飞行场景,系统会自动指定ニ维地图;该模块属于可选模块,当模块功能选中时,可以显示在窗ロ左下角,不影响主视角观察效果;模型解析模块:解析外部飞行器模型,即解析以3ds格式存储的飞行器模型,并基于OpenGL三角形近似方式建立重绘显示列表,方便视景显示与驱动模块调用;在此环节基于包围盒原理确定加载的飞行器模型大小和最优模型(其大小在整个视景显示窗口中有最优效果)的大小比例,方便以后对飞行器进行大小放缩,使其在视景系统中不会过大或过小;人机交互接ロ模块:利用MFC平台技术特点开发的应用程序和用户交互的接ロ,包括系统初始化时的人机交互和后期运行过程中的人机交互。系统初始化时实现飞行器模型选择、飞行场景选择、数据存储功能选择的人机交互;后期运行时实现飞行模式选择、仿真启停控制、观察视角选择、ニ维态势选择的人机交互。上述所有模块的连接关系如下所述:点选人机交互模块的模型选择选项,选择飞行器模型库中的模型,利用模型解析模块解析出模型中的信息,随后利用视景显示与驱动模块将解析出的信息重绘在视景显示窗口中;点选人机交互模块的场景选择选项,选择飞行场景库中的飞行场景,视景显示与驱动模块依据选择结果绘制飞行场景,同时ニ维态势模块根据选择结果自动关联ニ维地图;点选人机交互模块的数据存储功能选项,开启数据存储功能,通过数据库接ロ模块暂时存储飞行数据,在程序运行结束后,再次利用数据库接ロ模块将暂存的飞行数据存储至外部数据库;点选人机交互接ロ的实时飞行选项,实现在线视景仿真功能,当选择了该功能后,利用网络通信模块实时接收上位机发送来的实时数据,并将其传送给视景显示与驱动模块;点选人机交互接ロ的飞行回放选项,实现离线飞行回放功能,当选择了该功能后,摒弃网络通信模块,转而利用数据库接ロ模块读取外部数据库中存储的飞行数据,并将其传送给视景显示与驱动模块;点选人机交互模块的ニ维态势按钮,实现对ニ维态势模块的剪裁操作,依据自己的喜好,选择是否启用ニ维态势功能,使其显示在窗ロ左下角;点选人机交互模块的视角选择按钮,更改视景显示与驱动模块的相关參数值,切换观察视点;在模块化结构中,视景显示与驱动模块为核心模块,在实时仿真模式下,网络通信模块将飞行数据传送给视景显示与驱动模块,随后视景显示与驱动模块将这些数据以广播方式传送给数据可视化模块、ニ维态势模块、数据库接ロ模块;在飞行回放模式下,视景显示与驱动模块仍负责接收与广播数据,不同之处在于,数据来源于数据库接ロ模块;在模块化结构中,网络通信模块为可剪裁模块,当网络通信模块开启时,进行实时在线视景仿真,当网络通信模块关闭时,视景显示与驱动模块依靠数据库接ロ模块读取存储的飞行数据,进行回放离线视景仿真。基于上述模块化结构,系统可以实现飞行器单机飞行仿真和多机飞行仿真功能,因为各个模块的设置均按照多机飞行方式设置,单机飞行当做多机群控的特例。在网络通信模块中,建立了 n个接收不同上位机数据的数组,其初始值均为0,通过判断数组中的数据是否发生变化分析得出上位机的数量;在视景显示与驱动模块中,已经初始化了 n个飞行器模型的数据信息,只是飞行器处于不可绘制状态,如果判断得到某飞行器的飞行数据信息有变化,则直接使该飞行器模型可绘制;在ニ维态势模块中,已建立好n个不同顔色的ニ维航迹绘制画笔,通过判断和画笔相关联的飞行器ニ维坐标信息是否发生变化决定是否使用某画笔描绘航迹;在数据可视化模块中,同样已经建立好针对多个飞行器的数据可视化功能,只是均处于不可见状态,当检测到相应的可视化飞行数据发生变化吋,动态的使编辑框控件可见,显示飞行器飞行数据;在数据库接ロ模块中,建立了 n组起到数据缓冲作用的集合类对象,每组集合类对象均可以保存单个飞行器的不同属性的飞行数据。当存储数据子模块进行数据存储工作时,通过判断集合类对象中的数据变化决定是否存储对象中的数据,同时,在存储数据时,不同组别的集合类对象数据为其添加不同的数据标志位,当读取数据子模块进行数据读取工作时,通过判断数据库中的数据标志位将其读取到不同的集合类对象中。基于上述模块化设计,该系统由四个线程实现,分别为:图像处理线程、数据处理线程、网络通信线程、数据库接ロ线程;图像处理线程为系统的主线程,完成人机交互模块、模型解析模块、视景显示与驱动模块功能实现;数据处理线程:对通信模块接收的数据进行二次处理,实现数据可视化功能,ニ维态势显示功能;网络通信线程主要负责完成网络通信功能,负责接收上位机数据;当开启回放飞行模式时,该线程自动关闭;数据库接ロ线程完成系统和MySQL数据库的交互操作,实现数据库接ロ模块功倉泛;各个线程的开启顺序为:最先开启图像处理线程,启动人机交互界面;当系统确定采用实时仿真模式时,则自动开启网络通信线程,否则该线程默认关闭;当系统确定采用回放飞行模式或开启数据存储功能后,则自动开启数据库接ロ线程;上述线程设置完毕后,数据处理线程自动开启,随后所有已开启线程并行工作,合理利用CPU资源。本发明的目的在于作为分布式仿真平台的视景仿真环节,需要和拥有数字仿真能力的上位机以以太网方式连接。本发明在VS2010平台下基于MFC框架采用OpenGL技术实现图形图像显示驱动功能,需要在计算机上安装VS2010软件包,同时加载OpenGL链接库;基于MySQL数据库的MFC应用开发需要安装完整版MySQL数据库。下面结合附图对本发明做进ー步描述。典型飞行器视景仿真系统总体结构框图參见图1。典型飞行器视景仿真系统由9个模块构成,需四个线程并行工作。其中网络通信模块使用単独网络通信线程;视景显示与驱动模块、模型解析模块、飞行器模型库模块、飞行场景库模块、人机交互接ロ模块共同使用图像处理线程;ニ维态势模块、数据可视化模块共同使用数据处理线程;数据库接ロ模块单独使用数据库接ロ线程。典型飞行器视景仿真系统中数据结构及流向如图2所示。在网络通信模块中创建有接收上位机信息的数组缓冲区;视景显示与驱动模块中有驱动飞行器飞行的飞行数据结构体;数据库接ロ模块中含有起到数据缓冲作用的集合类对象;ニ维态势模块中创建了存储飞行器ニ维坐标信息的结构体;数据可视化模块中对于需要显示的飞行数据也建立了相应结构体。在实时仿真模式下,网络通信模块中的数据传送给视景显示与驱动模块,视景显示与驱动模块根据其他模块的需求,将数据广播出去。在回放飞行模式下,视景显示与驱动模块接收数据库接ロ模块中的数据,然后根据需求将其传送给ニ维态势模块和数据可视化模块。典型飞行器视景仿真系统初始运行界面參见图3。基于MFC平台GDI开发,为对话框添加了体现仿真平台个性的背景位图,并加载了具有特殊效果的位图按钮。各个按钮实现的功能分别为:请选择飞行器模型,请选择飞行场景,请选择是否开启数据存储功能以及右上角的系统退出。各个功能选择按钮级联有ニ级子菜单,分别完成对模型、场景、是否开启数据存储功能的指定。典型飞行器视景仿真系统仿真界面參见图4。该界面合理集成了四部分模块信息。其中包括仿真运行管理区域(I),完成对仿真模式、启停控制、视角设置、航迹显示的配置功能;视景仿真区域(2),完成视景仿真系统核心环节——飞行器飞行过程及姿态虚拟可视化功能;数据可视化模块(3),实现对飞行数据的实时数据显示,给予研究人员准确的数字信息;ニ维态势模块(4),对飞行器的航迹予以打点描绘,使研究人员整体把握飞行过程。系统飞行场景库中各种飞行场景參见图5。图5中显示了典型飞行器常用的飞行场景,包括山地模型、地球模型、天空模型、海洋模型、近空间模型、机场模型。均采用OpenGL图形图像技术开发。典型飞行器视景仿真系统执行流程參见图6。工作人员首先在初始界面中对系统进行初始化信息设置:选择飞行器模型,选择场景模型,选择是否开启数据存储功能。启动运行界面,工作人员选择飞行模式:回放飞行或是实时仿真,两者的区别在于是否开启网络通信接口和数据库读取数据接ロ模块。然后,系统自动判断是否开启了数据存储功能,如果开启则打开数据库存储数据接ロ模块。此后,系统自动将其余所有模块开启,开始视景仿真工作,进入视景刷新循环操作,在此期间工作人员可以对观察视角进行切換,选择是否显示ニ维态势模块。最后,工作人员发出仿真停止指令,程序结束。系统网络通信模块接收数据流程參见图7。该环节采用基于套接字方式的UDP通讯完成。前边环节完成加载、建立、绑定套接字,初始化通信过程的作用,其中创建的n个套接字为多机群控模式服务,和n个上位机关联;后边环节基于时间戳进行掉包判断,建立差错重建机制,使接受到的数据具有平滑的连续性。系统模型解析模块工作流程參见图8。该环节用于完成对外部以3ds格式存储的模型的解析工作。首先为读取模型中材质、材质库、位置矢量、四元数、关键帧等信息做初始化工作,定义3ds文件读入类,将模型中的信息读入初始结构中;然后定义处理3ds文件中对象的类和处理对象序列的类,依据OpenGL三角形近似的方式重绘模型,建立模型显示列表,方便视景显示与驱动模块调用;最后基于包围盒原理确定飞行器大致大小,与给定最优模型(其大小在视景显示界面中有最佳显示效果)进行大小比较,确定长、宽、高比例中的最小比例,方便在视景与显示模块中对飞行器进行大小设置。飞行器包围盒求取流程參见图9。该环节用于求取可以完全包围飞行器的最小包围盒大小,进而确定飞行器大致大小。其主要工作步骤为分别找到三维空间中X、Y、Z三个方向中,飞行器所有顶点坐标中的最大值和最小值,利用最大值和最小值之差确定三维空间中包围盒的长、宽、高的距离。视景显示与驱动模块工作流程參加图10。该流程利用OpenGL技术完成了飞行器及其飞行场景的显示与驱动工作。首先需要初始化OpenGL设置,包括窗ロ类型、定时器、逻辑调色板、像素格式等信息的设置;然后创建多机群控仿真模式,初始化n个飞行器飞行信息,并使其为不可绘制状态;通过判断各个飞行器相对应的飞行数据结构体中的数据变化决定最后可绘制的飞行器模型数量;依据人机交互界面的指定,显示固定的飞行场景,并进行飞行器模型大小放缩设置,之后进入视景刷新循环流程;在刷新循环流程中,系统每隔一个视景刷新周期均会对飞行器数据结构体重的飞行数据信息进行更新,这样连续、快速的数据更新造成飞行器在飞行场景中飞行的效果。数据库接ロ模块中存储数据子模块工作流程參见图11。该工作流程实现了将系统仿真过程中使用到的飞行数据值存储至数据库的作用。在确定已经开启了数据存储功能之后,基于集合类对象为数据库和仿真系统建立n个缓冲环节,暂时存储不同的飞行器的飞行数据。当接收到程序停止的命令之后,弹出提示框,提醒用户是否存储飞行数据,若选择是,则建立和数据库的链接,存储数据。通过判断集合类对象中的数据变化决定是否存储对象中的数据,如果对象中的数据发生变化,则存储该对象,且在存储数据过程中为数据添加标志位,标识来源于不同集合类对象的数据。数据库接ロ模块中读取数据子模块工作流程參见图12。该工作流程实现了读取数据库存储的飞行数据的功能。同存储子模块工作原理类似,在确定选择飞行回放模式后,初始化数据库,基于集合类对象缓存数据库中的数据。在读取数据库数据的过程中,依据数据标志位项,将数据读取至不同的集合类对象。ニ维态势模块工作流程參见图13。该工作流程实现了将位图对象加载至对话框并进行描点操作的功能。首先依据选择的飞行场景系统自动指定ニ维地图,基于Picture控件将其加载至对话框;然后创建关联ニ维地图的位图对象,将其加载至创建的和Picture控件兼容的兼容设备上下文(DC)中,这样兼容DC和Picture控件的DC的双重出现便产生了双缓冲机制,加速了描点速度,节省了 CPU内存。最后,创建多个画笔并关联相关飞行器ニ维坐标信息,依据ニ维坐标结构体中的数据是否发生变化判断是否启用某画笔对位图进行描点。
权利要求
1.一种典型飞行器视景仿真系统,其特征是,包括:飞行器模型库模块、飞行场景库模块、网络通信模块、视景显示与驱动模块、数据库接ロ模块、数据可视化模块、ニ维态势模块、模型解析模块、人机交互接ロ模块; 飞行器模型库模块:该模块中以3ds文件的形式存储有各类飞行器模型,包括高超声速飞行器模型、卫星模型、无人机模型;该模块属于可扩展模块,任何3ds格式的模型均可以人工放置到此模型库模块中; 飞行场景库模块:该模块存储有高超声速飞行器、无人机和卫星需要的不同飞行场景;各种场景基于OpenGL技术独立开发,并以子模块方式存在;模块中包括比较全面的飞行场景,包括近空间模型、地球模型、海洋模型、山地模型、机场模型、城市建筑模型、天空模型,如果不满足需求,可以对该模块进行二次开发,添加不同种类模型; 网络通信模块:作为实时仿真,采用UDP通讯,基于套接字编程(Socket)实现局域网环境中和上位机的通讯;同时,基于数据缓冲建立差错重建功能,防止UDP通信过程中的掉包事故;当飞行回放模式开启时,该模块自动关闭; 视景显示与驱动模块:基于OpenGL双缓存技术初始化飞行器模型和场景模型,使两者拥有合适的空间位置和显示效果;基于计时重绘技术驱动飞行器模型在飞行场景中飞行;数据库接ロ模块:为实现回放飞行模式开设的接ロ,实现视景仿真系统和MySQL数据库的交互操作;为避免数据库和系统之间的交互延时,在两者之间建立缓冲环节,基于集合类对象方式暂存飞行器飞行数据信息;可以分为数据存储接口和数据读取接ロ ;数据存储接ロ在开启数据存储功能时打开,实现暂存飞行数据信息并将其转存至外部数据库的功能;数据读取接ロ在开启飞行 回放模式时打开,实现暂存读取的数据库信息并转发给飞行器类对象的功能; 数据可视化模块:添加数据显示模块,使研究者对飞行数据有更准确的认识;基于编辑框控件实现对飞行器不同属性的实时可视化效果; ニ维态势模块:描绘飞行器的飞行轨迹,使研究人员对飞行器的飞行过程,空域位置等信息有准确的了解;ニ维地图不是孤立存在的,它和各种飞行场景绑定存在,只要选定了飞行场景,系统会自动指定ニ维地图;该模块属于可选模块,当模块功能选中时,可以显示在窗ロ左下角,不影响主视角观察效果; 模型解析模块:解析外部飞行器模型,即解析以3ds格式存储的飞行器模型,并基于OpenGL三角形近似方式建立重绘显示列表,方便视景显示与驱动模块调用;在此环节基于包围盒原理确定加载的飞行器模型大小和最优模型(其大小在整个视景显示窗口中有最优效果)的大小比例,方便以后对飞行器进行大小放缩,使其在视景系统中不会过大或过小; 人机交互接ロ模块:利用MFC平台技术特点开发的应用程序和用户交互的接ロ,包括系统初始化时的人机交互和后期运行过程中的人机交互。系统初始化时实现飞行器模型选择、飞行场景选择、数据存储功能选择的人机交互;后期运行时实现飞行模式选择、仿真启停控制、观察视角选择、ニ维态势选择的人机交互。
上述所有模块的连接关系如下所述: 点选人机交互接ロ模块的模型选择选项,选择飞行器模型库中的模型,利用模型解析模块解析出模型中的信息,随后利用视景显示与驱动模块将解析出的信息重绘在视景显示窗口中; 点选人机交互接ロ模块的场景选择选项,选择飞行场景库中的飞行场景,视景显示与驱动模块依据选择结果绘制飞行场景,同时ニ维态势模块根据选择结果自动关联ニ维地图; 点选人机交互接ロ模块的数据存储功能选项,开启数据存储功能,通过数据库接ロ模块暂时存储飞行数据,在程序运行结束后,再次利用数据库接ロ模块将暂存的飞行数据存储至外部数据库; 点选人机交互接ロ模块的实时飞行选项,实现在线视景仿真功能,当选择了该功能后,利用网络通信模块实时接收上位机发送来的实时数据,并将其传送给视景显示与驱动模块; 点选人机交互接ロ模块的飞行回放选项,实现离线飞行回放功能,当选择了该功能后,摒弃网络通信模块,转而利用数据库接ロ模块读取外部数据库中存储的飞行数据,并将其传送给视景显示与驱动模块; 点选人机交互接ロ模块的ニ维态势按钮,实现对ニ维态势模块的剪裁操作,依据自己的喜好,选择是否启用ニ维态势功能,使其显示在窗ロ左下角; 点选人机交互接ロ模块的视角选择按钮,更改视景显示与驱动模块的相关參数值,切换观察视点; 在模块化结构中,视景显示与驱动模块为核心模块,在实时仿真模式下,网络通信模块将飞行数据传送给视景显示与驱动模块,随后视景显示与驱动模块将这些数据以广播方式传送给数据可视化模块、ニ维态势模块、数据库接ロ模块;在飞行回放模式下,视景显示与驱动模块仍负责接收与广播数据,不同之处在于,数据来源于数据库接ロ模块。
2.按权利要求1所述的典型飞行器视景仿真系统,其特征是,在模块化结构中,网络通信模块为可剪裁模块,当网络通信模块开启时,进行实时在线视景仿真,当网络通信模块关闭时,视景显示与驱动模块依靠数据库接ロ模块读取存储的飞行数据,进行回放离线视景仿真。
3.按权利要求1所述的典型飞行器视景仿真系统,其特征是,各个模块的设置均按照多机飞行方式设置,单机飞行当做多机群控的特例; 在网络通信模块中,建立了 n个接收不同上位机数据的数组,其初始值均为O,通过判断数组中的数据是否发生变化分析得出上位机的数量; 在视景显示与驱动模块中,已经初始化了 n个飞行器模型的数据信息,只是飞行器处于不可绘制状态,如果判断得到某飞行器的飞行数据信息有变化,则直接使该飞行器模型可绘制; 在ニ维态势模块中,已建立好n个不同顔色的ニ维航迹绘制画笔,通过判断和画笔相关联的飞行器ニ维坐标信息是否发生变化决定是否使用某画笔描绘航迹; 在数据可视化模块中,同样已经建立好针对多个飞行器的数据可视化功能,只是均处于不可见状态,当检测到相应的可视化飞行数据发生变化时,动态的使编辑框控件可见,显示飞行器飞行数据; 在数据库接ロ模块中,建立了 n组起到数据缓冲作用的集合类对象,每组集合类对象均可以保存单个飞行器的 不同属性的飞行数据。当存储数据子模块进行数据存储工作吋,通过判断集合类对象中的数据变化决定是否存储对象中的数据,同时,在存储数据时,不同组别的集合类对象数据为其添加不同的数据标志位,当读取数据子模块进行数据读取工作时,通过判断数据库中的数据标志位将其读取到不同的集合类对象中。
4.按权利要求1所述的典型飞行器视景仿真系统,其特征是,基于上述模块化设计,由四个线程实现,分别为:图像处理线程、数据处理线程、网络通信线程、数据库接ロ线程;图像处理线程为系统的主线程,完成人机交互模块、模型解析模块、视景显示与驱动模块功能实现; 数据处理线程:对通信模块接收的数据进行二次处理,实现数据可视化功能,ニ维态势显示功能; 网络通信线程主要负责完成网络通信功能,负责接收上位机数据;当开启回放飞行模式时,该线程自动关闭; 数据库接ロ线程完成系统和MySQL数据库的交互操作,实现数据库接ロ模块功能; 各个线程的开启顺序为:最先开启图像处理线程,启动人机交互界面;当系统确定采用实时仿真模式时,则自动开启网络通信线程,否则该线程默认关闭;当系统确定采用回放飞行模式或开启数据存储功能后,则自动开启数据库接ロ线程;上述线程设置完毕后,数据处理线程自动开启,随后所有 已开启线程并行工作。
全文摘要
本发明涉及计算机仿真技术领域。为设计一个适用于典型飞行器(高超声速飞行器、无人机、卫星三类飞行器)的视景仿真系统,研究人员对飞行数据的分析是通过虚拟飞行器的姿态变化将纯数字信息转化为人类更容易理解的三维图像化信息;无论高超声速飞行器、无人机、卫星均可以进行视景仿真,达到多个飞行器模型共享同一系统的目标;可以进行单机仿真或多机群控仿真;解决视景系统重复开发问题。本发明采取的技术方案是,典型飞行器视景仿真系统,包括飞行器模型库模块、飞行场景库模块、网络通信模块、视景显示与驱动模块、数据库接口模块、数据可视化模块、二维态势模块、模型解析模块、人机交互接口模块。本发明主要应用于计算机飞行仿真。
文档编号G06F17/50GK103093047SQ20131001134
公开日2013年5月8日 申请日期2013年1月12日 优先权日2013年1月12日
发明者宗群, 郝秀, 李庆鑫, 徐锐, 曲照伟 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1