复杂仿真系统模型验证工具设计与实现
2016-10-24马震吴晓燕张蕊卜祥伟
马震,吴晓燕,张蕊,卜祥伟
(空军工程大学 防空反导学院,陕西 西安 710051)
复杂仿真系统模型验证工具设计与实现
马震,吴晓燕,张蕊,卜祥伟
(空军工程大学 防空反导学院,陕西 西安710051)
模型验证是VV&A工作的重要内容之一,为了提高复杂仿真系统模型验证的工作效率,基于C#语言,设计了复杂仿真系统模型验证工具。详细阐述了验证工具的总体结构设计,深入讨论了各子模块的功能和具体实现,并通过实例说明了该工具的设计和实现是合理有效的,实现了模型验证的自动化。
仿真系统;VV&A; 验证工具;流程图;框架图;方法库
0 引言
目前,国内外仿真界已经达成了共识:没有经过验证的仿真模型没有任何价值[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文档中。另外,参考基于知识的验证方法,对缺乏参考数据的模型验证也提供了有效支持。
1 验证工具总体结构框架
复杂仿真系统模型验证工具是为了满足VV&A验证需求而设计开发的,该工具的目标是将模型验证理论、方法与工程实践相结合,最终完成一个在方法上有独到之处,能够解决工程问题,满足实际需要,具有友好、简洁操作界面的辅助工具。根据需求分析,模型验证工具应具备以下功能:
(1) 提供友好界面,方便用户进行操作;
(2) 实现对数据进行预处理、定量和定性分析功能;
(3) 实现常用模型验证方法,建立验证方法库;
(4) 能直观地显示各种数据信息、操作信息和结果信息,并提供验证报告生成,验证文档管理功能。
模型验证主要是通过考察相同输入条件下,仿真系统输出与实际系统输出是否一致或者一致性程度,验证工具的工作流程是:首先读取相同条件下的实际数据与仿真数据,然后选择适当的预处理方法进行数据处理,图形显示进行定性分析,之后选择验证方法,对2组数据进行计算,最后根据方法所得结果判断一致性程度。在操作过程中,可以使用多种方法综合比较,从而达到分析实际输出与仿真输出的一致性程度。验证工具的工作流程如图1所示。
图1 验证工具工作流程图Fig.1 Flow chart of validation tool
依据验证工具的需求分析,结合工具工作流程,设计模型验证工具的总体框架如图2,包括数据输入模块、曲线绘制模块、验证方法模块以及结果显示模块。数据输入模块实现对仿真模型输出和真实系统输出数据的导入并进行预处理;曲线绘制模块实现图示比较,对仿真结果的定性分析;验证方法模块是工具的核心,提供给用户相应的验证方法,包括静态性能验证方法、动态性能验证方法和基于知识的验证方法;结果输出模块直观的显示验证结果,实现工具与用户的交流。
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();
3 应用举例
下面使用仿真模型验证工具对实际中已建立的仿真模型进行有效性验证。表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) 该工具对同一模型可采用多种验证方法研究,克服了验证方法单一的问题,提高了模型验证的客观性。
4 结束语
本文针对复杂仿真系统验证存在的困难,设计并开发了仿真模型验证工具,大大提高了仿真系统的验证效率,降低了验证的困难性。但由于只是初步开发,软件中还存在不少问题,主要是验证方法不够丰富,尤其是基于知识的验证方法,下一步主要工作是扩展基于知识的验证方法。进一步完善各项功能,以适应复杂仿真系统模型验证的需求。
[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