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

?

運載火箭飛行控制軟件可重用架構設計方法研究

2018-07-05 09:44:56劉俊陽李蘭蘭劉學士
航天控制 2018年3期
關鍵詞:通用性任務調度制導

霍 宏 劉俊陽 李蘭蘭 劉學士

北京航天自動控制研究所,北京 100854

在型號任務高速增長、發(fā)射任務密集的形勢下,運載火箭飛行控制軟件研制周期越來越短、結構越來越復雜且規(guī)模越來越大,由軟件問題造成的事件呈上升趨勢。當前,傳統(tǒng)的軟件研制模式已不能適應航天運載火箭軟件研制的任務要求,亟需運用新的設計手段提高軟件研制效率和降低軟件維護成本[1]。研究發(fā)現(xiàn)將可重用軟件開發(fā)技術應用在運載火箭領域飛行控制軟件研制過程中,可以提高軟件開發(fā)效率、縮短設計周期。

提出一種運載火箭飛行控制軟件可重用架構設計方法,結合具體實例闡述了在軟件需求分析、概要設計和詳細設計階段可重用軟件的開發(fā)技術,對縮短運載火箭飛行控制軟件研制周期、提高飛行控制軟件質量具有一定的實用價值。

1 概述

1.1 可重用軟件開發(fā)

可重用軟件開發(fā)的關鍵點在于領域分析:根據應用領域的特征和相似性,分析軟件構件的可重用性,從而界定并構建可重用資產。可重用軟件開發(fā)過程應該按照軟件工程化大綱的要求開展工作,包括需求分析、概要設計、詳細設計及實現(xiàn)、測試等過程和階段[2]。本文重點闡述需求分析、概要設計及詳細設計階段的內容。

可重用軟件開發(fā)需求分析階段的主要目標是分析相關領域可重用軟件的需求,分析可重用軟件的通用性和可變性,最終建立可變性模型。

可重用軟件開發(fā)概要設計階段的主要目標是將需求階段分析的通用性和可變性分解到高層設計框架,并形成可重用架構、可復用構件及接口。

可重用軟件開發(fā)詳細設計階段的主要目標是根據可重用架構,完成可變構件、接口和配置參數(shù)的詳細設計。

1.2 飛行控制軟件

飛行控制軟件作為強實時嵌入式軟件,其主要功能是完成航天運載火箭飛行過程中的導航、制導和姿態(tài)控制等周期性控制任務,控制航天運載火箭按預定軌道穩(wěn)定飛行[3]。由于不同火箭型號之間的系統(tǒng)架構、任務要求以及研制人員不同,導致飛行控制軟件在軟件架構設計、接口設計及功能模塊設計等方面的風格不同,增加后期維護成本。通過對目前各型號航天運載火箭飛行控制軟件的分析,可知該類軟件在運行調度、轉級轉段、制導姿控算法和輸入輸出控制等多方面的重要需求均有很大的相似性,完全可以通過開發(fā)運載火箭飛行控制軟件可重用架構提高設計效率,降低維護成本,為型號飛行控制軟件研制服務。

2 飛行控制軟件架構設計

2.1 需求分析階段

按照領域分析方法,需求可以分成3個部分,即通用性需求、可變性需求及特異性需求[4]??芍赜密浖男枨蠓治龅暮诵氖欠治鐾ㄓ眯孕枨蠛涂勺冃孕枨?。本文將對它們進行精確的描述。

通用性需求是指所有型號飛行控制軟件共同的需求;可變性需求是指不同型號飛行控制軟件中部分需求描述不同,但這些需求可以通過預先定義的可復用構件組合實現(xiàn),它又分為內部可變性和外部可變性需求,內部可變性需求對用戶不可見,由軟件開發(fā)人員針對功能、性能選擇滿足要求的內部可變性需求,外部可變性需求對用戶可見,用戶可根據任務要求通過配置選擇特定的外部可變性需求;而特異性需求則是面向各個飛行控制軟件的特定任務需求,無需為飛行控制軟件的特異性需求建立構件??芍赜蔑w行控制軟件需求分析過程主要是獲取飛行控制軟件的通用性需求和可變性需求的過程,同時要建立可變性模型,分析可變性模型與需求階段模型(如用例圖、數(shù)據流圖等)之間的關系。

2.1.1 通用性分析

采用基于優(yōu)先級的分析方法進行通用性需求分析,由用戶和軟件設計方對所有需求的優(yōu)先級進行評定,確定通用性需求[5]。表1為飛行控制軟件的通用性需求分析結果。

