基于OpenGL的雷达显示器仿真
2009-04-12董晓明
张 剑 杨 雷 董晓明
1中国舰船研究设计中心,湖北 武汉 430064
2海军装备部驻沈阳地区军事代表局,辽宁 沈阳 110031
基于OpenGL的雷达显示器仿真
张 剑1杨 雷2董晓明1
1中国舰船研究设计中心,湖北 武汉 430064
2海军装备部驻沈阳地区军事代表局,辽宁 沈阳 110031
雷达显示器仿真是雷达系统仿真的重点和难点。在简要介绍OpenGL技术和雷达显示器的基础上,提出了利用OpenGL对P型雷达显示器进行仿真的思想,详细介绍了余辉扫描和目标点迹的仿真方法。对于余辉扫描,通过数学建模提出了实现途径,并得出了时间衰减常数和扫描周期的计算公式。对于目标点迹,提出了角度换算和目标位置的计算公式,并实现了点迹的余辉效果。结果表明,该方法达到了很好的仿真效果。
OpenGL;雷达显示器;余辉扫描;仿真
1 引言
雷达是现代战争中必不可少的装备,被誉为现代战争的“眼睛”。雷达显示器是雷达操作员对雷达进行操作的图形界面,是雷达与操作员之间最重要的交互手段。对雷达显示器进行的仿真不仅可以用在雷达的虚拟操作和维修训练中,而且还可以用在作战系统的仿真中。雷达显示器的仿真效果将直接影响到训练效果和仿真效果。随着计算机技术的发展,利用计算机进行的雷达显示器仿真得到越来越广泛地应用。这是由于利用计算机仿真雷达显示器,不仅具有开发过程简单、不依赖特定硬件、可靠性高、通用性强和可移植性好等优点,而且成本相对较低,还可以很方便地进行数据重演。本文提出了利用OpenGL进行雷达显示器仿真的方法,详细论述了扫描线余辉和目标点迹的实现方法和相关计算,并给出了相应的运行结果。试验表明,本文提出的实现方法可以对雷达显示器进行非常逼真的仿真,达到了很好的效果。
2 OpenGL简介
OpenGL(Open Graphics Library)是SGI公司为他们的图形工作站开发的高质量图像接口,现在已经成为高性能图形与交互式视景处理的工业标准。从本质上说,OpenGL并不是一种编程语言,而是一个3D图形和模型库,包括大约250个不同的函数,具有高度的可移植性,并且具有非常快的渲染速度,可以产生逼真的图像或者虚构出现实世界所没有的图像。OpenGL可以在多种操作系统平台上运行,例如Windows、Unix/Linux、Mac OS和OS/2等。OpenGL也可以在多种硬件平台上实现。
OpenGL指令模型是C/S(Client/Server,客户/服务器)模型,通常用户程序(客户)发出命令提交给内核程序(服务器),内核程序对各种指令进行解释并初步处理,之后交给操作系统。上述过程可以在同一台计算机上完成,也可以在网络环境中,由不同的计算机合作完成,OpenGL通过上述合作实现网络透明。OpenGL的工作流程[1]大致如图1所示。
图1 OpenGL工作流程
本文主要利用OpenGL的几何图元操作来绘制所需要的形状。具体方法为:将图元的顶点以及颜色属性放在一对glBegin()和glEnd()之间,传递给glBegin()的参数决定了由顶点所构件的几何图元类型。例如,GL_POINTS表示了创建单个的点,GL_TRIANGLES表示创建三角形等。编程工具为VC++7.1。
3 雷达显示器及其仿真方法
3.1 雷达显示器
雷达显示器的种类很多,根据完成的任务可分为:距离显示器、平面显示器、高度显示器、情况显示器和综合显示器、光栅扫描显示器等[2]。其中使用最广泛的是平面显示器,平面显示器提供了360°范围内全部平面信息,因此也叫全景显示器或环视显示器,简称PPI显示器或P型显示器。P型显示器能够提供平面范围的目标分布情况,这种分布情况与通用的平面地图一致。P型雷达显示器显示目标的斜距离和方位两个坐标,是极坐标形式的二维显示器。P型雷达显示器的中心表示雷达站的位置,具有余辉的距离扫描线随着天线的方位扫描在画面上同步转动。本文即是针对这种最常用的P型雷达显示器进行仿真实现。
3.2 余辉扫描的仿真
3.2.1 余辉数学模型
当电子束停止对荧光物质的轰击后,荧光质的发光仍能持续一定的时间才消失的现象叫余辉。余辉的仿真需要借助数学模型。这里采用最常用的一次指数衰减曲线模型[3,4]来描述。即
其中,I为余辉亮度,I0为涂层亮度,k为时间衰减常数,t为衰减时间。对于特定的荧光物质,I0和k均为常数。I0越大,荧光衰减曲线越平坦;k越大则余辉时间越长。一般将电子束停止轰击后,亮度由最大值下降到它的2~5%时所需要的时间定义为余辉时间。
3.2.2 雷达余辉扫描的实现方法
(1)总体实现思路
将雷达显示器认为是一个“圆盘”,将其分割成n个等大的扇形[5](n一般取值较大,如360),每个扇形占的圆心角很小,这样可以把雷达显示器认为由n个等腰三角形组成。设计一个n次的循环,根据循环的次数按公式(1)提出的一次指数衰减曲线方程来设置每个等腰三角形的填充颜色。公式(1)中,涂层亮度I0取值为1,还需要计算时间衰减常数k。为实现雷达余辉的动态扫描,需要利用定时器,每隔一定时间旋转一下“圆盘”。
(2)时间衰减常数的计算
1)固定余辉宽度的时间衰减常数k
假设要求的余辉宽度 (取余辉时间为亮度降为5%涂层亮度的时间)为α弧度。那么根据一次衰减曲线方程,可以求出时间衰减常数k。
其中,n的取值大小仅仅影响划分的精度,而α的取值则与余辉的大小成正比,因此,可以通过定量改变α来获得不同的余辉宽度。
2)固定余辉时间的时间衰减常数
假设要求的余辉时间 (取余辉时间为亮度降为5%涂层亮度的时间)为tb,那么根据一次衰减曲线方程,可以求出时间衰减常数。其中,T为雷达的扫描周期。可以通过定量改变tb来获得不同的余辉时间。
将公式(2)或者公式(3)中求出的k代入公式(1),取t=0,1,2,…,n-1,即得出每个等腰三角形的亮度,从而实现了余辉亮度的指数衰减。
(3)扫描周期T的计算
设旋转时间间隔为Δt,旋转“圆盘”的角度增量(即扫描线的角度增量)为Δθ。那么可以求出雷达的扫描周期T为:
式中,Δt、Δθ的取值都会影响扫描周期的大小。因此,可以通过动态改变Δt、Δθ的取值来获得不同的雷达扫描周期。可以看出,在要求的特定扫描周期T下,Δt和Δθ成正比。Δt的取值如果过大,一方面可能无法屏蔽人眼的视觉暂留效应,从而达不到连续扫描的效果,另外一方面,Δθ正比增大,使得圆盘旋转的角度跨度过大,可能会使得扫描线产生明显的跨越现象。Δt的取值如果过小,就会使得屏幕的刷新过快,从而占用太多的计算资源。因此,应该针对具体情况对Δt、Δθ适度取值。图2即实现的雷达显示器的余辉效果。
图2 不同参数下的雷达显示器余辉效果图
3.3 目标的仿真
雷达的主要作用就是对空中、水面目标进行探测跟踪,因此对目标的仿真也是雷达显示器仿真中的一个重要环节。对目标物体的仿真中,有以下几个关键问题:角度的换算;目标位置的运动仿真;点迹的余辉效果。
3.3.1 角度的换算
对于雷达,一般以正北方向为0°,扫描线沿顺时针旋转,因此,雷达扫描的坐标系如图3所示,目标参数表示为(D,θ),其中D表示目标距离,θ表示目标方位角。而OpenGL采用标准的笛卡尔坐标系,如图4所示。点的坐标表示为(r,α),其中r表示极径,α表示极角。可以看出,两种坐标系中,距离D和极径r是一致的,但方位角θ和极角α之间有一定的差异。因此,在已知目标参数(D,θ)后,利用OpenGL进行显示时,必须进行角度的转算[6],即将方位角θ转换为极角α。根据几何关系,很容易得出以下关系式:
求出α后,即可求出目标的笛卡尔坐标。
图3 雷达扫描的坐标系
图4 OpenGL的坐标系
3.3.2 目标的运动仿真
假设目标是以一定的航速μ和航向ξ运动的。当扫描线扫过物体点(即雷达波探测到物体)时,由于物体的位置较先前已经发生变化,因此在OpenGL中进行显示时,点迹位置要进行相应的刷新。
1)目标在屏幕上显示位置(x,y)的计算
假设雷达的当前量程为Dmax。已知目标的距离D和方位θ,根据公式(6),可以求出目标在屏幕上的显示位置(x,y)为:
可以动态设置雷达的量程Dmax来改变目标的显示位置。
2)如何判断扫描线是否扫过目标点
判断扫描线是否扫过目标点,只需判断扫描线的角度是否与目标物体的方位角一致。
3)目标运动后位置的计算
目标物体下一时刻在屏幕上的显示位置(x1,y1)和当前位置(x0,y0)的关系如公式(7)所示。
其中,ΔtS为扫描线两次扫过物体点的时间间隔,简化起见,可以取雷达的扫描周期T;角度经过了雷达扫描坐标系向笛卡尔坐标的转换。航速μ和航向ξ只是目标的瞬时航速和航向,可以进行动态设置。
3.3.3 点迹的余辉效果
对于目标点迹,也应该有余辉效果:当扫描线扫过目标点时,物体点变亮,随之物体点的颜色慢慢变淡甚至消失,直到下一次扫描线扫过目标点。点迹的这种余辉效果可以采用与扫描线余辉相同的方法来进行实现,即采用一次指数衰减曲线方程来表示点迹的亮度值。最后实现的效果如图5所示。
图5 点迹的余辉效果图
4 相关研究
利用OpenGL进行雷达显示的仿真近年来成为热点,相关人员进行了大量研究。文献[3~5]给出了利用一次指数衰减曲线模型实现扫描线余辉的思路,但没有描述具体的计算过程。文献[2,4]给出了目标参数的计算方法,但没有提及点迹的余辉效果。另外,文献[7]应用OpenGL技术实现了雷达目标航迹的三维动态仿真,文献[8,9]探讨了利用OpenGL实现雷达图像实时显示的方法。
5 结束语
本文提出了利用OpenGL实现P型雷达显示器的方法。不仅实现了扫描线的余辉效果,而且还仿真了目标点迹。仿真试验表明,该方法实现的雷达显示器效果逼真,而且余辉宽度(时间)、扫描周期、量程、目标航速和航向均可动态调节,达到了很好的仿真效果。
[1] 郭兆荣,李菁,王彦.Visual C++OpenGL应用程序开发[M].北京:人民邮电出版社,2006.
[2] 丁鹭飞,耿富录.雷达原理(第三版)[M].西安:电子科技大学出版社,2002.
[3] 樊世友,杨作宾,孙书鹰,等.基于余辉模型的P型雷达显示器计算机仿真[J].计算机仿真,2003,20(4):6-8.
[4] 王宏,樊世友,陈再旺,等.基于OpenGL的雷达显示器计算机仿真的实现[J].计算机系统应用,2006(6):55-57,60.
[5] 陈靖宇,王春波,倪天权.基于OpenGL的具有余辉效果的雷达显示器仿真[J].仿真技术,2006,22(10-1):164-166.
[6] 王立振,刘润华.基于Visual C++和OpenGL的雷达显示系统实现[J].空军雷达学院学报,2003,17(4):10-12.
[7] 田甜,曹宁.基于OpenGL实现雷达目标航迹的三维动态仿真[J].河海大学常州分校学报,2006,20(2):30-33.
[8] 马建萍,严恭敏,王保卫.OpenGL在雷达图像实时显示中的应用[J].航空计算技术,2005,35(4):72-74.
[9] 彭劲松,秦永元,严恭敏.OpenGL在雷达图像实时显示中的应用[J].兵工自动化,2006,25(1):5-6.
The Simulation of Radar Display Based on OpenGL
Zhang Jian1Yang Lei2Dong Xiao-ming1
1 China Ship Development and Design Center,Wuhan 430064,China 2 Shenyang Representative Office of the Naval Equipment Department,Shenyang 110031,China
The simulation of radar display is important and difficult in the simulation of radar system.On the basis of briefly introducing OpenGL and radar display,this paper proposes the simulation idea of P-type radar display using OpenGL,and introduces the simulation method of brightness scan and object dot in detail.For brightness scan,the paper proposes implementation means via mathematics modeling,and deduces the computation formulas of time attenuation constant and scan period.For object dot,it deduces computation formulas of angular conversion and object position,and realizes the dot brightness.The results show that the method proposed achieves a good simulation effect.
OpenGL;radar display;brightness scan;simulation
TN957.8
A
1673-3185(2009)05-71-04
2008-04-11
海军“十一五”预研课题
张 剑(1981-),男,助理工程师,硕士。研究方向:系统仿真。E-mail:zhangjian99@tsinghua.org.cn