?

基于事件驅動的異步并行自動流程設計方法

2023-12-17 11:07張俊楠段菲凡歐陽芙
導彈與航天運載技術 2023年5期
關鍵詞:重傳主線驅動

張俊楠,段菲凡,賈 睿,歐陽芙,王 威

(1.北京宇航系統工程研究所,北京,100076;2.中國家用電器研究院,北京,100037;3.中國運載火箭技術研究院,北京,100076)

0 引言

運載火箭可靠、快速發射的能力一直備受關注。在確保發射可靠性的基礎上盡可能縮短發射準備時間,對提升火箭的快速反應能力具有重要意義。受制造工藝水平限制,國產器件性能參數浮動范圍較大。為確保發射程序穩妥可靠、萬無一失,傳統運載火箭發射程序設計采用延時查詢機制,基于設備收到指令并完成規定動作的設計指標,考慮參數浮動及一度故障等因素,設置合適的固定延時并留有安全余量。發射流程由地面測發系統驅動,對火箭進行射前功能的全面檢查,主要完成地面準備、箭體射前檢查、衛星射前準備、方向對準、指揮節點授權等多項技術準備工作,協同工作多,發射程序耗時長[1]。同時,隨著航天發射服務業務拓展,地面測發系統日漸龐大,由多個分系統相互協作完成主線發射任務,同時各系統內部有自己獨立的工作流程。由于各系統處于異步并行工作狀態,并受硬件資源、通信條件等因素影響,會造成各系統完成工作流程的實際時間存在離散性[2-3]。當主控機延時查詢進行工作狀態巡檢時,不僅造成了時間資源的浪費并且會在通信網絡上傳遞大量無用數據[4-6],致使發射流程有效時間未被充分利用、總線負載占用率大,影響發射流程的可靠性及任務效率。

面向事件驅動的流程設計,由任務執行方在完成工作的第一時間向需要驅動的外系統發送驅動事件,最大限度節省數據引擎周期調用或主控機延時查詢的時間間隔損失。僅通過指令幀傳遞驅動流程運行,相較周期巡檢模式在大量節省了通信資源[7-8]的同時對通信接口可靠性提出更高的要求。為保證驅動事件被可靠地接收并執行,需要重點解決驅動幀收發的可靠性問題[9-10]。

針對這一問題,通信領域開始研究基于事件驅動的控制方法,摒棄主控程序周期查詢機制,將流程需要外部輸入條件才能繼續下一步工作的事件作為驅動,觸發各系統流程并行工作。其中文獻[11]提出非線性切換系統的異步事件驅動控制,解決子系統與控制器之間的異步切換帶來的系統的不穩定問題;文獻[12]基于事件驅動采用網絡套接字技術,提高網絡通信的高并發與穩定性;文獻[13]提出基于事件驅動函數的分布式協同控制方案,有效降低了控制輸入更新頻次及信息交互量。上述文獻分別從提高子系統切換控制器全局穩定性、增強網絡服務器多進程實時處理能力、降低控制輸入更新頻次的不同角度,證明了事件驅動對于高并發異步工作流程的良好適應性。

本文面向運載火箭發射流程設計,以確??焖倏煽堪l射為目標,提出基于事件驅動的異步并行自動流程設計方法,改變傳統基于主控機延時查詢機制的流程設計思路,不再設置固定延時等待,以事件驅動發射支持、控制系統、衛星控制、定位定向、指揮通信和安全控制六大系統流程并發異步自動運行,最大限度地縮減各系統間串行等待時間。同時采用基于時間差分的重傳校驗方法,驅動多線流程可靠并行工作,實現運載火箭可靠快速發射。

1 相關概念

1.1 自動流程設計程序

基于事件驅動的異步并行自動流程設計程序如圖1所示,具體步驟如下:

圖1 自動流程設計程序Fig.1 Automatic process design program

a)將主線任務進程按照時間順序進行排列,生成全系統動作時間鏈;

b)按照動作要求向各系統分解任務要求,分系統執行該任務也存在各自不同的流程順序,生成分系統動作時間鏈;

c)將能夠由分系統獨立執行,不需要外部輸入條件的工作流程劃分為獨立子流程,分系統動作時間鏈將被劃分為多個獨立子流程的串聯關系;

d)滿足每個獨立子流程需要的外部輸入條件,即驅動子流程順序執行的觸發條件;

e)對觸發條件進行合并歸類,順序排列后生成驅動事件隊列,每個動作執行完畢的時間為生成驅動事件的時間總和;

f)通過對首個驅動事件的觸發,檢驗自動流程執行的匹配性和耗時指標的可達性。

1.2 系統動作時間鏈

全系統相互協作的目的是完成主線任務,而主線任務可以切分為若干個動作,這些動作在時間線上是串行排列的。將主線任務進程動作按時間順序排列,即全系統動作時間鏈。

對應每一個動作,均可以分解為若干分系統任務,當各任務均完成后,判定該動作執行完畢。

1.3 獨立子流程切分

