基于GL Studio的雷达显示器仿真
扫描二维码
随时随地手机看文章
1 引言
雷达在现代战争中不可或缺。雷达系统的仿真是雷达系统分析设计、模拟训练的一种重要手段,受到人们越来越多的重视。而雷达显示器作为整个雷达系统显示终端和人机交互界面,其仿真实现水平直接影响整个系统的仿真效果。
常见的平面位置显示器PPI(Plane Position Indicator)仿真和航迹显示多是基于Visual C++和OpenGl或VB直接开发,工作量大,结果不直观,开发周期长。而GL Studio是以其为底层,具有丰富的外部程序接口,且支持“照片级”的纹理,在此基础上进一步开发,可减少工作量,提高效率.所生成的代码方便移植。
仿真实现的基本思想:在GL Studio开发环境下,对雷达显示器上所有要显示的图形、符号及数字进行建模,融合顶点RGBA值模拟扫描的余辉及目标回波。在此基础上调用API函数实时显示航迹点、绘制航迹线,最终实现常规和偏心PPI雷达显示器的仿真。
2 GL Studio简介
GL Studio是DISTI公司开发的用于建立实时、三维、照片级的交互图形显示界面。用户可在图形设计窗口以所见即所得的效果完成所需界面的设计制作。通过代码编辑器完成课题所需的逻辑仿真。其代码生成器能将用户完成的设计自动转换为C++和OpenGL代码,这些代码既可单独编译,也可嵌入到其他程序中编译,避免大量的底层程序开发。图1为其逻辑结构。
3 雷达PPI显示器及其仿真方法
3.1 雷达PPI显示器
雷达显示器用来直观显示雷达所截获的目标信息和情报。常见的雷达显示器有:A型显示器、PPI显示器、B型显示器和E型显示器。其中,A型显示器通常用在天线不扫描的测量雷达和数据收集雷达中;PPI显示器在距离和方位角的极坐标下示意出目标的斜距和方位角;B型显示器通常用于空对空场合,以直角坐标形式反映搜索或监视区域;E型显示器用于地形跟随雷达系统中,其横坐标表示距离,而纵坐标表示俯仰角。
雷达显示器显示的一次信息是雷达的原始图像,包括扫描线和目标回波,采用径向圆扫描;显示的二次信息是数据处理机对一次信息进行数字处理后生成的,还包括目标的批号、航迹、速度、航向等。
这里针对使用广泛且仿真难度较大的PPI显示器进行了研究,其他类型显示器均可在GL Studio平台上进行开发,它们之间的切换是通过定义一个GL Studio的GlsPush-Button或InputDevice及其回调函数操作主界面上的按键来完成的。
PPI显示器的显示画面主要由扫描基线、方位基线、距离基线和目标点迹组成。在其他PPI仿真实现方法中,扫描线的实时绘制需采用显示图形重画或“异或” 等方法擦除原来的扫描基线,这将造成画面抖动或画面出现斑点等现象。而采用基于GL Studio的仿真实现距离基线、方位基线、扫描线及其余辉的显示均可在图形编辑界面根据雷达探测距离和预定显示器的大小一次完成,而它们的平移、缩放、旋转也可方便的在GL Studio中实现。设置雷达显示器底色为黄绿色以增强真实感。
3.2 扫描线余辉及旋转的实现
扫描线余辉是指雷达荧光屏上的荧光质的发光在电子束停止轰击后仍能持续一定时间才消失的现象。一般将电子束停止轰击后荧光亮度由最大值下降到其2%~5%所需的时间定义为余辉时间。由于余辉特性是随时间非线性变化的(指数或对数曲线1,这里采用荧光亮度的一次指数衰减模型:
I=I0exp(-t/k) (1)
式中,I为余辉亮度,I0为涂层亮度,k为时间衰减常数,t为衰减时间。
对于每种荧光质,I0和k都是常数,I0越大,荧光衰减曲线越平坦,k越大则衰减时间t越长。
假设某型雷达余辉时间2 s,雷达天线转速R(deg/s),软件实现直接采用RGB值表示余辉亮度,则亮度由最大值255衰减到5需要2 s.2 s中天线转过的角度可计算:
A=Rt(deg) (2)
式中,A位余辉扇形的角度。
在GL Studio中画出一个A°的扇形,逐个设置其n个顶点颜色的RGBA值,利用GL Studio中的颜色融合技术,得到仿真扫描线的扫描余辉。其中第i个顶点(圆点除外)的Al-pha值Al为:
Al=255exp(-i/k) (3)
式中,k=n/ln(255/5)
设置顶点透明度随逆时针方向(正扫)和顺时针方向(回扫)逐渐增大,可直观看到模拟出的扫描线余辉效果。
GL Studio内置有一个以程序运行时间为参数的虚函数,将控制扫描线转动的代码放入该函数中,扫描线转动角度为程序运行时间的函数,这样便可实现扫描基线的动态扫描。以某一扇区内正扫为例:
//正扫描和逆扫描的扫描线显示切换控制
scanLine一>Visibility(bool b);
//扫描基线实时旋转控制
scanLine一>DynamicRotate(angle,Z_AXIS);
这样既减少实时计算扫描线外端点坐标的工作量,又消除了画面抖动或斑点产生,如图2所示。
3.3 偏心PPI显示器
在前视雷达中,雷达限制在某一扇区内扫描,以使在给定方向上达到最大限度的扩展扫描,这时需将PPI显示器的中心偏离阴极射线管的中心。再采用GL Studio实现的常规PPI显示器仿真画面,通过鼠标点击确定偏心PPI显示器中心点,调用鼠标事件回调函数实现定位、缩放等功能,从而达到对某一假定方位扇形的扩展扫描,同时可通过将minorDi-visions显示属性设置为真,得到更精确的目标方位角和距离。在PPI偏心显示时需对显示器的刻度位置做相应调整,以便得到目标更准确的方位角和距离(图2b)。
3.4 目标回波模拟显示
利用颜色设置函数实时改变目标颜色的RGBA值来显示目标回波。图3为目标点迹显示原理流程。
设定目标在x.y方向的运动方程分别为一同定时变函数以简化问题。实际目标位置由飞行模块实时传递的飞行参数确定,最终显示效果为:当目标首次处于雷达波束范围内时,目标回波以最亮的形式显示,随着雷达天线的转动,目标不在雷达波束范围后,由于余辉效应,目标回波逐渐变暗变淡;若目标再次被雷达搜索到,目标再次被点亮。如果由于目标的运动,其超出雷达的探测距离,目标回波就不能显示。目标点迹显示效果如图4a,b所示。
3.5 航迹线的绘制
目标航迹仿真的步骤:先计算并保存由航迹得到的目标实时位置姿态数据,然后通过这些航迹点绘制航迹线,最终将其显示出来。在该假设条件下,目标在系统运行时间驱动下运动。当扫描基线旋转的角度和目标的方位角相等时,将目标的斜距、方位角坐标保存到相应数组中,由此显示出航迹点的极坐标并动态绘制航迹线。假设雷达转速为6 r/min,图4为系统运行时间t在不同时刻所对应的目标回波、航迹点和航迹线。图4中用粗黑点表示航迹点,航迹序列中最新的一个航迹点处的深灰色短线表示雷达“扫出”的目标回波。在GL Studio中,虽然可在内存栈上用new()分配内存,动态画线却不能回收分配的内存。可通过动态设置事先画好的一条直线的位置、顶点个数及顶点参数来改变该直线形状。适当调整实时得到一组航迹点数据后,将其作为函数VaSetVertices()的参数来改变事先画好的航迹线形状。
因为函数VaSetVertices()中的顶点位置参数均为相对于航迹线中心点位置的相对数值。因此需转换航迹点数据。关键代码为:
3.6 数据显示
在仿真雷达显示器中,采用固定刻度。由于显示器上只能目测获得目标粗略的斜距和方位角数据,因此有必要提供其他的数据显示作为补充。在仿真显示器右侧提供一个数据窗口,以显示航迹点的极坐标数据。在实际运用中,雷达仿真系统中数据处理机等传递来的二次信息中,目标的其他参数(如速度、姿态角)也可在此实时显示。
3.7 仿真实现与结果分析
采用C语言对GL Studio进行二次开发。单独编译生成的源代码,实现雷达显示的仿真。图4为不同仿真时间的仿真截图,由图4看出,扫描线扫描时有逼真的余辉效果,当波束扫到目标时,目标被“点亮”,随后逐渐消失,直至再次被波束扫到。在动态绘制目标轨迹线过程中,当航迹点数超过航迹序列中预设数(本仿真中预设为8个) 时,序列中最早的航迹点数据自动消失,最新的航迹点数据加人到序列最前面,参见图2a和图4。图2a中有7个航迹点,图4a、4b、4c中分别有8、9、 10个航迹点,但只显示最新的8个。结果表明:首先对所需显示的图符进行静态建模。可对仿真结果有了直观认识。基于GL Studio的显示器仿真开发,可减少用高级语言编程实现所需的工作量,且画面清晰,运动目标轨迹流畅。生成的代码可封装成一个类,应用于其他仿真系统中。
4 结束语
研究雷达显示器仿真实现有重要意义。采用具有应用程序接口(API)的仿真软件GL Studio实现雷达显示器的仿真。在该软件的基础上二次开发减少了工作量,且画面美观流畅,具有较高的真实感和实时性。可将生成的代码添加到Vega Prime或其他基于OpenGL的环境下,加入到雷达仿真系统中以实时响应其他仿真模块传输来的一次、二次雷达数据。