国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

實時數(shù)據(jù)驅(qū)動技術(shù)在航天任務(wù)評估中的應(yīng)用

2018-11-02 06:51:48朱金慧
關(guān)鍵詞:管理器線程時序

劉 波,李 靜,朱金慧

(中國人民解放軍63796部隊,西昌,615000)

0 引 言

航天發(fā)射試驗任務(wù)中,運載火箭飛行中速度、位置等實時狀態(tài)在測控系統(tǒng)實時顯示,但是其內(nèi)部各系統(tǒng)的運行狀態(tài)不可知,直接影響對火箭飛行狀態(tài)的評判。航天發(fā)射試驗任務(wù)快速評估系統(tǒng)(簡稱:快速評估系統(tǒng)),就是從火箭起飛開始,實時收集并實時判定飛行數(shù)據(jù)及航天器入軌情況,完成對飛行關(guān)鍵事件、各系統(tǒng)工作情況、運載火箭飛行情況及飛行任務(wù)結(jié)果的分析及故障定位,依據(jù)評定準(zhǔn)則,得出飛行任務(wù)的快速分析評定結(jié)論[1]。

快速評估系統(tǒng)實現(xiàn)了飛行數(shù)據(jù)實時判讀、智能評估、自動報表,提高領(lǐng)域?qū)<曳治鲈u定的效率和質(zhì)量,是一款準(zhǔn)實時軟件,其實時數(shù)據(jù)驅(qū)動的自動判讀、智能評估、實時顯示是其重點關(guān)鍵技術(shù),對于其它實時軟件的設(shè)計與實現(xiàn)具有重要參考價值。

1 快速評估模型

快速評估依據(jù)實時飛行數(shù)據(jù)對火箭飛行情況進行評估,其核心是劃分層次結(jié)構(gòu)及構(gòu)建判斷矩陣。對運載火箭飛行結(jié)果的評估分解為對分系統(tǒng)的評估,對分系統(tǒng)的評估進一步分解為對設(shè)備/子系統(tǒng)和關(guān)鍵參數(shù)(具有決定性指標(biāo))的評估,從而形成自上而下的按層次逐層支配的關(guān)系。

分系統(tǒng)、設(shè)備/子系統(tǒng)、火箭(關(guān)鍵)參數(shù)統(tǒng)稱為評估對象,具有層次性結(jié)構(gòu),利用組合模式建立系統(tǒng)評估模型[2],如圖1所示。

圖1 評估對象模型示意Fig.1 A Schematic for Evaluation Object Model

2 基于實時數(shù)據(jù)驅(qū)動的系統(tǒng)設(shè)計

快速評估系統(tǒng)硬件組成包括接口微機、數(shù)據(jù)庫服務(wù)器、數(shù)臺評估終端、網(wǎng)絡(luò)打印等,通過任務(wù)IP網(wǎng)與中心機通信。系統(tǒng)采用典型3層Client/Server結(jié)構(gòu)設(shè)計[3],數(shù)據(jù)層提供來自于網(wǎng)絡(luò)的實時飛行數(shù)據(jù)和來自于數(shù)據(jù)庫的參數(shù)判讀規(guī)則、系統(tǒng)評估規(guī)則及其它各類基本信息;功能層提供各類評估業(yè)務(wù)模型,包括參數(shù)及其判讀模型、子系統(tǒng)及其評估模型、飛行時序事件模型、飛行結(jié)果評估模型;表示層提供人機交互接口,包括任務(wù)管理、評估規(guī)則管理、數(shù)據(jù)管理和實時評估等界面,如圖2所示。

圖2 快速評估系統(tǒng)邏輯結(jié)構(gòu)Fig.2 Logic Architecture of the Fast Evaluation System

2.1 實時數(shù)據(jù)處理流程

對各評估對象的分析評估歸根結(jié)底是對火箭參數(shù)的分析判讀,數(shù)據(jù)是進行評估的基礎(chǔ)。系統(tǒng)從中心機接收數(shù)據(jù)處理為分類數(shù)據(jù),再分發(fā)到每個參數(shù)成為其當(dāng)前值(有些參數(shù)還需要系統(tǒng)進一步計算處理才能得到),參數(shù)對當(dāng)前值判讀得到其判讀結(jié)果,然后子系統(tǒng)、系統(tǒng)等評估要素根據(jù)評估模型進行評估得到評估結(jié)果。軟件界面UI實時顯示參數(shù)當(dāng)前值、數(shù)據(jù)曲線和判讀結(jié)果以及分系統(tǒng)、關(guān)鍵動作等評估對象的評估結(jié)果。系統(tǒng)數(shù)據(jù)流視圖如圖3所示。

