计算机仿真(编写)_第1页
计算机仿真(编写)_第2页
计算机仿真(编写)_第3页
计算机仿真(编写)_第4页
计算机仿真(编写)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.1 系统仿真概述(1)系统的概念 系统有不同的定义,按照德谟克利特的理解,系统可以定义为:任何事物都是在联系中显现出来的,都是在系统中存在的,系统联系规定每一事物,而每一联系又能反映系统的联系的总貌。 G.Golden也给出了一个实用的定义:按照某些规律结合起来,互相作用、互相依存的所有实体的集合或总和”。比如,一个理发馆系统组成为: 实体:服务员、顾客 顾客:按某种规律到达,服务完毕后顾客离去 服务员:根据顾客的要求,按一定的程序服务相互作用: 顾客到达模式影响着服务员的工作忙闲状态,顾客排队状态 服务员的多少和服务效率:影响着顾客接受服务的质量一个电动机调速系统: 实体:电动机、测速元

2、件、比较元件以及控制器。 相互作用:实现按给定要求调节电动机的速度归纳以上定义,可以认为系统可由三部分组成: 确定边界、输入、输出,而描述系统的“三要素”为:实体、属性、活动实体确定了系统的构成,也就确定了系统的边界;属性也称为描述变量,描述每一实体的特征;活动定义了系统内部实体之间的相互作用,从而确定了系统内部发生变化的过程。(2)模型的概念模型是实际系统本质的抽象与简化,模型主要适用于以下情况:(1)真实的系统尚未建立(2)可能会引起系统破坏或发生故障(3)难以保证每次试验的条件相同(4)试验时间太长或费用昂贵模型分为两大类物理模型,采用一定比例尺按照真实系统的“样子”制作沙盘模型数学模型

3、,用数学表达式形式来描述系统的内在规律。 定义如下集合结构: (3-1):时间基,描述系统变化的时间坐标 为整数则称为离散时间系统,为实数则称为连续时间系统:输入集,代表外部环境对系统的作用。被定义为,其中,即代表个实值的输入变量。:输入段集,描述某个时间间隔内输入模式,是的子集。:内部状态集,是系统内部结构建模的核心。:状态转移函数,定义系统内部状态是如何变化的。 它是映射:其含义为:若系统在时刻处于状态,并施加一个输入段,则表示系统处于状态。:输出函数,它是映射: 输出函数给出了一个输出段集。:输出段集,系统通过它作用于环境。系统模型水平可以分为三类:(1) 行为水平亦称为输入/输出水平将

4、系统视为一个“黑盒”,在输入信号的作用下,只对系统的输出进行测量;(2) 分解结构水平将系统看成若干个黑盒连接起来,定义每个黑盒的输入与输出,以及它们相互之间的连接关系;(3) 状态结构水平不仅定义了系统的输入与输出,而且还定义了系统内部的状态集及状态转移函数。 按照Orën的思路,模型可分类为下表形式: 表3.1 模型分类模型描述变量的轨 迹模 型形 式变量范围模型的时间集合连续离散空间连续变化模型偏微分方程a连续时间模型空间不连续变化模型常微分方程a差分方程a离散时间模型离散(变化)模型有限状态机a马尔可夫链a活动扫描a连续时间模型事件调度a进程交互a(3)仿真的概念1961年,

5、首次将仿真技术性地定义为“仿真意指在实际系统尚不存在的情况下对于系统或活动本质的实现”;1978年,Körn定义“连续系统仿真”为“用能代表所研究的系统的模型作实验”;1982年,Spriet进一步将仿真的内涵加以扩充:所有支持模型建立与模型分析的活动即为仿真活动;1984年,Oren给出了仿真的基本概念框架“建模实验分析”,如图3-2所示,并定义“仿真是一种基于模型的活动”。 其中,“系统、模型、仿真”三者之间的关系为:系统是研究的对象,模型是系统的抽象,仿真是对模型的实验。传统上意义上:“系统建模”属于系统辨识技术范畴;“仿真建模”即针对不同形式的系统模型研究其求解算法;“仿真实

