馬震,吳曉燕,張蕊,卜祥偉
(空軍工程大學 防空反導學院,陜西 西安 710051)
?
復雜仿真系統(tǒng)模型驗證工具設(shè)計與實現(xiàn)
馬震,吳曉燕,張蕊,卜祥偉
(空軍工程大學 防空反導學院,陜西 西安710051)
模型驗證是VV&A工作的重要內(nèi)容之一,為了提高復雜仿真系統(tǒng)模型驗證的工作效率,基于C#語言,設(shè)計了復雜仿真系統(tǒng)模型驗證工具。詳細闡述了驗證工具的總體結(jié)構(gòu)設(shè)計,深入討論了各子模塊的功能和具體實現(xiàn),并通過實例說明了該工具的設(shè)計和實現(xiàn)是合理有效的,實現(xiàn)了模型驗證的自動化。
仿真系統(tǒng);VV&A; 驗證工具;流程圖;框架圖;方法庫
目前,國內(nèi)外仿真界已經(jīng)達成了共識:沒有經(jīng)過驗證的仿真模型沒有任何價值[1],模型驗證已成為保證仿真系統(tǒng)可信度不可缺少的工作。驗證存在不同的類型,例如概念模型驗證、數(shù)據(jù)驗證和結(jié)果驗證[2],其中,結(jié)果驗證是最為關(guān)鍵的,也是本文研究的內(nèi)容。隨著建模與仿真復雜程度的不斷提高,模型的驗證工作越來越復雜,要求越來越高,其工作量也越來越大。為了降低模型驗證工作過程中人力、物力和財力資源的消耗,開發(fā)經(jīng)濟、有效、成熟的驗證工具已經(jīng)迫在眉睫。
國外的一些公司或研究機構(gòu)從20世紀80年代開始陸續(xù)開發(fā)了一些VV&A(verification,validation and accreditation)輔助工具,如Holmes針對導彈系統(tǒng)模型的驗證,開發(fā)了一種十分有效的分析工具——隨機工具箱[3]; Dai和Scott開發(fā)了針對實時軟件和嵌入式系統(tǒng)自動校核、驗證和測試工具[4];Mellichamp研究了仿真系統(tǒng)結(jié)果分析的統(tǒng)計專家系統(tǒng)[5]。國內(nèi)相關(guān)院校和科研機構(gòu)在VV&A工具方面也進行了一些有益的探索,文獻[6]介紹了王子才院士所在的控制與仿真中心開發(fā)的“復雜仿真系統(tǒng)VV&A與可信度評估支撐工具”,文獻[7]以分布式數(shù)據(jù)庫研究開發(fā)了建模與仿真及VV&A管理系統(tǒng),文獻[8]介紹了一種基于知識驗證工具關(guān)鍵組件的設(shè)計。從以上文獻可以看出,開發(fā)各種有效的VV&A輔助工具,已成為當前建模與仿真領(lǐng)域的熱點。但是,當前在驗證工具設(shè)計實現(xiàn)方面存在一些不足:首先是驗證工具缺少通用性,目前還缺乏一套完善的集成方法管理、文檔管理以及應用的一體化驗證工具集;其次是現(xiàn)階段驗證工具的操作大多需要有專業(yè)知識的人員操作,方便易用性不夠;最后現(xiàn)階段的研究大多停留在課題研究階段,技術(shù)成熟度欠缺。
本文依據(jù)VV&A驗證理論與方法,采用C#語言,設(shè)計了復雜仿真系統(tǒng)模型驗證工具,實現(xiàn)了模型驗證的自動化。特別是利用Matlab提供的工具創(chuàng)建.NET程序集,實現(xiàn)了C#與Matlab的混合編程,采用Microsoft公司提供的COM技術(shù)創(chuàng)建Word文檔,實現(xiàn)了將驗證結(jié)論存儲在Word文檔中。另外,參考基于知識的驗證方法,對缺乏參考數(shù)據(jù)的模型驗證也提供了有效支持。
復雜仿真系統(tǒng)模型驗證工具是為了滿足VV&A驗證需求而設(shè)計開發(fā)的,該工具的目標是將模型驗證理論、方法與工程實踐相結(jié)合,最終完成一個在方法上有獨到之處,能夠解決工程問題,滿足實際需要,具有友好、簡潔操作界面的輔助工具。根據(jù)需求分析,模型驗證工具應具備以下功能:
(1) 提供友好界面,方便用戶進行操作;
(2) 實現(xiàn)對數(shù)據(jù)進行預處理、定量和定性分析功能;
(3) 實現(xiàn)常用模型驗證方法,建立驗證方法庫;
(4) 能直觀地顯示各種數(shù)據(jù)信息、操作信息和結(jié)果信息,并提供驗證報告生成,驗證文檔管理功能。
模型驗證主要是通過考察相同輸入條件下,仿真系統(tǒng)輸出與實際系統(tǒng)輸出是否一致或者一致性程度,驗證工具的工作流程是:首先讀取相同條件下的實際數(shù)據(jù)與仿真數(shù)據(jù),然后選擇適當?shù)念A處理方法進行數(shù)據(jù)處理,圖形顯示進行定性分析,之后選擇驗證方法,對2組數(shù)據(jù)進行計算,最后根據(jù)方法所得結(jié)果判斷一致性程度。在操作過程中,可以使用多種方法綜合比較,從而達到分析實際輸出與仿真輸出的一致性程度。驗證工具的工作流程如圖1所示。
圖1 驗證工具工作流程圖Fig.1 Flow chart of validation tool
依據(jù)驗證工具的需求分析,結(jié)合工具工作流程,設(shè)計模型驗證工具的總體框架如圖2,包括數(shù)據(jù)輸入模塊、曲線繪制模塊、驗證方法模塊以及結(jié)果顯示模塊。數(shù)據(jù)輸入模塊實現(xiàn)對仿真模型輸出和真實系統(tǒng)輸出數(shù)據(jù)的導入并進行預處理;曲線繪制模塊實現(xiàn)圖示比較,對仿真結(jié)果的定性分析;驗證方法模塊是工具的核心,提供給用戶相應的驗證方法,包括靜態(tài)性能驗證方法、動態(tài)性能驗證方法和基于知識的驗證方法;結(jié)果輸出模塊直觀的顯示驗證結(jié)果,實現(xiàn)工具與用戶的交流。
根據(jù)驗證工具的總體設(shè)計,驗證工具分為數(shù)據(jù)輸入模塊、曲線繪制模塊、驗證方法模塊和結(jié)果輸出模塊,工具采用C#語言開發(fā),基于Microsoft Visual Studio平臺實現(xiàn),下面分別闡述各個模塊的具體設(shè)計與實現(xiàn)。
2.1數(shù)據(jù)輸入模塊設(shè)計與實現(xiàn)
數(shù)據(jù)輸入模塊實現(xiàn)待驗證數(shù)據(jù)和參考數(shù)據(jù)的導入和處理,包括2方面功能:數(shù)據(jù)導入、數(shù)據(jù)預處理。
數(shù)據(jù)導入主要用來讀取待驗證的仿真模型輸出數(shù)據(jù)和參考數(shù)據(jù),然后直觀地顯示出來。因此,該模塊應具有導入文本數(shù)據(jù)庫、Access數(shù)據(jù)庫或其他形式的數(shù)據(jù)庫文件,并具有顯示功能。該功能的實現(xiàn),采用C#類庫中的System.IO.FileStream類對文件實現(xiàn)讀寫操作。
數(shù)據(jù)預處理對導入的仿真數(shù)據(jù)和參考數(shù)據(jù)進行處理。由于實際系統(tǒng)的輸出數(shù)據(jù)一般靠測量獲得,這樣不可避免地引入了一定的噪聲或異點。因此進行模型驗證之前,有必要根據(jù)實際需求對數(shù)據(jù)進行預處理,來判斷待處理的數(shù)據(jù)是否滿足驗證方法的使用條件或處理后使其滿足一定的條件。因此,驗證工具應具有數(shù)據(jù)預處理功能,常用的預處理方法有剔除異點、提取趨勢項、五點三次平滑、平滑方法等[9],數(shù)據(jù)預處理模塊中應集成這幾種預處理方法。使用的預處理方法及其實現(xiàn)函數(shù)如表1所示。
2.2曲線繪制模塊
曲線繪制模塊的功能是將仿真模型的輸出數(shù)據(jù)與參考數(shù)據(jù)在同一坐標系中描繪出來,主要是完成定性的評估。該方法適合于模型驗證初期階段或?qū)纫蟛桓叩膱龊?,但該方法帶有明顯的主觀性和不確定性,不同的操作人員在做出判斷的過程中所依據(jù)的標準不同,會得出不同的結(jié)論。
對于繪圖要求不高的情況,工具是通過使用C#中Graphics類對象的DrawBezier()和DrawLine()方法實現(xiàn)。DrawBezier()方法為可重載方法,主要用于繪制貝塞爾曲線,Drawline()方法主要用于繪制兩點之間的直線。對于繪圖要求較高的情況,該工具是通過C#與Matlab混合編程實現(xiàn),利用Matlab為.NET提供的構(gòu)建工具創(chuàng)建.NET 程序集,然后在C#中直接調(diào)用[10]。這種方法既發(fā)揮了C#設(shè)計界面友好、方便的特性,也吸取了Matlab強大的繪圖功能。
圖2 驗證工具總體框架圖Fig.2 Framework of validation tool
表1 預處理方法及其實現(xiàn)函數(shù)
Table 1 Pretreatment method and its implementation function
預處理方法方法描述函數(shù)使用范圍剔除異點剔除異常數(shù)據(jù),采用拉伊特方法,即3σ準則Layite()靜態(tài)性能驗證提取趨勢項剔除數(shù)據(jù)的趨勢項,采用最小二乘法Detrend()動態(tài)性能驗證平滑去除噪聲對數(shù)據(jù)的影響,采用五次三點平滑進行處理Smooth()動態(tài)性能驗證
2.3驗證方法模塊的設(shè)計
最基本、最直接的模型驗證就是考察在相同輸入條件下模型輸出與實際系統(tǒng)輸出(或理論計算結(jié)果)是否一致以及一致性的程度如何。模型驗證方法按判斷標準的不同有主觀與客觀之分,其中客觀方法又按驗證對象性質(zhì)的不同分為靜態(tài)方法和動態(tài)方法。對于缺少參考數(shù)據(jù)的情況,根據(jù)文獻[11]提出的基于知識的模型驗證方法,實現(xiàn)基于知識的模型驗證,解決驗證技術(shù)在應用中過度依賴領(lǐng)域?qū)<业葐栴},對缺乏數(shù)據(jù)的模型驗證提供了有效支持。
(1) 靜態(tài)方法
靜態(tài)方法主要是針對模型的靜態(tài)性能進行驗證。靜態(tài)性能是與時間無關(guān)的隨機向量,以導彈模型為例,靜態(tài)性能有脫靶量、殺傷概率等。靜態(tài)性能驗證就是檢驗仿真模型輸出和真實系統(tǒng)輸出數(shù)據(jù)總體分布的一致性,常用的方法有t檢驗法、F檢驗法、符號檢驗法、秩檢驗法、游程檢驗法、Bayes方法等。常用靜態(tài)驗證方法的實現(xiàn)函數(shù)與適用范圍如表2所示。
表2 靜態(tài)方法實現(xiàn)函數(shù)與適用范圍
(2) 動態(tài)方法
模型驗證的動態(tài)方法主要是針對模型的動態(tài)性能進行驗證。動態(tài)性能是隨時間變化的隨機過程,以導彈模型為例,動態(tài)性能有推力、位置、姿態(tài)角等。動態(tài)性能驗證就是檢驗仿真輸出和實際系統(tǒng)輸出時間序列樣本的總體一致性,常用方法有TIC(theil′s inequality coefficients)不等式系數(shù)法、關(guān)聯(lián)分析法和譜估計法等。
TIC系數(shù)法是一種非常簡便的仿真模型動態(tài)驗證方法,它通過構(gòu)造一個標量函數(shù)(TIC系數(shù))來衡量實際系統(tǒng)采樣數(shù)據(jù)和仿真模型輸出數(shù)據(jù)在相同的輸入條件下的一致性程度[12],可以在一定程度上反映仿真模型和實際系統(tǒng)的一致性程度,為仿真模型是否可以被接受提供依據(jù)?;疑P(guān)聯(lián)分析方法與TIC系數(shù)法類似,也是構(gòu)造標量函數(shù)來表征模型的可信性。它可以在不完全的信息中找出所要分析和研究的因素的關(guān)聯(lián)性,從而找出主要特征和影響因素[13]。譜估計法[14]認為2個具有相同的概率分布的隨機過程必然有相同的頻譜特性。其基本思想是通過譜密度的一致性來判斷2時間序列的一致性程度。
TIC系數(shù)法、灰色關(guān)聯(lián)系數(shù)法和譜估計法分別從時域和頻域?qū)崿F(xiàn)了對仿真模型的驗證,雖然都能得到模型可信性的度量標準,但各度量的意義并不相同,他們在計算量、對數(shù)據(jù)要求等方面存在一定差異,各方法的適用范圍與其實現(xiàn)函數(shù)如表3所示。
表3 動態(tài)方法實現(xiàn)函數(shù)與適用范圍
(3) 基于知識的驗證方法
基于知識的驗證是綜合運用規(guī)則推理、復雜性測度和特征曲線重構(gòu)相關(guān)理論和方法的仿真模型驗證方法,并分別通過實例分析各種方法的具體應用,較好地解決了驗證方法容易使用不當、復雜非線性系統(tǒng)模型輸出和缺乏參考數(shù)據(jù)情況下的仿真模型驗證問題?;谥R的仿真模型驗證的框架如圖3所示。
2.4結(jié)果輸出模塊的實現(xiàn)
根據(jù)選擇的驗證方法,進行綜合計算,輸出驗證結(jié)果。用戶也可根據(jù)需要生成驗證相關(guān)文檔,以Word文檔存儲,該模塊的實現(xiàn)采用Microsoft公司提供的COM技術(shù)創(chuàng)建Word文檔[15],并將驗證結(jié)論存儲在Word文檔中。核心代碼如下:
//開始一個新的Microsoft Word實例
_Application oWordApp;
{AfxMessageBox("Create Dispatch failed");
retum;
}
//創(chuàng)建一個新文檔
Documents oDocs
_Document oDoc;
oDoc=oWordApp.getDocuments();
//添加模版名稱
oDoc=oDocs.Add(COle Variant("模型驗證報告.dot"),vOpt,vOpt,vOpt);
//把文本添加到Word文檔中
Selection m_Sel;
oWordApp.getSelection();
m_Sel.WholeStory();
……
//退出Word應用程序
oWordApp.Quit(vOpt,vOpt,vOpt);
oWordApp.Release Dispatch();
oDocs.Release Dispatch();
oDocs.Release Dispatch();
下面使用仿真模型驗證工具對實際中已建立的仿真模型進行有效性驗證。表4為在特定條件下通過導彈飛行試驗獲得的導彈脫靶量樣本數(shù)據(jù)以及在相同條件下導彈制導控制系統(tǒng)模型仿真試驗中的導彈脫靶量樣本數(shù)據(jù)。應用t檢驗法對導彈制導控制系統(tǒng)模型靜態(tài)性能進行檢驗。
構(gòu)造如下假設(shè)檢驗問題:
H0:μ1-μ2=0,
H1:μ1-μ2≠0.
計算出統(tǒng)計量為t=-0.037 5。
由于統(tǒng)計量t?G,故接受H0假設(shè),表明導彈脫靶量飛行試驗數(shù)據(jù)和仿真模型脫靶量數(shù)據(jù)總體均值一致。
應用驗證工具對導彈制導控制系統(tǒng)模型脫靶量數(shù)據(jù)進行檢驗。
圖3 基于知識的仿真模型驗證方法框架Fig.3 Framework of validation method based on knowledge
表4 導彈脫靶量數(shù)據(jù)
Table 4 Data of missile miss distance
試驗次數(shù)12345678910飛行試驗/m29.325.533.545.632.879.635.743.556.849.6仿真試驗/m39.6146.7128.2663.8227.29112.0721.3720.7932.3835.82
(1) 運行復雜仿真系統(tǒng)模型驗證工具,主界面如圖4所示,驗證數(shù)據(jù)為導彈脫靶量樣本數(shù)據(jù),所以選擇靜態(tài)性能驗證。
圖4 模型驗證工具主界面Fig.4 Main interface of validation tool
(2) 在靜態(tài)驗證界面,按照規(guī)定,導入仿真數(shù)據(jù)、實際數(shù)據(jù),進行處理,繪圖進行定性觀察,選擇驗證方法,這里選擇t驗證法,進行計算,就可得到驗證結(jié)果。由圖5可以看出,經(jīng)過工具的輔助計算,與手工結(jié)果一致。
圖5 靜態(tài)驗證操作界面Fig.5 Interface of static validation
該工具基于C#語言實現(xiàn)了復雜系統(tǒng)的模型驗證,驗證時,只需遵循驗證工具向?qū)Ь湍芸焖佟⒂行У耐瓿沈炞C工作,通過應用表明:
(1) 該工具實現(xiàn)了對模型驗證的自動化支持,提高了工作效率,從而在規(guī)定的時間內(nèi),盡可能多地完成驗證任務(wù)。
(2) 該工具克服了以往對專家過多依賴的問題,人員只需簡單培訓,就可完成驗證工作。
(3) 該工具對同一模型可采用多種驗證方法研究,克服了驗證方法單一的問題,提高了模型驗證的客觀性。
本文針對復雜仿真系統(tǒng)驗證存在的困難,設(shè)計并開發(fā)了仿真模型驗證工具,大大提高了仿真系統(tǒng)的驗證效率,降低了驗證的困難性。但由于只是初步開發(fā),軟件中還存在不少問題,主要是驗證方法不夠豐富,尤其是基于知識的驗證方法,下一步主要工作是擴展基于知識的驗證方法。進一步完善各項功能,以適應復雜仿真系統(tǒng)模型驗證的需求。
[1]唐見兵, 查亞兵, 李革. 仿真VV&A研究綜述[J]. 計算機仿真, 2006, 11(4): 82-86.
TANG Jian-bing, ZHA Ya-bing, LI Ge. An Overview of the Research on VV&A in Simulation[J]. Computer Simulation, 2006, 11(4):82-86.
[2]HENNING S, ELLING J. Selecting Control Configurations for Performance with Independent Design [J]. Computers and Chemical Engineering, 2003, 27(1): 101-109.
[3]HOLMES W M.Validation and Credible Models for System Simulation[C]∥SCSC’84,1984:239-245.
[4]Heping Dai,C. Keith Scott.AVAT, a CASE Tool for Software Verification and Validation[C]∥Proc. of Seventh International Workshop on Computer-Aided Software Engineering, Toronto, Ontario, Canada, IEEE: 1995: 358-367.
[5]MELLICHAMP J M,PARK Y H.A Statistical Expert System for Simulation Analysis[J]. Simulation,1989,52(4):134-141.
[6]王達. 多武器平臺仿真系統(tǒng)數(shù)據(jù)VV&C技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學,2006.
WANG Da . The Research of Multiple Armament Platform Simulation[D]. Harbin: Harbin Institute of Technology, 2006.
[7]楊雪榕,廖瑛,馮向軍. 建模與仿真及VV&A管理系統(tǒng)設(shè)計[J]. 計算機仿真,2006,23(10):284-288.
YANG Xue-rong, LIAO Ying, FENG Xiang-jun. Design of the M&S and VV&A Management System[J]. Computer Simulation, 2006,23(10):284-288.
[8]劉飛,楊明,王子才. 仿真驗證工具研究[J]. 電機與控制學報,2007,11(6):655-658.
LIU Fei, YANG Ming, WANG Zi-cai. Research on Simulation Validation Tool[J]. Electric Machines and Control, 2007,11(6):655-657.
[9]倪春雷, 汪浩, 呂雋. 防空導彈仿真軟件模型驗證方法研究[J]. 現(xiàn)代防御技術(shù), 2013, 41(2):73-78.
NI Chun-lei, WANG Hao, Lü Jun. Simulation Software Model Verification Method for Air Defense Missile[J]. Modern Defence Technology,2013,41(2):73-78.
[10]秦春影,喻曉鋒,仝海燕,等.C#與Matlab集成方式的比較研究[J].洛陽理工學院學報, 2011,21 (4):42-46.
QIN Chun-ying, YU Xiao-feng, TONG Hai-yan, et al. Comparative Research of Integrating C# with Matlab[J]. Journal of Luoyang Institute of Science and Technology, 2011,21(4):42-46.
[11]閔飛炎, 楊明, 王子才. 仿真模型的智能化驗證方法[J]. 大連海事大學學報, 2010, 36(1):59-64.
MIN Fei-yan, YANG Ming, WANG Zi-cai. Intelligent Validation Method of Simulation Model[J]. Journal of Dalian Maritime University,2010,36(1):59-64.
[12]KHEIR N A, HOLMES W M. On Validating Simulation Models of Missile Systems[J]. Simulation, 1978, 30(4): 117-128.
[13]吳靜,吳曉燕,陳永興,等.基于改進灰色關(guān)聯(lián)分析的仿真模型驗證方法[J].系統(tǒng)工程與電子技術(shù),2010,32(8):1677-1679.
WU Jing, WU Xiao-yan, CHEN Yong-xing, et al. Validation of Simulation Models Based on Improved Grey Relational Analysis[J].System Engineering and Electronics,2010,32(8):1677-1679.
[14]傅惠民,陳建偉.仿真結(jié)果距離檢驗方法和頻譜分析方法對比分析[J].機械強度,2010, 32(1):86-89.
FU Hui-min, CHEN Jian-wei. Comparison Between Distance Test Method and Spectrum Analysis Method for Simulation Results [J]. Journal of Mechanical Strength, 2010,32(1):86-89.
[15]李勇君,吳曉燕,吳靜,等.復雜仿真系統(tǒng)可信度評估輔助工具設(shè)計與實現(xiàn)[J].現(xiàn)代防御技術(shù),2011,39(6):191-197.
LI Yong-jun, WU Xiao-yan, WU Jing, et al.Design and Realization of Credibility Evaluation Assistant Tool for Complex Simulation System [J]. Modern Defence Technology, 2011,39(6): 191-197.
Design and Realization of Validation Tool for Complex Simulation System
MA Zhen, WU Xiao-yan, ZHANG Rui, BU Xiang-wei
(AFEU,Air and Missile Defense College, Shaanxi Xi′an 710051, China)
Simulation model validation is an important part of verification, validation and accreditation (VV&A). To improve the work efficiency of model validation for a complex simulation system, a complex simulation system model validation tool is designed based on C Sharp language. The general structure design of the validation tool is analyzed in detail and the function and realization of each module are discussed. The automation of model validation is realized and a specific instance is adopted to show that the design and realization of the tool is reasonable and effective.
simulation system; verification,validation and accreditation(VV&A); validation tool; flow chart; framework; validation method base
2015-04-13;
2015-09-21
馬震(1986-),男,陜西渭南人。碩士生,主要從事系統(tǒng)建模與仿真與VV&A技術(shù)研究。
通信地址:710600陜西省西安市臨潼區(qū)新豐鎮(zhèn)八一路一號E-mail:mazhennudt@163.com
10.3969/j.issn.1009-086x.2016.04.024
TP391.9
A
1009-086X(2016)-04-0153-07