圖3 數(shù)據(jù)流視圖Fig.3 Data Flow Diagram

運載火箭參數(shù)較多(一般2000個以上,某些型號多達5000余個),采樣頻率較高(至少10 Hz),如果每接收到一包網(wǎng)絡(luò)實時數(shù)據(jù)后都要完成解算、處理、判讀、評估、顯示等工作,整個處理周期耗時較長,必然影響下一包數(shù)據(jù)的接收,因此需要采取異步調(diào)用或多線程技術(shù)對數(shù)據(jù)處理流程進行動態(tài)解耦。

根據(jù)系統(tǒng)工作特點,實時數(shù)據(jù)評估可分為網(wǎng)絡(luò)接收解算數(shù)據(jù)、實時數(shù)據(jù)評估、更新顯示界面3個步驟,分別工作在 3個不同的工作線程,實現(xiàn)動態(tài)解耦,具體實現(xiàn)方法如下:

a)數(shù)據(jù)管理器增加一個鏈表用于緩存內(nèi)部接口送來的數(shù)據(jù),稱為待處理數(shù)據(jù)鏈表;

b)內(nèi)部接口接收解算中心機數(shù)據(jù)后,將數(shù)據(jù)提交給數(shù)據(jù)管理器,數(shù)據(jù)管理器將數(shù)據(jù)緩存到待處理數(shù)據(jù)鏈表中立即返回,此時內(nèi)部接口準(zhǔn)備好接收下一包中心機數(shù)據(jù);

c)創(chuàng)建一個輔助線程用于驅(qū)動整個實時評估業(yè)務(wù)過程,該線程循環(huán)檢查待處理數(shù)據(jù)鏈表,若有數(shù)據(jù),從鏈表中取出、處理、分發(fā),進而驅(qū)動參數(shù)判讀和(子)系統(tǒng)評估,但基本不直接更新界面(個別情況例外);

d)主線程設(shè)置定時器周期更新界面,其處理序列如圖4所示。

圖4 多線程下的實時評估序列Fig.4 Multi-thread Real-time Evaluation Sequence Diagram

e)綜上,待處理數(shù)據(jù)鏈表為兩個線程所共享,根據(jù)多線程工作原則,需要對鏈表加鎖同步操作以避免沖突[4],如圖5所示。

圖5 待處理數(shù)據(jù)鏈表多線程同步處理Fig.5 Multi-threaded Synchronization Processing of Pending Data Linked List

2.2 實時事件驅(qū)動

火箭飛行時序是火箭飛行過程中發(fā)出的時間程序指令集合,是根據(jù)火箭飛行狀態(tài)實時計算后發(fā)出的浮動基準(zhǔn)時間指令,和起飛信號一起,組成飛行時序的基準(zhǔn)指令。時串是以箭機發(fā)出的時序信號為基礎(chǔ),按以時序時間為基準(zhǔn)的預(yù)定時間發(fā)出步序和時串控制信號,以引爆和控制相應(yīng)火工品和電磁閥門等受控對象,控制火箭各個飛行段的動作。當(dāng)特定指令發(fā)生,火箭參數(shù)的動態(tài)特性將會發(fā)生變化,一個或多個評估對象將被評估。例如 tk1為箭載計算機發(fā)出的一級關(guān)機信號,當(dāng)其發(fā)生時,火箭一級相關(guān)參數(shù)將停止自動判讀,二級相關(guān)參數(shù)將啟動判讀,同時對火箭各分系統(tǒng)一級飛行段工作情況進行評估。

火箭時序時串指令的特性在 C#中使用事件(event)類型進行描述,而且使用事件類型之后,可應(yīng)用觀察者模式對參數(shù)判據(jù)改變、啟動評估等功能進行設(shè)計,降低對象間的耦合性,將靜態(tài)的組合關(guān)系變?yōu)檫\行時的動態(tài)組合關(guān)系。

