空间作战仿真虚拟环境关键技术研究

时间:2022-06-04 07:12:31

空间作战仿真虚拟环境关键技术研究

摘 要:针对空间作战的特点和实际需求,论述了实现空间作战仿真系统的关键技术。包括作战仿真体系结构,空间目标轨道计算、地球和卫星的绘制以及动画的实现技术等。根据庞大的空间目标轨道计算会直接影响仿真速度的情况,提出了一种轨道快速计算方法,能够有效地缩短轨道计算时间。利用OpenGL和Visual C++的编程技术实现了一个对卫星轨道的计算、显示和动态控制的系统。

关键词:空间作战仿真;作战仿真体系结构;动画;轨道快速计算方法;OpenGL;Visual C++

中图分类号:TP391.9 文献标识码:A

文章编号:1004373X(2008)0303703

Research for the Key Technology in Space Operational Simulation Virtual Environment

YU Yan,TANG Xiaoan

(School of Electronics Science and Engineering,National University of Defense Technology,Changsha,410073,China)

Abstract:According to actual demand and the characteristic of space battle,the paper discusses the key technology that realized space operational simulate system.Including operational simulate architecture,space targets′orbit calculation,the earth and satellite draw as well as the realization of animation technology.According to the condition that huge space targets′orbit calculation can directly affect emulation speed,it puts forward a kind of orbit fast calculation method,can effective shorten orbit calculation time.The programming technology that uses OpenGL and VC++6.0 has realized a system that can calculate for satellite orbit,shows the orbit track and dynamic control the satellite.

Keywords:space operational simulation;operational simulate architecture;animation;fast calculation method of orbit;OpenGL;Visual C++

1 引 言

航天技术的发展与太空兵器装备的出现,使得现代战场逐步由陆地、海洋、空中延伸到太空。太空作战是现代化的航天武器装备、信息技术、通信技术、侦察技术、网络技术、高级决策能力之间的较量。我国空间战场虚拟环境研究现在尚处在起步阶段,而通过国外的软件如STK,WTK进行作战仿真研究又存在版权、保密性的问题。开发具有自主知识产权的、形象直观的空间作战仿真系统是一个迫切需要解决的问题。

本文根据空间作战仿真的特点,就实现空间作战仿真虚拟环境的关键技术进行了论述,给出了作战仿真的体系结构,为了提高仿真速度简单描述了一种空间目标轨道快速计算方法[1],只对可见的轨道进行轨道计算,不可见部分不予考虑。对于地球与卫星的绘制和动画的实现的关键技术也进行了说明,利用OpenGL和VC++6.0的编程技术实现的对卫星轨道的计算、显示和动态控制,该系统可以直接应用于空间作战仿真虚拟环境中。

2 空间作战仿真体系结构

体系结构是系统完成的首要环节,根据空间作战仿真的实际需求,指挥者和作战员需要对空间目标进行实时观察并能够及时做出作战决策,进行作战仿真。因此这一仿真体系按功能可分为四个部分:空间作战可视化系统、空间作战仿真系统、空间作战流程仿真系统和数据库支撑系统。体系结构图见图1。

图1 空间作战仿真体系结构

空间作战可视化系统是是接收并处理其他系统所产生的仿真数据,利用计算机三维真实感图形技术/计算机动画技术将仿真数据以有效的形式表现出来。为指挥者和作战员提供直观、逼真的战场表现形式。空间作战可视化系统又分为战场态势显示子系统和战场环境显示子系统。空间作战仿真系统是依据航天动力学模型模拟航天器等空间目标在轨道运行情况,使其为作战提供服务。空间作战流程仿真系统是对作战过程中各步骤(或称活动、环节)发生的先后次序,以及同各个步骤相关的人力、资源、信息资料的调用等进行管理,从而实现空间作战过程的自动化管理,是一种在作战流程逻辑形式化表示的驱动下,通过软件的执行从而实现完全地定义、管理和执行作战流程的系统。本系统数据库主要是由轨道数据库、目标模型数据库和三维场景数据库组成。

3 空间目标轨道快速计算

空间目标―卫星及空间碎片的轨道计算直接影响着仿真速度,是空间作战仿真系统的关键技术之一[1]。

根据北美防空防天司令部的预报[2],目前在轨卫星和空间碎片的总数是11 770,如若同时对这些空间目标进行轨道计算,计算的目标相当多,计算量势必会很大,仿真速度会有明显的下降,所以提出一个高精度,更简单的轨道计算方法。利用卫星的初始轨道根数预先对空间目标轨道曲线进行了分割,筛选出落入视线内的轨道曲线,只对可见的轨道进行计算,不可见部分不予考虑。因此轨道的快速计算方法分为两个步骤:

(1) 轨道的可见性判断;

(2) 可见轨道的计算。

3.1 轨道可见性判断简单描述

借用了透视裁剪体对轨道进行可见性判断的预处理。透视裁剪体与空间目标轨道有3种位置关系如图2所示:轨道完全可见;轨道部分可见;轨道完全不可见。以这3种位置关系为依据,借用了推广的Cohen―Sutherland端点编码的算法[2]思想,对裁剪体六个表面分成的27个空间区域进行了6位二进制编码,具体编码方法可见文献[3]。之后是对轨道曲线选取控制点,控制点的选取见图3。利用这些控制点对轨道进行可见性判断,本系统通过函数OrbitClip(parameter orbitpara)来实现轨道可见性判断的。

图2 透视裁剪体与轨道位置关系

3.1.1 控制点选取

如图3所示,A,B,C,D四点是椭圆轨道的特殊点,这4个点将轨道曲线平均分成了4个部分,M,N,P,Q四点连线形成了包围轨道的最小矩形。A,B,M三点连线组成了包围1/4椭圆的三角形。因此我们将A,B,C,D,M,N,P,Q八个点叫做轨道的控制点。在进行可见性判断的过程中还会陆续的增加控制点,如图3中看到的L,K两点。