6、验”包括检验(Verification):“仿真程序”的检验和致效(Validation):将仿真结果与实际系统的行为进行比较现代仿真技术:将仿真活动扩展到上述三个方面,并将其统一到同一环境中。对于系统建模,它是:基本定律及系统辨识等方法的计算机程序化;用仿真方法确定实际系统的模型;基于模型库的结构化建模;采用面向对象建模(Object- Oriented Modeling)方法,在类库的基础上实现模型拼合与重用。对于仿真建模,它包括:许多新算法和新软件;模型与实验分离技术,即模型的数据驱动(data driven)。而仿真问题又分为两部分:模型与实验;模型又分为两部分:参数模型和参数值而对于

7、仿真实验,将实验框架与仿真运行控制区分开来;实验框架定义一组条件;输出函数的定义也与仿真模型分离开来。同时Orën描述了仿真概念的框架如图3-3所示。其中:“仿真问题描述”即为“仿真建模”;“行为产生”表达了“仿真实验”;“模型行为及其处理”就是“输出处理”(4)仿真技术的应用仿真技术在系统设计中的应用情况有两种:-新系统设计:提供了强有力的工具。在可行性论证阶段,进行定量比较,为系统设计打下坚实的基础;在系统设计阶段,进行模型实验、模型简化并进行优化设计。-系统改造设计:涉及新的设备、部件或控制装置。利用仿真技术进行分系统实验,即一部分采用实际部件,另一部分采用模型,避免由于新的子

8、系统的投入可能造成对原系统的破坏或影响,大大缩短开工周期,提高系统投入的一次成功率仿真技术在系统分析中的应用,主要体现在:在真实系统上进行试验:-在真实系统上试验会破坏系统的正常运行;-难以按预期的要求改变参数,或者得不到所需要的试验条件;-很难保证每次的操作条件相同,难以对试验结果做出正确的判断;-无法复原;-试验时间太长、费用太大或者有危险等仿真在教育与训练中的应用,可制作成训练仿真系统:利用计算机并通过运动设备、操纵设备、显示设备、仪器仪表等复现所模拟的对象行为,并产生与之适应的环境,从而成为训练操纵、控制或管理这类对象的人员的系统。三大类:-载体操纵型 这是与运载工具有关的仿真系统,航

9、空、航天、航海、地面运载工具,以训练驾驶员的操纵技术为主要目的。-过程控制型 用于训练各种工厂的运行操作人员如电厂、化工厂、核电站、电力网等-搏奕决策型 企业管理人员(厂长、经理),交通管制人员(火车调度、航空管制、港口管制、城市交通指挥等), 军事指挥人员(空战、海战、电子战等)。仿真在产品开发及制造过程中的应用,主要体现在虚拟设计及制造(Virtual Manufacturing):是实际制造在计算机上的本质实现,是仿真技术以制造过程为对象的全方位的应用。(5)系统仿真的类型(i)根据模型的物理属性分类物理仿真:按照真实系统的物理性质构造系统的物理模型,并在物理模型上进行实验的过程称为物理

10、仿真。物理仿真的优点是:直观、形象,也称为“模拟”。物理仿真的缺点是:模型改变困难,实验限制多,投资较大。数学仿真:对实际系统进行抽象,并将其特性用数学关系加以描述而得到系统的数学模型,对数学模型进行实验的过程称为数学仿真。计算机技术的发展为数学仿真创造了环境,亦称为计算机仿真数学仿真优点是:方便、灵活、经济。数学仿真缺点是:受限于系统建模技术,即系统数学模型不易建立。半实物仿真:即将数学模型与物理模型甚至实物联合起来进行实验。· 对系统中比较简单的部分或对其规律比较清楚的部分建立数学模型,并在计算机上加以实现· 对比较复杂的部分或对规律尚不十分清楚的系统,其数学模型的建立

