基于SCADE的嵌入式軟件開發(fā)
下面根據(jù)模塊功能,對系統(tǒng)模型進(jìn)行了進(jìn)一步劃分,主要分為以下幾個(gè)模塊:
(1)飛行狀態(tài)條件計(jì)算模塊Condition.其輸人為彈體姿態(tài)和彈目相對位置信息,以及兩個(gè)常數(shù)參數(shù),輸出為三個(gè)飛行狀態(tài)變化的條件。
(2)飛行狀態(tài)判斷模塊Fly-State.其輸人為三個(gè)狀態(tài)變化條件變量,輸出為三種狀態(tài)標(biāo)志。
(3)導(dǎo)引指令坐標(biāo)系轉(zhuǎn)換模塊Transition.其輸入為彈體姿態(tài)和慣性系下比例導(dǎo)引指令,輸出為彈體系下比例導(dǎo)引指令。
(4)過載計(jì)算模塊Acceleration.其輸入為三個(gè)飛行狀態(tài)標(biāo)志,彈體速度。攻角信息,彈體系下的比例導(dǎo)引指令,以及一個(gè)常數(shù)參數(shù),輸出為彈體過載指令。
(5)過載限幅模塊Alimit.其輸入為彈體過載指令,輸出為限幅后的彈體過載指令。
其中Condition.Acceleration.Transition和Alimit是功能計(jì)算模塊,用數(shù)據(jù)流圖建模;Fly-State是狀態(tài)計(jì)算模塊,用有限狀態(tài)機(jī)建模。系統(tǒng)模型圖如圖5所示。
圖6為飛行狀態(tài)計(jì)算模塊Fly-State的模型,其中共包含3個(gè)狀態(tài),分別為初始狀態(tài)(Istate),轉(zhuǎn)彎狀態(tài)(Tstate)和俯沖狀態(tài)(Astate)。根據(jù)三個(gè)輸入的布爾量條件可以進(jìn)行狀態(tài)變化。其中的狀態(tài)變化都是單向不可反復(fù)的,變化方向和線條箭頭方向一致。
5.4模型驗(yàn)證和算法調(diào)試
完成模型設(shè)計(jì)后,需要使用SCADE提供的一系列檢查驗(yàn)證手段來確保模型的正確性和安全性。對于發(fā)現(xiàn)的問題,可以在直觀的圖形化模型上進(jìn)行模型修改和參數(shù)調(diào)試。
使用模擬仿真工具,可以通過設(shè)計(jì)各種測試用例來模擬可能出現(xiàn)的實(shí)際情況,對模型進(jìn)行仿真調(diào)試。可以從控制算法角度和軟件工程角度對模型進(jìn)行優(yōu)化,以達(dá)到滿足設(shè)計(jì)需求的目的。
5.5代碼集成
在代碼集成階段,根據(jù)實(shí)際需要,按照效率優(yōu)先原則進(jìn)行了配置并自動生成了標(biāo)準(zhǔn)C代碼。然后對使用了SCADE自動生成代碼的軟件進(jìn)行仿真,其仿真結(jié)果與模型仿真的結(jié)果一致,滿足設(shè)計(jì)需求。
6結(jié)束語
SCADE軟件開發(fā)環(huán)境的出現(xiàn),提供了一種基于模型的高安全性嵌入式軟件解決方案,使嵌入式軟件的開發(fā)效率大大提高。同時(shí)由于使用了基于模型的設(shè)計(jì)流程和高度自動化的開發(fā)進(jìn)程,研制工作的重心集中在建模層面,把軟件設(shè)計(jì)人員從繁復(fù)的編碼和驗(yàn)證工作中解放出來,能夠把大量的精力投入到算法設(shè)計(jì)和建模工作中,這對于嵌入式軟件的工程開發(fā)有著重要的意義。
評論