唐永學,朱桂梅,郝 亮
(1.北京軒宇空間科技有限公司,北京 100190;2.丹娜(天津)生物科技股份有限公司,天津 300467)
隨著近期“嫦娥”系列月球探測器、中國空間站核心艙、“天舟”系列貨運飛船、“神舟”系列載人飛船的陸續(xù)成功發(fā)射,證明中國航天技術水平走在了國際前列。航天事業(yè)的步伐不斷的前進,對衛(wèi)星執(zhí)行任務的要求越發(fā)復雜、任務完成精度越高[1],這就對衛(wèi)星的姿態(tài)確定精度要求愈來愈高[2]。航天飛行器姿態(tài)測量主要的敏感器為星敏感器,衛(wèi)星為了獲得其在空間中的位置信息及姿態(tài)變化情況,需要利用其上裝置的星敏感器來探測軸指向視場內(nèi)的恒星的數(shù)量、亮度及相對位置等信息[3]。
星敏感器自身存儲有全天區(qū)的導航星圖,在工作過程中,通過其光學系統(tǒng)拍攝所對應的天球上的恒星,得到觀測星圖,將觀測星圖與導航星圖進行特征匹配,從而得出衛(wèi)星本體的坐標系的姿態(tài)。姿態(tài)確定的輸入信息是姿態(tài)敏感器的測量數(shù)據(jù),輸出是衛(wèi)星的三軸姿態(tài)參數(shù)[4]。
電子星空模擬器是與星敏感器配套的地面測試設備。它可根據(jù)輸入的慣性姿態(tài)數(shù)據(jù),實時生成與該姿態(tài)對應的星圖,按照接口時序向星敏感器線路盒輸出,使星敏感器線路獲得所需的電子圖像,從而達到實時動態(tài)模擬在軌星敏工作過程。
電子星模擬器可模擬光學系統(tǒng)殘差、暗電流、噪聲、總劑量效應、單粒子成像、溫度、雜光(日、月、飛行器反射光)、拖尾等因素的影響,即可用于星敏感器軟件調(diào)試、測試,也可替代動態(tài)光學星模擬器作為星敏感器的輸入,用于控制系統(tǒng)聯(lián)試,驗證星敏感器在軌工作性能[5-6]。
星模擬器主要星在實驗室里生成靜態(tài)或者動態(tài)星圖。星模擬器根據(jù)使用用途,可以分為靜態(tài)星模擬器(static star simulator)、動態(tài)星模擬器(dynamic star simulator)和電子星模擬器(electrical star simulator)。
靜態(tài)星模擬器產(chǎn)生一幅固定天區(qū)的星圖,不能測試星敏感器的動態(tài)性能,也不能參與閉路測試。靜態(tài)星模擬器的星點位置模擬精度較動態(tài)星模擬器要更高,一般用來考察星敏感器的光路和電路性能[7]。
動態(tài)星模擬器用于星敏感器動態(tài)性能的測試和標定,可以對星敏感器動態(tài)光學和電性能進行驗證。動態(tài)星模擬器需要實時顯示星圖,對星圖質(zhì)量具有較高要求,具有光學系統(tǒng),要求安裝精度高,成本較高[8-9]。
電子星模擬器產(chǎn)生星敏感器線路所需的電子圖像。電子星模擬器沒有復雜的光學系統(tǒng),電子圖像傳送至星敏感器的CPU板,供CPU板軟件處理,從而達到實時動態(tài)模擬在軌星敏工作過程的目的,驗證星敏感器的在軌工作性能。
電子星模擬器由控制計算機及相關連接電纜組成,其工作原理如圖1所示。電子星模擬器由高性能PC機、圖像處理板、硬件底層驅(qū)動程序(FPGA程序、硬件驅(qū)動程序等)和人機交互界面軟件等組成。電子星模擬器控制計算機不僅可以自動生成星圖,也可以接收動力學計算機的輸入指令生成星圖,因此要求電子星模擬器控制計算機與動力學計算機間的通訊協(xié)議應簡單、直接。
圖1 電子星模擬器系統(tǒng)組成框圖
地面動力學每個仿真周期輸出慣性四元數(shù)信息,電子星模擬器根據(jù)輸入的四元數(shù),查找星圖表,實時生成與該姿態(tài)對應的星圖,并將該星圖轉換為數(shù)字視頻信號通過LVDS電纜輸出,使星敏獲得所需要的電子圖像。在地面動力學閉環(huán)測試中,仿真周期設置為10 ms,則姿態(tài)更新周期為10 ms,星敏感器的采樣周期為200 ms,可設置不同工況下電子星模擬器產(chǎn)生星圖[10-11]。電子星模擬器圖像分辨率支持1 024*1 024;圖像位寬支持12 bit;能夠同時完成幀頻10 Hz的圖像上傳及采集。
電子星模擬器包括測試計算機、LVDS圖像卡、通訊卡和對應測試電纜組成。其中,電子星模擬器接受指令并按照指令生成圖像,通過LVDS圖像卡提供給星敏感器,也可以通過LVDS圖像卡接收來自星敏感器發(fā)來的圖像并存儲。電子星模擬器總體結構如圖2所示。
圖2 電子星模擬器總體結構
電子星模擬器具體功能要求如下:
1)采用PC機擴展卡的形式,可選用PCI/PCIe接口擴展卡;
2)圖像為1 024×1 024×12 bit;
3)支持同時激勵2臺星敏感器;
4)能夠同時完成幀頻10 Hz的圖像上傳及采集;
5)要求板卡支持最大帶寬同時讀寫不低于20 Mbps;
6)要求板卡支持LVTTL電平發(fā)送與接收;
7)要求板卡支持RS422差分信號,不低于2路。
圖像處理板為北京軒宇空間科技有限公司研發(fā)的PCIe LVDS圖像卡。該卡主要實現(xiàn)LVDS、LVTTL及其RS422差分電平接口,通過PCIe 總線與PC機通訊,實現(xiàn)與星敏感器接口時序,以及圖像的上傳與下載功能。具體性能如下:PCIe板卡尺寸167.65 mm*106.65 mm;符合PCIe V1.1規(guī)范,支持PCIe 1 Lane接口;支持DMA讀寫功能,50 MHz系統(tǒng)時鐘實測最大讀帶寬130 MB/s,寫帶寬84 MB/s,可支持66 MHz系統(tǒng)時鐘,最大讀寫帶寬可達150 MB/s;板載1GB DDR2顆粒,用作Fifo緩存;采用FPGA芯片,可根據(jù)實際需要實現(xiàn)特定時序接口;采用高速電磁隔離,最大傳輸延遲:7 ns;最大可承受脈沖電壓:6 kV;最大支持20/20 LVDS輸入/輸出接口,符合IEEE 1596.3 SCI /TIA/EIA-644規(guī)范;支持 4/4 路3.3 V LVTTL輸入/輸出接口;支持 4/4 路RS422差分電平輸入/輸出接口,符合TIA/EIA-422-B /ITU V1.1標準。
串口通訊卡主要與動力學計算機進行通訊,通過動力學計算機對電子星模擬器進行遠程操作,接收來自動力學計算機的指令,根據(jù)指令響應操作。采用MOXA卡,型號CP-134U-I。具體性能如下:處理最高效能可達700 kbps以上;最高傳輸率達921.6 kbps;提供信號自動流向控制;兼容3.3/5 V PCI和PCI-X;支持Windows、WinCE 5.0、Linux、Unix等驅(qū)動;具備15 kV ESD靜電保護;2 kV光電隔離保護。
電子星模擬器主機負責人機交互、圖像生成、圖像采集、存儲顯示等,是測試軟件運行的載體以及LVDS圖像卡、串口通信卡的安裝平臺。采用商用計算機實現(xiàn),商用計算選擇是主要考慮圖像處理速度、主板安裝插槽、硬盤存儲空間。
為了能更好的進行圖像處理,在計算機CPU選擇時著重考慮處理速度,目前選擇i7系列CPU,主頻為3.4 GHz,四核八線程,以滿足圖像處理速度;因MOXA通訊卡總線為PCI,而自研的LVDS圖像處理卡為PCI-E接口,因此在選擇主板時應選擇有PCI和PCI-E的主板;選擇1 T以上存儲空間的硬盤。根據(jù)上述要求,選擇惠普的商用電腦ProDesk 480G6。
電子星模擬器軟件需具備合理的設計實現(xiàn)思路,利用Windows系統(tǒng)平臺快速開發(fā)出軟件,滿足測試的要求。在性能上保證了軟件的穩(wěn)定性、長時間測試性、運行的快速性;同時具有較高的數(shù)據(jù)存儲性能,兼顧對硬件的安全性、軍工產(chǎn)品的安全性、可靠性以及較低的資源占有率;界面的直觀操作具有美觀性、可用性、通用性等。
電子星模擬器軟件采用Microsoft Visual Studio 2010編寫,程序語言為C#以及VC++,軟件運行在Windows 7操作系統(tǒng)下;使用NI VISA來驅(qū)動LVDS板卡。人機交互界面、圖像顯示模塊、動力學參數(shù)模塊均是使用C#開發(fā)。人機交互界面使用了WPF界面開發(fā)以及Prism框架。板卡操作模塊、圖像生成模塊、板卡驅(qū)動模塊是使用C/C++開發(fā)。這樣的方案考慮了板卡操作的性能優(yōu)化,以及界面開發(fā)的便捷性。C#調(diào)用C/C++動態(tài)庫的接口,采用調(diào)用方清堆棧的方式進行[12-14]。
電子星模擬器軟件為通用型軟件,為了兼容多種動力學地面設備,傳遞動力學參數(shù)使用串口和網(wǎng)口兩種傳輸模式。
軟件的功能模塊主要包括:人機交互、板卡操作模塊、圖像生成、圖像發(fā)送、圖像采集、動力學參數(shù)接收/生成及圖像顯示等功能。
1)人機交互模塊?;陟`活配置的軟件框架實現(xiàn)基本的按鈕控件、編輯框控件、主界面的顯示控件、開始/停止圖像數(shù)據(jù)輸出、開始/停止圖像數(shù)據(jù)采集、動力學參數(shù)顯示等。人機交互模塊使用C#開發(fā),便于界面開發(fā)實現(xiàn),且較為美觀。
2)板卡操作模塊。主要實現(xiàn)功能是:初始化LVDS圖像板卡發(fā)送功能、采集功能以及中斷功能;維護板卡操作線程;在板卡操作線程中將模擬星圖數(shù)據(jù)通過LVDS板卡發(fā)送圖像數(shù)據(jù),并通過板卡采集圖像數(shù)據(jù)。此模塊使用VC++開發(fā)接口,以便于C#調(diào)用為原則進行設計;調(diào)用圖像生成模塊和板卡驅(qū)動模塊;調(diào)用NI VISA接口來操作板卡。
3)圖像生成模塊。主要功能是根據(jù)動力學參數(shù)以及其他系數(shù)(星點參數(shù)、標定系數(shù)等),調(diào)用星圖庫生成模擬星圖數(shù)據(jù)。
4)動力學參數(shù)接收/生成模塊。根據(jù)界面用戶選擇初始化相應的串口或網(wǎng)口,根據(jù)界面用戶選擇開啟接收線程(從串口或網(wǎng)絡接收動力學參數(shù))或生成線程(本地生成動力學參數(shù));維護動力學參數(shù)的實時性。使用C#開發(fā);生成動力學參數(shù)主要是四元數(shù)根據(jù)當前設定的角速度進行積分、計算。
5)圖像顯示模塊。主要實現(xiàn)功能是:將RAW數(shù)據(jù)格式轉換BMP格式;BMP格式數(shù)據(jù)到顯示窗口的轉換;定時圖像更新;圖像分析,放大縮小,灰度值顯示。使用C#開發(fā),窗口位圖按照BMP格式數(shù)據(jù)輸出。
各軟件模塊的關系如圖3所示。
圖3 軟件模塊關系
電子星模擬器軟件在線程同步性方面做了較多努力,重新設計了各個線程的分工。板卡操作模塊,是軟件的核心模塊,軟件的性能主要靠板卡操作模塊的運行情況來保證。在設計過程中多次對板卡操作模塊的工作流程進行了優(yōu)化,以提升圖像發(fā)送和采集的性能和穩(wěn)定性。在電子星模擬器軟件中使用了多線程技術,如果不加入同步鎖,進行線程同步操作時,很容易導致線程間爭奪資源或表現(xiàn)出不合理的結果,所以在代碼開發(fā)中嚴格使用鎖,對線程同步進行嚴格的設計和測試,避免線程的互鎖。電子星模擬器軟件主要工作線程的流程如圖4所示。
圖4 電子星模擬器軟件流程圖
3.4.1 動力學參數(shù)說明
為了動力學接口統(tǒng)一和明確,要求動力學參數(shù)傳遞(網(wǎng)絡、串口)時,四元數(shù)的順序必須為(q3,q2,q1,q0),三軸角速度的順序為(w1,w2,w3);動力學傳遞的角速度的單位為rad/s;為了便于查看,界面顯示的角速度單位為°/s。
3.4.2 星圖庫簡要說明
星圖庫采用北京控制工程研究所的星圖庫,專門為小型長壽命星敏電子星模模擬器提供,目前提供的庫生成的星圖為1 024×1 024×12 bit。
3.4.3 板卡操作技術簡要說明
LVDS輸出/輸入卡是北京軒宇空間科技有限公司自主研發(fā)的LVDS通訊卡,驅(qū)動使用NI VISA通用驅(qū)動。在NI VISA提供的庫的基礎上進行了進一步的封裝,形成板卡驅(qū)動模塊,使其更加易用。主要函數(shù)如表1所示。
表1 板卡驅(qū)動模塊函數(shù)
根據(jù)指標要求能夠同時完成幀頻10 Hz的圖像上傳及采集,即電子星模擬器接收到動力學計算機的指令后,將生成的星圖上傳給星圖的響應時間≤100 ms。響應時間定義:電子星模擬器接收到指令計算機最后一個字節(jié)停止位至電子星模擬器將圖像的第一個數(shù)據(jù)位推出的時間間隔。
由于使用Windows系統(tǒng),實時性有一定限制。為保證圖像正確性及其周期性準確,采用板卡端控制時序的策略,在發(fā)送一幀圖之前的一定時間內(nèi),向軟件發(fā)送圖像數(shù)據(jù)請求。軟件則需要在請求時間內(nèi),將圖像數(shù)據(jù)發(fā)送至板卡。這樣的方案下,由于板卡時鐘和動力學指令為異步,則有,請求時間<電子星模擬器指令實際響應時間<請求時間+動力學指令時間間隔。電子星模擬器指令實際響應時間受設定的請求時間以及動力學指令時間間隔兩方面影響。
為了配合驗證,將動力學參數(shù)指令發(fā)送時間間隔設定為10 ms。為了保證圖像數(shù)據(jù)的準確性,請求時間應大于軟件端所需要的圖像發(fā)送時間。軟件操作流程如圖5所示。
圖5 軟件操作流程圖
通過以上分析,影響響應時間的因素主要有:星圖生成時間、寫DMA時間及Windows線程調(diào)度引起的線程等待。表2所示的是通過軟件打印星圖生成時間、寫DMA時間,以及獲取的請求標志時間間隔,運行情況為單通道發(fā)送。
表2 單通道軟件測試發(fā)送時間
星圖生成時間較短,均小于5 ms。板卡寫DMA帶寬為84 MB/s,根據(jù)此速度計算得到寫2 MB數(shù)據(jù)時間為23.8 ms。根據(jù)上圖可以看出,DMA時間最大為25 ms。連續(xù)發(fā)送1 000次2 M數(shù)據(jù)的時間為24 120 ms,認為DMA發(fā)送時間為25 ms是可信的。
為了確認Windows系統(tǒng)下,線程調(diào)度引起的線程等待時間,在2通道發(fā)送、采集均開啟的情況下,繼續(xù)進行測試。通過48小時拷機實驗,利用軟件輸出的數(shù)據(jù)文件進行統(tǒng)計,結果為:中斷的時間間隔為90~110 ms,中斷響應受Windows系統(tǒng)線程調(diào)度影響導致的不穩(wěn)定度認為是10 ms;從接收到板卡中斷,到寫DMA完成時間為25~45 ms;從接收到板卡中斷,到寫DMA完成,再到讀取板卡采集圖像數(shù)據(jù)完成,時間為50~75 ms;一個周期內(nèi),最大的耗時不超過中斷的不穩(wěn)定度+完成發(fā)送采集的時間,即10 ms+75 ms=85 ms,為了保證系統(tǒng)的穩(wěn)定性,中斷到板卡開始發(fā)送數(shù)據(jù)的時間間隔設定為90 ms,略大于測試的最大耗時,周期為100 ms,則可以保證系統(tǒng)的正常運行。
綜上所述,使用動力學參數(shù)生成圖像的時機為響應中斷的時間,中斷到板卡開始發(fā)送數(shù)據(jù)為90 ms,響應中斷的不穩(wěn)定度為10 ms,可以認為取動力學參數(shù)的時間到發(fā)送圖像的時間為80~90 ms,由于動力學參數(shù)間隔為10 ms,故電子星模擬器指令響應時間為80~100 ms,滿足系統(tǒng)設計指標。
在某衛(wèi)星控制分系統(tǒng)地面測試中,將電子星模擬器接入閉環(huán)測試回路,在測試過程中,將同一時間段的地面動力學輸出給星敏的理論數(shù)據(jù)和星敏采集到的姿態(tài)信息數(shù)據(jù)進行分析,理論值和采集值的誤差曲線如圖6所示,經(jīng)過數(shù)據(jù)分析,理論值和采集值的最大誤差為0.000 7,小于0.07%,此誤差對于閉環(huán)測試系統(tǒng)姿態(tài)確定的影響可忽略不計。電子星模擬器性能滿足要求,證明了電子星模擬器的實用性和有效性。
圖6 理論值和采集值誤差
本文設計完成了電子星模擬器的軟硬件,此電子星模擬器在某衛(wèi)星控制分系統(tǒng)地面測試中成功的進行了閉環(huán)試驗。為更充分的驗證衛(wèi)星控制系統(tǒng)方案的可行性,以及確定姿態(tài)的工作情況,將電子星模擬器應用于衛(wèi)星控制分系統(tǒng)的閉環(huán)測試中,在地面模擬了星敏在軌識別的星圖,測試結果表明電子星模擬器動態(tài)響應迅速、工作穩(wěn)定、誤差小,該電子星模擬器具有通用性,可廣泛應用于控制系統(tǒng)閉環(huán)測試中。