馬震,吳曉燕,張蕊,卜祥偉
(空軍工程大學 防空反導學院,陜西 西安 710051)
?
復雜仿真系統模型驗證工具設計與實現
馬震,吳曉燕,張蕊,卜祥偉
(空軍工程大學 防空反導學院,陜西 西安710051)
模型驗證是VV&A工作的重要內容之一,為了提高復雜仿真系統模型驗證的工作效率,基于C#語言,設計了復雜仿真系統模型驗證工具。詳細闡述了驗證工具的總體結構設計,深入討論了各子模塊的功能和具體實現,并通過實例說明了該工具的設計和實現是合理有效的,實現了模型驗證的自動化。
仿真系統;VV&A; 驗證工具;流程圖;框架圖;方法庫
目前,國內外仿真界已經達成了共識:沒有經過驗證的仿真模型沒有任何價值[1],模型驗證已成為保證仿真系統可信度不可缺少的工作。驗證存在不同的類型,例如概念模型驗證、數據驗證和結果驗證[2],其中,結果驗證是最為關鍵的,也是本文研究的內容。隨著建模與仿真復雜程度的不斷提高,模型的驗證工作越來越復雜,要求越來越高,其工作量也越來越大。為了降低模型驗證工作過程中人力、物力和財力資源的消耗,開發經濟、有效、成熟的驗證工具已經迫在眉睫。
國外的一些公司或研究機構從20世紀80年代開始陸續開發了一些VV&A(verification,validation and accreditation)輔助工具,如Holmes針對導彈系統模型的驗證,開發了一種十分有效的分析工具——隨機工具箱[3]; Dai和Scott開發了針對實時軟件和嵌入式系統自動校核、驗證和測試工具[4];Mellichamp研究了仿真系統結果分析的統計專家系統[5]。國內相關院校和科研機構在VV&A工具方面也進行了一些有益的探索,文獻[6]介紹了王子才院士所在的控制與仿真中心開發的“復雜仿真系統VV&A與可信度評估支撐工具”,文獻[7]以分布式數據庫研究開發了建模與仿真及VV&A管理系統,文獻[8]介紹了一種基于知識驗證工具關鍵組件的設計。從以上文獻可以看出,開發各種有效的VV&A輔助工具,已成為當前建模與仿真領域的熱點。但是,當前在驗證工具設計實現方面存在一些不足:首先是驗證工具缺少通用性,目前還缺乏一套完善的集成方法管理、文檔管理以及應用的一體化驗證工具集;其次是現階段驗證工具的操作大多需要有專業知識的人員操作,方便易用性不夠;最后現階段的研究大多停留在課題研究階段,技術成熟度欠缺。
本文依據VV&A驗證理論與方法,采用C#語言,設計了復雜仿真系統模型驗證工具,實現了模型驗證的自動化。特別是利用Matlab提供的工具創建.NET程序集,實現了C#與Matlab的混合編程,采用Microsoft公司提供的COM技術創建Word文檔,實現了將驗證結論存儲在Word文檔中。另外,參考基于知識的驗證方法,對缺乏參考數據的模型驗證也提供了有效支持。
復雜仿真系統模型驗證工具是為了滿足VV&A驗證需求而設計開發的,該工具的目標是將模型驗證理論、方法與工程實踐相結合,最終完成一個在方法上有獨到之處,能夠解決工程問題,滿足實際需要,具有友好、簡潔操作界面的輔助工具。根據需求分析,模型驗證工具應具備以下功能:
(1) 提供友好界面,方便用戶進行操作;
(2) 實現對數據進行預處理、定量和定性分析功能;
(3) 實現常用模型驗證方法,建立驗證方法庫;
(4) 能直觀地顯示各種數據信息、操作信息和結果信息,并提供驗證報告生成,驗證文檔管理功能。
模型驗證主要是通過考察相同輸入條件下,仿真系統輸出與實際系統輸出是否一致或者一致性程度,驗證工具的工作流程是:首先讀取相同條件下的實際數據與仿真數據,然后選擇適當的預處理方法進行數據處理,圖形顯示進行定性分析,之后選擇驗證方法,對2組數據進行計算,最后根據方法所得結果判斷一致性程度。在操作過程中,可以使用多種方法綜合比較,從而達到分析實際輸出與仿真輸出的一致性程度。驗證工具的工作流程如圖1所示。

