黃文乾,劉彧千,李 曉,楊亞寧,趙 光,李殷喬
(1.中國空間技術(shù)研究院,北京 100094;2.國家航天局衛(wèi)星通信系統(tǒng)創(chuàng)新中心,北京 100094;3.中國空間技術(shù)研究院 西安分院,陜西 西安 710100)
典型的衛(wèi)星通信載荷是一種放大、變頻、濾波、交換、通道交鏈、通信/導(dǎo)航/數(shù)傳信號共存、時(shí)間/任務(wù)管理等多種復(fù)雜功能深度耦合且重要單機(jī)設(shè)置環(huán)備份的綜合性通信電子處理系統(tǒng)[1]。因設(shè)計(jì)與研制往往深刻影響衛(wèi)星壽命期任務(wù)成敗,所以需要在整個(gè)衛(wèi)星研制周期仔細(xì)進(jìn)行通信載荷鏈路設(shè)計(jì)并編排各個(gè)試驗(yàn)階段所需要的測試用例。
然而,隨著運(yùn)載、衛(wèi)星平臺(tái)和信息處理等技術(shù)不斷進(jìn)步和通信、導(dǎo)航、遙感、組網(wǎng)等需求不斷增長,通信衛(wèi)星載荷正逐漸向大規(guī)模、多功能、復(fù)雜處理交換等方向發(fā)展,傳統(tǒng)人工設(shè)計(jì)和測試用例排布效率極低,無法有效適應(yīng)正蓬勃發(fā)展的衛(wèi)星研制數(shù)字化批產(chǎn)化發(fā)展趨勢。舉例而言,在設(shè)計(jì)和測試過程中常常需要對鏈路冗余設(shè)計(jì)進(jìn)行遍歷測試。傳統(tǒng)方法通常采用窮舉的方式進(jìn)行鏈路遍歷:假設(shè)每個(gè)開關(guān)平均有3個(gè)狀態(tài)且通信載荷有200個(gè)開關(guān),則整個(gè)通信載荷共有3200種可能組合。傳統(tǒng)上程序式解決鏈路問題采用循環(huán)遍歷方法,然而循環(huán)遍歷方法的解算復(fù)雜度隨著載荷規(guī)模維度呈指數(shù)增長,運(yùn)算時(shí)間和代價(jià)極大。
現(xiàn)有載荷建模領(lǐng)域工作主要面向功能性建模和環(huán)備份開關(guān)設(shè)計(jì)建模。文獻(xiàn)[2-3]對衛(wèi)星通信有效載荷分系統(tǒng)進(jìn)行了面向?qū)ο蟮墓δ苄越?。文獻(xiàn)[4]提出了一種基于遺傳算法的星載功率放大器的備份環(huán)開關(guān)切換方案,采用選擇-交叉-變異的循環(huán)模擬生物種群繁殖、競爭、淘汰、平衡的進(jìn)化過程,來選擇較優(yōu)的開關(guān)切換方案。文獻(xiàn)[5]通過對圖論中關(guān)于圖形的基本要素以及連通度的研究,對開關(guān)備份環(huán)進(jìn)行了圖形和數(shù)學(xué)模型抽象,提出一種新型的開關(guān)備份環(huán)的設(shè)計(jì)方法。文獻(xiàn)[6]提出了一種基于圖論和遺傳算法的備份環(huán)切換分析方法,該方法首先應(yīng)用圖論中的鄰接鏈表表示法對備份環(huán)進(jìn)行建模,并利用遺傳算法進(jìn)行尋優(yōu)。文獻(xiàn)[7-8]提出了通信衛(wèi)星轉(zhuǎn)發(fā)器備份環(huán)開關(guān)的若干搜索算法。文獻(xiàn)[7-11]提出了轉(zhuǎn)發(fā)器功放備份環(huán)切換方法的詳細(xì)過程。
現(xiàn)有載荷建模研究工作尚未面向載荷鏈路遍歷問題,為解決此問題,本文提出一種向量化建模方法,該方法對多條鏈路同時(shí)進(jìn)行向量化運(yùn)算,并根據(jù)鏈路邏輯連接狀態(tài)進(jìn)行向量壓縮防止向量維度爆炸,向量化模型可以以較低的時(shí)間復(fù)雜度快速得到整個(gè)星上通信載荷鏈路所有可能組合,可在衛(wèi)星數(shù)字化研制各階段中有著重要應(yīng)用。
復(fù)雜的星上通信載荷涉及多類有源單機(jī)環(huán)備份關(guān)系,鏈路組成和耦合關(guān)系較為復(fù)雜。本文從易到難,從單鏈路單狀態(tài)、單鏈路多狀態(tài)、多鏈路多狀態(tài)、通用狀態(tài)建模流程等步驟闡明所提向量化建模方法。
圖1為通信載荷最簡單的單鏈路單狀態(tài),即輸入輸出鏈路上有且僅有一條通路,同時(shí)鏈路上設(shè)備僅有一種聯(lián)通狀態(tài)。
圖1所示鏈路中,鏈路經(jīng)過設(shè)備依次為A—B—C,其中,將設(shè)備A(典型如輸入濾波器)建模為一個(gè)二端口設(shè)備,其輸入端口為J1,輸出端口為J2,設(shè)備A內(nèi)部連接關(guān)系向量化建模為2×2矩陣,如式(1)所示,該矩陣行列物理意義均表示設(shè)備A端口[J1,J2],該向量化模型即可表示設(shè)備A內(nèi)部J1與J2相連。
(1)
進(jìn)一步地,設(shè)備A后端與設(shè)備B連接,將設(shè)備B建模為四端口設(shè)備(典型如開關(guān)),4個(gè)端口分別定義為J1、J2、J3、J4。設(shè)備A和B間連接關(guān)系向量化建模為2×4矩陣,如式(2)所示,該矩陣行物理意義為設(shè)備A端口[J1,J2],列物理意義為設(shè)備B端口[J1,J2,J3,J4]。該矩陣可以表示,僅有設(shè)備A端口J2和設(shè)備B端口J1相連。
(2)
同時(shí),設(shè)備B內(nèi)部鏈接關(guān)系向量化建模為4×4矩陣,行列物理意義均為設(shè)備B端口[J1,J2,J3,J4]。如式(3)所示,設(shè)備B內(nèi)部J1和J2相連,J3和J4相連(為便于闡述,假定設(shè)備B,典型如開關(guān),僅有當(dāng)前一種可能狀態(tài))。
(3)
根據(jù)設(shè)備內(nèi)部和設(shè)備間連接關(guān)系,將整條鏈路建模后設(shè)備內(nèi)部矩陣和設(shè)備連接矩陣相乘可得鏈路級向量化模型,如式(4)所示。鏈路級向量化模型運(yùn)算結(jié)果為2×2矩陣,行物理意義為鏈路起始端設(shè)備A端口[J1,J2],列物理意義為鏈路終點(diǎn)端設(shè)備C端口[J1,J2]。該鏈路級向量化模型有以下幾種物理含義:
① 計(jì)算結(jié)果表示,鏈路端對端物理意義上,設(shè)備A端口J1和設(shè)備C端口J2相連。
② 鏈路經(jīng)過的設(shè)備為A、B、C。
(4)
通常鏈路存在多個(gè)可能狀態(tài),主要是鏈路上可切換設(shè)備造成的?;谏瞎?jié)單鏈路單狀態(tài)建模,擴(kuò)展對單鏈路多狀態(tài)進(jìn)行建模。圖2中,整條鏈路經(jīng)過設(shè)備依次為A—B—C—E—F,其中設(shè)備B和E為同種設(shè)備(典型如C型開關(guān)),且內(nèi)部連接有兩種狀態(tài):狀態(tài)1為J1和J2相連,J3和J4相連;狀態(tài)2為J1和J4相連,J2和J3相連。兩個(gè)狀態(tài)可進(jìn)行任意設(shè)置和切換。因此上述鏈路交叉組合共用4種狀態(tài):① 設(shè)備B狀態(tài)1和設(shè)備E狀態(tài)1;② 設(shè)備B狀態(tài)1和設(shè)備E狀態(tài)2;③ 設(shè)備B狀態(tài)2和設(shè)備E狀態(tài)1;④ 設(shè)備B狀態(tài)2和設(shè)備E狀態(tài)2?;诒疚慕K悸?4種鏈路狀態(tài)向量化表示如式(5)~(8)。
圖2 單鏈路多狀態(tài)Fig.2 Single-link multi-state
(5)
(6)
(7)
(8)
鏈路A—B—C—E—F上述4種狀態(tài)中只有第二種狀態(tài):設(shè)備B狀態(tài)1和設(shè)備E狀態(tài)2可使端到端鏈路暢通,即僅有鏈路向量化運(yùn)算結(jié)果式(6)中包含1,表示設(shè)備A 端口J1和設(shè)備F端口 J2有效暢通,其余運(yùn)算結(jié)果中均不包含1,表示設(shè)備A和F無法連通。
以圖3鏈路為例,給出多鏈路向量化建模過程。圖中有兩條端對端鏈路:A—B—C—E—F和A—B—D—E—F。設(shè)備B和E均存在兩種可切換狀態(tài),不同的設(shè)備狀態(tài)組合下,兩條鏈路的通斷情況不同,對于上述多鏈路多狀態(tài)的向量化建模,需要應(yīng)用前向傳播原理,對多條鏈路同時(shí)進(jìn)行向量化建模運(yùn)算,從輸入端口傳播到輸出端口,得到鏈路級建模結(jié)果。建模核心思想是,基于前向傳播原理,應(yīng)用了向量隨路對角化擴(kuò)充來表征多鏈路,同時(shí)為了防止向量維度爆炸,又在隨路擴(kuò)充同時(shí)進(jìn)行隨路壓縮無效鏈路、壓縮不匹配通道。
1.3.1 隨路擴(kuò)充
圖3中,設(shè)備A與設(shè)備B相連,設(shè)備B有兩種狀態(tài),因此將設(shè)備A到B之間的向量化表示以及設(shè)備B的兩種狀態(tài)均擴(kuò)充為對角矩陣;進(jìn)一步前向傳播建模:設(shè)備B后端有C和D兩個(gè)設(shè)備,鏈路會(huì)有兩種走向,將當(dāng)前鏈路向量化模型繼續(xù)擴(kuò)充為對角矩陣。
因此,從設(shè)備A到設(shè)備C和D,鏈路上共有設(shè)備B的兩種狀態(tài),以及設(shè)備C和D的兩種鏈路走向,即共有4種可能性,4種可能性如式(9)所示:
(9)
1.3.2 無效鏈路隨路壓縮
將設(shè)備內(nèi)部連接關(guān)系和設(shè)備間連接關(guān)系結(jié)果代入上述向量化模型,可得到運(yùn)算結(jié)果,可以看出,只有兩種有效鏈路連通狀態(tài):實(shí)際對應(yīng)設(shè)備B為狀態(tài)1(J1—J2相連,J3—J4相連)導(dǎo)通到設(shè)備C的鏈路為狀態(tài)2(J1—J4相連,J2—J3相連)導(dǎo)通到設(shè)備D的鏈路,如式(10)所示。為防止鏈路復(fù)雜后矩陣維度爆炸,在隨路對角矩陣擴(kuò)充后根據(jù)運(yùn)算結(jié)果進(jìn)行隨路壓縮,將無實(shí)際意義的中間兩種狀態(tài)從矩陣中去掉,壓縮后多鏈路多狀態(tài)向量化模型如式(11)所示:
(10)
(11)
進(jìn)一步地,設(shè)備C和D與設(shè)備E相連,設(shè)備E有兩種狀態(tài),因此鏈路向量化對角化擴(kuò)充,再將設(shè)備F與鏈路相連,并將設(shè)備內(nèi)部連接關(guān)系和設(shè)備間連接關(guān)系代入向量化模型并根據(jù)運(yùn)算結(jié)果,壓縮掉無效鏈路后,可得最終鏈路級端對端向量化模型,如式(12)所示:
(12)
多鏈路多狀態(tài)向量化模型有兩種物理意義:
① 計(jì)算結(jié)果表示,鏈路端對端物理意義上,設(shè)備A端口J1和設(shè)備F端口J2相連。
② 該多鏈路多狀態(tài)樣例中,共兩種可能鏈路:鏈路A—B—C—E—F,此鏈路狀態(tài)中設(shè)備B和E分別為狀態(tài)1和狀態(tài)2;鏈路A—B—D—E—F,此鏈路狀態(tài)中設(shè)備B和E分別為狀態(tài)2和狀態(tài)1。
1.3.3 通道匹配壓縮
此外,轉(zhuǎn)發(fā)器中需要進(jìn)行通道匹配。簡單的轉(zhuǎn)發(fā)器可以利用射頻頻率/帶寬匹配進(jìn)行,但是涉及極化復(fù)用、多色復(fù)用的復(fù)雜轉(zhuǎn)發(fā)器常出現(xiàn)頻率/帶寬完全匹配的兩個(gè)通道中不容許連接的設(shè)計(jì),因此通道匹配必須提前預(yù)設(shè)好每條鏈路必經(jīng)的通道/節(jié)點(diǎn)。
本文所提建模方法采取射頻匹配隨路壓縮,必經(jīng)節(jié)點(diǎn)最終壓縮的方式進(jìn)行通道匹配。假設(shè)設(shè)計(jì)時(shí)已預(yù)設(shè)好僅設(shè)備A和設(shè)備C的通道能夠進(jìn)行連接,則在上述例子進(jìn)行設(shè)備B和設(shè)備C、D連接時(shí),預(yù)設(shè)通道匹配可以進(jìn)行進(jìn)一步向量模型壓縮。假設(shè)只有設(shè)備A和C能射頻匹配,設(shè)備A和D不存在連接可能,式(13)的向量化模型可以進(jìn)一步壓縮為式(14):
(13)
(14)
基于前向傳播隨路擴(kuò)充與壓縮思想的鏈路向量化建模方法,以圖4所示更復(fù)雜通用轉(zhuǎn)發(fā)器系統(tǒng)(多輸入、多輸出、多鏈路、多狀態(tài))為例,建立通用轉(zhuǎn)發(fā)器向量化建模算法。
圖4 通用狀態(tài)Fig.4 Generalize state
1.4.1 算法輸入
本文提出的通用轉(zhuǎn)發(fā)器向量化建模算法需要以下輸入:
① 鏈路數(shù)量以及每條鏈路起始點(diǎn)定義,如表1所示,其中必經(jīng)點(diǎn)為必經(jīng)之路;
表1 鏈路定義Tab.1 Link definition
② 鏈路中每個(gè)設(shè)備的特性以及內(nèi)部、設(shè)備之間連接關(guān)系,如表2所示;
表2 設(shè)備定義Tab.2 Device definition
③ 鏈路中設(shè)備間的連接關(guān)系和開關(guān)狀態(tài)類型,如表3和表4所示。
表3 連接定義Tab.3 Connection definition
表4 開關(guān)類型定義Tab.4 Switch definition
1.4.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和建模算法
為實(shí)現(xiàn)上述建模符號化和向量計(jì)算結(jié)果雙重表示,采用Python中DataFrame數(shù)據(jù)結(jié)構(gòu)進(jìn)行向量化模型數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)。利用DataFrame的元素行索引特性,將元素設(shè)置為向量化數(shù)值,將行索引設(shè)置為向量化符號表示。
基于上節(jié)應(yīng)用前向傳播隨路擴(kuò)充與壓縮思想的鏈路向量化建模方法,通用轉(zhuǎn)發(fā)器向量化建模算法如算法1所示。
算法1 向量化建模算法1) For第i條鏈路:(遍歷鏈路定義表中的每一行)2) 讀取該條鏈路起點(diǎn)、終點(diǎn)和必經(jīng)點(diǎn)3) For第q個(gè)節(jié)點(diǎn):(前向傳播,從起點(diǎn)開始)4) 在設(shè)備定義表和連接定義表中搜尋起始點(diǎn)的下個(gè)節(jié)點(diǎn)5) 如果第q個(gè)節(jié)點(diǎn)為多狀態(tài)則進(jìn)行隨路擴(kuò)充,具體有以下兩種情況:6) 情況1多狀態(tài)同時(shí)存在,如F7) 情況2多狀態(tài)互斥存在,如開關(guān)類型定義表8) 進(jìn)行無效鏈路隨路壓縮(只在隨路擴(kuò)充后進(jìn)行)9) 進(jìn)行通道射頻隨路壓縮(依據(jù)設(shè)備定義表中設(shè)備特征,每個(gè)節(jié)點(diǎn)進(jìn)行)10) 判斷鏈路是否包含終點(diǎn):如是則跳出循環(huán)11) 依據(jù)鏈路定義表中的必經(jīng)點(diǎn)集合,進(jìn)行通道匹配壓縮12) 得到第i條鏈路所有可能的路徑組合13) 得到所有鏈路所有可能的路徑組合
1.4.3 算法輸出
應(yīng)用表5向量化建模算法,得到每條鏈路所有可能的路徑組合。共兩條鏈路Input1—Output1和Input2—Output1,兩條鏈路向量化運(yùn)算結(jié)果如表5和表6所示,即兩條鏈路各有8種可能的鏈路路徑。
傳統(tǒng)基于窮舉方法的時(shí)間復(fù)雜度可以推導(dǎo)計(jì)算如下。窮舉算法是由m層For循環(huán)組成(m為轉(zhuǎn)發(fā)器開關(guān)數(shù)量),考慮開關(guān)平均有n種狀態(tài),最內(nèi)層For循環(huán)的時(shí)間復(fù)雜度為O(n),結(jié)合外層m個(gè)For循環(huán),傳統(tǒng)窮舉算法的時(shí)間復(fù)雜度為O(nm),該復(fù)雜度為指數(shù)級別,隨著開關(guān)數(shù)量m的增加,整個(gè)算法復(fù)雜度會(huì)指數(shù)級增長,效率極低。
本文所提如表5所示方法的時(shí)間復(fù)雜度僅有兩層For循環(huán):
① 外層For循環(huán)復(fù)雜度為O(l),l為鏈路數(shù)量。
② 內(nèi)層For循環(huán)內(nèi)層主要為向量乘法運(yùn)算。向量乘法的復(fù)雜度在1969年由Volker Strassen提出的Strassen算法下降到了O(q)以下[12-16],其中,q為矩陣的最大維度,在本算法中,q應(yīng)該為所有鏈路單機(jī)數(shù)量總和N除以鏈路數(shù)量l再除以單條鏈路上平均單機(jī)數(shù)量p,即q=N/l/p。當(dāng)前高級語言如Matlab、Python等均使用了Strassen算法或者改進(jìn)型的Strassen算法[17-18]。
因此,本文所提方法時(shí)間復(fù)雜度為O(l*q)=O(N/p),該復(fù)雜度為多項(xiàng)式級別,即復(fù)雜度隨著單機(jī)數(shù)量總數(shù)N線性增長。所提多項(xiàng)式級別復(fù)雜度方法相比傳統(tǒng)指數(shù)級別方法,極大提升了衛(wèi)星通信載荷建模效率。
在衛(wèi)星數(shù)字化設(shè)計(jì)階段,需要進(jìn)行通信載荷第一備份、第二備份的設(shè)置同時(shí)要求工作鏈路不能重復(fù),傳統(tǒng)方法均為人工走查確認(rèn);基于本文所提向量化建模結(jié)果,可以在每條鏈路理論上所有可能路徑中進(jìn)行多鏈路沖突檢測,經(jīng)過多鏈路沖突檢測后便可得到所有鏈路同時(shí)工作的所有組合,基于已有所有組合進(jìn)行轉(zhuǎn)發(fā)器第一備份、第二備份的設(shè)計(jì)可以極大減少設(shè)計(jì)和人工走查工作量。
在衛(wèi)星數(shù)字化測試階段,各個(gè)大型試驗(yàn)的工況對于通信載荷測試覆蓋性有不同的要求,比如有些工況測試用例需要覆蓋高功率放大器后端左右單機(jī)、波導(dǎo)、電纜等;而有些工況測試用例需要覆蓋通信載荷所有單機(jī)、波導(dǎo)、電纜。基于向量化建模結(jié)合和多鏈路沖突檢測,可以得到理論所有鏈路同時(shí)工作的所有組合,基于理論上所有組合進(jìn)行不同批次測試用例數(shù)字化編排具有較高應(yīng)用價(jià)值。
向量化是處理復(fù)雜問題的關(guān)鍵方法之一,向量化一方面可以較大程度減少復(fù)雜問題處理過程中的循環(huán)遍歷次數(shù),顯著降低算法復(fù)雜度,另一方面可以充分利用高性能計(jì)算機(jī)處理能力進(jìn)行高效批處理,進(jìn)而大幅減小模型運(yùn)行時(shí)間。本文提出的衛(wèi)星通信載荷向量化建模方法,僅以多項(xiàng)式級別時(shí)間復(fù)雜度便得到了所有鏈路理論上所有可能組合,相比傳統(tǒng)基于窮舉的方法極大提高了建模效率,在數(shù)字化設(shè)計(jì)、批產(chǎn)化制造等階段具有重要應(yīng)用價(jià)值。