一种飞行器的三维视景仿真系统的制作方法

文档序号:8905327阅读:404来源:国知局
一种飞行器的三维视景仿真系统的制作方法
【技术领域】
[0001]本发明属于计算机三维仿真技术领域,更为具体地讲,涉及一种飞行器的三维视景仿真系统。
【背景技术】
[0002]随着计算机三维仿真技术和飞行器技术的快速发展,飞行器的三维可视化仿真研宄在飞行器研宄领域起着举足轻重的作用。通过三维仿真系统,研宄人员对数据的分析方式发生了根本变化,不再停留在大量复杂的数值曲线研宄上,而是通过三维动画来反映飞行器的实时飞行状况,更加直观形象地验证飞行方案设计的正确性及准确性。
[0003]目前,对于飞行器视景仿真系统的研宄已经有了一些研宄成果,市面上也有一些比较专业的视景仿真软件,例如FlightGear、Vega、Vega Prime、VTree等,用户可以在此基础上进行二次开发,这种方式需要对该软件进行系统地分析研宄,但是大部分商业软件价格昂贵,并且代码不开源,所需成本较高,并且存在重复开发问题。
[0004]为了解决这些问题,专利CN103093047A典型飞行器视景仿真系统中提出了一种适用于各种飞行器的三维视景仿真系统,但是在这个系统中也存在着一些不足:
[0005]1、该系统只支持3ds文件格式的飞行器模型。飞行器的3D模型可能有多种文件格式,虽然这些格式的模型都可以通过相关软件转化成3ds格式,但是格式转化过程中可能会导致某些模型数据的丢失。
[0006]2、该系统中的数据可视化模块基于编辑框控件实现,可以对飞行器的各种属性进行实时数值和曲线显示。这种基于控件绘制曲线的方式比较复杂,因为MFC类库中没有数值曲线显示控件,通过控件绘制数值曲线需要调用画笔构造显示环境。
[0007]3、该飞行仿真系统采用UDP通讯方式,只能接收局域网上位机的数据传递,无法接收飞行器实际飞行数据。只能验证控制算法,而不能修正控制算法。
[0008]4、该仿真系统不能设置特定的飞行模式,只能以一种视角跟随飞行器运动,没有设计三维场景漫游功能。
[0009]5、该仿真系统没有考虑碰撞检测问题。

【发明内容】