11、比较困难,则采用物理模型或实物· 仿真时将两者连接起来完成整个系统的实验(ii)根据仿真计算机类型分类模拟计算机仿真:模拟计算机本质上是一种通用的电气装置,这是5060年代普遍采用仿真设备。将系统数学模型在模拟机上加以实现并进行实验称为模拟机仿真。模拟机仿真是一种并行仿真,仿真时,代表模型的各部件是并发执行的。数字计算机仿真:将系统数学模型用计算机程序加以实现,通过运行程序来得到数学模型的解,从而达到系统仿真的目的。早期的数字计算机仿真则是一种串行仿真,因为计算机只有一个中央处理器(CPU),计算机指令只能逐条执行。数字模拟混合仿真:为了发挥模拟计算机并行计算和数字计算机强大的存贮记

12、忆及控制功能,以实现大型复杂系统的高速仿真,将系统模型分为两部分,其中一部分放在模拟计算机上运行,另一部分放在数字计算机上运行,两个计算机之间利用模/数和数/模转换装置交换信息。(iii)根据仿真时钟与实际时钟的比例关系分类实际动态系统的时间基称为实际时钟,系统仿真时模型所采用的时钟称为仿真时钟,以此将仿真分为:· 实时仿真:即仿真时钟与实际时钟完全一致,模型仿真的速度与实际系统运行的速度相同当被仿真的系统中存在物理模型或实物时,必须进行实时仿真。· 亚实时仿真:即仿真时钟慢于实际时钟,模型仿真的速度慢于实际系统运行的速度,也称为离线仿真。· 超实时仿真:即仿真时

13、钟快于实际时钟,模型仿真的速度快于实际系统运行的速度。(iiii)根据系统模型的特性分类l 连续系统仿真连续系统是指系统状态随时间连续变化的系统,分为:-集中参数系统模型,一般用常微分方程(组)描述。-分布参数系统模型,一般用偏微分方程(组)描述。其中,离散时间变化模型中的差分模型归为连续系统仿真范畴。l 离散事件系统仿真离散事件系统是指在某些随机时间点上系统状态发生离散变化的系统。与连续系统的主要区别在于:-状态变化发生在随机时间点上这种引起状态变化的行为称为“事件”,因而这类系统是由事件驱动的;-“事件”往往发生在随机时间点上,亦称为随机事件,因而一般都具有随机特性;-系统的状态变量往往是

14、离散变化的;-系统的动态特性很难用人们所熟悉的数学方程形式描述-研究与分析的主要目标是系统行为的统计性能而不是行为的点轨迹。(6)系统仿真的一般步骤一般情况下,系统仿真可分为以下步骤,如图3-3。建模与形式化:确定模型的边界,模型进行形式化处理;仿真建模:选择合适的算法,确定算法的稳定性、计算精度、计算速度;程序设计:将仿真模型用计算机能执行的程序来描述,程序中要包括仿真实验的要求 仿真运行参数、控制参数、输出要求;模型校验:程序调试,检验所选仿真算法的合理,检验模型计算的正确性(Verification)仿真运行:对模型进行实验仿真结果分析:对系统性能作出评价,对模型可信性进行检验(Vali

15、dation),只有可信的模型才能作为仿真的基础3.2 连续系统仿真 连续系统模型描述连续系统是指系统状态变化在时间上是连续的,可以用方程式(常微分方程、偏微分方程、差分方程)描述系统模型。按照式(3-1),连续系统数学模型可定义如下集合结构:典型的形式有:1. 常微分方程-输入/输出水平 (3-2)其中n为系统的阶次,为系统的结构参数,为输入函数的结构参数,它们均为实常数。2.传递函数-输入/输出水平若系统的初始条件为零,对(3-2)式两边取拉氏变换后稍加整理: (3-3)(2)式称为系统的传递函数。3.状态空间描述-状态结构水平系统内部模型即为状态空间模型。状态空间描述的一般形式为: 状态