表1 飛行控制軟件通用性需求分析結果

從表1的分析結果看出,第1類為飛行控制軟件的重要組成部分,若去掉這些基本需求就不能表現(xiàn)領域的特點,因此這類需求作為飛行控制軟件的通用性需求。第2類和第3類不是飛行控制軟件的強制需求,這2類需求定義為飛行控制軟件的可變性需求。

2.1.2 可變性分析

按照“變化內容、變化原因、變化模式和變化主體”的思路對表1中的第2類和第3類作進一步分析,表2為飛行控制軟件可變性需求分析過程。

表2 飛行控制軟件可變性需求分析過程

從表2的分析過程確定4個可變點:硬件通訊、姿態(tài)控制、制導控制和輔助修正,對應4個外部可變性需求。其中,硬件通訊對應的3個可變點實例為:1553B總線通訊、串口通訊和I/O端口通訊;姿態(tài)控制對應的2個可變點實例為:伺服機構輸出指令計算和噴管輸出指令計算;制導控制對應的3個可變點實例為:攝動制導控制、迭代制導控制和推力矢量控制計算;輔助修正對應的2個可變點實例為:姿態(tài)修正和導航修正。其中,“制導控制”可通過不同的程序角計算方法實現(xiàn),選擇“迭代制導控制”和“推力矢量控制”方式時,須考慮增加程序角濾波功能;“導航修正”可通過不同的濾波算法實現(xiàn)。因此,“程序角算法”和“濾波算法”被識別為新的可變性需求,不同的程序角計算和濾波算法有各自的可變點實例。但用戶可以不關心軟件具體采用“程序角算法”和“濾波算法”2個可變性需求中的哪個可變點實例,“程序角算法”和“濾波算法”為內部可變性需求。這2個可變點分別與“制導控制”和“輔助修正”形成了可變點實例之間的需要約束。

2.1.3 可變性建模

采用正交變化模型的圖形化描述對“硬件通訊”、“姿態(tài)控制”、“制導控制”和“輔助修正”4個外部可變性需求進行建模,如圖1所示;“程序角算法”和“濾波算法”2個內部可變性需求的依賴關系如圖2所示。

2.2 概要設計階段

概要設計過程的核心內容是根據飛行控制軟件需求分析階段的通用性和可變性分析結果設計可重用的飛行控制軟件架構,劃分飛行控制軟件獨立構件,制定設計規(guī)則,確定各部件之間的接口約束規(guī)范[6]。

2.2.1 通用性和可變性設計

將需求分析結果按照功能類劃分情況如表3所示,將通用性需求和可變性需求按照功能類進行劃分,架構設計中通過控制周期任務調度構件實現(xiàn)通用性需求和可變性需求的調度,通用性需求對應相應的通用性需求構件,可變點實例對應相應的可變性需求構件,概要設計階段的架構具有一定的通用性和可擴展性,可以提高軟件架構的靈活性。

圖1 外部可變性需求的變化模型和用例圖的映射關系

2.2.2 軟件架構設計

依據需求分析和概要設計過程的通用性和可變性分析結果,可重用飛行控制軟件架構設計應包括通用性需求和可變性需求,通過構件實現(xiàn)通用性需求構件和可變性需求構件的控制邏輯和調用關系,可變性需求可變構件向用戶提供用于配置外部可變性需求的外部接口,用戶根據提供的外部接口選擇具體需要的外部可變性需求構件組合。內部可變性需求構件在滿足外部可變性需求功能、性能要求的前提下,同樣具有可選擇性和可替換性。

圖2 內部可變性需求的約束關系

表3 飛行控制軟件通用性需求和可變性需求的歸類表

下面以典型的運載火箭飛行控制軟件的運行控制流程為主線,創(chuàng)建可重用飛行控制軟件架構的運行模型,并說明飛行控制軟件可重用架構與可變性模型之間的映射關系。圖3為飛行控制軟件在每個控制周期內的運行流程,“?”為構件接口,通過可重用架構設計可以滿足不同型號對相關領域的要求,圖3中的實線所經歷的流程是滿足“1553B硬件通訊+伺服機構輸出控制+迭代制導控制+姿態(tài)修正+導航修正”的飛行控制軟件任務要求的軟件運行流程實例,圖4以迭代制導控制構件為例,內部可變性需求由軟件開發(fā)人員根據迭代制導控制功能構件的功能、性能等要求,選擇相應的“程序角算法”和“濾波算法”中提供的具體的內部可變性需求構件。實線描述了迭代制導控制構件內部選擇 “迭代制導計算算法”,計算出迭代制導控制的程序角,并通過“程序角濾波網絡計算算法”對計算出的程序角進行濾波處理的運行實例。