對應每個單項任務,分系統在時間鏈上也要按照流程執行不同動作,其中一些流程可以在分系統內部閉環,但一些流程點上需要與其他分系統合作,需要一定條件才能完成。

將能夠由分系統獨立閉環執行的工作流程劃為獨立子流程,那么分系統動作時間鏈將被切分為多個獨立子流程的串聯關系表示。

1.4 驅動事件隊列

對于每個分系統任務,串行獨立子流程間存在多個需要滿足的外部輸入條件,以驅動子流程順序執行。將能夠產生滿足條件的驅動稱為驅動事件,而驅動事件是由其他任務子流程生成的,在時間線程呈現串行排列。

1.5 自動流程觸發檢驗

通過觸發首個驅動事件,驅動事件隊列將按照邏輯順序自動運行,觸發各分系統以并行異步方式自動完成相互協作,推進流程自動運行直至主線任務執行完畢。多次觸發自動流程,統計全流程時間消耗數據,檢驗自動流程運行匹配性的同時,評估流程耗時指標。

2 方法介紹

2.1 系統動作時間鏈建模

全系統動作時間鏈如圖2 所示,主線任務由N個動作串行完成,對于動作1,又需要n1個分系統任務均執行完畢作為進行下一動作的條件。

圖2 全系統動作時間鏈Fig.2 Full system action time chain

分系統任務1在n個事件點上需要外部驅動條件,被切分為n+1個獨立子流程的分系統動作時間鏈,分系統動作時間鏈如圖3所示。

圖3 分系統動作時間鏈Fig.3 Subsystem action time chain

2.2 驅動事件隊列提取

分系統任務1 的子流程2 開始執行的條件為滿足驅動事件1,該事件由分系統任務n1的子流程1生成。分系統任務n1的驅動事件2由分系統任務1的子流程2生成。分系統任務1 切分為n+1個子流程,分系統任務n1切分為m+1個子流程,則分系統任務的協同流轉可以表示為n+m+1個驅動事件的時間隊列,最后一個分系統長線任務即分系統任務1的子流程n+1,生成驅動事件n+m+1,等同為n1個分系統任務均執行完畢,驅動主線任務的下一個動作繼續執行,驅動事件隊列如圖4所示。

圖4 驅動事件隊列Fig.4 Drive event queue

2.3 基于時間差分的重傳校驗方法

2.3.1 發送重傳流程

發送方實時監聽通信端口,隨時響應驅動事件。完成規定任務后發出指令幀,為與重傳幀區別,發送幀序號+1,確認標識位置1,等待應答。

為了確保事件驅動指令發送的可靠性,基于時間差分方法設計發送重傳機制,若發送方未在發出該幀后Ta時間內收到應答,則重發該幀,幀序號不變,重發次數加1。若重發C次后仍未收到應答幀,提示錯誤,發送方的指令超時時間為C×Ta。幀發送重傳流程如圖5所示。

圖5 發送方重傳機制Fig.5 Transmitter retransmission mechanism

2.3.2 通信幀完整性判別

接收方收到通信幀后,首先進行通信幀完整性判別,對于結構不完整、協議未規定、校驗不正確等情況的通信幀進行前端剔除,不對該幀進行處理及應答,等待發送方重新發送。保證進入后續合理性判別的通信幀均為符合協議的完整幀,降低通信干擾,提高通信效率。通信幀完整性判別流程如圖6所示。

圖6 通信幀完整性判別流程Fig.6 Communication frame integrity determination flowchart

2.3.3 通信幀合理性判別

完整性合格幀將進入合理性判別流程,基于時間差分方法剔除幀序號相同的重傳幀,保證系統可靠響應新的驅動幀。合理性判別流程如圖7所示。

接收方將幀序號不同的通信幀作為新幀處理,但發射系統組成復雜,在異步工作過程中,經常存在設備重啟或備份切換的情況,此時發送方的幀序號將重新累加,可能與前序幀重復,為避免被接收方判定為重復幀誤丟棄,基于時間差分方法將Tc時間外的幀序號相同幀識別為新幀。

接收方Ta時間內發送應答幀,表示正確接收,丟棄Tc時間內幀序號相同的通信幀。為了保證重傳幀的工作可靠,時間差分Tc>C×Ta。

2.4 主線任務進程耗時計算

全系統動作時間鏈得到主線任務總耗時T:

式中N為主線任務動作數;Ti為動作完成時間。

動作i分解為ni個分系統任務,其中第j個分系統任務切分為mij個子流程,則完成動作i可以表示為Li個驅動事件的序列:

設第k個驅動事件生成的時間為Qik,每個驅動事件需要組幀發送,網絡延時為Yik,幀重發次數Cik,則動作i完成時間為Ti可以表示為

綜合上式,最終全系統動作時間鏈得到主線任務總耗時T可以表示為

3 火箭發射流程仿真驗證

以事件驅動異步并行自動流程設計方法,構建發射支持、控制系統、衛星控制、定位定向、指揮通信和安全控制六大系統流程自驅運行模式,開展任務進程耗時的仿真驗證并與周期查詢機制對比。