16、方程 (3-4)输出方程 (3-5)式3-4为状态方程,式3-5为输出方程。其中A是n*n维矩阵,B是n*1维矩阵,C是1*n维矩阵。对形如式3-2的单数入单输出的n阶系统,引进n个内部状态变量x1,x2,,xn,易于将其转换为上述形式的状态方程。作用函数U为单输入u,输出变量Y为单输出。 模型结构变换连续系统仿真要将这个系统的模型在计算机上实现出来,首先要把系统的各种描述形式转换成内部模型状态空间模型,将其称为模型结构变换。1输入/输出水平模型到内部模型的变换一连续系统,它的数学模型如(3-6)式所示 (a0=1) (3-6)今引进n个状态变量: , , , 则有 将上述n个一阶微分方程写成

17、矩阵形式可得 (3-7) (3-8)外部模型变换到内部模型不唯一,所以仿真模型也不唯一。一个系统有多种实现,最小实现的充要条件是(A、B、C)为完全能控且完全能观测。2 系统状态初始值变换如果系统是非零初始条件,那么从外部模型变换到内部内部模型还必须考虑如何将给定的初始条件转变为相应的状态变量的初始值。 若系统是由如下一般形式的n阶微分方程来描述:系统初始条件为:。伴随方程法:一阶微分方程组的状态变量记为,如果它们满足如下关系: (8) (9) (10) (11)该状态方程与原方程等价。伴随方程法显式地表示了状态变量与原输入/输出变量及其高阶导数之间的关系,因而易于进行初始值的转换。这样得到状

18、态方程及输出方程: (12)其中 设a0=1,初值转换方程:伴随方程有多种形式,因而得到的状态方程也不唯一。那么,实现这种初值转换的条件是什么呢?考虑转换后得到的系统状态空间模型为: 即假定u的n阶导数项的系数c0=0,已知系统的初始条件为: 则为了由上述初始值求出状态变量的初始值,可列出以下方程: 于是可得下列矩阵方程 (13)其中 为n´n方阵 由(16)式可得: (14)即,若q 存在,则可由(14)式求出 x(t) 的初始值。由控制理论可知, q 是(A、B、C)的能观判别阵,若(A、B、C)是完全能观的,则q非奇异。这就是说,由高阶微分方程输入/输出变量初始值转变为状态初始

19、值的条件是:内部模型(A、B、C)是完全能观的。3.3 经典的连续系统仿真建模方法学其主要内容包括:连续系统数字仿真的基本概念、经典的数值积分法、经典的线性多步法等。3.3.1 离散化原理及要求问题:数字计算机在数值及时间上的离散性用于处理被仿真系统数值及时间上的连续性。连续系统仿真,从本质上,对原连续系统从时间、数值两个方面对原系统进行离散化并选择合适的数值计算方法来近似积分运算,使离散模型近似于原连续模型。相似原理:设系统模型为:,其中u(t)为输入变量,y(t)为系统变量;令仿真间间隔为h,离散化后的输入变量为,系统变量为,其中表示t=nh。如果 ,即 ,(对所有n=0,1,2,)则可认

20、为两模型等价。原连续模型仿真模型u(t)h y(t) -+图3-1相 似 原 理对仿真建模方法三个基本要求:(1)稳定性:若原连续系统是稳定的,则离散化后得到的仿真模型也应是稳定的。(2)准确性:有不同的准确性评价准则,最基本的准则是: 绝对误差准则: 相对误差准则:其中d 规定精度的误差量。(3)快速性:若第n步计算对应的系统时间间隔为计算机由计算需要的时间为Tn,若Tn=hn 称为实时仿真,Tn<hn称为超实时仿真 Tn>hn 称为亚实时仿真,对应于离线仿真对,已知系统变量的初始条件, 要求随时间变化的过程,为初值问题,需要用到积分算法。其计算过程: 由初始点的 由欧拉法得:

21、对任意时刻tn+1图3.2数值积分法原理 截断误差正比于常用的梯形法表示: 是隐函数形式。预报可采用欧拉法估计初值,然后用梯形法校正: 校正公式: 预报公式: 反复迭代,直到满足。经典的数值积分法可分为两类:单步法与多步法3.3.2 龙格库塔法1龙格-库塔法基本原理对 若令: 则有 的数值求解称作“右端函数”计算问题。在附近展开台劳级数,只保留项,则有: (15)假设这个解可以写成如下形式: 其中 对式右端的函数展成台劳级数,保留项,可得: 代入,则有: (16)将(16)式与(15)式进行比较,可得: 于是有四个未知数但只有三个方程,因此有无穷多个解。若限定,则 计算公式: 其中 若写成一般