圖3 飛行控制軟件架構設計運行流程實例

圖4 迭代制導控制功能構件約束關系示意圖

2.3 詳細設計階段

軟件架構的可重用軟件資產包括:可重用構件、接口和配置規(guī)則等。如何設計軟件架構的接口和構件是軟件詳細設計階段的主要工作??芍赜玫娘w行控制軟件架構設計是否滿足靈活性、可適應性和可擴展性是詳細設計的重要工作。

2.3.1 通用性需求構件設計

2.3.1.1 控制周期任務調度構件

控制周期任務調度構件是根據飛行控制軟件制導、姿控和綜合等核心功能抽象出來的調度構件,完成通用性需求構件和可變性需求構件的調度。通過調度策略實現(xiàn)可變性需求構件的創(chuàng)建、運行和結束,進行可變性需求構件的生命周期管理;控制周期任務調度構件不關注具體的可變性需求構件的實現(xiàn),通過統(tǒng)一接口調用,有效地解決各型號任務之間的差異性,實現(xiàn)對可變性需求構件的統(tǒng)一管理,具有很強的通用性和適應性。

控制周期任務調度構件提供的可變性需求構件的接口包括創(chuàng)建構件和控制運行過程2部分。通過定義統(tǒng)一的接口信息,實現(xiàn)可變性需求構件的調度。

1)創(chuàng)建構件:構件的基本信息包括:唯一標識名稱、屬性、依賴關系和過程調用接口,如表4所示。過程調用接口是控制周期任務調度構件和可變性需求構件的連接器,形參是可變性需求構件的當前運行狀態(tài),可變性需求構件根據當前運行狀態(tài)完成相應的功能;

2)控制運行過程:按照可變性需求構件的屬性和依賴關系,依次實現(xiàn)從“開始”到“結束”的狀態(tài)轉移控制,“結束”表示該可變性需求構件完成任務,以后不再調用該可變性需求構件。用戶根據表4功能構件的接口約定和配置規(guī)則、編碼實現(xiàn)具體的可變性需求構件。

表4 可變性需求構件的注冊信息表

2.3.1.2 其他通用需求構件

除了控制周期任務調度構件以外的通用性需求構件滿足一定的通用性,為規(guī)模較小、功能較為簡單的獨立構件,不隨具體的任務要求變化。架構設計中通過封裝實現(xiàn)具體的通用性需求功能,對用戶隱藏了內部具體實現(xiàn),一個通用性需求構件通過一個或多個接口與其他構件交互。供給接口定義了構件必須實現(xiàn)的操作,請求接口定義了在特定環(huán)境下其他構件需為本構件提供的操作。接口的定義有多種形式,可以定義結構體、數(shù)組等類似函數(shù)間的形參傳遞,也可以向其他構件提供功能對應的接口函數(shù)。

3.3.2 可變性需求構件設計

內部可變性需求和外部可變性需求的每一個可變點實例對應一個可變性需求構件,由于各個可變點實例之間的差異性較大,各個可變點實例應當按照控制周期任務調度構件設計中定義的接口要求進行注冊,如表4所示,注冊后形成可變性需求的配置參數(shù)。實例化具體的可變性需求構件,進而控制周期任務調度構件才能實現(xiàn)統(tǒng)一調度可變性需求構件。當需要根據任務要求增加其他可變點實例時,通過注冊信息表進行動態(tài)注冊,可在不改變控制周期任務調度構件的前提下,增加新的獨立的可變性需求構件。

架構中通過使用條件編譯的方式決定各個外部可變性需求中可變點實例的組合情況,使應用架構中不存在多余功能構件,提高了外部可變性需求構件的可維護性,使外部可變性需求構件具有可替換性和可選擇性。以“輔助修正”可變點設計為例,通過2個宏定義分別表征“姿態(tài)修正”和“導航修正”2個可變點實例的相關操作,當任務要求中只包括“姿態(tài)修正”這個可變點實例時,僅定義“姿態(tài)修正”這個外部可變性需求構件的宏定義,源碼編譯過程中不包括“導航修正”這個外部可變性需求構件,同理,可實現(xiàn)“導航修正”這個可變點實例,體現(xiàn)外部可變性需求構件的可替換性;當任務要求中沒有“輔助修正”這個外部可變性需求時,不定義“姿態(tài)修正”和“導航修正”這2個外部可變性需求構件的宏定義,源碼編譯過程中不包括“姿態(tài)修正”和“導航修正”這2個外部可變性需求構件的任何操作,體現(xiàn)外部可變性需求構件的可選擇性。

