李蘭蘭 霍 宏 溫 亞
北京航天自動控制研究所,北京100854
基于構件的運載器控制系統(tǒng)飛行軟件框架研究
李蘭蘭 霍 宏 溫 亞
北京航天自動控制研究所,北京100854
面對運載器控制系統(tǒng)飛行軟件功能復雜、研制周期短的現(xiàn)狀,如何保證軟件質量,提高研制效率已成為當前的研究重點。本文在分析現(xiàn)有運載器控制系統(tǒng)飛行軟件功能要求的基礎上,從數據流和控制流兩方面提出了基于構件的控制系統(tǒng)飛行軟件框架,該框架采用分層控制體系結構模式,有效地提高了飛行軟件的研制效率和質量。通過實際應用驗證,該框架對控制系統(tǒng)飛行軟件設計具有一定的實用價值和借鑒意義。 關鍵詞 構件;框架;控制系統(tǒng)飛行軟件
隨著航天技術的快速發(fā)展,為了適應航天任務要求,運載器功能越來越復雜,控制系統(tǒng)飛行軟件作為運載器的控制靈魂,是航天任務成敗的關鍵,控制系統(tǒng)飛行軟件規(guī)模和復雜程度急劇增加。面對研制周期短、質量要求高的現(xiàn)狀,傳統(tǒng)的軟件設計方法已經不能滿足控制系統(tǒng)飛行軟件研制要求,為了提高控制系統(tǒng)飛行軟件的可靠性和可擴展性,亟需研究一種通用的控制系統(tǒng)飛行軟件框架以提高飛行軟件開發(fā)的效率和質量。本文在分析現(xiàn)有控制系統(tǒng)飛行軟件功能要求的基礎上,提出了一種基于構件的可復用、可擴展的控制系統(tǒng)飛行軟件框架設計方法,該方法在運載器控制系統(tǒng)飛行軟件研制過程中具有一定的實用價值和借鑒意義。
在運載器控制系統(tǒng)領域中,飛行軟件屬于強實時嵌入式軟件,主要完成運載器飛行過程中的導航、制導和姿態(tài)控制等周期性任務。運載器飛行過程分為多個飛行段,各飛行段之間的轉級通過關機判斷完成自動切換,以一定的周期控制指令的輸出,完成各級飛行段的實時控制,使運載器按照指令穩(wěn)定飛行,精確入軌。典型控制系統(tǒng)飛行軟件采用“分段式+周期性”的運行模式,其運行的主流程如圖1所示。
圖1 典型控制系統(tǒng)飛行軟件運行主流程圖
軟件框架是一種粗粒度的系統(tǒng)級軟件復用,實現(xiàn)特定領域內目標任務的基礎功能。目標任務的具體功能由軟件開發(fā)人員按照框架提供的接口協(xié)議編寫代碼完成。根據控制系統(tǒng)飛行軟件典型的運行模式,從數據流和控制流兩方面提出基于構件的控制系統(tǒng)飛行軟件框架能夠有效地提高軟件復用率,在“框架+構件”的軟件架構中,軟件開發(fā)人員可通過配置和增刪構件,完成目標任務。
控制系統(tǒng)飛行軟件框架體系結構如圖2所示,框架體系結構包括主流程控制構件層、子流程控制構件層和功能構件層三部分。主流程控制構件層和子流程控制構件層實現(xiàn)控制系統(tǒng)飛行軟件控制流設計,功能構件層實現(xiàn)控制系統(tǒng)飛行軟件數據流設計。其中,主流程控制構件層主要完成子流程控制構件層所有控制構件的調度時序控制;子流程控制構件層主要完成各自負責子功能的調度時序控制、以及統(tǒng)一上下層的通訊接口;功能構件層主要完成具體的功能實現(xiàn)?;跇嫾目刂葡到y(tǒng)飛行軟件框架采用“分層控制體系結構模式”,將系統(tǒng)的整個結構與單個構件的內部實現(xiàn)細節(jié)進行分離。每層包含一個或多個控制構件或功能構件,控制構件提供高層控制,包括調度各個功能構件并且決定各個功能構件的下一步動作,實現(xiàn)功能構件的生命周期管理。
圖2 控制系統(tǒng)飛行軟件框架體系結構
2.1 功能構件層設計方法
表1 功能構件與主流程對應關系
圖3 功能構件之間的互連示意圖
2.2 子流程控制構件層設計方法
子流程控制構件層封裝了功能構件層的處理流程和控制邏輯,通過分析功能構件層的輸入、輸出和處理,設計調度相應功能構件的接口協(xié)議和調度算法。子流程控制構件層的“XX控制構件”調度功能構件層對應的功能構件,完成飛行軟件的具體功能。子流程控制構件層封裝了功能構件層的控制邏輯,由于各個運載器的具體功能要求存在差異性,如何實現(xiàn)定制可靈活配置的控制流程,是子流程控制構件層的核心任務。為了滿足運載器的所有功能需求,子流程控制構件層設計具有可擴展性,子流程控制構件層是控制系統(tǒng)飛行軟件框架是否滿足通用化和可擴展要求的關鍵層,該層并不是具體功能的實現(xiàn)層,而是通過調度策略實現(xiàn)功能構件層具體構件的創(chuàng)建、運行和結束,進行功能構件層的生命周期管理?!癤X控制構件”向軟件開發(fā)人員提供相應功能構件的創(chuàng)建接口,根據接口信息,自動控制相應功能構件的運行,具體設計方法包括創(chuàng)建構件和控制運行過程兩部分:
1)創(chuàng)建構件:注冊功能構件的基本信息,包括:唯一標識名稱、屬性、依賴關系和過程調用接口,如表2所示。過程調用接口是“XX控制構件”和功能構件的連接器,形參是功能構件的當前運行狀態(tài),功能構件根據當前運行狀態(tài)完成相應的功能。
2)控制運行過程:按照功能構件的屬性和依賴關系,依次實現(xiàn)從“開始”到“結束”的狀態(tài)轉移控制,“結束”表示該功能構件完成任務,以后不再調用該功能構件。
表2 功能構件的注冊信息表
2.3 主流程控制構件層設計方法
主流程控制構件層按照飛行軟件的主任務流程調度子流程控制構件層的“XX控制構件”,完成子流程控制構件層所有控制構件的調度時序控制,實現(xiàn)飛行軟件的主流程控制邏輯。一般情況下,運載器控制系統(tǒng)飛行軟件的主流程控制構件層的設計是固定不變的。根據表1中的功能構件與主流程功能的對應關系,主流程控制構件層采用順序方式調度“XX控制構件”,主流程控制構件層設計流程如圖4所示?!癤X控制構件”內部封裝了每類控制的具體流程控制邏輯,僅向主流程控制構件層提供統(tǒng)一的過程調用接口,其中:(1),(4)和(9)均為“調用‘I/O流程控制構件’的過程調用接口”,分別實現(xiàn)輸入信號采集及處理、輸出控制和輸出遙測;(2)和(6)均為“調用‘制導流程控制構件’的過程調用接口”,分別實現(xiàn)制導前臺計算和制導后臺計算;(3)和(7)均為“調用‘姿控流程控制構件’的過程調用接口”,分別實現(xiàn)姿控前臺計算和姿控后臺計算。主流程控制構件層主要完成I/O控制、制導控制、姿控控制、關機控制和遙測控制五類基礎控制流程的調用,具體流程控制方法被封裝在子流程控制構件層。
圖4 主流程控制構件層設計流程
結合某運載器系列控制系統(tǒng)功能要求,基于構件的控制系統(tǒng)飛行軟件框架已得到工程應用。
1)主流程控制構件層依據圖4進行設計,其中,I/O流程控制構件、制導流程控制構件、姿控流程控制構件、關機流程控制構件和遙測流程控制構件五類控制構件均以接口函數方式被調用。
2)子流程控制構件層設計過程:
①按照表1的功能構件和主流程功能的對應關系將功能構件分類,如表3所示;
②針對表1的每個主流程功能,在子流程控制構件層分別定義各自獨立的功能構件注冊信息表序列;
③通過填寫功能構件注冊信息表實現(xiàn)各個功能構件的互連和調度時序控制。
3)功能構件層各個功能構件之間的數據接口信息交互如圖5所示,其中,遙測數據處理功能構件與其他功能構件均有數據交互。
當現(xiàn)有的功能構件可實現(xiàn)滿足需求定義的所有功能時,則軟件開發(fā)人員只須在子流程控制構件層定義并配置功能構件的注冊信息表,即可完成整個軟件的設計與實現(xiàn);當需要根據任務要求增加其他功能時,可設計并實現(xiàn)獨立的功能構件,然后根據框架子功能控制構件層提供的功能構件注冊信息表,增加新功能。
表3 功能構件劃分實例表
圖5 功能構件層交互示意圖
結合運載器控制系統(tǒng)飛行軟件的任務特點,通過提取共性需求,提出了基于構件的控制系統(tǒng)飛行軟件框架。該框架采用分層控制體系結構模式,通過實際型號工程應用分析可知,該框架能夠縮短控制系統(tǒng)飛行軟件的研制周期,提高控制系統(tǒng)飛行軟件的質量和重用率?;跇嫾倪\載器控制系統(tǒng)飛行軟件框架具有一定的通用性和擴展性,對控制系統(tǒng)飛行軟件研制具有一定的借鑒意義和參考價值。
[1] [美]Hassan Gomaa. 彭鑫,吳毅堅,趙文耘, 等.譯. 軟件建模與設計[M]. 機械工業(yè)出版社,2016: 227-240.(Hassan Gomaa.Peng Xin,Wu Yijian, Zhao Wenyun,et al. Translation.Software Modeling & Design[M]. China Machine Press, 2016: 227-240.)
[2] 王云爽,劉堃,鄭挺,等. 一種電子對抗行動控制應用軟件框架研究[J]. 電子信息對抗技術,2014,29( 1):77-82.(Wang Yunshuang,Liu Kun,Zheng Ting,et al. Architecture of Application Software on Electronic Confrontation Action Control[J]. Electronic Information Warfare Technology,2014,29(1):77-82.)
[3] 路游, 紀連恩. 一種群組行為模擬繪制系統(tǒng)軟件框架設計方法[J]. 計算機技術與發(fā)展,2013,23(4):79-82.(Lu You,Ji Lianen. A Design Method of Crowd Behavior Rendering System Software Framework[J]. Computer Technology and Development,2013,23(4):79-82.)
[4] 付純鶴, 王君鋒. 平臺+插件式軟件框架模型的研究[J]. 電子工業(yè)專用設備,2011,195(4):14-16.(Fu Chunhe,Wang Junfeng. Research on Software Architecture Module of Platform/Plug-in[J]. Equipment for Electronic Products Manufacturing,2011,195(4):14-16.)
[5] 吳錦龍,趙強,趙曉平.設計模式在有限元軟件框架設計中的應用[J]. 計算機應用與軟件,2011,28(4):215-221.(Wu Jinlong,Zhao Qiang,Zhao Xiaoping. Applying Design Pattern in Finite Element Software Framework Design[J]. Computer Applications and Software,2011,28(4):215-221.)
專稿 專人 專題
包為民院士、宋征宇院士曾為本刊創(chuàng)刊30周年時提供專稿文章,將自已在多年航天工作經歷中積累的知識、經驗、設想等和讀者分享。
本刊特設“專稿”欄目,為在航天控制領域工作多年,經驗豐富的專家、學者搭建一個平臺,利用他們的學術創(chuàng)新帶頭示范作用和科研實踐經驗總結指導,從控制系統(tǒng)各領域基礎理論延伸到工程試驗可靠性操作等方面的獨到見解,進一步展示出航天控制技術的博大精深,更深遠地影響并提升期刊未來的稿件層次和方向?;诖?,特長期誠邀航天控制系統(tǒng)各領域資深專家、學者、相關院士及各高校相關學術帶頭人等不吝為本刊“專稿”欄目投稿,期待您的高瞻遠矚不僅讓更多的讀者受益于專稿啟奠,也為期刊的稿件質量和影響力豐羽填色!
Research on the Framework Based on Components for the Launch Vehicle Control System Flight Software
Li Lanlan, Huo Hong, Wen Ya
Beijing Aerospace Automatic Control Institute,Beijing 100854,China
Regardingthesituationoffunctioncomplicationanddevelopmentcycleshortageofthelaunchvehiclecontrolsystemflightsoftware,howtoguaranteethesoftwarequalityandimprovethedevelopmentefficiencybecomesahotspot.Duetotheanalysisofthefunctionrequirementofthelaunchvehiclecontrolsystemflightsoftware,theframeworkbasedoncomponentsforthelaunchvehiclecontrolsystemflightsoftwarefromthedataandthecontrolflowisproposedinthispaper.Thedevelopmentefficiencyandthequalityoftheflightsoftwarecanbeimprovedbyusingtheframeworkbasedonthelayeredcontrolarchitecture.Theframeworkisusedinpracticeandcanserveasreferenceforthedesignofthecontrolsystemflightsoftware.
Components;Framework;Controlsystemflightsoftware
2016-11-24
李蘭蘭(1982-),女,河南人,工程師,主要研究方向為嵌入式系統(tǒng);霍 宏(1986-),女,黑龍江人,工程師,主要研究方向為嵌入式系統(tǒng);溫 亞(1984-),男,北京人,工程師,主要研究方向為嵌入式系統(tǒng)。
TP302
A
1006-3242(2017)03-0062-05