22、递推形式,即为: 其中 截断误差正比于h3,称为二阶龙格¾库塔法(简称RK-2)。截断误差正比于h5的四阶龙格-库塔法(简称RK-4)公式: 其中: 2龙格-库塔法的特点:(1) 形式多样性例:非唯一解,可以得到许多种龙格-库塔公式: 其中 各种龙格-库塔法可以写成如下一般形式: 其中 式中各系数满足以下关系s称为级数,表示每步计算右端函数的最少次数。可以证明,1阶公式至少要计算一次,2阶公式;.;4阶公式;依此类推。(2) 单步法在计算时只用到,而不直接用等项。其优点为:存储量减小,可以自启动。(3) 可变步长步长在整个计算中并不要求固定,可以根据精度要求改变但是在一步中,为计算若

23、干个系数,则必须用同一个步长。(4) 速度与精度 四阶方法的可以比二阶方法的大10倍,每步计算量仅比二阶方法大一倍,高于四阶的方法由于每步计算量将增加较多,而精度提高不快。3 实时龙格库塔法实时仿真:要求仿真模型的运行速度往往与实际系统运行的速度保持一致。一般的数值积分法难以满足实时仿真的要求,这不仅仅是因为由这些方法所得到的模型的执行速度较慢,而且这些方法的机理不符合实时仿真的特点。考虑系统 RK-2公式如下: 一个计算步内分两子步:tn时刻:利用当前的un,yn计算k1-计算一次右端函数需tn+h/2时刻:应计算k2,尽管此时yn +1/2已经得到,但un +1则无法得到。(若对un +1

24、也进行预报加大仿真误差)。仿真执行延迟h/2输出要迟后半个计算步距实时2阶龙格库塔法: tn时刻:应计算k1,利用当前的un,yn,需要;tn+h/2时刻,应计算k2,此时yn +1/2已经得到,un +1/2也可得到,k2的计算就不会引入新的误差。计算一次右端函数需要,可实时输出yn +1。3.3.3 线性多步法1.线性多步法基本原理基本原理:利用一个多项式去匹配变量若干已知值和它们的导数值。设:时刻的和已知,则该方法可分两步:预报:由和来计算校正:若也已知,由它们来计算采用的多项式具有以下形式(m阶): 其中:是待定系数,。在时刻,0,可得到: (17)由和确定(i=0,1,2,m),需要

25、m+1个独立方程。该m+1个方程可由以下等式导出: (j=1,2,.,k) (18)(1)预报公式令m=2k-1,从(18)式得到如下方程组: (19)将其写成矩阵形式: (20)其中上标p表示预报。其解为: (21)由于为常数阵,其逆存在,Z向量中的各元素为已知值,因而d向量的各元素值可计算得到,从而由,得到下一时刻的预报值。缺点:只有是所需要的,其它元素的计算成为多余,得不到与和的显式表达式定义: ,为(m+1)´1的列向量 (22)定义辅助变量 (23)此式可改写为 (24)向量的元素可划分为两个组 (25)例:k=3,则(24)式为: 可计算得到: T 只依赖于k,即先前和的

26、个数,而与它们的数值无关。这样,可以预先求解(24)式得到。 (26)从而得到的显式表达式: (27)(2)校正公式预报公式显式公式,未包括。校正:对该预报值应进行校正,即先预报得到,然后再用此值推出由和以及来预报,可令m=2k-1,从(2)式得到如下方程组: 将其写成矩阵形式: (29)其中上标c表示校正,可得 (30) (31)定义:为(m+1)´1的列向量,上标T表示转置。将左乘(30)式可得: (32)定义 (33)可改写为 (34) (35)例:k=3 同样,只依赖于k,即先前和的个数,而与它们的数值无关。这样 (36)从而 (37)2. 线性多步法误差分析为了便于分析,对

