杨雅琦
摘要 设计一个满足空间目标监视工程需求的系统软件。先对软件进行需求分析,然后进行系统总体设计,通过设计原则,给出功能结构设计以及模块划分与类的设计。最后针对各模块,阐述相关理论知识,详细说明实现细节。
【关键词】空间目标监视 雷达 轨道预报 卫星过境预报
1 引言
随着时代的进步,人类对空间的探索也在不断推进。从国家战略层面来说,打造完备的空间目标监视体系在军事安全方面有重要意义。空间目标主要包括卫星,空间碎片和宇宙飞行物,本文主要研究对象为低轨卫星。
空间目标监视即利用探测手段获取空间目标的实时位置与运动状态。依据其本质,设计实现空间目标监视仿真系统,依据卫星当前状态,结合雷达探测范围,获取卫星过境预报信息,为空间态势感知奠定基础。
在设计系统时,需要对系统需求进行深入分析。再利用面向对象的软件理论,设计一个可维护,易操作,可拓展性高的系统仿真软件。
2 需求分析
在当下对空间进行控制的背景下,空间目标监视仿真系统是一个对近地卫星进行轨道预报,并利用雷达对卫星弧段进行分析的软件。空间目标监视软件的基本需求有:
(1)设置雷达相关参数,获得该指定仰角下的雷达覆盖范围,并将该范围的详细信息以表格形式呈现于交互界面。
(2)选择卫星编号和具体时间范围,通过参数进行雷达对卫星弧段的分析,并以表格形式呈现卫星穿屏时间位置。
(3)当软件操作流程异常时应出现相关警示信息。
(4)整体系统应该具备良好的稳定性和可拓展性。
3 系统总体设计
系统总体设计是在需求分析和设计原则的基础上,确定功能模块划分,并给出类的设计。
3.1 设计原则
在本系统中,软件设计有以下几个基本原则。
3.1.1 易用性原则充分考虑用户的操作习惯,使用简洁友
好的图形界面与用户进行交互,为用户操作提供便利。
3.1.2 可拓展性原则
软件设计时应当减少各模块之间的耦合性,便于后期对软件进行功能拓展。同时,应尽量设计的简洁明了,避免功能重复。
3.2 模块划分及类的设计
结合软件功能结构图,本软件划分为三大模块:卫星轨道预报模块,雷达覆盖范围计算模块,卫星过境预报模块。图1表示各模块关系图。
结合软件模块关系图进行类的设计。本软件中涉及到以下几个类:工具类,卫星类,雷达类,过境预报类以及用户显示类。
工具类CCommonUtility主要定义了与时间相关的结构体。
卫星类Sattelite定义了卫星的轨道根数结构体OrbitRoots和卫星的预报点信息结构体PredictPntInfo。
雷达计算类RadarCovCal定义了结构体存储雷达配置信息,同时提供判断雷达参数合理性,计算测距损失系数,计算雷达覆盖面积等功能函数。
过境预报类SatCrossScreen中提供TLE文件解析,卫星探测范围计算,卫星过境预报计算等功能函数。
用户显示类UIDisplay继承自QWidget,本身不设置方法,在布局中仅布局一个不包含子tab页的QTabWidget,而将每个可与用户进行交互操作的子tab页单独作为一个类,这种设计方便后期对某tab页的修改和屏蔽。
4 软件模块实现
4.1 轨道预报模块
在进行卫星轨道预报时,本系统所采用的轨道预报算法为SGP4预报算法。SGP4轨道预报算法属于分析法的一种,其初值信息采用的是NASA公开并定时更新的TLE根数。SGP4算法的模型误差会随着卫星轨道高度的增加而降低。但针对低轨道卫星而言,其轨道预报误差可控制在3km之内,并且由于SGP4算法模型计算速度快,所占内核资源少,因此满足工程需求。
在卫星轨道预报模块中,函数GetTLEOrbit用于解析TLE文件。为了方便对大量卫星的查找,函数输出数据以map结构进行存储。其中,该map的key值为各卫星的编号,而对应的value值为存储着卫星详细信息的结构体。
由于轨道预报模块的功能准确性影响到后续其他模块的计算结果,因此,利用现有的标称轨道参数,以900卫星为例,以1s时间为步长,预报时段为2019年1月21日至2019年1月22日,利用MATLAB对模块结果与标称结果进行误差计算,通过误差曲线判断模块结果是否准确。误差计算曲线如图2所示。
由误差曲线可得,在经纬高三个维度上,其误差范围均控制在正负0.5%之内。这个误差结果是可接受的。
4.2 雷达探测威力研究模块
雷达探测威力研究指的是从雷达方程出发,确定雷达有效覆盖范围。确定雷达的三维有效覆盖范围应从二维有效覆盖范围入手。本文中采取搜索逼近算法,通过从方位、俯仰、距离三个维度上设置步进,迭代计算,从而获得雷达三维有效覆盖范围。
在本系统所涉及的实际工程应用中,雷达三维覆盖范围需要投影至地球表面,形成投影区域,以便后续进行卫星过境预报计算。在对雷达有效覆盖范围进行投影时,一般分两种情况。一种情况下,不指定高度,仅限定俯仰角。此时雷达的投影区域所对应的三维立体区域中,包含了多个高度范围,在进行卫星过境预报时,同一时段可能有多个不同高度的卫星过境。另一种情况下,限定俯仰和高度。此时是针对某一指定高度下的卫星进行过境预报分析。针对两种情况,设计重载函数EdgeOnEarth,分别实现两种情况下的雷达有效覆盖范围投影计算。
在未指定高度情况下,EdgeOnEarth函数输入为雷达参数,指定俯仰角,函数输出为雷达有效覆盖范围的投影边界序列。指定高度下EdgeOnEarth函数输入参数增加了指定高度。函数将调用JudgeFixRangeResult函数,针对指定方位仰角,判断在雷达测距范围内,其三维覆盖范围中是否存在高度与指定高度相等的点。JudgeFixRangeResult函數返回一个bool值。若存在指定点,则返回真值,否则返回假值。在该函数中,为了便于后续计算查找,使用map结构存储计算结果。该map的key值为方位角,value值为该方位仰角下,高度等于指定高度的点的测距。
4.3 卫星过境预报
卫星过境预报模块作为核心模块之一,其模块输出结果即为整个软件的最终需求。该模块应用卫星轨道预报模块的预报结果和雷达探测威力研究模块的计算结果,计算出卫星过境时间和位置,为空间预警提供数据。
针对卫星是否搭载载荷,将分为两种不同情况进行讨论。卫星未搭载载荷,则将探测范围视为一个点,称之为星下点,过境预报即判断星下点与雷达覆盖范围之间的位置关系。卫星搭载载荷,则其载荷对地球表面存在探测区域,过境预报即判断卫星探测区域与雷达覆盖范围之间的重叠关系。下面将分别进行详细阐述。
4.3.1 星下点过境预报
星下点的过境预报需要结合雷达的有效覆盖范围信息,依次判断预报轨迹上卫星位置点与雷达覆盖范围之间的关系。通过当前点和上一点的判断结果,可获取卫星弧段的过境信息。
在功能函数GetPassResult中,输入参数包括预报起始和结束时间,预报点的个数,雷达覆盖范围的边界信息。输出包括过境时间和位置。该函数首先调用轨道预报模块,对指定卫星进行轨道预报。然后对每一个预报点进行过境判断,用一个bool量记录该点是否位于雷达覆盖范围之内,最后通过当前预报点的位置结果与上一预报点的位置结果来判断卫星弧段的过境信息。其具体判断准则如下:
(1)当前点判断结果为真,上一点判断结果为假,则当前点为过境弧段起始点。
(2)当前点判断结果为真,上一点判断结果为真,则当前点为过境弧段中某一点。
(3)当前点判断结果为假,上一点判断结果为真,则上一点为过境弧段结束点。
(4)当前点和上一点判断结果均为假,则该点处于境外。
4.3.2 带载荷卫星过境预报
带载荷卫星的过境预报中,利用函数DBXGuoJingCal实现带载荷卫星的过境预报功能。同时需要根据卫星载荷的种类,分别进行锥形载荷过境预报和矩形载荷过境预报。
针对锥形载荷和矩形载荷,其计算的逻辑基本一致。因此,以矩形载荷为例,功能函数RectRegionResult函数的输入参数包括雷达覆蓋范围区域信息,卫星探测范围参数,预报时间参数。其输出为过境预报时间位置信息。在RectRegionResult函数中,判断雷达覆盖范围与卫星探测范围是否存在重叠区域思路如下:先判断多边形是否相互包含,若不是,再利用点与多边形关系,判断两个多边形是否存在重叠。
4.4 软件操作流程
空间目标监视软件涉及多个模块,模块间存在数据交互。下面给出该软件的使用操作流程图,在软件操作过程中,若出现操作步骤不当,软件应当给出相关误操作提醒。操作流程如图3所示。
5 结语
本文结合空间目标监视系统实际需求,采取面向对象的软件工程思想,对软件系统进行分析设计,最终实现了一个可满足精度需求的空间目标监视软件。主要工作成果如下:
(1)结合实际工程需求,通过面向对象的设计理论,以工程需求为导向,对空间目标监视软件进行总体设计。
(2)通过软件需求分析,结合相关理论,设计出易用且满足工程需求的软件,完成软件编码实现的工作。同时结合用户界面设计原则,为用户设计易于操作的软件界面。
参考文献
[1]陈松明.基于STK的空间目标监视雷达系统设计研究[D].西安电子科技大学,2010.
[2]冯晓哲,杨瑞,王健,梁桃红.雷达探测威力范围与三维可视化研究[J].现代雷达,2015,37(05):74-78.