系統(tǒng)實現(xiàn)了兩種實時事件,一種是特定類別事件,依賴于多個參數(shù)或某一類別參數(shù),中心機提供的數(shù)據(jù)包括遙測、外測、安控、通信等多種類別信息,不同類別的信息按表進行組織,特定類別信息的出現(xiàn),本身代表現(xiàn)實事件,如衛(wèi)星入軌參數(shù)出現(xiàn)表明星箭已經(jīng)分離并且初軌已經(jīng)確定,另一種是時序時串發(fā)生事件,這類事件依賴于單個具體參數(shù)。時序時串發(fā)生事件的生成算法如圖6所示。數(shù)據(jù)管理器向參數(shù)分發(fā)數(shù)據(jù)時,調(diào)用參數(shù)的新數(shù)據(jù)到來響應(yīng)函數(shù),根據(jù)參數(shù)的不同類別,新數(shù)據(jù)到來響應(yīng)函數(shù)有不同行為,時序時串參數(shù)首先檢查新值與其當(dāng)前值是否一致,如果不一致,則通過時序時串表來檢查該值是否是一個有效的時序時串,如果是,則設(shè)置為當(dāng)前值,并激發(fā)時序時串發(fā)生事件,否則不予處理。

圖6 時序時串發(fā)生事件生成算法Fig.6 Timing Sequence Generation Algorithm

2.3 參數(shù)判據(jù)管理與判讀

火箭參數(shù)在飛行過程中通常具有動態(tài)特性,不同時段其范圍要求不同,可以用參數(shù)的分時段判據(jù)描述,一般表示為 JC={P,Tb,Te,Max,Min},各項要素說明如表1所示。

表1 判據(jù)要素說明表Tab.1 Criterion Elements Specification

按200個關(guān)鍵參數(shù)、每個參數(shù)平均10條分時段判據(jù)計,則規(guī)則庫多達2000條記錄。若每個參數(shù)每個數(shù)據(jù)判讀均查詢規(guī)則庫,數(shù)據(jù)采樣頻率計10 Hz,則每秒需平均遍歷記錄1萬條。這種額外的消耗對實時系統(tǒng)非常不利。因此提高判據(jù)調(diào)度和參數(shù)判讀的效率是提高系統(tǒng)實時性的關(guān)鍵。

系統(tǒng)采用基于時間同步的參數(shù)判據(jù)調(diào)度算法,在恰當(dāng)時機為每個參數(shù)指定判據(jù),從而使參數(shù)判讀過程中無需查詢規(guī)則庫,提高效率,算法序列如圖7所示。

圖7 參數(shù)判據(jù)調(diào)度算法序列圖Fig.7 Parameter Criterions Scheduling Algorithm Sequence Diagram

算法主要包括4步:

a)初始化判據(jù)集合。

程序初始化階段,數(shù)據(jù)管理器從參數(shù)判讀規(guī)則庫中載入判據(jù),并初始化 3個集合,鏈表List<JC>toLoadList用于按Tb升序排列已有確定的開始時刻的判據(jù),鏈表List<JC>toUnloadList用于按Te升序排列已有確定的結(jié)束時刻的判據(jù),字典Dictionay<RocketParam,List<JC>>tsDict用于存放與特定時序時串相關(guān)的判據(jù)鏈表。

b)更新判據(jù)集合。

當(dāng)時序時串事件發(fā)生時,數(shù)據(jù)管理器根據(jù)該時序時串參數(shù)更新tsDict中相應(yīng)的Tb值和/或Te值,并更新到toLoadList和toUnloadList中。

c)基于時間同步的判據(jù)調(diào)度。

在實時評估線程中,數(shù)據(jù)管理器處理每一包數(shù)據(jù)時,先獲取飛行時間fTime,遍歷toUnloadList,卸載Te值小于fTime的所有判據(jù),并從toUnloadList中刪除;toLoadList類似處理。

d)數(shù)據(jù)分發(fā)和判讀。

依次調(diào)用參數(shù)的新數(shù)據(jù)到來響應(yīng)函數(shù),向每個參數(shù)分發(fā)新的數(shù)據(jù),每個參數(shù)調(diào)用數(shù)據(jù)判讀函數(shù)依據(jù)判據(jù)進行判讀。為進一步提高判讀效率,使用NullObject模式用于判據(jù)不存在的情況[5]。

2.4 實時顯示

評估結(jié)果最終要以數(shù)值、文字、表格、曲線方式顯示,因為顯示界面(UI)工作于主線程,而數(shù)據(jù)處理、判讀、評估工作于后臺線程。在C#中后臺線程直接或間接訪問界面控件會引起跨線程操作異常。為解決這一問題,利用Control.Invoke方法將調(diào)用封送到主線程中,從而“感覺上”實現(xiàn)了跨線程更新[6],跨線程更新UI的步驟為:

a)將直接或間接更新 UI的操作重構(gòu)為界面更新函數(shù);

