楊雅琦
摘要??? 設(shè)計一個滿足空間目標(biāo)監(jiān)視工程需求的系統(tǒng)軟件。先對軟件進(jìn)行需求分析,然后進(jìn)行系統(tǒng)總體設(shè)計,通過設(shè)計原則,給出功能結(jié)構(gòu)設(shè)計以及模塊劃分與類的設(shè)計。最后針對各模塊,闡述相關(guān)理論知識,詳細(xì)說明實現(xiàn)細(xì)節(jié)。
【關(guān)鍵詞】空間目標(biāo)監(jiān)視 雷達(dá) 軌道預(yù)報 衛(wèi)星過境預(yù)報
1 引言
隨著時代的進(jìn)步,人類對空間的探索也在不斷推進(jìn)。從國家戰(zhàn)略層面來說,打造完備的空間目標(biāo)監(jiān)視體系在軍事安全方面有重要意義??臻g目標(biāo)主要包括衛(wèi)星,空間碎片和宇宙飛行物,本文主要研究對象為低軌衛(wèi)星。
空間目標(biāo)監(jiān)視即利用探測手段獲取空間目標(biāo)的實時位置與運動狀態(tài)。依據(jù)其本質(zhì),設(shè)計實現(xiàn)空間目標(biāo)監(jiān)視仿真系統(tǒng),依據(jù)衛(wèi)星當(dāng)前狀態(tài),結(jié)合雷達(dá)探測范圍,獲取衛(wèi)星過境預(yù)報信息,為空間態(tài)勢感知奠定基礎(chǔ)。
在設(shè)計系統(tǒng)時,需要對系統(tǒng)需求進(jìn)行深入分析。再利用面向?qū)ο蟮能浖碚?,設(shè)計一個可維護,易操作,可拓展性高的系統(tǒng)仿真軟件。
2 需求分析
在當(dāng)下對空間進(jìn)行控制的背景下,空間目標(biāo)監(jiān)視仿真系統(tǒng)是一個對近地衛(wèi)星進(jìn)行軌道預(yù)報,并利用雷達(dá)對衛(wèi)星弧段進(jìn)行分析的軟件。空間目標(biāo)監(jiān)視軟件的基本需求有:
(1)設(shè)置雷達(dá)相關(guān)參數(shù),獲得該指定仰角下的雷達(dá)覆蓋范圍,并將該范圍的詳細(xì)信息以表格形式呈現(xiàn)于交互界面。
(2)選擇衛(wèi)星編號和具體時間范圍,通過參數(shù)進(jìn)行雷達(dá)對衛(wèi)星弧段的分析,并以表格形式呈現(xiàn)衛(wèi)星穿屏?xí)r間位置。
(3)當(dāng)軟件操作流程異常時應(yīng)出現(xiàn)相關(guān)警示信息。
(4)整體系統(tǒng)應(yīng)該具備良好的穩(wěn)定性和可拓展性。
3 系統(tǒng)總體設(shè)計
系統(tǒng)總體設(shè)計是在需求分析和設(shè)計原則的基礎(chǔ)上,確定功能模塊劃分,并給出類的設(shè)計。
3.1 設(shè)計原則
在本系統(tǒng)中,軟件設(shè)計有以下幾個基本原則。
3.1.1 易用性原則充分考慮用戶的操作習(xí)慣,使用簡潔友
好的圖形界面與用戶進(jìn)行交互,為用戶操作提供便利。
3.1.2 可拓展性原則
軟件設(shè)計時應(yīng)當(dāng)減少各模塊之間的耦合性,便于后期對軟件進(jìn)行功能拓展。同時,應(yīng)盡量設(shè)計的簡潔明了,避免功能重復(fù)。
3.2 模塊劃分及類的設(shè)計
結(jié)合軟件功能結(jié)構(gòu)圖,本軟件劃分為三大模塊:衛(wèi)星軌道預(yù)報模塊,雷達(dá)覆蓋范圍計算模塊,衛(wèi)星過境預(yù)報模塊。圖1表示各模塊關(guān)系圖。
結(jié)合軟件模塊關(guān)系圖進(jìn)行類的設(shè)計。本軟件中涉及到以下幾個類:工具類,衛(wèi)星類,雷達(dá)類,過境預(yù)報類以及用戶顯示類。
工具類CCommonUtility主要定義了與時間相關(guān)的結(jié)構(gòu)體。
衛(wèi)星類Sattelite定義了衛(wèi)星的軌道根數(shù)結(jié)構(gòu)體OrbitRoots和衛(wèi)星的預(yù)報點信息結(jié)構(gòu)體PredictPntInfo。
雷達(dá)計算類RadarCovCal定義了結(jié)構(gòu)體存儲雷達(dá)配置信息,同時提供判斷雷達(dá)參數(shù)合理性,計算測距損失系數(shù),計算雷達(dá)覆蓋面積等功能函數(shù)。
過境預(yù)報類SatCrossScreen中提供TLE文件解析,衛(wèi)星探測范圍計算,衛(wèi)星過境預(yù)報計算等功能函數(shù)。
用戶顯示類UIDisplay繼承自QWidget,本身不設(shè)置方法,在布局中僅布局一個不包含子tab頁的QTabWidget,而將每個可與用戶進(jìn)行交互操作的子tab頁單獨作為一個類,這種設(shè)計方便后期對某tab頁的修改和屏蔽。
4 軟件模塊實現(xiàn)
4.1 軌道預(yù)報模塊
在進(jìn)行衛(wèi)星軌道預(yù)報時,本系統(tǒng)所采用的軌道預(yù)報算法為SGP4預(yù)報算法。SGP4軌道預(yù)報算法屬于分析法的一種,其初值信息采用的是NASA公開并定時更新的TLE根數(shù)。SGP4算法的模型誤差會隨著衛(wèi)星軌道高度的增加而降低。但針對低軌道衛(wèi)星而言,其軌道預(yù)報誤差可控制在3km之內(nèi),并且由于SGP4算法模型計算速度快,所占內(nèi)核資源少,因此滿足工程需求。
在衛(wèi)星軌道預(yù)報模塊中,函數(shù)GetTLEOrbit用于解析TLE文件。為了方便對大量衛(wèi)星的查找,函數(shù)輸出數(shù)據(jù)以map結(jié)構(gòu)進(jìn)行存儲。其中,該map的key值為各衛(wèi)星的編號,而對應(yīng)的value值為存儲著衛(wèi)星詳細(xì)信息的結(jié)構(gòu)體。
由于軌道預(yù)報模塊的功能準(zhǔn)確性影響到后續(xù)其他模塊的計算結(jié)果,因此,利用現(xiàn)有的標(biāo)稱軌道參數(shù),以900衛(wèi)星為例,以1s時間為步長,預(yù)報時段為2019年1月21日至2019年1月22日,利用MATLAB對模塊結(jié)果與標(biāo)稱結(jié)果進(jìn)行誤差計算,通過誤差曲線判斷模塊結(jié)果是否準(zhǔn)確。誤差計算曲線如圖2所示。
由誤差曲線可得,在經(jīng)緯高三個維度上,其誤差范圍均控制在正負(fù)0.5%之內(nèi)。這個誤差結(jié)果是可接受的。
4.2 雷達(dá)探測威力研究模塊
雷達(dá)探測威力研究指的是從雷達(dá)方程出發(fā),確定雷達(dá)有效覆蓋范圍。確定雷達(dá)的三維有效覆蓋范圍應(yīng)從二維有效覆蓋范圍入手。本文中采取搜索逼近算法,通過從方位、俯仰、距離三個維度上設(shè)置步進(jìn),迭代計算,從而獲得雷達(dá)三維有效覆蓋范圍。
在本系統(tǒng)所涉及的實際工程應(yīng)用中,雷達(dá)三維覆蓋范圍需要投影至地球表面,形成投影區(qū)域,以便后續(xù)進(jìn)行衛(wèi)星過境預(yù)報計算。在對雷達(dá)有效覆蓋范圍進(jìn)行投影時,一般分兩種情況。一種情況下,不指定高度,僅限定俯仰角。此時雷達(dá)的投影區(qū)域所對應(yīng)的三維立體區(qū)域中,包含了多個高度范圍,在進(jìn)行衛(wèi)星過境預(yù)報時,同一時段可能有多個不同高度的衛(wèi)星過境。另一種情況下,限定俯仰和高度。此時是針對某一指定高度下的衛(wèi)星進(jìn)行過境預(yù)報分析。針對兩種情況,設(shè)計重載函數(shù)EdgeOnEarth,分別實現(xiàn)兩種情況下的雷達(dá)有效覆蓋范圍投影計算。
在未指定高度情況下,EdgeOnEarth函數(shù)輸入為雷達(dá)參數(shù),指定俯仰角,函數(shù)輸出為雷達(dá)有效覆蓋范圍的投影邊界序列。指定高度下EdgeOnEarth函數(shù)輸入?yún)?shù)增加了指定高度。函數(shù)將調(diào)用JudgeFixRangeResult函數(shù),針對指定方位仰角,判斷在雷達(dá)測距范圍內(nèi),其三維覆蓋范圍中是否存在高度與指定高度相等的點。JudgeFixRangeResult函數(shù)返回一個bool值。若存在指定點,則返回真值,否則返回假值。在該函數(shù)中,為了便于后續(xù)計算查找,使用map結(jié)構(gòu)存儲計算結(jié)果。該map的key值為方位角,value值為該方位仰角下,高度等于指定高度的點的測距。
4.3 衛(wèi)星過境預(yù)報
衛(wèi)星過境預(yù)報模塊作為核心模塊之一,其模塊輸出結(jié)果即為整個軟件的最終需求。該模塊應(yīng)用衛(wèi)星軌道預(yù)報模塊的預(yù)報結(jié)果和雷達(dá)探測威力研究模塊的計算結(jié)果,計算出衛(wèi)星過境時間和位置,為空間預(yù)警提供數(shù)據(jù)。
針對衛(wèi)星是否搭載載荷,將分為兩種不同情況進(jìn)行討論。衛(wèi)星未搭載載荷,則將探測范圍視為一個點,稱之為星下點,過境預(yù)報即判斷星下點與雷達(dá)覆蓋范圍之間的位置關(guān)系。衛(wèi)星搭載載荷,則其載荷對地球表面存在探測區(qū)域,過境預(yù)報即判斷衛(wèi)星探測區(qū)域與雷達(dá)覆蓋范圍之間的重疊關(guān)系。下面將分別進(jìn)行詳細(xì)闡述。
4.3.1 星下點過境預(yù)報
星下點的過境預(yù)報需要結(jié)合雷達(dá)的有效覆蓋范圍信息,依次判斷預(yù)報軌跡上衛(wèi)星位置點與雷達(dá)覆蓋范圍之間的關(guān)系。通過當(dāng)前點和上一點的判斷結(jié)果,可獲取衛(wèi)星弧段的過境信息。
在功能函數(shù)GetPassResult中,輸入?yún)?shù)包括預(yù)報起始和結(jié)束時間,預(yù)報點的個數(shù),雷達(dá)覆蓋范圍的邊界信息。輸出包括過境時間和位置。該函數(shù)首先調(diào)用軌道預(yù)報模塊,對指定衛(wèi)星進(jìn)行軌道預(yù)報。然后對每一個預(yù)報點進(jìn)行過境判斷,用一個bool量記錄該點是否位于雷達(dá)覆蓋范圍之內(nèi),最后通過當(dāng)前預(yù)報點的位置結(jié)果與上一預(yù)報點的位置結(jié)果來判斷衛(wèi)星弧段的過境信息。其具體判斷準(zhǔn)則如下:
(1)當(dāng)前點判斷結(jié)果為真,上一點判斷結(jié)果為假,則當(dāng)前點為過境弧段起始點。
(2)當(dāng)前點判斷結(jié)果為真,上一點判斷結(jié)果為真,則當(dāng)前點為過境弧段中某一點。
(3)當(dāng)前點判斷結(jié)果為假,上一點判斷結(jié)果為真,則上一點為過境弧段結(jié)束點。
(4)當(dāng)前點和上一點判斷結(jié)果均為假,則該點處于境外。
4.3.2 帶載荷衛(wèi)星過境預(yù)報
帶載荷衛(wèi)星的過境預(yù)報中,利用函數(shù)DBXGuoJingCal實現(xiàn)帶載荷衛(wèi)星的過境預(yù)報功能。同時需要根據(jù)衛(wèi)星載荷的種類,分別進(jìn)行錐形載荷過境預(yù)報和矩形載荷過境預(yù)報。
針對錐形載荷和矩形載荷,其計算的邏輯基本一致。因此,以矩形載荷為例,功能函數(shù)RectRegionResult函數(shù)的輸入?yún)?shù)包括雷達(dá)覆蓋范圍區(qū)域信息,衛(wèi)星探測范圍參數(shù),預(yù)報時間參數(shù)。其輸出為過境預(yù)報時間位置信息。在RectRegionResult函數(shù)中,判斷雷達(dá)覆蓋范圍與衛(wèi)星探測范圍是否存在重疊區(qū)域思路如下:先判斷多邊形是否相互包含,若不是,再利用點與多邊形關(guān)系,判斷兩個多邊形是否存在重疊。
4.4 軟件操作流程
空間目標(biāo)監(jiān)視軟件涉及多個模塊,模塊間存在數(shù)據(jù)交互。下面給出該軟件的使用操作流程圖,在軟件操作過程中,若出現(xiàn)操作步驟不當(dāng),軟件應(yīng)當(dāng)給出相關(guān)誤操作提醒。操作流程如圖3所示。
5 結(jié)語
本文結(jié)合空間目標(biāo)監(jiān)視系統(tǒng)實際需求,采取面向?qū)ο蟮能浖こ趟枷?,對軟件系統(tǒng)進(jìn)行分析設(shè)計,最終實現(xiàn)了一個可滿足精度需求的空間目標(biāo)監(jiān)視軟件。主要工作成果如下:
(1)結(jié)合實際工程需求,通過面向?qū)ο蟮脑O(shè)計理論,以工程需求為導(dǎo)向,對空間目標(biāo)監(jiān)視軟件進(jìn)行總體設(shè)計。
(2)通過軟件需求分析,結(jié)合相關(guān)理論,設(shè)計出易用且滿足工程需求的軟件,完成軟件編碼實現(xiàn)的工作。同時結(jié)合用戶界面設(shè)計原則,為用戶設(shè)計易于操作的軟件界面。
參考文獻(xiàn)
[1]陳松明.基于STK的空間目標(biāo)監(jiān)視雷達(dá)系統(tǒng)設(shè)計研究[D].西安電子科技大學(xué),2010.
[2]馮曉哲,楊瑞,王健,梁桃紅.雷達(dá)探測威力范圍與三維可視化研究[J].現(xiàn)代雷達(dá),2015,37(05):74-78.