27、预报公式和校正公式,定义统一的表达式: (38)0 ,显式预报 , ,显式预报时称为后向差分公式(BDF) 同时均不等于0时为隐式校正公式,k称为公式的阶次。假设变量各时间的精确值已经得到,将其代入(38)式,可得: (39)在附近,将每个函数展开成泰勒级数: (40)对所有i(i=0,1,2,k),将(40)式代入(39)式,合并同类项,可得 (41)其中 (42)如均为0,则称为p阶公式 (43)预报与校正公式的截断误差系数可以用(44)式来计算,即 (44)3.稳定性分析仿真方法选择的基本要求:仿真计算不改变原系统的绝对稳定性。 且 原系统是稳定的。观察欧拉法仿真递推公式 故有 (45)

28、yn (n=0,1,2,L)为它的一个仿真解,设为其准确解,即 (46)用(46)式减去(28)式,可得: 即 (47)特征方程为 ( 48)显然,为了使扰动序列en不随n增加而增长,必须要求: (49)我们称它所对应的域就是该算法的稳定域: h£ 2½1/a½,即h小于等于系统时间常数的两倍。确定数值积分法稳定域的一般方法测试方程: 数值积分公式 (50)其中是一个关于高阶多项式函数,则只有当 ½½<1时,算法才稳定。3.4 离散事件系统仿真基础 基本概念离散事件系统:系统中的状态只是在离散时间点上发生变化, 而且这些离散时间点一般是不

29、确定的。例如:单人理发馆系统, 设上午9:00开门, 下午5:00关门 顾客到达时间一般是随机的, 为每个顾客服务的时间长度也是随机的。 系统的状态:服务台的状态(忙或闲)、顾客排队等待的队长。 状态量的变化也只能在离散的随机时间点上发生。在离散系统仿真中,有以下术语需要定义:(1)实体 分为两大类: 临时实体及永久实体临时实体:在系统中只存在一段时间的实体。这类实体由系统外部到达系统, 通过系统, 最终离开系统。永久实体:永久驻留在系统中的实体。只要系统处于活动状态, 这些实体就存在, 或者说, 永久实体是系统处于活动的必要条件。临时实体按一定规律不断地到达(产生), 在永久实体作用下通过系

30、统, 最后离开系统, 整个系统呈现出动态过程。(2)事件 引起系统状态发生变化的行为。从某种意义上说, 这类系统是由事件来驱动的。进 程排队活动服务活动顾客到达事件服务开始事件服务结束事件图3.4 事件、活动、进程三者关系示意图事件表:实现对系统中的事件进行管理, 表中记录每一发生了的或将要发生的事件类型, 发生时间, 以及与该事件相联的实体的有关属性等等。系统事件:系统中固有事件,“程序事件”, 用于控制仿真进程。(3)活动 用于表示两个可以区分的事件之间的过程, 它标志着系统状态的转移。 顾客的到达事件与该顾客开始接受服务事件之间可称为一个活动(4)进程 进程由若干个事件及若干活动组成,

31、一个进程描述了它所包括的事件及活动间的相互逻辑关系及时序关系。(5)仿真钟离散事件动态系统的状态本来就只在离散时间点上发生变化,因而不需要进行离散化处理。由于引起状态变化的事件发生时间的随机性,仿真钟的推进步长则完全是随机的两个相邻发生的事件之间系统状态不会发生任何变化,因而仿真钟可以跨过这些“不活动”周期,仿真钟的推进呈现跳跃性,推进速度具有随机性。时间控制部件是必不可少的, 以便按一定规律来控制仿真钟的推进。(6) 统计计数器某一次仿真运行得到的状态变化过程只不过是随机过程的一次取样,它们只有在统计意义下才有参考价值。在仿真模型中, 需要有一个统计计数部件, 以便统计系统中的有关变量。离散

