摘要:从仿真模型、仿真软件和仿真结果的可靠性分析等三个方面系统总结了计算机仿真技术的
发展状况,准确归纳了连续变量动态系统不同域模型描述形式之间的转换关系,并提出了检验仿
真结果可靠性的两组易于操作的新方法,即置信通道法和仿真过程的反向验证法。
关键词:计算机仿真,系统仿真,仿真模型,仿真软件,可靠性
A Review for Computer Simulation of Dynamic System
Hu Feng Sun Guoji
(System Engineering Institute,Xi’an Jiaotong UNIversity,710049)
Abstract:The status of computer simulation technique is summarized and reviewed in
following three aspects ,including simulation modeling, simulation software and
analysis of simulation results. The transform approaches is summed up and depicted
for continuous variable dynamic system from one field to other. Two practical methods ,namely
confident channels and validation in reverse, are suggested to test and analysis the
reliability of computer simulation.
Key Words:Computer Simulation,System Simulation,Simulation Modeling,Simulation
Software,Reliability
1引言
计算机仿真是指以计算机为主要工具,运行真实系统或预研系统的仿真模型,通过对计算机
输出信息的分析与研究,实现对实际系统运行状态和演化规律的综合评估与预测。它是分析评价
现有系统运行状态或设计优化未来系统性能与功能的一种技术手段,在工程设计、航空航天、交
通运输、经济管理、生态环境、通讯网络和计算机集成等[1~10]领域中有着广泛的应用。
动态系统计算机仿真是一门以系统科学、计算机科学、系统工程理论、随机网络理论、随机
过程理论、概率论、数理统计和时间序列分析等多个学科理论为基础的、以工程系统和各类社会
经济系统为主要处理对象的、以数学模型和数字计算机为主要研究工具的新兴的边缘学科。它属
于技术科学的范畴。
动态系统计算机仿真的目的是通过对动态系统仿真模型运行过程的观察和统计,获得系统仿
真输出和掌握模型基本特性,推断被仿真对象的真实参数(或设计最佳参数),以期获得对仿真
对象实际性能的评估或预测,进而实现对真实系统设计与结构的改善或优化。
根据仿真过程中所采用计算机的类型不同,动态系统计算机仿真可分为模拟机仿真、数字机
仿真和模拟-数字混合机仿真。50年代,计算机仿真主要采用模拟计算机,它主要是根据仿真系统
的数学模型将一系列运算器(如放大器、加法器、乘法器、积分器、函数发生器等)和无源器件
(如电阻器件、电位器等)相互连接形成仿真电路,利用仿真电路进行实验性研究;60年代后,
随着数字计算机迅速发展和广泛普及,系统仿真的主要工具逐步由模拟机转向数字机。但是,传
统的Von Neumann型数字机对信息进行串行处理,难以满足航天、化工等各类大规模复杂系统对仿
真时限的要求。70年代,以数字机与模拟机混合而成的模拟-数字混合机曾一度出现在飞行仿真、
卫星仿真和核反应堆仿真等众多高技术研究领域。近20年来,随着计算机技术的快速发展,特别
是并行处理机和并行处理技术的研究与发展,数字仿真依然成为计算机仿真的主流。
无论是模拟机仿真、数字机仿真、还是模拟-数字混合机仿真,都是以系统数学模型为基础、
在一定假设条件下进行的信息处理过程,是在仿真模型上进行实验研究的过程。
对动态系统的计算机仿真而言,仿真三个要素包括系统、模型和计算机。三者之间关系如图2
所示。相应地,仿真过程可划分为三项基本活动:建模、模型实现和模型实验。
图1 模拟-数字混合计算机示意图
图2 仿真三要素关系图
仿真过程三项基本活动三者之间的关系如图3所示。由图2~3可以看出,系统仿真本质上是一
类面向问题(或对象)、基于模型的活动。动态系统计算机仿真的全过程可划分为四大部分,如
图4所示:
图3 仿真的三项基本活动
图4 仿真研究步骤示意图
①.系统分析
明确仿真研究的对象、目的、系统边界,确定目标函数和控制参量。对于大规模复杂系统,
明晰系统内部层次关系、子系统和上级系统之间以及不同子系统之间关系。
②.模型设计与确认
建立系统数学模型,确定系统原始状态和系统与环境之间的信息与能量交换关系,并使之在
数学模型中得到恰当的体现。
本阶段另一项主要工作是将数学模型转换成相应模拟电路或采用计算机语言可表示和操作处
理的仿真模型。数字仿真情况下,必须规定仿真时间步长和一些特殊系数发生器计算方法等。
模型的分析与确认是系统建模的关键性环节,它从根本上保证仿真结果对系统分析的有效
性。
③.模型实现
根据系统仿真数学模型研制相应模型电路或在数字机上编制相应的数据处理软件,形成仿真
计算的直接工具。
④.仿真实验与仿真结果的分析评估
狭义地说,仿真实验就是对模拟电路加电或数字计算机上运行仿真程序软件,并观察输出电
压电频变化曲线或分析数字机计算结果的过程。根据不同研究对象,仿真实验包括确定具体方案
(例如设置初始条件、过程参数、计算步长和仿真重复次数等),启动仿真过程,生成输出信
息。仿真实验的目的则主要是利用仿真输出信息与实际存在的同类系统进行比较,改进和完善系
统。
2仿真建模
模型分析方法是现代科学的基本研究方法之一。通过对实际系统抽象的或本质的描述,构造
出与实际系统之间存在同构或同态关系的、简化的数学模型或物理模型,以模型分析与模型实验
为基础,达到对实际系统的认识、控制和优化。
建立适合于研究并能较好地体现实际系统各关键特征的模型是模型分析的基础,也是系统仿
真的基础。对一个复杂系统而言,基本的建模过程可以划分为提出系统概念模型、建立结构关系
模型和模型的性能分析、评估与综合三个阶段。如下图5所示。
图5 建模过程示意图
文[2]分别对动态系统描述方法、概念模型表达方式以及结构模型的类型、构造方法、层次结
构分析与建模基本步骤等进行了较全面的阐述。
根据研究对象、表示方式和使用途径不同,系统模型有多种不同分类体系。一般地,从表示
方式可划分为物理模型和数学模型,计算机仿真中主要采用系统数学模型。
系统数学模型根据时间关系可划分为静态模型、连续时间动态模型、离散时间动态模型和混
合时间动态模型。
根据系统的状态描述及其变化方式,可划分为连续变量系统模型和离散事件系统变化模型。
目前,面向系统的计算机仿真技术既涵盖了连续变量动态系统的仿真也涉及离散事件动态系
统的仿真。在连续变量系统模型中,系统各主要因素之间变化关系以及系统的演化规律主要采用
方程式描述。例如,微分方程、偏微分方程、差分方程、回归方程等。对于离散事件动态系统模
型,由于系统状态的变化域为离散空间,状态变化发生在一串难以预知的离散时间点上,因而难
以建立定量变化关系方程,主要采用以网络图为基础的各类流图模型。
2.1连续变量动态系统的仿真建模
连续变量动态系统(CVDS)是指由时间驱动、状态连续变化的一类物理系统。根据系统中时
间取值域和取值方式的不同,CVDS常分为连续时间动态系统、离散时间动态系统和连续-离散时间
混合的动态系统等多种类型。其中,工程采样系统是最常见的离散时间动态系统。
用来描述CVDS的数学模型的种类很多。例如,常/偏微分方程模型、差分方程模型、系统动力
学模型、线性/非线性状态空间模型、(广义)回归模型、自回归(AR)模型、滑动平均(MA)模型和
受控自回归滑动平均(CARMA)模型,等等。
记系统输入为、输出为
,则连续时间CVDS中讨论得最多的是下述常系数高阶微分方
程模型
(1)
对应地,当系统中含有随机性的输入信息时,连续时间随机CVDS系统输入-输出关系常采用随机微分方程:
(2)
并且,通常假定随机过程为某中形式的独立增量过程。在系统工程和随机自动控制等领域
中,下述的一阶随机微分方程:
(3)
有着十分广泛的应用。模型(3)被称为Ito随机微分方程。
对模型(1)~(2)计算机仿真是研究其对应系统的稳定性、系统响应和其它过程行为的重
要手段之一,也是现阶段计算机仿真科学主要研究领域重点研究对象之一。
下面,简要回顾将模型(1)~(2)转化为计算机可执行模型(称为仿真模型)的几种常用
方法。
① 模型转换法
众所周知,模型(1)~(2)涉及高阶微分,的解析解必须由输入过程
和
的高阶积分或高阶随机积分表示,在数字计算机上难以准确实现。一种直观的想法是能否化高阶积分为一阶积分呢?状态空间理论提供了实现这种转换的可能性。
对确定性CVDS的线性模型(1),引进如下记号:
1)
2),
3)
4)
则模型(1)可以改写成下述一阶微分方程组的形式:
(4)
类似地,模型(2)可以改写成下述一阶随机微分方程组的形式:
(5)
式中,向量和矩阵
的定义如下:
对动态-测量系统一次微分方程模型(4)进行积分,可导出状态向量封闭解的解析表达
式
因而有
(6)
记。类似地,当
为均方连续随机过程时,模型(5)也可进一步表示成Ito积
分形式:
(7)
由(6)~(7)可以看出,微分方程模型描述的CVDS计算机仿真问题可转化为单重积分方程
求定积分的计算机实现问题。必须说明的是,上述模型转换形式(4)~(7)是在定常系统模型下
导出的。对于时变系统,只需引入状态转移矩阵,也可以类似地给出简洁积分表达式。
数值积分是连续系统仿真常用算法。在计算数学理论中,对数值积分方法有较详细的论述和
大量的实用算法可供采用。如,Euler积分(一阶Runge-Kutta)法、梯形(二阶Runge-Kutta)
法、四阶Runge-Kutta法、Adame-Bashforth显式公式法、Adame-Moutton隐式公式法、Hamming积
分法和Adama预测-校正法,等等。这些方法在仿真计算中都有过成功应用的实例。影响数值积分
精度的主要因素包括积分方法和步长。文[4]对积分步长的选择和控制技术做了详细介绍。
② 离散相似法
数字计算机通常不具备处理连续信号的能力,对连续时间CVDS采用数值积分法进行仿真时,
实际上是对一串离散时间点上输入信息进行处理的。一种很直观的想法是,能否直接对CVDS的连
续时间模型进行离散化处理呢?离散相似法对这一问题提供了一套完整的解决方法。
离散相似的基本原理是将连续系统进行离散化处理,求得与之等价的离散模型(简称离散相
似模型),并以离散相似模型为仿真模型,实现对原系统的分析和评估。
对于(4)与(6)所描述的连续时间CVDS模型,离散化过程可通过设置两个采样开关和构造
一个适当阶次的信号重构器即可实现。下图6直观地说明了式(6)的离散化过程 。
图6 边疆系统离散化处理
图6中,, T为采样间隔。
当u(t)在每个采样周期内保持常值时,模型(6)的离散化模型可由下述递推形式给出:
(8)
式中,,
。
对随机模型(7)采用离散相似法也可建立如下形式的离散时间线性随机系统模型:
(9)
显然,离散时间的CVDS模型(8)和(9)非常适合在数字计算机上进行计算和仿真。其状态
演化具有逐步递推关系,不用保留历史数据,可有效节省数据存储方面的开销。
模型(9)是线性随机系统理论中最基本的研究模型之一,其状态滤波的Kalman递推估计技术
(即Kalman-Bucy滤波)在航天测控、工程控制、信号处理等领域中有着广泛的应用。近年来,大
量理论研究和应用实例都证实[15~18],Kalman滤波对模型扰动、数据扰动、参数扰动和初值不同
选取缺乏必要的抗扰能力。若采用仿真方法对Kalman滤波相对各种扰动的灵敏度进行定量分析,
则对正确、合理地采用Kalman滤波算法会提供极好的技术支持。
③ 变换操作域方法
在时间域上对连续变量动态系统进行计算机仿真,系统的输出为随时间变化的轨线,这对定
量分析系统的输入-输出关系是很方便的。但是,有时仿真的目的并不是研究系统的输出量值,而
重点是要研究系统的性能,如稳定性、可控性、可达性等。此时,在S域和Z域上对系统进行研究
则要方便得多。
对连续时间CVDS模型(4)等式两侧同时进行Laplace变换,并记和
分别为过程输入/
输出的Laplace变换和
,则不难导的:
(10)
称为系统的传递函数。采用仿真方法研究模型(4)的稳定性等性能时,只须仿真分析W(s)的零点
与极点分布情况,化微分方程的分析处理为代数方程的分析处理。
对离散时间的CVDS模型,采用Z变换技术也可以得到与上述类似的处理方法。
基于Laplace 变换的S域处理和基于Z变换的Z域处理,为设计和改进系统仿真模型提供了极大
的方便。例如,在Z域上讨论和设计CVDS的离散相似模型时,重构器的设计理论就显得深刻得多。
文[3]给出了一般形式的连续系统离散化过程,直观地说明了离散相似法的实现方法。该文还
详细给出了S域上零阶信号重构器、一阶线性重构器和三角形信号重构器脉冲传递函数的解析表达
式:
1)零阶信号重构器
2)一阶线性重构器
3)三角形信号重构器
连续信号离散化不可避免地会带来信息的损失。换句话说,离散化采样数据通过信号重构器
恢复成连续信号后,与离散化处理之前的连续信号之间是存在着误差的。在S域或Z域中研究减小
采样离散化模型误差的途径时,通过引入校正器,并适当调整校正器传递函数,可使离散化模型
尽可能接近系统原型。常用的校正方式有连续型校正和离散型校正两类,如图7~图8所示
图7 连续型校正
图8 离散型校正
④ 高阶系统的简化处理方法
在分析和设计系统时,通常会遇到一些比较复杂的情况,其特点是采用微分方程模型表示时
微分阶次较高;采用状态空间模型表示时状态空间维数较大。对这类系统进行仿真分析,不但要
占用较多内存和耗费大量机时,有时还会影响到仿真过程稳定性和仿真结果准确性。
对高阶系统仿真建模,文[19]详细介绍了几种化高阶、高维模型为低阶、低维模型的方法,
主要分成两大类:一类是以高维状态空间模型为研究对象的时域简化法,另一类是以系统传递函
数为研究对象的S域或频率域方法。
时域简化法中较常用的有系统集结法和摄动法。其中,集结法的基本思想是构造一个将维线
性变换,将n维状态空间模型的主要特征集结到r维(r<n)状态空间模型上;摄动法的基本思想是对系统进行解耦处理,忽略高维状态空间模型中的一些次要内部关系或小参数,将高阶模型分解成若干个低维模型。常用摄动法有针对弱耦合的奇异摄动法和针对强耦合关系的非奇异摄动法。
频率域法常见的有基于有理函数逼近的Pade法和连分式法,以及结合各种不定性判据的混合
法。例如,结合Routh判据的Pade法,结合米哈依洛夫稳定判据的连分式法,等等。这方面的方法
很多,值得一提的还有80年代初提出的带可调参数的频率拟合与Pade联合降阶法。
总之,CVDS的仿真建模是沟通CVDS系统分析与CVDS仿真计算之间的一座桥梁。CVDS仿真模型
种类很多,下图9简要说明了几种常用仿真模型之间转换关系。
图9 几种常见CVDS模型之间的转换关系
3离散事件动态系统的仿真建模
离散事件动态系统(DEDS:Discrete Event Dynamic System)是指受事件驱动、系统状态跳
跃式变化、系统状态迁移发生在一串离散时间点上的动态系统。DEDS大多是人造系统,具有比较
复杂的变化关系,难以采用常规的微分方程、差分方程等方程模型来描述。那么,应采用什么方
式来概括和抽象化分析处理各种类似的离散时间动态系统呢?
自80年代初,美国哈佛大学著名学者Y.C.Ho教授倡导对DEDS理论进行研究以来,这个问题受
到了足够的重视,并出现了多种形式的DEDS模型设计方法。例如,根据事件发生时间对所考察对
象演变过程的分析而言是否有必要纳入研究范围,划分成
1)不带时标的DEDS模型:有限状态自动机模型、Petri网络模型、过程代数模型、时序逻辑模
型,等等;
2)带时标的DEDS模型:赋时Petri网络模型、TIM/RTIL模型、双子代数模型、排队网络模型、
Markov链与GSMP模型,等等;
或根据系统输入信息及状态演变的确定/不确定性,分成确定性DEDS模型和随机性DEDS模型;
也可根据状态变化的量化特征,分成逻辑(定性)模型与数量(定量)模型,等等。
从现已见诸文献的各类DEDS系统描述形式[19~20]看,DEDS建模与模型分析研究处于发展阶
段。模型种类较多,但不同模型之间缺乏必要的转换关系,且每一种模型描述形式往往只适用于
一类或几类问题。换句话说,尚无通用的适合于各类DEDS研究对象的模型表示方式§ 。
从现有模型的形成过程看,DEDS建模的常用方法主要有排队论方法、网络图或事件图法、形
式语言与自动机方法、随机过程(例如,Markov过程和GSMP过程)描述法和抽象代数(例如,双
子代数、极小代数、极大代数)方法等。
离散事件动态系统的模型描述为DEDS仿真创造了条件。但是,并不是所有的DEDS系统模型都
能直接用于计算实现。例如,GSMP模型采用以条件概率分布为基础的简洁的数学表示形式描述
DEDS系统,可用于描述其他模型描述方式不具备的或难以描述的复杂过程,但在计算机上实现
GSMP模型却很困难。换句话说,在DEDS仿真中,也存在一个建立DEDS仿真模型的问题。文[8]提供
的“DEDS仿真一般步骤流程”图10较好说明了DEDS仿真中系统建模与建立仿真模型之间的关系、
仿真模型在DEDS仿真过程中位置及建立仿真模型的重要性。
图10 离散事件系统仿真的一般步骤
与CVDS仿真研究的情况类似,DEDS仿真是通过仿真模型的运行来复现系统行为、分析和评估
系统性能的。建立与真实系统行为具有某种同构或同态关系的仿真模型,同样也是DEDS系统仿真
的核心问题。但是,在CVDS中采用以物理规则为依据、方程式描述的模型设计方法对解决DEDS仿
真建模问题并不很适用。
离散事件系统大多是人造系统,系统状态跳跃式变化,具有复杂的非线性。仿真模型通常采
用流图或网络图描述。例如,事件图模型、Petri网络模型、排队网络模型、自动机模型,等等。
3.1排队论模型
排队论最早由A.K.Erlang于1918年提出,在管理通讯和各类服务系统中有着广泛的应用,但
是采用排队论方法来为DEDS建模服务却是近二十年来的事。以排队论为基础的网络模型是离散事
件系统仿真中最常用的模型。在排队网络模型中,三个基本的构成要素是动态实体的到达模式、
排队规则和服务器的服务机制。
下述流程图11~15是DEDS仿真常用的三种典型的计算机仿真模型。
图11 面向时间的排队系统仿真
图12 面向进程的排队系统仿真
图13 排队网络的面向事件仿真
图11~13所示三种类型的仿真模型设计方法是排队网络仿真时较为常用的处理方法。与此相
对应的是三种不同的仿真策略,即事件调度、活动扫描和进程交互等策略。文[2]对这三种仿真策
略进行了详细阐述,并从系统描述、对建模过程的影响、对仿真推进机制的影响和执行控制时的
特点等几个方面做了比较全面的比较。
在对大规模复杂系统进行仿真建模时,一般并不局限于采用某一种仿真策略,而往往是在同
一个仿真模型中采用多个仿真策略,优化仿真模型的结构,简化仿真软件的设计,提高仿真软件
的适应性,满足不同环境背景的、不同用户的需要。
以排队论方法为基础的仿真模型设计技术主要适用于带时标的随机DEDS系统。Xi-ren
(1989)研究了闭Jackson排队网络的DEDS建模问题,F.Baccelli和A.M.Mekawski(1989)采用该
技术讨论了具有同步约束下资源共享问题的建模方法,Bacelli(1987)讨论了分布系统中的排队
模型问题,Baskett和Candy还讨论了开排队网、闭排队网和混合排队网等的网络问题。
3.2 Petri网络模型
Petri网最早由C.A.Petri于1962年在其博士论文中提出的。它属于DEDS建模文件图技术中用
的最广泛的一类,既可用于带时标DEDS仿真模型,也可用于不带时标的DEDS建模;既可以用于确
定性DEDS模型,也可以用于逻辑性DEDS的定性建模。抽象的说,Petri网是由系统状态节点,事件
迁移节点和迁移方向有向弧连接成的二元有向图。如果记DEDS输入位置节点和输出位置节点所形
成的集合为P,转移节点集合为T,所有转移方向有向弧集合为F,则Petri网络模型可采用三元素
组(P,T,F)表示。
Petri网络模型的主要优点是,采用网络图的形式模拟离散事件系统,形势简洁、直观,特别
适合于描述系统组织、结构和状态的变化:可以在不同概念级别上表明系统的结构和性质;能有
效模拟异步并发系统,直接分析模型实体中是否具有诸如死锁,状态空间无限等异常特征。
基于Petri网络的仿真模型方法在DEDS研究和仿真中有着十分广泛的应用,并解决了许多实际
系统的分析与设计问题。例如,文[10]采用广义随机Petri网分析了计算机局域网并形成了相应的
GSPN仿真与自动分析软件;文[11]讨论了DSPN在柔性制造系统中应用;文[3]采用高级Petri网为
FMS 产生系统建立了相应的模型;在工程计划管理中,Petri网络技术也得到广泛的应用,它通过
确定出工程计划中的关键路线,实现对系统的分析与仿真。
近十几年来,在DEDS研究中Petri网络理论和方法得到迅速了发展。Petri网络模型研究、改
进和拓展工作倍受人们的关注,先后出现了带有禁止弧的计时变迁Petri网、随机Petri网(SPN)、
定随机Petri 网(DSPN)[12]、广义随机网及有向Petri网、有色Petri网,以及出现网、实时网和时
延网等各种类型的扩展Petri网络模型。
3.3 有限状态自动机模型
离散事件系统自动机及形式语言理论最早是由P.J.Ramadge和W.M.Wonbarn等人八十年代中期
提出的,现已成为DEDS研究的重要方法之一。有限状态自动机模型通常由5个基本要素构成:输入
信息集U,输出信息集合Y,有限状态集合S,状态转移和输出函数关系
。并
且,有关系
有限状态自动机模型描述方法主要适用于逻辑定性模型和无时标确定性模型的建模。建立有
限状态自动机模型的关键是,基于适当的仿真策略选用相应状态集合,建立正确的转移关系函数
和输出关系函数。
S.Lafortune 等人成功地采用有限状态自动机方法讨论和研究了数据库管理系统的建模分析
问题,O.Maimon采用该方法解决了柔性制造系统建模与控制问题,文[7]将该方法用于超级市场购
物群市场交易过程建模与模型表示。
到目前为止,自动机方法所建立的DEDS模型主要由三类:确定性离散事件过程模型,不确定
性离散事件过程模型和带受迫事件的离散事件过程模型,等等。
总之,针对不同研究对象建立合适的仿真模型是顺利进行系统仿真实验的关键一环。无论是
定量建模方法、网络图建模方法,还是基于模糊逻辑的定性建模技术,乃至以人工神经网络理论
为基础的各种具有自学习功能的建模方法,都已成为计算机仿真理论的重要组成部分。(待续)
作者简介胡 峰, 男,1964年生,1986年获理学学士学位,1989年获理学硕士学位。现为西安交
通大学系统工程研究所博士研究生,西安卫星测控中心高级工程师,兼中国科联经济发展研究中
心研究员,中国宇航学会会员,《飞行器测控学报》编委。主要研究方向:复杂系统的建模与仿
真、大系统控制论、数据诊断与稳健-容错处理技术。近年来,承担研究科研课题7项,发表研究
论文50多篇,获部委级科技进步二、三等奖7项。
孙国基, 教授,博士导师。1936年生,1966年获得前苏联科学技术系统仿真副博士学位,历任西
安交通大学副校长,工程与科学研究院院长。现任全国系统仿真学会副理事长,《系统仿真学
报》等学术期刊的编委。近年来,主要从事CIMS仿真和虚拟现实在仿真中的应用研究,承担
“863”国家高技术计划等攻关课题多项,获全国科学大会奖及多项部委级科技进步奖,并发表研
究论文50多篇。
胡峰(西安交通大学系统工程研究所, 710049)
孙国基(西安交通大学系统工程研究所, 710049)
卫军胡(西安交通大学系统工程研究所, 710049)