3.1 發射系統動作時間鏈

發射流程從啟動發射程序至點火起飛共分為支架調平、諸元裝訂、定向瞄準、解鎖授權、能源轉換5個動作。運用本文方法,以支架調平動作為例,需要控制系統、發射支持、定位定向、指揮通信4個分系統協同完成,其中控制系統可以拆分為加電自檢、上傳飛行程序、靜態功能檢查3個子流程,發射支持系統、定位定向系統、指揮通信系統分別由7、5、2個子流程構成。發射流程系統動作時間鏈如圖8所示。

圖8 火箭發射流程全系統動作時間鏈Fig.8 Full system action time chain of rocket launch process

3.2 驅動事件隊列提取

根據系統動作時間鏈,按照子流程間的執行條件提取驅動事件,以支架調平動作為例,控制系統、發射支持、定位定向和指揮通信協同完成規定動作??刂葡到y加電自檢后,由發射支持系統配電完畢后驅動上傳飛行程序流程,待發射支持系統發射架穩定后執行靜態功能檢查流程,其余子流程協同動作見圖9,構成驅動事件隊列,最終以支架調平好驅動下一主線動作開始執行。其中控制系統需要2個驅動事件完成全部子流程,發射支持、定位定向和指揮通信系統分別需要7、4、1個驅動事件。

圖9 驅動事件隊列Fig.9 Drive event queue

3.3 自動流程觸發檢驗

根據火箭發射系統構建通信仿真環境,為方便對比事件驅動方法與周期查詢方法在時間消耗上的差異,設置相同的網絡通信質量參數及重傳校驗參數。設定以太網發送延時Ta=100 ms,誤碼率1%,重傳時間Tc=1 s,重傳次數C=3。

圖8 主線任務由N=5 個動作串行完成,對于每個動作切分為子流程任務量為矩陣n:

每個分系統任務切分為子流程數矩陣m:

如圖9對應構建驅動事件隊列,每個驅動事件的單機時間按照設計指標進行賦值,生成時間矩陣Q=[Q1Q2Q3Q4Q5],以第1個主線動作“支架調平”為例,矩陣Q1為

在系統間協作過程中,周期查詢機制的機理是通過主控周期查詢狀態來驅動流程,待子流程工作完畢后回復主控滿足執行下一步工作的條件。相較事件驅動的流程機制,相同網絡條件下,完成協作動作需要一查一回兩次通信,而事件驅動則只需要通信一次,通過對兩種機制的發射流程耗時進行1 000 次仿真計算,全系統主線任務動作總耗時T隨仿真次數的分布見圖10。由圖10 可以看出,相同的網絡拓撲及通信參數條件下,兩種通信機制的流程動作時間和隨通信仿真次數的分布基本穩定在一定時間帶內。事件驅動機制耗時小于周期查詢機制,具體流程耗時差見圖11,流程仿真計算結果見表1。

表1 全流程仿真計算結果Tab.1 Full process simulation calculation results

圖10 流程動作時間隨仿真次數分布Fig.10 Distribution of process action time vs simulation count chart

圖11 兩種模式的時間差分布Fig.11 Distribution of time difference between two modes

從仿真結果可以看出,事件驅動機制能夠有效提升任務時間效率,分析原因如下:

a)通信過程中周期查詢機制需要主控查詢1次再接收狀態反饋1次,原理上其通信次數是事件驅動的2倍,時間消耗隨網絡通信時延線性增加。

b)當誤碼發生后,周期查詢機制會間隔一個通信周期重新查詢,時間消耗隨網絡通信時延線性增加。

c)若周期查詢時間先于子流程完成時間,主程序會等待下一周期查詢結果,直至收到子流程完畢的回復,存在查詢周期內的時間資源浪費,時間消耗隨異步查詢的次數線性增加。

4 結束語

與周期查詢不同,事件驅動機制由任務執行方在子流程工作完畢后第一時間主動發出驅動,觸發各接收方異步并行執行子流程任務,縮短了系統間的等待時間,降低了網絡通信頻率。本文面向運載火箭發射流程設計,提出基于事件驅動的異步并行自動流程設計方法,以全系統時間鏈最優為目標,結合基于時間差分的重傳校驗方法,既節約了網絡資源又保證了可靠驅動六大系統異步運行,實現了火箭快速可靠發射。

猜你喜歡
重傳主線驅動
基于模糊PI控制的驅動防滑仿真系統分析
屈宏斌:未來五年,雙輪驅動,砥礪前行
人物報道的多維思考、主線聚焦與故事呈現
軌旁ATC系統門控柜接收/驅動板改造
更加突出主線 落實四個到位 推動主題教育取得實實在在成效
面向異構網絡的多路徑數據重傳研究?
數字主線
基于S3C6410的Wi-Fi驅動移植實現
數據鏈路層的選擇重傳協議的優化改進
下沉和整合 遼寧醫改主線
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合