b)在原來更新UI操作的位置查詢控件或窗體的InvokeRequired屬性,若為true,則以界面更新函數(shù)的委托為參數(shù)調(diào)用Control.Invoke,否則直接調(diào)用界面更新函數(shù)。

系統(tǒng)在顯示當(dāng)前評估時段、起飛時間等界面上采用此操作??缇€程更新UI的優(yōu)點是在事件響應(yīng)函數(shù)中更新UI,邏輯清晰易于維護。

快速評估系統(tǒng)通常需要顯示數(shù)十個參數(shù)的曲線,如果每個參數(shù)收到一次數(shù)據(jù)都更新自身曲線,將需要每秒更新數(shù)百次,而更新顯示是占用CPU較高的“昂貴”操作,此種情況下,系統(tǒng)必將不堪重負(fù),故采取定時刷新技術(shù)。參數(shù)曲線、參數(shù)數(shù)據(jù)列表等更新頻率為1~2次/秒,飛行時間、北京時間等變化較快的信息更新頻率為3~5次/秒,這樣既減輕系統(tǒng)CPU占用率,又減少實時評估線程和主線程之間的耦合,同時也能滿足判讀、觀察的需要。

3 系統(tǒng)應(yīng)用

快速評估系統(tǒng)分為主、副兩個界面,主界面涵蓋軟件功能區(qū)和系統(tǒng)評估區(qū),用于顯示參數(shù)實時判讀情況、系統(tǒng)評估結(jié)果,載入預(yù)先定制界面,監(jiān)測臨時特定參數(shù);副界面根據(jù)用戶需求,自由組合各類參數(shù)以表格、曲線等方式進行細節(jié)顯示,較好地滿足了參數(shù)數(shù)量繁多性、顯示形式多樣性、顯示效果清晰化和用戶操作快捷化等需求。同時,運載火箭本身是一個復(fù)雜的巨系統(tǒng),對其飛行結(jié)果評估本身也有一個不斷深化的過程,快速評估系統(tǒng)支持對評估要素、評估規(guī)則、顯示形式、布局方式等全方位定制,較好地滿足了評估不斷“升級”的需求。軟件投入使用以來,既在數(shù)十次成功發(fā)射中輔助崗位人員對運載火箭飛行結(jié)果進行快速、全面、準(zhǔn)確的評估,也在如CZ-5 Y2發(fā)射任務(wù)定位飛行失利的原因過程中發(fā)揮了重大作用,同時軟件的設(shè)計方法對于其他實時評估系統(tǒng)的設(shè)計具有借鑒意義。

4 結(jié)束語

快速評估系統(tǒng)通過綜合使用多線程、實時事件、封裝調(diào)用、定時更新等技術(shù)實現(xiàn)了基于實時數(shù)據(jù)驅(qū)動的自動判讀和智能評估,通過應(yīng)用不同的配置,能夠完成CZ-3A、CZ-5、CZ-7等多個型號火箭的航天發(fā)射任務(wù)飛行結(jié)果快速分析,即使在長達7個多小時的特殊飛行任務(wù)中,系統(tǒng)能夠在緩存大量實時數(shù)據(jù)的同時,具備良好的實時性和有效性。

猜你喜歡
管理器線程時序
基于時序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識別研究
基于Sentinel-2時序NDVI的麥冬識別研究
應(yīng)急狀態(tài)啟動磁盤管理器
Windows文件緩沖處理技術(shù)概述
淺談linux多線程協(xié)作
一種毫米波放大器時序直流電源的設(shè)計
電子制作(2016年15期)2017-01-15 13:39:08
高集成度2.5A備份電源管理器簡化鋰離子電池備份系統(tǒng)
快速導(dǎo)出QQ群消息
電腦迷(2014年2期)2014-04-29 19:21:13
DPBUS時序及其設(shè)定方法
河南科技(2014年15期)2014-02-27 14:12:36
Linux線程實現(xiàn)技術(shù)研究
邮箱| 虎林市| 樟树市| 左贡县| 怀远县| 修武县| 临安市| 阜城县| 白河县| 富裕县| 蒙自县| 兴安盟| 寿宁县| 剑河县| 克拉玛依市| 巍山| 宁乡县| 京山县| 英吉沙县| 阜阳市| 阿拉善左旗| 合作市| 白山市| 西藏| 枝江市| 无为县| 周至县| 海口市| 舞钢市| 闵行区| 新竹市| 鄄城县| 汝南县| 行唐县| 井冈山市| 桐城市| 新兴县| 扶绥县| 旺苍县| 潜江市| 渝北区|