陳磊
摘要:鑒于蒙特卡洛方法在控制系統(tǒng)設(shè)計(jì)及分析中的廣泛應(yīng)用,對蒙特卡洛仿真的工作流程及關(guān)鍵技術(shù)問題進(jìn)行分析,并給出一種基于MTTLAB分布式計(jì)算引擎的控制系統(tǒng)蒙特卡洛仿真方案。
關(guān)鍵詞:控制系統(tǒng);蒙特卡洛;分布式計(jì)算;項(xiàng)目管理器
DOIDOI:10.11907/rjdk.161500
中圖分類號:TP302
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2016)005-0010-03
0 引言
蒙特卡洛方法是利用隨機(jī)數(shù)進(jìn)行統(tǒng)計(jì)試驗(yàn),求得統(tǒng)計(jì)特征值(如均值、概率等)作為待解問題的數(shù)值解,所作的統(tǒng)計(jì)試驗(yàn)稱為蒙特卡洛仿真或者蒙特卡洛模擬。該方法是眾多研究不確定性傳遞的方法之一,目的是要確定不確定性(包括系統(tǒng)參數(shù)變化、建模誤差、外界擾動等)如何影響系統(tǒng)性能,其常用于復(fù)雜的非線性模型以及具有不確定參數(shù)的模型。
蒙特卡洛方法可以解決各種類型的問題,一般來說,該方法處理的問題可以分為兩類:第一類是確定性的數(shù)學(xué)問題。包括計(jì)算多重積分、求解逆矩陣、線性代數(shù)方程組、積分方程和微分算子的特征值等;第二類是隨機(jī)性問題,對于這類問題,有時(shí)可表示為多重積分或某些函數(shù)方程,并進(jìn)而考慮用隨機(jī)抽樣方法求解。然而,一般情況下都不采用這種間接模擬方法,而是采用直接模擬方法,即根據(jù)實(shí)際物理情況的概率法則,首先建立一個(gè)與求所解有關(guān)的概率模型,使所求的解為所建立模型的概率分布或數(shù)學(xué)期望,然后對該模型進(jìn)行隨機(jī)抽樣觀察,即產(chǎn)生隨機(jī)變量,最后用其算術(shù)平均值作為所求解的近似估計(jì)值。
當(dāng)前,蒙特卡洛仿真及分析方法廣泛應(yīng)用于控制系統(tǒng)設(shè)計(jì)及分析中,包括制導(dǎo)與控制系統(tǒng)設(shè)計(jì)缺陷的分析、軌道及特定飛行器參數(shù)的識別[1];飛機(jī)魯棒性分析中實(shí)時(shí)穩(wěn)定裕度的測量[2];魯棒自動著陸控制律的優(yōu)化設(shè)計(jì)[3][4];電傳飛控系統(tǒng)的飛行品質(zhì)研究[5]等方面。本文對控制系統(tǒng)蒙特卡洛仿真的工作流程及關(guān)鍵問題進(jìn)行分析,并給出一種控制系統(tǒng)的蒙特卡洛仿真方案。
1 蒙特卡洛仿真工作流程
Matlab環(huán)境下的蒙特卡洛仿真工作流程如圖1所示。
蒙特卡洛工作流程為:①首先確定系統(tǒng)仿真參數(shù),仿真次數(shù)可以通過理論分析方法或試驗(yàn)方法確定;②根據(jù)不確定性模型生成全部仿真所需的隨機(jī)偏差和初始狀態(tài);③以預(yù)設(shè)的不確定偏差及初始狀態(tài)進(jìn)行仿真調(diào)用,并記錄所需的結(jié)果及狀態(tài)數(shù)據(jù);④仿真全部結(jié)束后,對記錄的數(shù)據(jù)進(jìn)行分析,根據(jù)分析結(jié)果對仿真模型、控制系統(tǒng)設(shè)計(jì)進(jìn)行相應(yīng)的改進(jìn)。在蒙特卡洛仿真過程中,需要重點(diǎn)考慮以下問題。
1.1 不確定性建模
大部分實(shí)際系統(tǒng)中總是包含有不確定性,蒙特卡洛仿真中需要采用隨機(jī)數(shù)進(jìn)行統(tǒng)計(jì)試驗(yàn),所以需要建立系統(tǒng)不確定輸入的概率模型,即確定不確定輸入的分布類型。對于部分不確定性,根據(jù)經(jīng)驗(yàn)或理論分析,可以知道其概率分布形式,但大部分情況概率分布是未知的。對于這類不確定性,較為普遍的方法是采用不確定性參數(shù)的標(biāo)稱值均值的正態(tài)分布作為不確定性的概率模型。但有些情況下,不確定性明顯不服從正態(tài)分布,這就需要根據(jù)觀測樣本進(jìn)行不確定性建模。
假定實(shí)際系統(tǒng)不確定性的觀測數(shù)據(jù)為互相獨(dú)立的隨機(jī)變量,不確定性建模步驟為:
(1)選擇概率分布類型。選擇概率分布的依據(jù)是隨機(jī)變量的知識以及占有的數(shù)據(jù)。很多情況下,可以根據(jù)先驗(yàn)知識以及對產(chǎn)生該隨機(jī)變量過程的認(rèn)識決定或者拒絕哪種分布。另外,數(shù)據(jù)對概率選擇具有決定性作用。一般有了足夠的數(shù)據(jù)就可以選擇出較好的概率分布,至少可以作出經(jīng)驗(yàn)分布或者半經(jīng)驗(yàn)分布,而且可以用數(shù)據(jù)檢驗(yàn)所選擇概率分布的正確性。對于統(tǒng)計(jì)量連續(xù)分布的情況,可以采用點(diǎn)估計(jì)法、直方圖法和概率圖法確定隨機(jī)變量的概率分布類型。
(2)參數(shù)估計(jì)。初步確定概率分布類型后,需要確定出該分布的參數(shù),常用的參數(shù)估計(jì)方法為矩估計(jì)法和極大似然估計(jì)法。
(3)擬合優(yōu)度檢驗(yàn)。選擇參數(shù)分布類型,并估計(jì)具體參數(shù)后,應(yīng)當(dāng)進(jìn)行分布的擬合優(yōu)度檢驗(yàn),即檢驗(yàn)所選擇的具體分布是否符合給定的數(shù)據(jù)分布。擬合優(yōu)度檢驗(yàn)是一種統(tǒng)計(jì)假設(shè)檢驗(yàn),用于檢驗(yàn)觀測樣本是否服從于概率分布函數(shù)的理論分布。常用的擬合檢驗(yàn)方法包括檢驗(yàn)法和Kolmogorov-Smirnov檢驗(yàn)法。
1.2 仿真調(diào)度機(jī)制
蒙特卡洛仿真通常需要將一個(gè)仿真任務(wù)執(zhí)行成千上萬次,要耗費(fèi)大量的時(shí)間,使得系統(tǒng)設(shè)計(jì)周期過長,因此并行計(jì)算是進(jìn)行蒙特卡洛仿真的一個(gè)必然選擇。Matlab的分布計(jì)算工具箱提供了利用計(jì)算機(jī)集群進(jìn)行并行計(jì)算的功能。
分布計(jì)算工具箱通過MATLAB分布式計(jì)算引擎可支持開發(fā)能在多臺計(jì)算機(jī)上運(yùn)行的分布式MATLAB計(jì)算應(yīng)用程序,無需改換原有的MATLAB開發(fā)環(huán)境。用戶可先在MATLAB中完成計(jì)算程序的開發(fā)與調(diào)試,然后利用該工具箱將算法分解為多個(gè)相互獨(dú)立或相關(guān)的任務(wù)。MATLAB分布式計(jì)算引擎在多個(gè)遠(yuǎn)程MATLAB進(jìn)程中同步調(diào)度和處理這些任務(wù),相比單一的MATLAB進(jìn)程執(zhí)行,運(yùn)行時(shí)間大大縮短。
MATLAB分布計(jì)算工具,仿真系統(tǒng)由以下部分組成:①客戶端:定義項(xiàng)目,將項(xiàng)目分解成多個(gè)任務(wù),是用于進(jìn)行MATLAB編程的計(jì)算機(jī);②項(xiàng)目管理器:負(fù)責(zé)項(xiàng)目管理和任務(wù)分發(fā),用戶可以通過項(xiàng)目管理器將項(xiàng)目提交到項(xiàng)目隊(duì)列以及將任務(wù)分發(fā)到工作機(jī);③工作機(jī):工作機(jī)接收項(xiàng)目管理器分配的任務(wù),并進(jìn)行計(jì)算。仿真系統(tǒng)各部分之間的交互如圖2所示。
Matlab分布計(jì)算工具應(yīng)用分為分布式執(zhí)行以及并行計(jì)算,在應(yīng)用分布計(jì)算工具進(jìn)行蒙特卡洛仿真時(shí),蒙特卡洛仿真作為用戶提交的項(xiàng)目,可以自然地分為各個(gè)單次仿真任務(wù),各單次仿真相互獨(dú)立,因此屬于分布式執(zhí)行。
1.3 蒙特卡洛分析方法
對控制系統(tǒng)進(jìn)行蒙特卡洛仿真本身不是目的,蒙特卡洛方法中重要的是應(yīng)對蒙特卡洛仿真的結(jié)果進(jìn)行充分有效的分析,使其能更好地服務(wù)于控制系統(tǒng)的設(shè)計(jì)及性能優(yōu)化。對控制系統(tǒng)可以開展以下幾方面的蒙特卡洛仿真分析。
(1)概率統(tǒng)計(jì)。首先確定任務(wù)成功的準(zhǔn)則,然后通過蒙特卡洛仿真可以得到任務(wù)成功概率,能夠直接對控制系統(tǒng)的性能進(jìn)行評價(jià)。
(2)仿真模型驗(yàn)證。針對仿真模型中的某些錯(cuò)誤和缺陷,單次仿真通常難以發(fā)現(xiàn)。因此對控制系統(tǒng)仿真模型,加入隨機(jī)擾動及隨機(jī)初始狀態(tài),進(jìn)行蒙特卡洛仿真。在進(jìn)行系統(tǒng)驗(yàn)證時(shí),為充分暴露仿真系統(tǒng)的缺陷,設(shè)定的隨機(jī)擾動的幅值可大于正常擾動幅值。通過對仿真統(tǒng)計(jì)結(jié)果和失敗案例的概率分析,找出仿真系統(tǒng)的設(shè)計(jì)缺陷。
(3)控制系統(tǒng)靈敏度分析。采用靈敏度分析技術(shù),確定特定輸出與隨機(jī)輸入變量之間的靈敏度。采用最小二乘估計(jì)回歸建立線性模型,使用多重測量的相關(guān)系數(shù)評估靈敏度。采用線性回歸方法搜索仿真輸入空間,找出對仿真輸出影響最大的變量。
(4)定量的系統(tǒng)魯棒性分析。采用蒙特卡洛方法計(jì)算系統(tǒng)的隨機(jī)魯棒性,得到定量的穩(wěn)定性描述。
(5)控制器參數(shù)優(yōu)化。在參數(shù)最優(yōu)化計(jì)算中,當(dāng)目標(biāo)函數(shù)為非線性、存在多峰值或維數(shù)較高時(shí),往往受到限制。這時(shí)應(yīng)用蒙特卡洛方法比較有效,包括隨機(jī)模擬算法,序貫隨機(jī)模擬算法及隨機(jī)搜索法等[6]。
(6)系統(tǒng)穩(wěn)定性及飛行品質(zhì)分析。對于電傳飛控系統(tǒng),通??己怂膭討B(tài)特性和飛行品質(zhì),即輸入駕駛員桿指令,考察時(shí)間響應(yīng)、短周期阻尼、CAP、延遲時(shí)間等品質(zhì)指標(biāo)。
通過蒙特卡洛仿真,可獲得階躍響應(yīng)時(shí)間常數(shù)、穩(wěn)態(tài)誤差、周期阻尼、CAP、延遲時(shí)間等指標(biāo)的散布點(diǎn),計(jì)算各品質(zhì)指標(biāo)的數(shù)學(xué)期望、方差,可獲得飛行品質(zhì)的概率估計(jì)值。
2 控制系統(tǒng)蒙特卡洛仿真方案
本文建立一種基于MATLAB分布計(jì)算工具的蒙特卡洛仿真系統(tǒng),主要由客戶端以及分布式計(jì)算機(jī)網(wǎng)絡(luò)構(gòu)成,仿真系統(tǒng)邏輯結(jié)構(gòu)如圖3所示。
2.1 客戶端
客戶端需安裝并啟用分布式計(jì)算引擎服務(wù),并安裝MATLAB 分布計(jì)算工具箱,用于創(chuàng)建分布式仿真作業(yè)。用戶在客戶端計(jì)算機(jī)的Matlab中構(gòu)建Matlab仿真模型,創(chuàng)建蒙特卡洛仿真作業(yè),并將作業(yè)提交給項(xiàng)目管理器,由分布式計(jì)算網(wǎng)絡(luò)進(jìn)行并行的仿真計(jì)算。客戶端工作流程如圖4所示。
最終的系統(tǒng)仿真結(jié)果會返回到客戶端,因此蒙特卡洛分析工作也在客戶端計(jì)算機(jī)進(jìn)行。
2.2 分布式計(jì)算網(wǎng)絡(luò)
分布式計(jì)算網(wǎng)絡(luò)中由仿真管理節(jié)點(diǎn)和若干仿真節(jié)點(diǎn)組成。 該網(wǎng)絡(luò)中的計(jì)算機(jī)都需要安裝并啟用MATLAB分布式計(jì)算引擎服務(wù),管理節(jié)點(diǎn)運(yùn)行作業(yè)管理器進(jìn)程,仿真節(jié)點(diǎn)運(yùn)行工作機(jī)進(jìn)程。仿真管理節(jié)點(diǎn)負(fù)責(zé)仿真調(diào)度,它接收客戶端提交的作業(yè),將作業(yè)所包含的仿真任務(wù)自動分配到各個(gè)仿真節(jié)點(diǎn)進(jìn)行計(jì)算,收集各工作機(jī)的計(jì)算結(jié)果。所有任務(wù)完成后將仿真結(jié)果返回到客戶端。分布計(jì)算網(wǎng)絡(luò)環(huán)境下的蒙特卡洛仿真整體工作流程如圖5所示。
3 結(jié)語
可知蒙特卡洛方法本質(zhì)上是一種基于參數(shù)隨機(jī)抽樣的數(shù)值計(jì)算方法,通過這種方法得出的結(jié)果可信度基于兩個(gè)條件:①應(yīng)建立可靠的數(shù)學(xué)模型,并將此數(shù)學(xué)模型與實(shí)際數(shù)據(jù)進(jìn)行檢驗(yàn),盡可能在不使模型過于復(fù)雜的情況下令模型符合實(shí)際數(shù)據(jù);②對模型中的隨機(jī)量分布有明確的了解,進(jìn)而針對不同的分布采取合理的隨機(jī)抽樣方法。此外,如果條件許可,應(yīng)該對計(jì)算得出的統(tǒng)計(jì)結(jié)果與實(shí)際對照。
蒙特卡洛方法由于能夠驗(yàn)證復(fù)雜系統(tǒng)的環(huán)境變化、子系統(tǒng)、部件及全部參數(shù)同時(shí)變化下的系統(tǒng)特性,可以進(jìn)行參數(shù)的遍歷性試驗(yàn),因此具有較高的可信度,目前在國內(nèi)外航空航天領(lǐng)域獲得廣泛應(yīng)用,尤其在新型號飛行器控制系統(tǒng)的研制過程中,成為一種有效的、必備的檢測和驗(yàn)證工具。
參考文獻(xiàn):
[1]PEGGY S, WILLIAMS. A monte carlo dispersion analysis of the X-33 simulation software[Z].NASA Dryden Flight Research Center, AIAA,2001.
[2]JOHN T, BOSWORTH,SUSAN J STACHOWIAK.Real-time stability margin measurements for X-38 robustness analysis[Z].NASA Dryden Flight Research Center,2005.
[3]GERTJAN LOOYE, HANS-DIETER JOOS, DEHLIA WILLEMSEN.Application of an optimization-based design process for robust autoland control laws[Z].AIAA,2001.
[4]GHN, LOOYE,SANCHO,et al.Design of robust autoland control laws using mu-Synthesis[C].AIAA Guidance, Navigation, and Control Conference and Exhibit,2002.
[5]楊云,張平. 電傳飛控系統(tǒng)的蒙特卡洛分析與設(shè)計(jì)[J]. 航空學(xué)報(bào), 2008,(29):18-23.
[6]盧燕,舒?zhèn)髂? 蒙特卡洛法在導(dǎo)彈末制導(dǎo)雷達(dá)對目標(biāo)的位置捕獲概率估計(jì)中的應(yīng)用[J]. 戰(zhàn)術(shù)導(dǎo)彈技術(shù), 2005(1):29-33.
(責(zé)任編輯:陳福時(shí))