圖1 驗證工具工作流程圖Fig.1 Flow chart of validation tool
依據驗證工具的需求分析,結合工具工作流程,設計模型驗證工具的總體框架如圖2,包括數據輸入模塊、曲線繪制模塊、驗證方法模塊以及結果顯示模塊。數據輸入模塊實現對仿真模型輸出和真實系統輸出數據的導入并進行預處理;曲線繪制模塊實現圖示比較,對仿真結果的定性分析;驗證方法模塊是工具的核心,提供給用戶相應的驗證方法,包括靜態性能驗證方法、動態性能驗證方法和基于知識的驗證方法;結果輸出模塊直觀的顯示驗證結果,實現工具與用戶的交流。
根據驗證工具的總體設計,驗證工具分為數據輸入模塊、曲線繪制模塊、驗證方法模塊和結果輸出模塊,工具采用C#語言開發,基于Microsoft Visual Studio平臺實現,下面分別闡述各個模塊的具體設計與實現。
2.1數據輸入模塊設計與實現
數據輸入模塊實現待驗證數據和參考數據的導入和處理,包括2方面功能:數據導入、數據預處理。
數據導入主要用來讀取待驗證的仿真模型輸出數據和參考數據,然后直觀地顯示出來。因此,該模塊應具有導入文本數據庫、Access數據庫或其他形式的數據庫文件,并具有顯示功能。該功能的實現,采用C#類庫中的System.IO.FileStream類對文件實現讀寫操作。
數據預處理對導入的仿真數據和參考數據進行處理。由于實際系統的輸出數據一般靠測量獲得,這樣不可避免地引入了一定的噪聲或異點。因此進行模型驗證之前,有必要根據實際需求對數據進行預處理,來判斷待處理的數據是否滿足驗證方法的使用條件或處理后使其滿足一定的條件。因此,驗證工具應具有數據預處理功能,常用的預處理方法有剔除異點、提取趨勢項、五點三次平滑、平滑方法等[9],數據預處理模塊中應集成這幾種預處理方法。使用的預處理方法及其實現函數如表1所示。
2.2曲線繪制模塊
曲線繪制模塊的功能是將仿真模型的輸出數據與參考數據在同一坐標系中描繪出來,主要是完成定性的評估。該方法適合于模型驗證初期階段或對精度要求不高的場合,但該方法帶有明顯的主觀性和不確定性,不同的操作人員在做出判斷的過程中所依據的標準不同,會得出不同的結論。
對于繪圖要求不高的情況,工具是通過使用C#中Graphics類對象的DrawBezier()和DrawLine()方法實現。DrawBezier()方法為可重載方法,主要用于繪制貝塞爾曲線,Drawline()方法主要用于繪制兩點之間的直線。對于繪圖要求較高的情況,該工具是通過C#與Matlab混合編程實現,利用Matlab為.NET提供的構建工具創建.NET 程序集,然后在C#中直接調用[10]。這種方法既發揮了C#設計界面友好、方便的特性,也吸取了Matlab強大的繪圖功能。

圖2 驗證工具總體框架圖Fig.2 Framework of validation tool
表1 預處理方法及其實現函數
Table 1 Pretreatment method and its implementation function

預處理方法方法描述函數使用范圍剔除異點剔除異常數據,采用拉伊特方法,即3σ準則Layite()靜態性能驗證提取趨勢項剔除數據的趨勢項,采用最小二乘法Detrend()動態性能驗證平滑去除噪聲對數據的影響,采用五次三點平滑進行處理Smooth()動態性能驗證
2.3驗證方法模塊的設計
最基本、最直接的模型驗證就是考察在相同輸入條件下模型輸出與實際系統輸出(或理論計算結果)是否一致以及一致性的程度如何。模型驗證方法按判斷標準的不同有主觀與客觀之分,其中客觀方法又按驗證對象性質的不同分為靜態方法和動態方法。對于缺少參考數據的情況,根據文獻[11]提出的基于知識的模型驗證方法,實現基于知識的模型驗證,解決驗證技術在應用中過度依賴領域專家等問題,對缺乏數據的模型驗證提供了有效支持。
(1) 靜態方法
靜態方法主要是針對模型的靜態性能進行驗證。靜態性能是與時間無關的隨機向量,以導彈模型為例,靜態性能有脫靶量、殺傷概率等。靜態性能驗證就是檢驗仿真模型輸出和真實系統輸出數據總體分布的一致性,常用的方法有t檢驗法、F檢驗法、符號檢驗法、秩檢驗法、游程檢驗法、Bayes方法等。常用靜態驗證方法的實現函數與適用范圍如表2所示。

表2 靜態方法實現函數與適用范圍
(2) 動態方法
模型驗證的動態方法主要是針對模型的動態性能進行驗證。動態性能是隨時間變化的隨機過程,以導彈模型為例,動態性能有推力、位置、姿態角等。動態性能驗證就是檢驗仿真輸出和實際系統輸出時間序列樣本的總體一致性,常用方法有TIC(theil′s inequality coefficients)不等式系數法、關聯分析法和譜估計法等。
TIC系數法是一種非常簡便的仿真模型動態驗證方法,它通過構造一個標量函數(TIC系數)來衡量實際系統采樣數據和仿真模型輸出數據在相同的輸入條件下的一致性程度[12],可以在一定程度上反映仿真模型和實際系統的一致性程度,為仿真模型是否可以被接受提供依據。灰色關聯分析方法與TIC系數法類似,也是構造標量函數來表征模型的可信性。它可以在不完全的信息中找出所要分析和研究的因素的關聯性,從而找出主要特征和影響因素[13]。譜估計法[14]認為2個具有相同的概率分布的隨機過程必然有相同的頻譜特性。其基本思想是通過譜密度的一致性來判斷2時間序列的一致性程度。
TIC系數法、灰色關聯系數法和譜估計法分別從時域和頻域實現了對仿真模型的驗證,雖然都能得到模型可信性的度量標準,但各度量的意義并不相同,他們在計算量、對數據要求等方面存在一定差異,各方法的適用范圍與其實現函數如表3所示。