通過外部需求構件的選擇,在滿足外部需求構件功能、性能要求的前提下,由軟件開發(fā)人員通過使用條件編譯的方式選擇具體的內部可變性需求構件,內部可變性需求對用戶不可見。以迭代制導控制功能構件為例,當用戶選擇“迭代制導控制”這個外部可變點實例時,軟件開發(fā)人員通過之前宏定義的設定和參數(shù)配置,架構中自動選擇了“迭代制導計算算法”和“程序角濾波網絡計算算法”2個內部可變性需求構件,如圖5所示。

圖5 迭代制導控制功能構件配置參數(shù)

3 實例分析

某運載器1的飛行控制軟件采用了可重用架構設計方法,在需求分析階段提出了通用性和可變性需求,在概要設計階段設計出軟件架構,在詳細設計階段設計出具體的通用需求構件和可變性需求構件,運載器1飛行控制軟件代碼總計20000余行,運載器2的飛行控制軟件為某型號新研軟件,通過重用分析,運載器2飛行控制軟件在運載器1飛行控制軟件的基礎上,只需針對特異性需求進行設計,代碼修改量總計1000行左右,重用情況分析如表5所示,大大減少了軟件開發(fā)和測試驗證成本,提高了軟件研制效率。

表5 運載器1與運載器2飛行控制軟件重用分析

4 總結

詳細闡述了基于可重用軟件開發(fā)技術的飛行控

制軟件架構,及其在需求分析、概要設計和詳細設計階段的設計方法,通過理論和實踐證明,該架構在運載火箭飛行控制軟件的應用不僅能夠提高軟件研制效率,降低研制成本,而且能夠降低設計人員主觀因素的影響造成的各種缺陷,不斷提升軟件產品質量,提高軟件的可維護性。運載火箭飛行控制軟件可重用架構設計的開發(fā)模式為運載火箭控制系統(tǒng)軟件傳統(tǒng)研制模式提供了新的思路,具有一定的借鑒意義和實用價值。

參 考 文 獻

[1] 楊錦清.軟件工程化開發(fā)實踐與避錯技術研究[A].中國航空學會控制與應用第八屆學術年會論文集[C].1998.

[2] 田繼鑫.軟件工程化研究[D].2001.

[3] 彭濤.某型火箭飛行器控制軟件研制[D].2011.

[4] 普爾.軟件產品線工程[M].國防工業(yè)出版社.2010.

[5] 李偉剛 李易.軟件產品線工程原理與方法[M].科學出版社.2015.

[6] 丁曉明.基于構件的軟件開發(fā)關鍵問題研究[D].2012.

猜你喜歡
通用性任務調度制導
Improving polyp detection at colonoscopy: Non-technological techniques
基于改進NSGA-Ⅱ算法的協(xié)同制造任務調度研究
基于時間負載均衡蟻群算法的云任務調度優(yōu)化
測控技術(2018年7期)2018-12-09 08:58:00
基于元模型的通用性列控仿真平臺基礎環(huán)境研究
鐵道學報(2018年5期)2018-06-21 06:21:06
拋丸機吊具的通用性設計以及拋丸器的布置
基于MPSC和CPN制導方法的協(xié)同制導律
基于在線軌跡迭代的自適應再入制導
帶有攻擊角約束的無抖振滑模制導律設計
云計算環(huán)境中任務調度策略
云計算中基于進化算法的任務調度策略
石渠县| 汉寿县| 上思县| 临高县| 晋宁县| 哈尔滨市| 榆中县| 原阳县| 建平县| 望谟县| 鄂托克旗| 无极县| 临汾市| 宁河县| 亳州市| 蒙自县| 白银市| 额尔古纳市| 新化县| 宁陕县| 越西县| 浦县| 巨野县| 禹州市| 分宜县| 屯留县| 翼城县| 剑川县| 岳池县| 金湖县| 鸡泽县| 惠来县| 滦南县| 随州市| 岚皋县| 临泉县| 罗江县| 德昌县| 微山县| 漯河市| 漳平市|