3.1.2 轨道可见性判断描述

首先计算8个控制点的ECI坐标,进行编码并进行存储,通过函数pcode( )实现编码。根据M,N,P,Q四点的编码情况判断整个轨道曲线是否完全在裁剪体内。若不能确定进而取轨道曲线的1/4进行判断,这里选取曲线AB。判断三角形ABM,若完全在裁剪体内,说明曲线AB是可见,如若不是分别考虑3种情况:

(1) A,B均在裁剪体内,用函数CountJoint1()实现。

(2) A,B有一点在裁剪体外,用函数CountJoint2()实现。

(3) A,B均在裁剪体外,用函数CountJoint3()实现。

利用了二分的思想来求取轨道曲线与裁剪体表面的交点,取曲线两端点之间所夹真近点角的一半对应的轨道曲线上的点作为二分点,如图3中的Pm点所示。以Pm为一个端点分别判断曲线PmA和曲线PmB,最终找到交点为止。具体算法的论述参见文献[1]。

图3 轨道控制点选取

3.2 可见轨道计算

轨道完全可见的情形可以直接用考虑J2项的轨道摄动模型进行计算。若轨道不完全可见,对于任意给定时刻t,首先对二体运动下的时间周期T取余运算得到tL,将存储的交点所对应的一个周期内的时刻粗略求出(利用真近点角与运行时间的关系),将这些时刻与tL进行比较便能够估计此时空间目标是处在哪个可见段上,然后加入摄动模型进行较为精确的计算。通过函数CountOrbit()完成轨道的计算。

4 空间环境建模与绘制

空间目标模型的建立与实时显示也是本作战仿真系统的关键技术之一。根据空间目标模型的复杂程度,我们对地球的绘制采用了纹理贴图的方法,对于卫星则是先在3D建模工具中实现然后通过OpenGL与3D文件的接口程序读入。

4.1 地球的绘制

采用纹理贴图的方式是绘制地球最简单有效的方式,他可以更加真实、形象的显示地球。为了简化分析,将地球当作球进行处理,采用球面的纹理映射方式对其进行贴图,纹理图片保存为位图格式,首先是用利用函数AUX_RGBImageRec*LoadBMP(char *filename)完成对纹理数据的读入,然后调用OpenGL中的glTexParameteri函数设置纹理过滤类型,调用gluBuild2DMipmaps()函数生成mipmap子集。

因为所采用的地图是方形地图,必须采用整球面的纹理映射方法[4]。关键点是建立物体坐标空间(x,y,z)与纹理空间坐标(u,v)的一一对应关系,这里采用了基于自然参数化的整体球面映射,映射公式见(1):

以下是实现球面纹理映射的核心代码:

//计算球形纹理坐标,vx,vy,vz为矢量正交化后的球面坐标

地球并非是静止的,他有一定的自转角度Angle,通过函数Rotate()来完成对Angle的更新。Rotate()由OnTimer()函数定时触发。

4.2 卫星的绘制

由于卫星模型较复杂,OpenGL只提供一些画点、线、面的基本函数,因此利用OpenGL直接对卫星进行绘制比较困难。这里利用了建模工具3DS MAX,然后通过编程实现3DS文件的调用。卫星都是沿着固定轨道运转的,每一时刻的位置不同,通过调用OpenGL中的glTranslatef()将局部坐标系平移到更新后的卫星坐标上[4]。

卫星的位置坐标更新是通过调用函数SatPos()实现,他将计算出的卫星ECI坐标读入,通过OnTimer()函数的

定时触发实现位置更新。

4.3 动画的实现

利用OpenGL中的双缓存技术实现了动画的效果。该技术使用两个前后台和两个缓存绘制画面,在显示前台缓存内容中的一帧画面时,后台缓存正在绘制下一帧画面,当后台缓存绘制完毕,后台缓存内容便显示在屏幕上,而前台此时又在绘制下一帧画面内容[5]。具体的程序实现是在场景绘制函数中调用SwapBuffers(m_pDC->GetSafeHdc())。系统三维实现如图4所示。

图4 系统三维动画实现

5 结 语

系统采用了多文档形式,可以同时显示二维视图、三维视图和数据视图。数据视图主要是对卫星的轨道参数以数据报告的形式给出,可以自行添加卫星也可以从数据库中添加,形式较灵活。采用了本文提出的空间目标轨道快速计算方法可以有效地提高仿真速度,以后研究的重点是如何进一步提高算法效率。本系统可以为航天侦察和决策提供更为直观的显示形式。

参考文献

[1]Woo M.OpenGL 编程权威指南[M].北京:中国电力出版社,2001.

[2]/satcat/boxscore.asp.

[3]Donald Hearn,M.Pauline Baker.计算机图形学[M].3版.蔡士杰,宋继强,蔡敏,译.北京:电子工业出版社,2005.

[4]代丽红.卫星在轨运行实时视景仿真系统的研究与实现[D].武汉:华中科技大学,2005.

[5]彭剑,陈文彤,贾东乐,等.利用OpenGL实现的卫星轨道可视化[J].计算机工程,2005,31(14):62―66.

[6]和平鸽工作室.OpenGL高级编程与可视化系统开发(高级编程篇)[M].北京:中国水利水电出版社,2003.

作者简介 于 燕 女,1983年出生,山东章丘人,硕士研究生。主要研究方向为计算机图形学与信息可视化。

汤晓安 男,1968年出生,副教授,博士。主要研究方向为计算机图形学与信息可视化。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于Curvelet变换的图像消噪 下一篇:基于TMS320F2812的三相SPWM波的实现