表3 動態方法實現函數與適用范圍
(3) 基于知識的驗證方法
基于知識的驗證是綜合運用規則推理、復雜性測度和特征曲線重構相關理論和方法的仿真模型驗證方法,并分別通過實例分析各種方法的具體應用,較好地解決了驗證方法容易使用不當、復雜非線性系統模型輸出和缺乏參考數據情況下的仿真模型驗證問題。基于知識的仿真模型驗證的框架如圖3所示。
2.4結果輸出模塊的實現
根據選擇的驗證方法,進行綜合計算,輸出驗證結果。用戶也可根據需要生成驗證相關文檔,以Word文檔存儲,該模塊的實現采用Microsoft公司提供的COM技術創建Word文檔[15],并將驗證結論存儲在Word文檔中。核心代碼如下:
//開始一個新的Microsoft Word實例
_Application oWordApp;
{AfxMessageBox("Create Dispatch failed");
retum;
}
//創建一個新文檔
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為在特定條件下通過導彈飛行試驗獲得的導彈脫靶量樣本數據以及在相同條件下導彈制導控制系統模型仿真試驗中的導彈脫靶量樣本數據。應用t檢驗法對導彈制導控制系統模型靜態性能進行檢驗。
構造如下假設檢驗問題:
H0:μ1-μ2=0,
H1:μ1-μ2≠0.

計算出統計量為t=-0.037 5。


由于統計量t?G,故接受H0假設,表明導彈脫靶量飛行試驗數據和仿真模型脫靶量數據總體均值一致。
應用驗證工具對導彈制導控制系統模型脫靶量數據進行檢驗。

圖3 基于知識的仿真模型驗證方法框架Fig.3 Framework of validation method based on knowledge
表4 導彈脫靶量數據
Table 4 Data of missile miss distance

試驗次數12345678910飛行試驗/m29.325.533.545.632.879.635.743.556.849.6仿真試驗/m39.6146.7128.2663.8227.29112.0721.3720.7932.3835.82
(1) 運行復雜仿真系統模型驗證工具,主界面如圖4所示,驗證數據為導彈脫靶量樣本數據,所以選擇靜態性能驗證。

圖4 模型驗證工具主界面Fig.4 Main interface of validation tool
(2) 在靜態驗證界面,按照規定,導入仿真數據、實際數據,進行處理,繪圖進行定性觀察,選擇驗證方法,這里選擇t驗證法,進行計算,就可得到驗證結果。由圖5可以看出,經過工具的輔助計算,與手工結果一致。

圖5 靜態驗證操作界面Fig.5 Interface of static validation
該工具基于C#語言實現了復雜系統的模型驗證,驗證時,只需遵循驗證工具向導就能快速、有效的完成驗證工作,通過應用表明:
(1) 該工具實現了對模型驗證的自動化支持,提高了工作效率,從而在規定的時間內,盡可能多地完成驗證任務。
(2) 該工具克服了以往對專家過多依賴的問題,人員只需簡單培訓,就可完成驗證工作。
(3) 該工具對同一模型可采用多種驗證方法研究,克服了驗證方法單一的問題,提高了模型驗證的客觀性。
本文針對復雜仿真系統驗證存在的困難,設計并開發了仿真模型驗證工具,大大提高了仿真系統的驗證效率,降低了驗證的困難性。但由于只是初步開發,軟件中還存在不少問題,主要是驗證方法不夠豐富,尤其是基于知識的驗證方法,下一步主要工作是擴展基于知識的驗證方法。進一步完善各項功能,以適應復雜仿真系統模型驗證的需求。
[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]王達. 多武器平臺仿真系統數據VV&C技術研究[D].哈爾濱:哈爾濱工業大學,2006.
WANG Da . The Research of Multiple Armament Platform Simulation[D]. Harbin: Harbin Institute of Technology, 2006.
[7]楊雪榕,廖瑛,馮向軍. 建模與仿真及VV&A管理系統設計[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]. 現代防御技術, 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]吳靜,吳曉燕,陳永興,等.基于改進灰色關聯分析的仿真模型驗證方法[J].系統工程與電子技術,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]傅惠民,陳建偉.仿真結果距離檢驗方法和頻譜分析方法對比分析[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]李勇君,吳曉燕,吳靜,等.復雜仿真系統可信度評估輔助工具設計與實現[J].現代防御技術,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-),男,陜西渭南人。碩士生,主要從事系統建模與仿真與VV&A技術研究。
通信地址:710600陜西省西安市臨潼區新豐鎮八一路一號E-mail:mazhennudt@163.com
10.3969/j.issn.1009-086x.2016.04.024
TP391.9
A
1009-086X(2016)-04-0153-07