[0010]本发明的目的在于克服现有技术的不足,提供一种飞行器的三维视景仿真系统,通过实时仿真和回放仿真的方式,从而满足用户的基本仿真要求。
[0011]为实现上述发明目的,本发明一种飞行器的三维视景仿真系统,其特征在于,包括:
[0012]一人机交互模块,用于处理用户的界面操作和系统操作的信息显示;
[0013]三维视景仿真系统启动后,用户通过点击开始按钮对三维视景仿真系统解锁,再点击人机交互模块上相应按钮进行系统设置;
[0014]一模型配置模块,包括控制对象配置和仿真场景配置;在控制对象配置中加载用户需要的3D模型,在仿真场景配置中加载对应的飞行场景模型,加载完成后,系统将自动启动碰撞检测算法模块,并通过视景显示模块对加载的3D模型和飞行场景模型进行初始化显示;
[0015]一碰撞检测模块,利用基于图像空间的碰撞检测优化算法,在视景显示模块的实时仿真过程中对模型配置模块中加载的3D模型和飞行场景模型进行实时计算,用于实时检测飞行器与仿真场景是否发生碰撞,得到碰撞检测结果,存储在数据存储模块;
[0016]一视景显示模块,包括实时显示模块和回放显示模块;
[0017]实时显示模块将通信模块与MATLAB引擎或飞行器间的通信数据通过纯数值、数值曲线和三维动画三种方式显示,其中,三维动画显示时,调用数据存储模块中的碰撞检测结果,碰撞检测模块再次监测飞行器和飞行场景是否发生碰撞,如果发生碰撞,则停止实时仿真,人机交互模块产生警报,如果不发生碰撞,则将该次仿真数据存储在数据存储模块;
[0018]回放显示模块通过读取数据存取模块中的数据进行纯数值、数值曲线和三维动画显不;
[0019]在同一时刻,视景显示模块只能选择一个显示模块工作,每个显示模块可以选择三种显示方式中的一种或两种或三种同时显示,具体可以通过人机交互模块的显示模式按钮选择;
[0020]一通信模块,包括UDP通信模块和串口通信模块,采用数据双向传递方式;通信模块根据视景显示模块选择的显示模块确定出通信模块的工作方式;
[0021]如果视景显示模块选择实时显示模块,则通信模块进入实时飞行仿真通信模式;此时,启动m)P通信模块或串口通信模块工作,其中,UDP通信模块用于接收和传递三维视景仿真系统与MATLAB引擎间的数据,串口通信模块用于接收和传递三维视景仿真系统与飞行器间的数据;UDP通信模块和串口通信模块在接受数据时均需要通过时间戳判断是否出现数据掉包,如果发生掉包,则由数据的平均值补齐,再将接收的数据传递给视景显示模块,同时存储到数据存储模块;
[0022]如果视景显示模块选择回放显示模块,则通信模块进入回放飞行仿真通信模式;此时,通信模块自动关闭,视景显示模块直接从数据存储模块中读取数据进行相应显示;
[0023]—数据存储模块,用于存储三维视景仿真系统与MATLAB引擎或飞行器间的通信数据,以及碰撞检测模块得到碰撞检测结果;
[0024]—三维场景漫游模块,用户通过鼠标、键盘在三维场景漫游模块中控制摄像机的移动和旋转,从而改变用户观察飞行器和场景的视角;
[0025]三维视景仿真系统的工作流程如下所述;
[0026]三维视景仿真系统启动后,用户通过点击开始按钮对三维视景仿真系统解锁,再点击人机交互模块上相应按钮进行系统设置;
[0027]点击人机交互模块的模型加载按钮,模型配置模块利用开源库加载飞行器的3D模型和飞行场景模型,同时启动碰撞检测模块,并对加载的模型进行初始化显示;在初始化显示时,启动三维场景漫游模块,用户通过鼠标、键盘可以控制用户观察视角的变化;
[0028]点击人机交互模块的实时仿真按钮,三维视景仿真系统进入实时仿真阶段;此时,还要选择通信模块中的UDP通信或者串口通信;
[0029]点击UDP通信按钮,UDP通信开始接收、传递三维视景仿真系统与MATLAB引擎间的数据;
[0030]点击串口通信按钮,串口通信模块开始接收、传递三维视景仿真系统与飞行器间的数据;
[0031]在同一时刻,只能点击一个通信按钮,UDP通信或者串口通信下的通信数据均存储在数据存储模块,同时发送给视景显示模块,通过纯数值、仿真曲线和三维动画三种方式显示,三种显示方式均可点击对应的按钮,选择开启或者关闭;在三维动画显示时,启动三维场景漫游模块,用户通过鼠标、键盘可以控制用户观察视角的变化;
[0032]点击人机交互模块的回放仿真按钮,三维视景仿真系统进入回放仿真阶段;此时,通信模块自动关闭,视景显示模块直接从数据存储模块中读取数据,通过纯数值、仿真曲线和三维动画三种方式显示,三种显示方式均可点击对应的按钮,选择开启或者关闭;此时,在三维动画显示时,启动三维场景漫游模块,用户也可以通过鼠标、键盘可以控制用户观察视角的变化。
[0033]本发明的发明目的是这样实现的:
[0034]本发明飞行器的三维视景仿真系统,包括人机交互模块、模型配置模块、碰撞检测模块、视景显示模块、通信模块、数据存储模块和三维场景漫游模块,并行处理用户的仿真操作;具体讲,利用MFC类库完成人机交互界面的开发,利用ProEssential和OpenGL分别完成纯数值、数值曲线和三维动画的仿真,通信模块采用UDP通信和串口通信技术,碰撞检测算法模块采用了基于图像的碰撞检测优化算法,从而使整个系统能够满足用户的基本仿真要求。
[0035]同时,本发明飞行器的三维视景仿真系统还具有以下有益效果:
[0036]1、使用第三方开源库Open Asset Import Library来导入模型文件,第三方开源库支持多种格式的3D模型加载,增强了系统的通用性和扩展性;
[0037]2、利用图标制作软件ProEssential绘制二维曲线,应用程序中使用较为便捷,绘制速度快,外形美观且易修改;
[0038]3、实时仿真模式和飞行回放模式同时开发,通信模块中包含UDP通信和串口通信,实现了飞行器实时仿真和离线三维仿真功能;
[0039]4、本系统的仿真形式包含飞行器属性参数的纯数值、数值曲线和三维动画等多种仿真显示形式,增强了系统的扩展性;
[0040]5、三维场景漫游功能增加了用户虚拟环境沉浸感,通过人机交互能够使用户更好的体验虚拟场景,用户可以从多个视角观察飞行器三维仿真;
[0041]6、增加了基于图像空间的碰撞检测优化算法,利用GPU加速技术减轻CPU负担,三维视景仿真系统中加入该模块进行避障和碰撞检测,具有一定的创新性。
【附图说明】
[0042]图1是飞行器的三维视景仿真系统总体框架图;
[0043]图2是图1所示视景显示模
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1