陳星宇 楊建常 臧晶

摘? 要:隨著航天科技的不斷發展,關于航天器各部件的仿真測試在實際工程中的應用越來越廣泛,所以采用一種高可靠性總線通信協議是實現FMU仿真的關鍵。針對FMI聯合仿真系統中的半物理仿真要求,采用軟硬件結合的方式設計了一種基于1553B總線的數據交互功能,實現各類仿真模型和實物硬件的數據交互,進一步提高了仿真實驗的可靠性和實用性。
關鍵詞:1553B總線? ?FMI聯合仿真? ?數據交互方法? ?半物理仿真
中圖分類號:TP392? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A文章編號:1672-3791(2021)05(b)-0050-03
Abstract: With the continuous development of aerospace science and technology, the simulation test of various parts of spacecraft is more and more widely used in practical engineering, so the key to realizeFMU simulation is to adopt a high reliability bus communication protocol. According to the requirement of semi-physical simulation in FMI co-simulation system, a data interaction function based on 1553B bus is designed by combining hardware and software, which realizes the data interaction between various simulation models and physical hardware, and further improves the reliability and practicability of simulation experiments.
Key Words: The 1553b bus; FMI co-simulation; Data interaction method; Semi-physical simulation
隨著航天科技的不斷發展,多種類仿真模型與不同實物硬件之間的數據交互是開發和測試各類航天器的重要組成部分[1]。準確判斷出數據交互所體現的內容為把握航天器的運行狀態、有效載荷、故障模式等提供了強有力的數據支撐[2]。仿真模型之間的傳輸因數據傳輸協議問題存在不穩定現象以及數據的丟失問題。模型互連的高復雜度引起仿真系統的數據交互不夠靈活,導致開發過程中工作量大、周期長、維護困難等問題[3]。
該文基于1553B總線高可靠性,在FMI聯合仿真系統中設計并實現數據交互功能。各類仿真模型有機的整合在一起,降低了仿真模型的耦合性,實現了仿真數據的可靠傳輸。
1? 數據交互總體設計方案
基于1553B總線工作模式設計并搭建硬件模塊中的物理設備。在軟件模塊的中平臺配置系統屬于FMI聯合仿真系統的一個子服務,將平臺配置系統下發至服務器終端的仿真數據通過1553B協議發送至遠程終端,實現半物理仿真。
1.1 硬件模塊實現方法
如圖1所示,硬件模塊由多個物理設備組成,服務器終端系統通過物理設備來存儲程序和輸入數據。物理設備作為程序的執行機構,將仿真指令處理成通用的數字信號,各設備間通過分布式集成的方式協同工作[4]。
在物理設備的實現中,總線控制設備實現1553B總線系統中總線控制器(BC)模式,控制并管理1553B總線系統,起到負責發送仿真命令、參與仿真數據傳輸、接收狀態響應的作用[5]。仿真終端設備實現1553B總線系統中遠程終端(RT)模式,對總線控制設備發送的有效命令做出響應并回送狀態字。總線監測設備實現1553B總線系統中總線監視器(BM)模式,負責監聽和記錄總線上傳輸的命令和數據,該設備受總線控制設備控制,不參與任何數據傳輸工作[6]。各設備內部均搭載多功能1553B板卡,通過1553B耦合器連接在A總線和B總線上。
1.2 1553B協議實現方法
在FMI聯合仿真系統數據交互功能的軟件模塊設計方案主要包含兩個方面,分別是平臺配置系統和服務器終端系統。仿真任務啟動后,平臺配置系統和服務器終端通過中間件Redis建立連接,仿真數據和1553B協議都會以JSON對象的格式下發至服務器終端系統中,運行在仿真計算機上的服務器終端系統將接收到的JSON對象處理成1553B字格式規定的配置信息和仿真數據,再通過硬件模塊中的1553B板卡接收并完成數據的處理和轉發功能,各仿真計算機之間依賴1553B板卡的連接完成數據交互。軟件模塊數據交互圖見圖2。
該文在1553B協議的實現上采用DOM結構的方式,設計動態綁定方法構建父子節點的一對多關系。協議樹形節點構建過程流程圖見圖3。
動態綁定表示當所有節點位置確定后,仍然可以調整父子節點的關聯關系,這種方式提高了DOM結構的靈活性。具體的實現方法設計為使用嵌套循環的方式,首先通過外循環遍歷當前節點元素NodeId,內循環遍歷當前節點元素ParentId。將ParentId作為NodeId去獲取當前節點的父節點對象,當前節點的NodeId賦值給父節點實體類對象的Children屬性,完成父子節點的綁定。主要實現步驟如下。
Step1:調用getAllNode()方法將數據庫中所有節點對象存入List集合。
Step2:初始化根節點的值為null,若存在根節點,則指向根節點。
Step3:使用for循環將List集合中所有節點對象存入Map集合類,Map的key保存的是當前節點的NodeId,value保存的是當前節點對象。
Step4:使用for循環遍歷獲取當前節點對象的ParentId,當ParentId為空時將當前節點的NodeId賦值給根節點并跳出本輪循環。如果ParentId不為空值,通過ParentId查詢Map中映射的父節點對象并將當前節點對象賦值給父節點實體類中的Children屬性。
Step5:通過@Responsebody注解將根節點對象以Json格式返回。前端程序解析節點對象并渲染至平臺配置系統中。
1.3? 半物理仿真實現方法
在半物理仿真過程中,仿真數據以1553B消息格式發送。一條1553B消息可以由命令字、狀態字和0~32個數據字組成。具體實現方法如下。
Step1:調用OpenDevice()函數初始化1553B板卡,調用ADT_L1_GetVersionInfo()函數裝配板卡信息。
Step2:通過1553_AddTime ()函數啟動時間標簽,調用BC_Init()、RT_Init()和MT_Init()函數初始化多功能1553B板卡的BC、RT和MT工作模式。
Step3:使用Read_Param()函數讀取數據并解析為1553B總線字格式中的命令字(BCCB)和數據字(CDP)。調用ADT_L1_1553_CDP()函數為CDP域申請內存空間。
Step4:將1553B協議中RT地址、子地址、時間同步周期和工作模式等配置參數作為命令字,平臺下發的仿真數據CDP作為數據字,調用ADT_L1_1553_BCCB_Write()函數和ADT_L1_1553_BC_CB_CDPWrite()函數將數據流寫入1553B總線中,調用ADT_L1_1553_BC_Start()函數啟動BC發送消息。
2? 實驗結果
通過程序控制1553B板卡,成功實現仿真數據的交互。從圖4可以看到,在FMI聯合仿真系統顯示控制運行界面中可以正常運行仿真程序并監測FMU數據和狀態變化。使其可以真正應用到工程實踐中,實現了FMI聯合仿真系統的半物理仿真功能。
3? 結語
該文基于1553B總線工作模式搭建并配置了硬件模塊中的物理設備,設計動態綁定方法生成1553B協議。在服務器終端系統中實現了仿真數據交互功能,推動了航空航天領域的聯合仿真技術,極大地提高了仿真的可靠性和實用性。
參考文獻
[1] 王鴻亮,廉東本,徐久強.基于FMI的分布式聯合仿真技術研究[J].計算機仿真,2017,34(4):256-261.
[2] 劉巨富.基于FMI的熱插拔式聯合仿真平臺設計與實現[D].華東師范大學,2017.
[3] 周光海.嵌入式軟件可靠性仿真測試系統[J].電子技術與軟件工程,2019(5):36-37.
[4] 胡新葉,李典蔚.大數據在交互設計中的應用研究[J].藝術與設計(理論),2020,2(10):74-76.
[5] 蔣志軍,吳旋輝,陳春海,等.提高1553B總線通信裝置可靠性方法的研究[J].長江信息通信,2021,34(1):125-128.
[6] 張亞航,楊培堯,楊志剛.基于時間同步的1553B總線通信協議設計[J].航天器工程,2021,30(2):88-95.