1 引言
本文工作的重点是航炮炮弹飞行运动的解算与可视化处理。根据需要, 构建基于视景仿真的弹道仿真系统, 提出了科学计算结果虚拟仿真系统的主要框架和模块组成。在构建系统的基础上, 探索并实践了相对简洁而高效的数字模型和碰撞模型的建立方法。
2 系统设计
2.1 软件开发环境
为更真实、准确的再现实际航炮的射击过程,基于Windows2000操作系统, 借助3D MAX和MilkShape3D等三维实体建模软件, 生成虚拟场景中用到的.3DS格式和.MS3D格式的几何实体模型,使用Visual Studio集成开发环境自带的OpenGL图形库, 采用MFC( Microsoft Foundation Class )应用程序模板中的单文档模板构建虚拟场景。MFC封装了很多标准C++形式的Windows API , 对于大多数软件应用都提供了通用功能, 并可通过重载等方式实现自定义的更高应用。普通的文档、视图、应用、消息循环等, MFC单文档模板都提供了基本的格式,在很大程度上提高了仿真软件平台的构建速度。本软件将三维建模软件中建好的.3DS模型和.MS3D模型调入系统, 使用OpenGL提供的基本库函数, 在虚拟场景中重构几何模型, 对各几何模型在VisualC++设定相应的数字模型。通过核心计算引擎推动场景中各对象交互仿真。
2.2 系统功能实现
本弹道仿真系统的特点是将航炮系统的装配模型导入动力学仿真软件LMS Virtual.Lab中, 首先分析航炮的运动学特性以及多刚体和多柔体动力学特性。然后将Virtual.Lab计算得到的动力学结果导入到本系统中, 进行弹道解算, 获得较高精度的弹道结果并将其人性化展示出来。因此本软件联立了航炮的运动学和动力学特性和弹丸在空中飞行因空气阻力引起的综合结果, 较以往的各类弹道仿真程序具有更高的科学性和准确性, 同时引入虚拟现实的视景仿真技术, 直观真实的反应航炮现场射击实验及结果分析。
图1 航炮弹道仿真系统的功能结构框图
软件分多步进行虚拟环境初始化, 几何模型、贴图文件初始化, 还要进行声音初始化, 设定多个做时序控制的计数器。整理数字模型, 针对静态物体和动态物体还要分别进行属性设置, 并将这些设置好的属性和几何模型实体关联。在仿真场景规模不大的情况下, 利用OpenGL 自己的视景体求交功能自动完成可视域的处理, 基本上可以完成实时显示, 采用成熟的双显示缓存技术消除刷新闪烁。软件稳定运行时, 计算引擎要处理仿真过程的消息循环, 对来自用户和系统的消息要优先做出反应。对于MFC 框架结构, 定义好所需的用户消息、消息响应函数以及时序函数使系统按照节拍有条不紊的响应交互。
2.3 航炮系统的弹道解算
为得到较为准确的航炮炮弹飞行轨迹, 在标准条件下, 对航炮射击模型应用43年阻力定律, 对模型做必要的合理的简化和假设, 在给定弹道系数及初始条件下, 采用固定步长龙格- 库塔( Runge - Kut-ta ) 方法解微分方程组, 计算外弹道轨迹。考虑实际射击实验是低空进行, 飞行距离短,水平方向的干扰较竖直方向的重力等对弹道的影响小的多, 忽略来自水平方向的干扰, 为进一步简化模型我们只采用二维的弹道模型。
我们按照惯例做如下假设:
( 1 ) 弹丸在飞行时间内章动角, 弹头形状是轴对称的;
( 2 ) 标准气象条件, 无风雨, 地球表面为平面,重力加速度;
( 3 ) 忽略飞行弹丸上的科氏惯性力。采用直角坐标系, 以时间t 为自变量的运动方程组为:
2.4 虚拟场景中数字模型的建立
2.4.1 三维对象的空间模型建立
根据模型在虚拟场景中的性质, 将所有几何模型分级分类绘制。在航炮仿真系统中, 将直升飞机和弹丸等较复杂的几何模型建立成.3DS模型和.MS3D模型, 再由软件内部建立数据转换接口把它转化为OpenGL可接受的数据格式( 本质就是显示列表) 。虚拟靶场的山墙和天空等场景实体可用OpenGL 的点线面函数库按照其坐标在场景中绘制, 同样建立成显示列表, 省去图形变换中多个矩阵的乘法操作, 加快处理速度。数字模型调度和存储方法是场景管理技术的核心, 好的调度方法可以实现强沉浸感的场景漫游。当前仿真软件Doom和Quake等和3D游戏中使用BSP树( 空间二元切分) 管理场景, 它能够实现良好的子分效果, 交互性、实时性都很高, 但是创建BSP树的成本高, 也影响子空间之间连贯性。
ICP经营许可证:鄂B2-20080078
(于2003年首获许可证:鄂B2-20030029)
鄂公网安备:420100003343号
© 2002-2025 武汉制信科技有限公司 版权所有
投诉举报电话:027-87592219