32、事件系统仿真研究的一般步骤:(1)系统建模(2)确定仿真算法(3)建立仿真模型(4)设计仿真程序(5)仿真结果分析离散事件系统仿真策略主要分三种:事件调度法、活动扫描、进程交互法。1、主要概念() 成分(Component):相应于系统中的实体,用于构造模型中的各个部分,可分为两大类:主动成分(Active-type Component):可以主动产生活动的成分, 如排队系统中的顾客,它的到达将产生排队活动或服务活动。被动成分(Passive-type Component):本身不能激发活动,只有在主动成分作用下才产生状态变化。()描述变量:成分状态、属性的描述。()成分间的相互关系:描述成分

33、之间相互影响的规则。 在一个模型中,主动成分对被动成分可能产生作用,而主动成分之间也可能产生作用。C 1. 2, , n成分集合, i是第i个成分分量()。CA=1. 2, , m 主动成分子集, j是第j个主动成分分量(1)。CP=1. 2, , l 被动成分子集, k是第k个被动成分分量(1)。 一个模型中, n=m+lS为所有成分的状态变量, 值域为。P=p1, p2, , pn 参数(属性)集合。 成分的状态下一发生变化的时刻, 值域为 成分在状态变量值为S时的条件是否满足 =true,表示满足, =false表示不满足。TIME为模型仿真钟的值,值域为。2、事件调度法(Event S

34、cheduling)事件调度法基本思想:用事件的观点来分析真实系统,通过定义事件及每个事件发生引起系统状态的变化,按时间顺序确定并执行每个事件发生时有关的逻辑关系。所有事件均放在事件表中。模型中有一个时间控制成分,该成分从事件表中选择具有最早发生时间的事件,并将仿真钟修改到该事件发生的时间,再调用与该事件相应的事件处理模块,该事件处理完后返回时间控制成分。这样,事件的选择与处理不断地进行,直到仿真终止的条件或程序事件产生为止。策略的非形式描述:成分集合:l 主动成分集 l 被动成分集 描述变量:l 描述每一主动成分的变量,的状态值域,下一变化时刻的时间变量l 描述每一被动成分的变量,的状态,值

35、域(被动成分的状态变化只有在主动成分作用下才能发生, 其发生时间由主动成分来确定, 因而不需要时间变量。)l 描述所有成分的属性的变量:参数集合P=p1, p2, , pr成分间的相互关系l 每个主动成分的影响受主在作用下其状态变化的描述, 称为事件处理流程;l 各成分处理的优先级, 即同时发生时的处理顺序(解结规则)。在事件调度法中, 一般主动成分也同时具有被动成分属性, 以便接受其它主动成分的作用。事件调度法策略描述执行初始化操作, 包括:置初始时间t=t0, 结束时间事件表初始化, 置系统初始事件成分状态初始化操作事件表, 包括取出具有事件记录修改事件表推进仿真钟 TIME=t(s)Wh

36、ile(TIME<=)则执行Case 根据事件类型ii=1执行第1类事件处理程序* (*第i类事件处理程序对成分的状态变化进行建模,而且要进行统计计算)i=2执行第2类事件处理程序i=m执行第m类事件处理程序endcase取出具有事件记录* (*若具有事件记录有若干个,则按解结规则处理)置仿真时间 TIME=t(s)endwhile* (*该策略描述未包括对仿真结果的分析等)2 活动扫描法(Activity Scanning)事件调度法中仿真钟的推进仅仅依据准则,而该事件发生的任何条件的测试必须在该事件处理程序内部去处理。如果条件满足,该事件发生,否则,则推迟或取消该事件发生。从本质上来

37、说,事件调度法是一种“预定事件发生时间”的策略。这样,仿真模型中必须预定系统中下一最先发生的事件。该策略对于活动持续时间确定性较强(可以是服从某种分布的随机变量)的系统是比较方便的。当事件的发生不仅与时间有关,而且与其它条件有关,即只有满足某些条件时才会发生。在这种情况下,事件调度法策略的弱点则表现出来了,由于这类系统的活动持续时间的不确定性,因而无法预定活动的开始或终止时间。活动扫描法的基本思想是:用活动的观点建模。系统由成分组成,而成分包含着活动,这些活动的发生必须满足某些条件;每一个主动成分均有一个相应的活动子例程;仿真过程中,活动的发生时间也做为条件之一,而且是较之其它条件具有更高的优

