在被控對象模型上使用蒙特卡洛方法改進(jìn)系統(tǒng)模型
航空航天系統(tǒng)模型通常由大量的子系統(tǒng)組成,每一個子系統(tǒng)可能由不同的開發(fā)團(tuán)隊完成,而一個共享的建模環(huán)境和通用的建模標(biāo)準(zhǔn)能幫助開發(fā)團(tuán)隊輕松、快捷的交互,超越了組織、語言和文化的障礙。在航空航天應(yīng)用中,蒙特卡洛技術(shù)可用于保證高可靠性和魯棒性設(shè)計。但是進(jìn)行蒙特卡洛仿真非常耗時,如果能夠并行運(yùn)行仿真可大大的縮短仿真的時間。在這篇文章中將主要討論在MATLAB/Simulink中建模、優(yōu)化和測試對象模型以搭建更好的系統(tǒng)模型的技術(shù),同時也介紹通過使用高性能計算集群提高蒙特卡洛分析速度的新技術(shù)。
蒙特卡洛技術(shù)
工程師在同一個建模環(huán)境中建立對象模型和嵌入式控制器后,可以使用多個對象的參數(shù)測試該控制器,也包括理想值仿真。建模時可變的物理參數(shù)提供了在實物中將要發(fā)生動作的最好描述。蒙特卡洛分析就是對實際物理參數(shù)可變性仿真的一種標(biāo)準(zhǔn)的方法。在航空航天應(yīng)用中,蒙特卡洛技術(shù)被用來保證高質(zhì)量和魯棒設(shè)計,同時它有助于對非常復(fù)雜而又很難得到分析結(jié)果的系統(tǒng)進(jìn)行建模,也能對不確定性進(jìn)行仿真。但是蒙特卡洛仿真一個最大的缺點(diǎn)是它需要對單個模型進(jìn)行成千上萬次的運(yùn)行,而且仿真的系統(tǒng)越復(fù)雜或系統(tǒng)中包含的不確定性因素越多,那么執(zhí)行仿真的次數(shù)也越多,而通常數(shù)百次或數(shù)千次運(yùn)行一個復(fù)雜模型需要花費(fèi)幾天的時間。所以在開發(fā)過程中仿真時間往往成為致命的瓶頸。而并行地運(yùn)行多個且獨(dú)立的仿真循環(huán)則能顯著地節(jié)省時間。新的高性能的計算工具和多處理器計算機(jī)強(qiáng)大的處理能力在很大程度上排除了時間和資源的限制,非常適合對包含大量參數(shù)的復(fù)雜動態(tài)系統(tǒng)的仿真。
分布式計算
一些計算問題被稱為是并行的,因為它們可以很容易地被分在數(shù)個節(jié)點(diǎn)運(yùn)行,而沒有交互、共享數(shù)據(jù)或是不同節(jié)點(diǎn)之間的同步點(diǎn)。每個節(jié)點(diǎn)上的運(yùn)行時間相比啟動和停止應(yīng)用程序的時間占絕對優(yōu)勢。蒙特卡洛仿真就是屬于這一類,因此非常適合在計算集群上運(yùn)行。仿真軟件和HPC集群之間的集成需要最大化計算能力的開發(fā)。
有了SystemTest和MATLAB分布式計算引擎(MATLAB Distributed Computing Server)這樣的COTS工具,用戶無需編寫復(fù)雜的腳本文件就可以輕松實現(xiàn)在計算集群上運(yùn)行仿真。通過這些工具可以在用戶界面(GUI)中設(shè)置進(jìn)行蒙特卡洛測試的模型中需要變化的一系列參數(shù),然后定義相應(yīng)的任務(wù),使其運(yùn)行在多個處理器上。從GUI啟動任務(wù)避免了編寫腳本和集群交互、創(chuàng)建任務(wù)、從單獨(dú)的仿真運(yùn)行編譯結(jié)果等。這也使得在計算集群或多核、多處理器計算機(jī)上進(jìn)行分布式Simulink仿真而無需編寫任何代碼成為可能。COTS仿真工具和HPC調(diào)度器的集成是提高蒙特卡洛仿真速度的一種手段。
案例研究
A. 模型
我們要分析的系統(tǒng)是控制副翼角度的液壓執(zhí)行器。建模的目的是分析伺服閥參數(shù)改變的影響,模擬電路控制開環(huán)伺服閥的效果以及副翼上負(fù)載變化的影響。我們將通過上升時間和調(diào)節(jié)時間研究這些參數(shù)對于系統(tǒng)穩(wěn)定性和性能的影響。
圖1 閉環(huán)副翼系統(tǒng)的模型。模塊中所關(guān)心的參數(shù)已被標(biāo)注:1-6是液壓伺服閥的參數(shù);
7-10是控制器模擬電路的實現(xiàn);11是空氣動力學(xué)負(fù)載。
使用COTS物理建模工具,我們在Simulink中建立被控對象和控制器的模型。選擇COTS物理建模工具,可以幫助我們開發(fā)精確的對象模型,通過仿真研究被控對象與現(xiàn)實世界盡可能接近的動作行為。圖1顯示的是完整的系統(tǒng)模型,包括伺服閥、雙動液壓缸、副翼和控制器的模擬電路實現(xiàn)。圖2 顯示的是通過SimElectronics建模的控制器詳細(xì)的模擬電路。
圖2 控制器模擬電路的實現(xiàn)的模型,感興趣的參數(shù)已被標(biāo)注
在閉環(huán)模型中,我們可以改變控制器和對象的參數(shù),通過仿真來研究系統(tǒng)的性能。我們已用蒙特卡洛技術(shù)選好需要改變的對象和控制器的參數(shù),在建模時這些參數(shù)已用理想值設(shè)置,但是我們知道它們的實際測量值是不斷變化的。同時,我們加上了公差數(shù)據(jù),反映它們在實際物理組件中的變化情況。并通過這些數(shù)據(jù)來研究它們對系統(tǒng)性能的影響。 #p#page_title#e#
B. 蒙特卡洛測試
為了檢驗這些物理參數(shù)已知的變化,我們在SystemTest中建立蒙特卡洛測試,這可以通過概率分布測試矢量和MATLAB代碼來實現(xiàn)。我們的目的是研究系統(tǒng)的穩(wěn)定性以及這些參數(shù)的變化對系統(tǒng)穩(wěn)定性的影響。利用正態(tài)、對數(shù)正態(tài)和均勻概率分布產(chǎn)生其中10個參數(shù)的1000組隨機(jī)值。對于最后一個參數(shù),為了測試特定的值,通過MATLAB代碼產(chǎn)生其可能值整個范圍上的一些值。界限測試單元(Limit Check element)被用來設(shè)置仿真中上升時間和調(diào)節(jié)時間的上下界。
圖3顯示的是測試的流程。首先運(yùn)行Simulink模型,然后用MATLAB計算上升和調(diào)節(jié)時間,接著利用界限測試單元決策測試是否通過,圖中測試矢量的列表表示的是在測試過程中Simulink模型變化的參數(shù)。使用SystemTest運(yùn)行蒙特卡洛測試的優(yōu)勢是可以自動改變所設(shè)置的參數(shù),同時也可以獨(dú)立于模型建立測試并進(jìn)行并行仿真。
C. 結(jié)果
第一次測試運(yùn)行了七個小時,這是非常耗時的。所以我們將它在計算集群上運(yùn)行。利用SystemTest可以自動地分布式運(yùn)行測試,而無需改變?nèi)魏蔚臏y試設(shè)置。測試運(yùn)行在8核的計算集群上,每一個包含4個workers,使用的是64位Linux系統(tǒng)。結(jié)果只用了一個多小時。詳細(xì)的結(jié)果如表1所示。
表1 每次測試執(zhí)行時間和使用計算集群所減少的時間
注意速度的提高并不與workers的數(shù)量成線性比例,之前也報道過,這還依賴于將文件從主機(jī)拷貝到集群的每個計算機(jī)上的時間、在workers和任務(wù)調(diào)度器之間傳遞輸入輸出數(shù)據(jù)的時間以及網(wǎng)絡(luò)傳輸?shù)囊蛩?。通常,整個仿真時間要遠(yuǎn)遠(yuǎn)大于上述的時間。
由于SystemTest與并行計算工具箱和MATLAB分布式計算引擎緊密集成的,測試報告和結(jié)果的MAT文件和在單機(jī)上花費(fèi)7個小時所完成的結(jié)果是一致的。
第一次測試說明我們的設(shè)計對一些參數(shù)非常敏感。圖4所示的是液壓缸所受力影響的曲線。R7,即圖2中標(biāo)注的參數(shù)8,導(dǎo)致液壓缸所受力很大的不穩(wěn)定性,使得許多測試用例都失敗了。這也延長了測試,因為仿真時的顫動會讓仿真花費(fèi)比正常值更長的時間。
圖4 左圖是使用正常參數(shù)值時的液壓缸力;
右圖是第一次蒙特卡洛測試時的液壓缸力,注意顫動的頻率。
對于第二次測試,我們約束了R7的公差值,這消除了不穩(wěn)定性,但是仍然沒有達(dá)到上升和調(diào)節(jié)時間的要求。第二次測試僅用了一個小時,但使用分布式計算只需11分鐘,計算集群仍同第一次測試。具體時間如表1所示。
對于這種情況,需要進(jìn)一步分析我們的設(shè)計,這需要改變模型中更多的參數(shù)、檢查控制器的設(shè)計、與實驗數(shù)據(jù)比較所建立的對象模型以確保模型的準(zhǔn)確性等。設(shè)計中也使用到了其它的控制設(shè)計工具,比如Simulink Response Optimization優(yōu)化設(shè)計。
對于這篇論文的目的,測試是完成了。我們已在一組真實的參數(shù)上運(yùn)行了蒙特卡洛測試,發(fā)現(xiàn)設(shè)計的至少一個組件必須要有約束的公差。
結(jié)論
這篇文章主要討論了三個方面:精確對象模型的建立、蒙特卡洛測試和分布式測試。將蒙特卡洛測試和分布式環(huán)境結(jié)合起來使得這個過程更快更容易實現(xiàn)。而在同一個環(huán)境中對整個系統(tǒng)建模并仿真的能力是實現(xiàn)以上功能的關(guān)鍵所在??傊畬⒁陨先矫娼Y(jié)合起來能在很大程度上提高設(shè)計的品質(zhì),同時能節(jié)省大量的開發(fā)時間。
Matlab個人超級圖形計算平臺-Jacket Engine+Tesla