1. 引言
近年来随着计算机技术的不断发展,导弹预警研究从单纯的数据算法研究不断向可视化展示方向拓展 [1] [2]。STK (Satellite Tool Kit)是美国AGI公司开发的软件,是航空航天领域一款非常实用的软件 [3]。该软件不仅具有强大的二三维的图像处理操作能力同时又具有目标数据分析能力,而且可为其他编程软件提供可调用组件接口,方便了不同应用功能系统的开发 [4]。
针对多雷达跟踪弹道导弹的预报交接场景可视化模拟的问题,本文以C#的winform为平台进行开发,调用STK软件中的二维三维可视化功能组件,设计开发了弹道导弹雷达预报交接可视化系统,实现了组网雷达预报交接导弹预警过程的可视化展示及操作,同时可对导弹状态数据及雷达观测数据进行分析,便于研究人员和考察人员观看整体过程。本文首先介绍了系统的基本概述,然后分析了系统的功能模块及组成,最后通过实例运行说明了系统的操作流程,验证了系统的各项功能及稳定性。
2. 系统基本概述
2.1. 系统设计构架
系统的设计思想为,系统首先通过C#软件搭建一个界面显示窗口,通过STK/X组件将弹道导弹的雷达预报交接过程以一个动态场景进行展示。预报交接过程中涉及到的相关运算则由内核程序进行,其系统设计构架如图1所示。
![](//html.hanspub.org/file/12-1541779x9_hanspub.png)
Figure 1. Architecture diagram of system design
图1. 系统设计的构架图
2.2. 编程软件选择
系统内部的计算程序可通过各章节的仿真程序转换为目标程序语言,而系统外部界面的设计,可由MATLAB的GUI设计、C++的MFC设计以及C#的WinForm等多种程序语言进行设计。对比这几种编程优缺点,使用MATLAB的GUI设计,其界面设计较为快捷,但是由于调用的都是MATLAB自身函数,其运行速度较慢,软件的运行也需要MATLAB环境,不适宜作为通用软件的推广使用 [5] [6];使用C++进行MFC界面设计,C语言更接近于底层,其运行速度较快,但窗体界面较为单一老化,软件的开发已不适合当前主流界面 [7];C#的WinForm窗体设计,窗体界面搭建较为灵活,且窗体风格设计丰富,程序的运行速度与C++的MFC程序差不多 [8]。因此本系统采用C#的WinForm进行系统外部界面搭建,并调用STK的三维、二维控件来完成系统构思中的功能实现。
3. C#调用组件的相关配置
3.1. 系统软件32位与64位的选择
本文系统软件在使用C#设计时定义为32位软件,优点在于其既可在x64的操作系统运行,也可以在x86 (32位)的操作系统上运行。x64平台下设计出的软件系统比x86设计出的系统运行速度快,系统设计之初曾尝试使用x64平台设计,但x64设计的软件只能运行在x64位的操作系统上运行,不如x86设计出的软件适用性广,且系统后面的需要的一些组件也需要在x86平台下运行,因此综合软件的使用范围和内部组件的兼容性,设计本文软件系统定位在32位软件。
3.2. DotNetBar的.NET Framework组件调用
由于C# WinForm项目中自带的控件数量有限,而DotNetBar就是一套基于.NET美化控件库,内含有诸多控件以及多种界面的皮肤风格,窗口界面更为灵活多变,人机交互感觉更强。本文软件系统使用DotNetBar控件库,一是可以更加方便的添加更丰富的操作按钮,二是与时俱进更符合时代审美特色。关于DotNetBar控件库的更多介绍可查看官网http://www.devcomponents.com/dotnetbar/,其调用使用方法与调用其他组件的方法基本一致。
3.3. STK相关COM组件的调用
本软件系统主要调用了STK三个COM组件库,分别为STK Objects、STK Util、STK X。其中STK Objects库,包含了STK结构的各个方面的类型、接口、事件和类。STK Util包含各种类库中的方法和属性,使用C#实例化对象后通过方法实现各项功能 [9]。STK X是AGI公司开发的嵌入技术,它以COM组件的形式添加到用户软件系统中,调用方便快捷 [10]。C#添加COM组件的具体流程如下:
a) 在解决方案资源管理器中找到“引用”选项,右击→【添加引用】→【COM/类型库】→选择AGI.STKObjects.Interop、AGI.STKUtil.Interop、AGI.STKX.Interop,点击确定添加。
b) 在.cs程序文件开头添加“using AGI.STKObjects”、“using AGI.STKUtil”的代码用以引用,三种控件的引用也要注意其运行版本号,软件开发阶段若版本不统一会出现运行问题,运行版本可在其属性中查看。
c) 在C#【工具箱】中将AGI Map Control和AGI Globe Control添加至窗体设计界面内,并可搭建形成系统的二维三维操作界面。
在向二三维场景中添加我们需要的导弹雷达等对象时,可以使用两种方法。一个是实例化AgStk Object Root类,通过调用类内不同的对象及方法实现相关操作,此方法需要查阅不同操作对应的方法,编程较为麻烦;另一个是使用“Execute Command”方法,该方法只需要将命令代码输入到“Execute Command”的参数值中,由于命令代码的编写规则掌握较快,应用该方法将更为快捷。两种方法的相关查阅资料均可在STK软件的帮助文档中查到。本软件系统将两种方法混合使用,更好的实现了诸多功能。
3.4. 外部环境
a) 硬件要求。软件系统运行所需硬件配置如表1所述。
![](Images/Table_Tmp.jpg)
Table 1. Hardware configuration table required for system operation
表1. 系统运行所需硬件配置表
b) 软件要求。软件系统运行所需软件配置如表2所述。
![](Images/Table_Tmp.jpg)
Table 2. Software configuration required for system installation and operation
表2. 系统安装和运行所需软件配置
4. 软件系统设计与实现
4.1. 系统界面设计
论本文系统的主界面主要包括菜单栏、按钮栏、参数设置栏和图像显示栏四大摸块。其中菜单栏包括文件、目标、场景等菜单选项;按钮栏包括二维、三维界面操作按钮;参数设置栏包括导弹和雷达参数的设置;图像显示栏包括二三维动态展示窗口及传感器数据分析口等。系统主界面如图2所示。
4.1.1. 菜单项内容及使用
菜单栏的设置按照Windows窗体使用习惯及软件功能设置了三个菜单项,分别为“文件”、“目标”、“场景”。“文件”菜单包括“保存”、“清除”、“退出”等选项,可以进行“数据保存”、“数据清除”、“软件退出”等操作。“目标”菜单包括“导弹”、“雷达1”、“雷达2”等选项,可以对导弹和雷达进行建立和参数设置等操作。“场景”菜单包括“3D动态展示”、“2D动态展示”、“数据分析”等选项,可对右侧图像显示栏三种显示模式进行选择。其具体内容如图3所示。
(a) “文件”菜单操作界面
(b) “目标”菜单操作界面
(c) “场景”菜单操作界面
Figure 3. Menu bar interface
图3. 菜单栏界面
4.1.2. 界面按钮的介绍及使用
为对系统进行可视化操作,综合其他软件的按钮操作习惯,现在菜单栏的下方设置按钮栏,包括二维、三维界面操作共14个操作按钮,编号第①至⑧项按钮为对场景的播放进度设置,编号⑨⑩⑪⑫按钮为场景的视角设置,编号⑬⑭按钮为二维的放大和缩小操作,各按钮编号如图4所示。
![](//html.hanspub.org/file/12-1541779x14_hanspub.png)
Figure 4. Toolbar operation button icon
图4. 工具栏操作按钮图示
按钮①到⑭按钮的程序编程,使用AGI.STKObjects.Interop接口实例化后,调用其内部函数及“ExecuteCommand()”的方法来实现。
4.1.3. 设置模块功能
参数设置模块功能是该软件系统的重要核心部分,为实现多雷达对导弹的预报交接可视化展示功能,将该模块主要包括“导弹设置”、“预警雷达1设置”、“跟踪雷达2设置”三部分。通过对这三部分的参数设置,构建多雷达跟踪弹道导弹的预报交接仿真场景的基本元素,后续的图形化界面的场景也是对这些元素进行展示和分析的。
a) 导弹设置
通过对导弹的设置,仿真生成一条弹道轨迹。弹道轨迹的生成可通过添加发射点和落点的纬度、经度、高度以及发射时间由STK组件的内部计算引擎进行生成,也可以通过调用外部导弹轨迹数据文件进行加载,数据文件为.e类型,文件按照格式显示了弹道在各个时刻的三个坐标轴方向的位置和速度值 [8],如图5所示。另外该软件系统的轨迹数据文件可增加导弹状态的协方差,导弹的状态协方差将以误差椭球的形式在场景中动态演化,导弹位置矢量的协方差矩阵实际上是一个三维的实对称矩阵,因此只需要添加其上三角6个数据值即可,数值对应情况如图6所示。同时为方便快速的展示可视化效果,软件增加了加载实验实例按钮,可一键增加导弹所有数据。
![](//html.hanspub.org/file/12-1541779x15_hanspub.png)
Figure 5. Compilation format of missile trajectory data file
图5. 导弹轨迹数据文件的编写格式
![](//html.hanspub.org/file/12-1541779x16_hanspub.png)
Figure 6. Covariance data writing format
图6. 协方差数据编写格式
b) 预警雷达1设置
预警雷达1作用为通过设置一道搜索屏对穿越搜索屏内的导弹目标进行探测,从而形成预警信息,因此预警雷达的搜索屏设置范围较大,但其探测精度不高。其主要设置参数包括雷达站的经度、纬度、高度,以及雷达搜索屏的仰角、方位角、厚度角以及搜索半径。前置雷达1的作用为进行大区域预警,搜索角度越大则预警能力越强,由于相控阵雷达阵列天线单面的搜索范围一般为左右各60,因此搜索屏的搜索范围参考实际情况默认设置为120。当导弹穿越雷达的搜索屏时,雷达通过短时跟踪可获得导弹目标的状态值,并根据雷达的探测误差得出导弹目标的状态协方差,由此为跟踪雷达2形成引导信息。同时为方便快速的展示可视化效果,软件增加了加载实验实例按钮,可一键增加导弹所有数据。
c) 跟踪雷达2设置
将雷达1生成的导弹状态数据值作为引导数据,经前文介绍的算法技术可以计算出雷达2的搜索区域及波束扫描范围,引导雷达2在目标到达交接时刻时根据计算出的搜索区域可快速搜索到目标。因此雷达2的搜索区域为搜索窗,与雷达1的搜索屏有所不同,其主要设置参数包括搜索区域的上下俯仰角、左右方位角和探测距离。另外为确定搜索区域内波束分布和编排,还需要进一步设置波束宽度和扫描速率。由于设置参数较多,为方便快速的展示可视化效果,软件增加了加载实验实例按钮,可一键增加导弹所有数据。
4.1.4. 图形界面模块功能
该图形界面窗口位于主界面的右侧,是系统软件的可视化的主要展示窗口,主要包括三维(3D)、二维(2D)内下导弹的运动轨迹、雷达动态监测的过程以及弹道状态和雷达探测数据的变化图。在3D、2D的界面下,用户可以通过工具栏的操作按钮对当前展示的场景进行相应的操作获取更好的观察效果。
其中,“3D动态显示”可以进入3D动态显示模式,该模式将导弹目标在空间中飞行轨迹实时展示出来,其与雷达站和地球间的空间几何关系一目了然,展示了其视觉优势。另外在该模式下除了使用界面上的操作按钮进行操作外,还可以按住鼠标左键拖动可以观看场景不同的位置,按住鼠标右键拖动可以放大缩小场景。“2D动态显示”可以进入2D动态显示模式。该模式是将地球表面二维化,导弹的运动轨迹在此模式下显示为其在地球表面的投影。“数据分析”可以进入数据分析模式,此模式以图表的形式展示了导弹的状态数据随时间的变换情况、预警雷达对导弹的可见性分析以及跟踪雷达对导弹目标的俯仰方位斜距随时间的变化情况。具体操作界面如图7所示。
(a) 3D场景动态显示
(b) 2D场景动态显示
(c) 数据分析显示
Figure 7. Graphic operation interface
图7. 图形操作界面
4.2. 系统功能实现
使用本文系统进行弹道导弹的雷达预报交接展示的主要操作步骤分为两个方面,首先是通过界面左侧设置栏装订好导弹和雷达的相关参数,参数装订完成之后会在右侧图形界面上显示所装订的导弹及雷达目标。其次是通过右侧的图形操作界面控制对可视化场景进行控制。
4.2.1
. 参数设置
打开软件进入主界面后,左侧为参数设置栏,分别对导弹、预警雷达、跟踪雷达进行相关参数装订。
a) 导弹设置流程如下:
第一步,点击【导弹设置】进入导弹相关参数设置,在发射参数中输入导弹发射点的经度、维度、高度以及发射时间(UTCG),在落点参数中输入落点的纬度、经度、高度;
第二步,点击【弹道计算】可以计算出一条弹道轨迹,并在右侧3D动态显示中显示出导弹轨迹,该弹道轨迹是使用STK内核引擎生成的,弹道数据也可以通过外部文件加载。
另外用户也可以使用【加载实验数据】按钮,可一键加载导弹所有数据并进行展示。
b) 预警雷达1设置流程如下:
第一步,点击【预警雷达1设置】进入前置雷达相关参数设置,在雷达站参数中输入雷达站的经度、纬度、高度;
第二步,点击【建立雷达站】可在地图上生成前置雷达站;
第三步,在搜索屏参数设置中输入搜索屏仰角、屏方位角、屏厚度以及屏半径,点击【建立搜索屏】可在该雷达站生成搜索屏,并在3D动态显示中对搜索屏进行直观显示。
另外用户也可以使用【加载实验数据】按钮可一键加载雷达1的所有数据并进行展示。
c) 跟踪雷达2设置流程如下:
第一步,点击【跟踪雷达2设置】进入后置雷达相关参数设置,在雷达站参数中输入雷达站的经度、纬度、高度;
第二步,点击【建立雷达站】可在地图上生成后置雷达站。因为后置跟踪雷达对目标的搜索为小范围少量波束的区域搜索,其搜索区域为搜索小窗与前置雷达的搜索屏设置不同。根据前置雷达1的获得的导弹的状态值和协方差数据可以获得雷达的交接时刻及交接时刻下导弹的协方差数据和后置雷达的搜索区域。得到雷达搜索区域经换算后在此输入区域上、小、左、右角以及波束宽度、探测距离、扫描速率;
第三步,点击【建立搜索区域】可在地图上形成雷达站的搜索区域展示。
另外用户也可以使用【加载实验数据】按钮可一键加载雷达2的所有数据并进行展示。
4.2.2
. 图像界面展示
在软件主界面的右侧为图形界面操作,在完成左侧相关目标的参数设置后,可以对3D动态展示和2D动态展示图进行操作以及数据分析图表的切换显示。
a) 3D动态展示
点击【3D动态展示】,可以看到一个三维的地球动态场景,场景内显示了在左侧建立的导弹飞行轨迹和雷达探测区域和波束,点击工具栏中的⑤播放按钮,场景会按照设定的场景时间段进行运行,场景时间会显示在整个场景的左下侧,如图8所示。场景的放大缩小可通过按住鼠标右键拖动实现,另外通过按钮(图4所示)可以实现场景播放的加速、慢速、暂停、时间复位,以及场景观看角度的切换,具体每个按钮的功能可参照4.1.2节介绍。这里需要注意的是,导弹的飞行时间和雷达传感器的探测时间必须在场景的时间段内,否则场景播放时无法看到动态过程。
b) 2D动态展示
点击【2D动态展示】,可以看到一个二维的全球地图,二维地图与三维动态场景不同,在场景播放时地图是不会随着时间运行而移动,只有目标会在地图上移动,其移动的过程是与3D动态展示同步进行的,同时地图上也展示了导弹目标的地面航迹和雷达探测区域在地球表面上的投影,是对3D动态展示的一种补充,可以很好的展示经纬度信息。2D动态展示操作较少只有通过⑬⑭按钮进行放大缩小操作。
c) 数据分析
点击【数据分析】,可以看到一个图表展示,分别为“导弹状态数据”、“雷达1探测数据”、“雷达2探测数据”。点击【导弹状态数据】显示导弹在X轴、Y轴、Z轴的位置及速度6个状态值随飞行时间的变换曲线;点击【雷达1探测数据】显示雷达1对导弹目标的时间可见性分析;点击【雷达2探测数据】显示了雷达2在探测距离内,对导弹目标的方位角、俯仰角、斜距随导弹飞行时间的变化情况;三种数据分析界面如图9所示。
(a) 导弹状态数据变化图
(b) 雷达1可见性分析
(c) 雷达2探测数据变换
Figure 9. Data analysis interface
图9. 数据分析界面
5. 结束语
本文设计开发了一套弹道导弹雷达预报交接可视化系统。首先概述了系统的设计思想和基本概述;然后介绍了STK/X组件与C#软件集成的相关配置;最后详细介绍了本文软件系统的设计,包括系统界面设计与系统的操作流程。本文系统经运行表明,该系统兼容性好,运行稳定,操作性和直观性较强,具有一定的工程应用价值。