38、先权。设表示成分在系统状态S下的条件是否满足(=true则表示满足,=false则表示不满足),表示成分的状态下一发生变化的时刻,活动扫描法每一步要对系统中所有主动成分进行扫描,当:(i) 仿真钟当前值TIME,且(ii) =true时, 执行该成分的活动子例程。所有主动成分扫描一遍后,则又按同样顺序继续进行扫描,直到仿真结束。显然,活动扫描法由于包括了对事件发生时间的扫描,因而它也具有事件调度法的功能。实现措施:()设置系统仿真钟TIME与成分仿真钟系统仿真钟表示系统仿真进程的推进时间,而成分仿真钟则记录该成分的活动发生时刻,两者的关系可能有三种情况:(i) >TIME 表示该活动在将

39、来某一时刻可能发生;(ii) =TIME 表示该活动如果条件满足则应立即发生;(iii) <TIME 表示该活动按预定时间早应发生, 但因条件未满足, 到目前为止实际上仍未发生, 当前是否发生, 则只要判断其发生的条件。(2)设置条件处理模块该模块用于测定的值及系统仿真钟与成分仿真钟之间的关系, 记FUTURE(S)=TIME,PRESENT(S)=TIME,PAST(S)= <TIME 该模块将满足下列条件: (i)PRESENT(S)ÈPAST(S),且(ii) =true的成分置于可激活(ACTIVATABLE)的成分集合中,即 ACTIVATABLE(S)=此时,

40、系统仿真钟不推进,仅仅处理成分活动,包括修改成分仿真钟。如果可激活的成分集合为空,则将系统仿真钟推进到下一最早发生的活动生成时刻,即 TIME=min(FUTURE(S)策略描述:执行初始化操作, 包括:置初始时间t=t0,结束时间设置主动成分的仿真钟(i=1,2,m)成分状态初始化: 设置系统仿真钟TIME=t0While(TIME<),则执行扫描for j=最高优先数到最低优先数将优先数为j的成分置成iIf(<TIME且 =true)执行活动子例程i 退出,重新开始扫描endifendforTIME=min(FUTURE(S)endwhile策略核心:建立活动子例程模型,包括此

41、活动发生引起的状态变化(自身的),对其它成分的状态产生的作用等等,条件处理模块:策略实现的本质,它相应于事件调度法中的定时模块。4、进程交互法(Process Interactive)进程交互法采用进程(Process)描述系统,它将模型中的主动成分所发生的事件及活动按时间顺序进行组合,从而形成进程表,一个成分一旦进入进程,只要条件满足,它将完成该进程的全部活动。系统仿真钟的控制程序采用两张事件表,其一是当前事件表(CEL:Current Events List),它包含了从当前时间点开始有资格执行的事件的事件记录,但是该事件是否发生的条件(如果有的话)尚未判断,其二是将来事件表(FEL:Fu

42、ture Events List),它包含在将来某个仿真时刻发生的事件的事件记录。每一个事件记录中包括该事件的若干属性,其中必有一个属性,说明该事件在进程中所处位置的指针。当仿真钟推进时,l 满足TIME的所有事件记录从FEL移到CEL中l 对CEL中的每个事件记录进行扫描l 对于从CEL中取出的每一个事件记录n 首先判断它属于哪一个进程以及它在该进程中的位置。n 该事件是否发生则决定于发生条件是否为真。u 若=True, 则发生包含该事件的活动l 只要条件允许, 该进程要尽可能多地连续推进,直到结束;u 如果=False或仿真钟要求停止,则退出该进程,n 然后对CEL的下一事件记录进行处理。l 当中的所有记录处理完毕后,n 结束对的扫描n 继续推进仿真钟,即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论