离散事件系统仿真PPT精品文档_第1页
离散事件系统仿真PPT精品文档_第2页
离散事件系统仿真PPT精品文档_第3页
离散事件系统仿真PPT精品文档_第4页
离散事件系统仿真PPT精品文档_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、1计算机仿真技术主讲教师:张春燕课件制作者:张春燕2上次课重要内容回顾 欧拉法(欧拉法(Euler)特点:算法简单,计算工作量小,且为单步显式法,可特点:算法简单,计算工作量小,且为单步显式法,可自启动,但精度较低。自启动,但精度较低。hytfyymmmm),(13 应用应用euler法对下列一阶微分方程进行离散化处理,法对下列一阶微分方程进行离散化处理,并用并用matlab/simulink进行仿真,然后将结果与用进行仿真,然后将结果与用matlab/simulink中现成函数求得的结果进行比较。中现成函数求得的结果进行比较。练习:练习:(取步长(取步长h=0.1, 0t1)4euler法进

2、行离散化处理法进行离散化处理(取步长(取步长h=0.1, 0t1)解:原方程为解:原方程为 f(t,x)=sin(t)可以应用可以应用Euler递推公式,得到递推公式,得到xn+1=xn+hf(t,n)=xn+0.1sin(tn)5从递推公式中求得数值解如下表:从递推公式中求得数值解如下表:t0 0.10.20.30.40.50.60.7xn0 0.01000.02990.05950.09840.1463 0.20280.2672t0.80.91xn0.33890.41720.50136t=0:0.1:1;y=-cos(t)+1y = 0 0.0050 0.0199 0.0447 0.0789

3、 0.1224 0.1747 0.2352 0.3033 0.3784 0.4597plot(t,y)Matlab程序:程序:78Matlab/simulink:910 龙格库塔法龙格库塔法 欧拉法取泰勒公式的前两项进行近似计算求微分方欧拉法取泰勒公式的前两项进行近似计算求微分方程的解。程的解。为了提高计算精度,必须取泰勒公式为了提高计算精度,必须取泰勒公式(3)的前若的前若干项,干项,但公式直接利用高阶导数,计算不方便。为了避但公式直接利用高阶导数,计算不方便。为了避免求函数的高阶导数,免求函数的高阶导数,可用计算区间内几个点的导数值可用计算区间内几个点的导数值的加权线性组合的数值积分计算方

4、法,称为龙格一库塔的加权线性组合的数值积分计算方法,称为龙格一库塔法法(以下简称以下简称RK法法)。),(),()(2121211hKyhtfKytfKKKhyymmmmmm二阶二阶RK法公式法公式11应用二阶龙格库塔法求系统方程应用二阶龙格库塔法求系统方程02yy,y(0)=1(取步长(取步长h=0.1,0t1)),(),()(2121211hKyhtfKytfKKKhyymmmmmm12应用二阶龙格库塔法求系统方程应用二阶龙格库塔法求系统方程(取步长(取步长h=0.1, 0t1)会了吗?会了吗?13第四讲 离散事件系统仿真u 离散事件系统仿真的定义u 离散事件系统仿真的应用u 离散事件系统

5、仿真的基本要素u 离散事件系统仿真的方法u 离散事件系统仿真举例u 小结u 作业14 离散事件系统的定义:离散事件系统的定义:是指受事件驱动、系统是指受事件驱动、系统状态跳跃式变化的动态系统,系统的迁移发生在一串状态跳跃式变化的动态系统,系统的迁移发生在一串离散事件点上。离散事件点上。例如:银行服务系统是一种典型的离散事件系统,在等待例如:银行服务系统是一种典型的离散事件系统,在等待线上排队等待或正在接受服务的顾客数可作为系统的状态,线上排队等待或正在接受服务的顾客数可作为系统的状态,新顾客的到达或出纳员完成对一个顾客的服务就是可以使新顾客的到达或出纳员完成对一个顾客的服务就是可以使系统状态发

6、生变化的事件系统状态发生变化的事件 u 离散事件系统仿真的定义离散事件系统仿真的定义15 排队系统:排队系统:买火车票、学校食堂、超市收银台、银行买火车票、学校食堂、超市收银台、银行 、公交系统等;、公交系统等; 机械行业:机械行业:自动化生产线调度、立体停车场出入库任务自动化生产线调度、立体停车场出入库任务 调度、物流问题应用、混合电梯群控系统调度、物流问题应用、混合电梯群控系统 建模及新型优化调度、自动化仓库拣选路建模及新型优化调度、自动化仓库拣选路 径、旅游等。径、旅游等。u 离散事件系统仿真的应用离散事件系统仿真的应用16 离散事件系统的特点:离散事件系统的特点: 系统中的状态只是在离

7、散时间点上发生变化,而且系统中的状态只是在离散时间点上发生变化,而且 这些离散事件点一般是不确定的;这些离散事件点一般是不确定的; 系统中的状态变化往往无法用数学公式表示;系统中的状态变化往往无法用数学公式表示; 描述方式通常为图、表等接近自然语言的方式;描述方式通常为图、表等接近自然语言的方式; 动态仿真,时间是仿真中的一个关键变量;动态仿真,时间是仿真中的一个关键变量; 离散事件系统总包含排队过程;离散事件系统总包含排队过程;u离散事件系统仿真的基本要素离散事件系统仿真的基本要素17u 离离散散事事件件仿仿真真的的基基本本要要素素实体实体事件事件活动活动进程进程属性属性状态状态永久实体:永

8、久实体:永久驻留在系统中,是系永久驻留在系统中,是系统处于活动的必要条件,如服务员;统处于活动的必要条件,如服务员;临时实体:临时实体:仅在系统中存在一段仅在系统中存在一段时间,按一定规律到达,如顾客;时间,按一定规律到达,如顾客;临时实体按临时实体按一定规律不一定规律不断产生,在断产生,在永久实体作永久实体作用下通过系用下通过系统,最后离统,最后离开系统开系统;离散事件系统本质是由事;离散事件系统本质是由事件驱动的(件驱动的(例:顾客到达事件使服务员状态由闲到忙,或使队列长度例:顾客到达事件使服务员状态由闲到忙,或使队列长度加加1 );事件的发生一般与某一类实体相联系,放在事件);事件的发生

9、一般与某一类实体相联系,放在事件表中管理,事件表通常记录事件类型、发生条件、时间及表中管理,事件表通常记录事件类型、发生条件、时间及相关实体的有关属性。相关实体的有关属性。;活动表示两个可区;活动表示两个可区分事件之间的过程,标志着系统状态的转移(分事件之间的过程,标志着系统状态的转移(如顾客到达事如顾客到达事件与顾客开始接受服务事件之间为一活动,使服务员忙及队列长度减件与顾客开始接受服务事件之间为一活动,使服务员忙及队列长度减1)相当于系统的子集或子系统,包含若干个事件及活动,并相当于系统的子集或子系统,包含若干个事件及活动,并且描述了其所包含事件及活动间的逻辑关系和时序关系且描述了其所包含

10、事件及活动间的逻辑关系和时序关系(如某一顾客在系统中的全部活动为一进程如某一顾客在系统中的全部活动为一进程)每一实体所具有的有效特征。每一实体所具有的有效特征。指某一时刻该实体的所有属性值。指某一时刻该实体的所有属性值。18例:例:单人理发店系统,设上午单人理发店系统,设上午9:00开门,下午开门,下午5:00关门。关门。l顾客到达时间一般是随机的,为每个顾客服务的顾客到达时间一般是随机的,为每个顾客服务的时间长度也是随机的。时间长度也是随机的。l系统的状态:系统的状态:服务台的状态服务台的状态 (忙或闲忙或闲)、顾客排队、顾客排队等待的队列长度。等待的队列长度。l状态量的变化也只能在离散的随

11、机时间点上发生。状态量的变化也只能在离散的随机时间点上发生。 u 离散事件系统仿真的基本要素离散事件系统仿真的基本要素19l系统:系统:一些具有特定功能、相互之间以一定的规律联系着一些具有特定功能、相互之间以一定的规律联系着 的物体所组成的总体。的物体所组成的总体。 u 离散事件系统仿真的基本要素离散事件系统仿真的基本要素l系统边界:系统边界:为了限制所研究问题涉及的范围,用系统边界为了限制所研究问题涉及的范围,用系统边界 把所研究的系统与影响系统的环境区分开来。把所研究的系统与影响系统的环境区分开来。 20u 离散事件系统仿真的基本要素离散事件系统仿真的基本要素l实体:系统的对象、系统的组成

12、元素都可以称为实体,是仿实体:系统的对象、系统的组成元素都可以称为实体,是仿真系统中可单独识别和刻划的构成要素。真系统中可单独识别和刻划的构成要素。l如:工厂中的机器,商店中的服务员,生产线上的工件,交如:工厂中的机器,商店中的服务员,生产线上的工件,交通道路上的车辆等。在仿真建模人员看来,实际系统就是由通道路上的车辆等。在仿真建模人员看来,实际系统就是由相互间存在一定关系的实体集合组成的,实体间的相互联系相互间存在一定关系的实体集合组成的,实体间的相互联系和作用产生系统特定的行为。和作用产生系统特定的行为。l属性和行为相同或相近的实体可以用类来描述,这样做可以属性和行为相同或相近的实体可以用

13、类来描述,这样做可以简化系统的组成和关系。如,简化系统的组成和关系。如,理发店服务系统可以看成是由理发店服务系统可以看成是由“服务员服务员”和和“顾客顾客”两类实体组成,而两类实体之间存在两类实体组成,而两类实体之间存在服务与被服务的关系。服务与被服务的关系。l离散事件系统中的实体分为临时实体与永久实体。临时实体离散事件系统中的实体分为临时实体与永久实体。临时实体按照一定的规律不断地到达(产生),在永久实体作用下通按照一定的规律不断地到达(产生),在永久实体作用下通过系统,最后离开系统,整个系统呈现动态过程。过系统,最后离开系统,整个系统呈现动态过程。 21u 离散事件系统仿真的基本要素离散事

14、件系统仿真的基本要素l属性:属性反映实体的某些性质,是实体特征的描述,用属性:属性反映实体的某些性质,是实体特征的描述,用特征参数或变量表示,它可以是文字型、数字型或逻辑型。特征参数或变量表示,它可以是文字型、数字型或逻辑型。选用哪些特征参数作为实体的属性与建模目的有关。选用哪些特征参数作为实体的属性与建模目的有关。l选取原则:选取原则:l(1)便于实体的分类。)便于实体的分类。l(2)便于实体行为的描述。)便于实体行为的描述。l(3)便于排队规则的确定。)便于排队规则的确定。 理发店服务系统中顾客、理发师有哪些属性?理发店服务系统中顾客、理发师有哪些属性?22u 离散事件系统仿真的基本要素离

15、散事件系统仿真的基本要素l活动:实体在一段时间内持续进行的操作或过程。活动:实体在一段时间内持续进行的操作或过程。l通常用于表示两个可以区分的事件之间的过程。标志着通常用于表示两个可以区分的事件之间的过程。标志着系统状态的转移。活动反映了系统变化的规律。系统状态的转移。活动反映了系统变化的规律。顾客的顾客的到达事件与该顾客开始接受服务事件之间可称为一个活到达事件与该顾客开始接受服务事件之间可称为一个活动动。l活动所占用的时间区段称为忙期。活动所占用的时间区段称为忙期。l在离散事件建模中,一般要给出忙期的计算公式或概率在离散事件建模中,一般要给出忙期的计算公式或概率分布函数,保证实体在进入某一活

16、动时,其忙期是可计分布函数,保证实体在进入某一活动时,其忙期是可计算的。如算的。如“服务员服务员”对对“顾客顾客”的服务,忙期可从指数的服务,忙期可从指数分布函数抽样得到。分布函数抽样得到。 23u 离散事件系统仿真的基本要素离散事件系统仿真的基本要素l状态:系统的状态是指在某一时刻实体及其属性值的集合。状态:系统的状态是指在某一时刻实体及其属性值的集合。l在理发店服务系统模型中,在理发店服务系统模型中,“顾客顾客”有有“等待服务等待服务”、“接受服务接受服务”等状态,等状态,“服务员服务员”有有“忙忙”、“闲闲”等状等状态。态。l活动总是与一个或几个实体的状态相对应。活动总是与一个或几个实体

17、的状态相对应。 24u 离散事件系统仿真的基本要素离散事件系统仿真的基本要素l事件:事件是引起离散事件系统状态发生变化的行为。事件:事件是引起离散事件系统状态发生变化的行为。l活动是指一段过程,即在一段时间内发生的情况。事件是指一个活动是指一段过程,即在一段时间内发生的情况。事件是指一个时间上的情况,系统发生变化的瞬间就发生了事件。事件的发生时间上的情况,系统发生变化的瞬间就发生了事件。事件的发生会导致状态的变化,而实体的活动可以与一定的状态相对应,因会导致状态的变化,而实体的活动可以与一定的状态相对应,因此可以用事件来表示活动的开始和结束。此可以用事件来表示活动的开始和结束。l从某种意义上说

18、,离散事件系统是由事件驱动的。从某种意义上说,离散事件系统是由事件驱动的。l为实现对系统中事件的管理,在仿真模型中必须建立事件表,来为实现对系统中事件的管理,在仿真模型中必须建立事件表,来记录发生的事件,或将要发生的事件,以及与相应事件关联实体记录发生的事件,或将要发生的事件,以及与相应事件关联实体的有关属性。的有关属性。l事件表:一个有序的记录序列,每个记录包括事件发生时间、事事件表:一个有序的记录序列,每个记录包括事件发生时间、事件类型等一些内容。件类型等一些内容。l“顾客到达顾客到达”为一类事件:系统状态变化服务员的为一类事件:系统状态变化服务员的“状态状态”可可能从闲变到忙(如果无人排

19、队能从闲变到忙(如果无人排队),或者另一系统状态排队的顾,或者另一系统状态排队的顾客人数发生变化(队列人数加客人数发生变化(队列人数加1)。l“顾客离去顾客离去”为一类事件:顾客接受服务完毕后离开系统为一类事件:顾客接受服务完毕后离开系统-服务服务员员“状态状态”由忙变成闲。由忙变成闲。 25u 离散事件系统仿真的基本要素离散事件系统仿真的基本要素l进程:由若干个有序事件及若干有序活动组成,描述了进程:由若干个有序事件及若干有序活动组成,描述了它所包括的事件及活动间的相互逻辑关系及时序关系。它所包括的事件及活动间的相互逻辑关系及时序关系。l事件、活动、进程关系示意图事件、活动、进程关系示意图

20、顾客到达事件顾客到达事件服务开始事件服务开始事件服务结束事件服务结束事件排队活动排队活动服务活动服务活动进程进程26确定仿真算法确定仿真算法(1)产生随机变量)产生随机变量(2)确定仿真建模策略。事件调度)确定仿真建模策略。事件调度法:面向事件建立仿真模型;活法:面向事件建立仿真模型;活动扫描法:面向活动建模;进程动扫描法:面向活动建模;进程交互法:面向进程建模;三阶段交互法:面向进程建模;三阶段法:结合活动扫描与事件调度;法:结合活动扫描与事件调度;图形仿真方法:图形仿真方法:Petri网网建立仿真模型建立仿真模型:定义状态变量、定义系统:定义状态变量、定义系统事件及有关属性、活动及进程、设

21、计仿事件及有关属性、活动及进程、设计仿真时钟的推进方法等。真时钟的推进方法等。仿真程序设计及运行:仿真程序设计及运行:(1)仿真语言或高仿真语言或高级语言(级语言(2)长期运行或多次运行)长期运行或多次运行仿真结果分析:统计结果、可信度分析等仿真结果分析:统计结果、可信度分析等u 离离散散事事件件系系统统仿仿真真的的方方法法27p 随机数与随机变量的产生随机数与随机变量的产生 对随机现象进行模拟,实质上是要给出随机变量的对随机现象进行模拟,实质上是要给出随机变量的模拟,即利用计算机随机地产生一系列数值,它们的模拟,即利用计算机随机地产生一系列数值,它们的出现服从一定的概率分布,称为随机数。出现

22、服从一定的概率分布,称为随机数。 离散事件系统仿真的基础就是产生随机数。离散事件系统仿真的基础就是产生随机数。u 离散事件系统仿真的方法离散事件系统仿真的方法28 产生随机数的方法产生随机数的方法l随机数表随机数表 1927年年,4万随机数表万随机数表,以后有以后有100万随机数表(可以输入万随机数表(可以输入内存,随时调用)内存,随时调用)l硬件设备硬件设备 从真实物理现象的随机因素中产生随机数,放射性粒从真实物理现象的随机因素中产生随机数,放射性粒子的放射源,电子晶体管的固有噪音等,单位时间内子的放射源,电子晶体管的固有噪音等,单位时间内放射出的粒子数是随机的。放射出的粒子数是随机的。 优

23、点:真正的随机数;缺优点:真正的随机数;缺点:外部设备,无法重复。点:外部设备,无法重复。u 离散事件系统仿真的方法离散事件系统仿真的方法p 随机数与随机变量的产生随机数与随机变量的产生29l数学公式数学公式 产生伪随机数:用数学公式或位移寄存器的移位操产生伪随机数:用数学公式或位移寄存器的移位操作来产生的随机数,称为伪随机数。伪随机数并非作来产生的随机数,称为伪随机数。伪随机数并非概率论意义下的真正的随机数。因为真实的随机数,概率论意义下的真正的随机数。因为真实的随机数,只能从客观真实的随机现象本身产生出来,所以产只能从客观真实的随机现象本身产生出来,所以产生理想的伪随机数列不是一件容易的事

24、。一般伪随生理想的伪随机数列不是一件容易的事。一般伪随机数要保证有较好的统计特性,以下将伪随机数与机数要保证有较好的统计特性,以下将伪随机数与随机数等同。随机数等同。 产生随机数的方法产生随机数的方法p 随机数与随机变量的产生随机数与随机变量的产生u 离散事件系统仿真的方法离散事件系统仿真的方法30 MATLAB提供了两个基本的函数用于产生随机数。提供了两个基本的函数用于产生随机数。它们是它们是rand和和randn。 1rand它的作用是产生它的作用是产生(0, 1)间均匀分布的随机数或向量。其调用形式有间均匀分布的随机数或向量。其调用形式有Y = rand ( n ) 返回一个返回一个n维

25、的维的U(0,l)随机数方阵,随机数方阵,n必须是一个标必须是一个标量量Y = rand (m, n)或或Y = rand (m n) 返回一个返回一个mn维的维的U(0, l)随机数矩阵,随机数矩阵,n必须是一个标量必须是一个标量Y = rand (size(A) ) 返回和矩阵返回和矩阵A相同维数的矩阵相同维数的矩阵 rand 返回单个的随机数返回单个的随机数 s = rand ( state ) 返回均匀分布随机数发生器的当前状态矢量,返回均匀分布随机数发生器的当前状态矢量,其维数是其维数是35。这种形式一般不常用。这种形式一般不常用。MATLAB 5以上的版本使用了多种随机数发生器,它

26、可以产生以上的版本使用了多种随机数发生器,它可以产生 2-53,253 内的所有浮点数。它的序列周期为内的所有浮点数。它的序列周期为21492。u 离散事件系统仿真的方法离散事件系统仿真的方法p 随机数与随机变量的产生随机数与随机变量的产生31【例例】 rand (3, 4)ans = 0.9528 0.5982 0.8368 0.3759 0.7041 0.8407 0.5187 0.8986 0.9539 0.4428 0.0222 0.4290a = zero (2, 2) %zeros函数可以起到声明变量的作用函数可以起到声明变量的作用a =0 00 0rand (size(a)ans

27、 = 0.1996 0.5385 0.3031 0.9201(3-1)*rand(2, 3)+l %产生产生1,3区间上的均匀分布随机数区间上的均匀分布随机数ans = 2.0506 1.0689 2.5374 1.6137 2.4307 1.1190 322randn 其作用是产生标准正态分布的随机数或随机矢量,其调用形式其作用是产生标准正态分布的随机数或随机矢量,其调用形式和和rand类似。类似。 【例例】randn(1,2)ans =-0.4326 -1.6656randn(1, 2) / 2+1 %产生产生N(1, 0.25)的正态分布。的正态分布。ans = l.0627 1.143

28、8 u 离散事件系统仿真的方法离散事件系统仿真的方法p 随机数与随机变量的产生随机数与随机变量的产生33p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 事件调度法事件调度法事件调度法的基本思想:离散事件系统中最基本的要素是事件,事件发生引起系统状态发生变化。用事件的观点来分析系统,通过定义事件及每个事件发生引起系统状态的变化,按时间顺序确定并执行每个事件发生时有关的逻辑关系。事件调度法仿真模型执行的机理:按事件调度法建立模型时,要建立一个未来事件表,模型中设有一个定时子程序,该子程序从未来事件表中选择具有最早发生时间的事件,并将仿真时钟修改到该事件

29、发生的时间,再调有处理该类事件的子程序,处理事件时要修改系统状态并生成新的未来事件放入未来事件表,然后返回定时子程序。这样,事件的选择与处理不断地进,直到仿真终止的条件或事件产生为止。34p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 事件调度法事件调度法离散事件仿真模型的组件:1系统状态2仿真时钟3事件表4统计计数器5初始化子程序6定时子程序7事件子程序8仿真报告子程序9主程序35p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 事事件件调调度度法法36p 离散事件系统仿真算法离散事件系统仿真算法u 离

30、散事件系统仿真的方法离散事件系统仿真的方法 事事件件调调度度法法37p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 活动扫描法活动扫描法活动扫描法的基本思想:系统由实体组成,实体要产生活动,它标志系统状态的转移;活动的发生必须满足某些条件,每一类主动实体均有一个相应的描述其活动过程的子例子程序,在仿真过程中,活动的发生时间也作为条件之一,而且比其他条件更有优先权;在以活动扫描为基础的仿真模型中,要描述系统实体所进行的活动以及预定导致活动开始或结束的条件。活动开始或结束的事件并非由模型事先安排,而是由活动规定的条件所初始化,随着仿真时钟按一定步长推进

31、,对每项活动开始或终止的条件进行扫描。如果预定的条件满足的话,那么相应的活动就得以进行。为了保证顾及每项活动,必须在每个时间点对整个活动集合进行扫描。38p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 活动扫描法活动扫描法活动扫描法执行的机理:设Da(S)表示活动实体a在系统状态S下的条件是否满足,Ta表示活动实体的下一状态发生变化的时刻,活动扫描法每一步要对系统中所有活动实体进行扫描,当Ta小于等于仿真时钟当前值TIME并且实体活动的条件满足时,执行该实体的子例子程序。所有动态实体扫描一遍后,则又按同样顺序继续扫描,直到仿真结束。TatimeTa

32、=timeTatime39p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 活活动动扫扫描描法法40p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 进程交互法进程交互法进程交互法的基本思想:进程交互法采用进程描述系统,它将模型中主动实体历经系统时所发生的事件及活动按时间顺序进行组合,从而形成进程表,一个实体一旦进入进程,它将完成该进程的全部活动。进程交互法仿真模型执行机理:软件实现时,系统仿真时钟的控制程序采用两张事件表, 其一是当前事件表( CELCurrent Event List),它包含了当前时间

33、点满足执行条件事件的事件记录。其二是将来事件表(FELFuture Event List),它包括在将来某个时刻发生事件的事件记录。每一个事件记录中包括该事件的若干属性,其中必有一个属性说明该事件在进程中所处位置的指针。41当仿真时钟推进时,将满足实体仿真时钟小于等于系统时钟的所有事件记录从将来事件表中移到当前事件表中,然后对当前事件表的每个事件记录进行扫描。当前事件表中的所有记录处理完毕后,结束对当前事件表的扫描,继续推进仿真时钟,即把将来事件表中的最早发生的事件记录移到当前事件表中,直到仿真结束。p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法

34、进程交互法进程交互法42p 离散事件系统仿真算法离散事件系统仿真算法u 离散事件系统仿真的方法离散事件系统仿真的方法 进进程程交交互互法法43 明确仿真目的明确仿真目的 建模前,仿真工作者必须根据仿真目的,确定所需获取的某一事件建模前,仿真工作者必须根据仿真目的,确定所需获取的某一事件或系统的哪一部分信息、模型的类型和所需资料及数据。或系统的哪一部分信息、模型的类型和所需资料及数据。 正确描述系统正确描述系统 组成成分。组成成分是指对描述系统仿真目的有意义的实体,这些实体的行组成成分。组成成分是指对描述系统仿真目的有意义的实体,这些实体的行为往往是随机分布的。为往往是随机分布的。 描述变量和参

35、数。描述变量和参数是指系统各实体的属性。描述变量包括内描述变量和参数。描述变量和参数是指系统各实体的属性。描述变量包括内部变量和外部变量,除了输入输出变量外,其余均为状态变量。参数可以在部变量和外部变量,除了输入输出变量外,其余均为状态变量。参数可以在仿真前由用户设置或在仿真过程中根据用户的命令加以改变。仿真前由用户设置或在仿真过程中根据用户的命令加以改变。 相互关系。相互关系规定了系统中不同变量的相互关联,是指影响系统变化相互关系。相互关系规定了系统中不同变量的相互关联,是指影响系统变化的各实体、变量和参数之间的连接关系和作用关系。的各实体、变量和参数之间的连接关系和作用关系。离散事件系统研

36、究和仿真中最基本的问题是系统的建模。离散事件系统研究和仿真中最基本的问题是系统的建模。u 离散事件系统仿真的方法离散事件系统仿真的方法p 离散事件系统建模离散事件系统建模44开 始系统建模确定仿真算法模型改进建立仿真模型设计仿真程序仿真结果输出处理运行仿真程序结 束仿真分析仿真模型的检验与改进离散事件系统仿真的一般步骤 u 离散事件系统仿真的方法离散事件系统仿真的方法p 离散事件系统建模离散事件系统建模45顾客到达顾客到达排队等待排队等待置理发员为忙置理发员为忙顾客开始理发顾客开始理发顾客理完离去顾客理完离去置理发员为闲置理发员为闲理发员理发员闲闲YN 理发系统中的事件有:顾客理发系统中的事件

37、有:顾客到达、顾客开始理发、顾客理完到达、顾客开始理发、顾客理完离去;活动有:排队服务、理发离去;活动有:排队服务、理发服务等。服务等。 流程图仅能表明整个过程中流程图仅能表明整个过程中发生的发生的“事件事件”表,要仿真这样表,要仿真这样一系列一系列“事件事件”,必须知道确切,必须知道确切的时间表,这就是仿真系统建模。的时间表,这就是仿真系统建模。u 离散事件系统仿真的方法离散事件系统仿真的方法p 离散事件系统建模举例离散事件系统建模举例46 假设顾客到达的时间间隔是平均假设顾客到达的时间间隔是平均位为位为35min、变化范围为、变化范围为14min的均的均匀分布随机数;理发师的服务时间是匀分

38、布随机数;理发师的服务时间是平均值为平均值为20min、变化范围为、变化范围为7min的均匀分布随机数。的均匀分布随机数。服务时间 20min7min理发服务服务完毕,顾客离开置理发师为闲Y开始置仿真开始时间和结束时间:顾客到达时间间隔35min14min查询理发师闲否仿真时间结束时间结束排队等候YNN理发服务系统仿真模型图 在建立了系统模型的基础上,在建立了系统模型的基础上,还需要确定输出函数。根据仿真目的还需要确定输出函数。根据仿真目的统计计算出反映系统性能的数据,这统计计算出反映系统性能的数据,这些数据就是系统模型的输出。比如,些数据就是系统模型的输出。比如,求出船只的平均等待时间、最大

39、队列求出船只的平均等待时间、最大队列长度和船闸利用率。长度和船闸利用率。u 离散事件系统仿真的方法离散事件系统仿真的方法p 离散事件系统建模举例离散事件系统建模举例47说明:船闸运行系统中的事件有:船只到达、船闸开始服务、船闸说明:船闸运行系统中的事件有:船只到达、船闸开始服务、船闸结束服务、船只离开;活动有:排队服务、过闸服务等。结束服务、船只离开;活动有:排队服务、过闸服务等。 l 作业作业u 离散事件仿真模型的设计与实现离散事件仿真模型的设计与实现1、根据理发服务流程图,写出相应的银行服务、根据理发服务流程图,写出相应的银行服务系统流程图或船闸运行系统流程图。系统流程图或船闸运行系统流程

40、图。2、假设船只到达的时间间隔是平均位为、假设船只到达的时间间隔是平均位为70min、变化范、变化范围为围为14min的均匀分布随机数;船闸的服务时间是平的均匀分布随机数;船闸的服务时间是平均值为均值为60min、变化范围为、变化范围为7min的均匀分布随机数,的均匀分布随机数,尝试绘制出船闸服务仿真模型图。尝试绘制出船闸服务仿真模型图。48u 离散事件系统仿真举例离散事件系统仿真举例例:单服务台排队过程仿真例:单服务台排队过程仿真 单服务台排队系统的结构模型单服务台排队系统的结构模型49 建立顾客信息建立顾客信息50 仿仿真真流流程程图图51 程序实现程序实现 以单服务台的售票处为例,以单服

41、务台的售票处为例, 假设各顾客的到达时间假设各顾客的到达时间间隔和服务时间均服从负指数分布,间隔和服务时间均服从负指数分布, 到达率到达率 = 10 人人/分钟,分钟, 服务率服务率 = 6 人人/分钟,分钟, 等待队长等待队长N = 20 人,人, 仿真时间仿真时间Total_time = 10分钟。分钟。仿真程序代码编写如下:仿真程序代码编写如下:Matlab中中M文件仿真程序代码文件仿真程序代码52 仿真结果仿真结果 在MATLAB7.0软件中运行本程序仿真出各顾客到运行本程序仿真出各顾客到达时刻与离开时刻曲线,达时刻与离开时刻曲线, 等待时间与停留时间曲线,等待时间与停留时间曲线, 分

42、别如下图:分别如下图:53 仿真结果仿真结果顾客到达时间与离开时间曲线图54 仿真结果仿真结果顾客停留时间与等待时间曲线图55离散事件系统仿真的一个实例离散事件系统仿真的一个实例报童问题仿真报童问题仿真 1报童问题报童问题 一报童从报刊发行中心定报后零售,每卖一份报纸可赚钱一报童从报刊发行中心定报后零售,每卖一份报纸可赚钱a元,元,若定报后卖不出去,则可再退回发行处,此时每退一份报要赔钱若定报后卖不出去,则可再退回发行处,此时每退一份报要赔钱b元。虽然每天卖出报的份数是随机的,但报童可根据以往卖报情况元。虽然每天卖出报的份数是随机的,但报童可根据以往卖报情况的统计来获得每天卖的统计来获得每天卖

43、k份的概率份的概率p(k),试求报童每天期望受益达到,试求报童每天期望受益达到最大的定报量最大的定报量z。 562数学摸型数学摸型 设报童每天订报设报童每天订报z份,而报纸每天卖出份,而报纸每天卖出y份,我们假设份,我们假设y的分布为的分布为 , 2 , 1 , 0 )(kpkypk考虑到报童每天的损失有如下两种情形。考虑到报童每天的损失有如下两种情形。(1)供过于求。因退货造成的平均损失为:)供过于求。因退货造成的平均损失为: 01)(kkpkzbc(2)供不应求。因缺货造成的平均损失为)供不应求。因缺货造成的平均损失为 12)(zkkpzkac57所以,每天的期望损失费(也可以从总收益的角

44、度来考虑)为所以,每天的期望损失费(也可以从总收益的角度来考虑)为 21)(cczC现在我们的目标是求出使得每天期望损失最小的定报量,换言之,现在我们的目标是求出使得每天期望损失最小的定报量,换言之,就是使报童的每天期望总收益达到最大。写成一个目标函数的形式就是使报童的每天期望总收益达到最大。写成一个目标函数的形式 )(1minzCz约束条件如约束条件如z的取值范围,要受到报童的资本多少的影响。的取值范围,要受到报童的资本多少的影响。 58只有在特殊的概率分布情况下,我们才可以推导出只有在特殊的概率分布情况下,我们才可以推导出C(z)的解析形的解析形式,并通过求极值的方法来求解。但在实际的应用

45、中,这样的思式,并通过求极值的方法来求解。但在实际的应用中,这样的思路往往是行不通的。但是可以通过枚举所有可能的订报量,求出路往往是行不通的。但是可以通过枚举所有可能的订报量,求出对应的平均损失,进行比较求出满足条件的对应的平均损失,进行比较求出满足条件的z,这里搜索域通常,这里搜索域通常是有限的。以上就是一个比较简单的计算机仿真方法。是有限的。以上就是一个比较简单的计算机仿真方法。 593报童问题的计算机仿真报童问题的计算机仿真 对于给定每一订报量对于给定每一订报量Z值,利用离散随机变量采样算法产生给值,利用离散随机变量采样算法产生给定分布的随机数定分布的随机数R,用来表示报童当天卖出的报纸

46、数,从而可以,用来表示报童当天卖出的报纸数,从而可以计算出一天的损失以及一个阶段的平均损失。这里比较关键的一计算出一天的损失以及一个阶段的平均损失。这里比较关键的一点是如何产生服从给定分布的随机变量,这个内容在本教材中不点是如何产生服从给定分布的随机变量,这个内容在本教材中不再详尽介绍。而且在实际的应用中,分布并非总是给定了的,需再详尽介绍。而且在实际的应用中,分布并非总是给定了的,需要我们收集数据,并从中辨识分布,进行参数估计。下图是根据要我们收集数据,并从中辨识分布,进行参数估计。下图是根据上述思路设计出的仿真流程框图。上述思路设计出的仿真流程框图。 60其中各变量含义如下:其中各变量含义

47、如下:Tm一轮试验的预定模拟天数一轮试验的预定模拟天数T一轮实验的仿真天数累计值一轮实验的仿真天数累计值Z订报量订报量Z最优订报量最优订报量G定报量定报量Z之上界之上界S1损失值之累计值损失值之累计值S最小损失值最小损失值这里,这里,a和和b是这个问题的两个参数。是这个问题的两个参数。 614计算机仿真计算机仿真 根据上图所示框图,我们不难写出报童问题的仿真程序,其根据上图所示框图,我们不难写出报童问题的仿真程序,其MATLAB源码如下。源码如下。 62function superz, supers = baotong ( tm, g, a, b)z = 1;g=10;tm=5;a=0.2;b

48、=0.4;supers =1000;while zr;s = sum(z-r)*b).*dv);s = s+sum(r-z)*a).*(1-dv);aver_s =s/tm;if supers=aver_ssupers = aver_s;superz = z;end;z = z +1;end;63 上面的代码,是在随机变量均匀分布的假设下编写的,对于上面的代码,是在随机变量均匀分布的假设下编写的,对于其他的分布,大家只要用相应的随机数发生器进行替换即可。其他的分布,大家只要用相应的随机数发生器进行替换即可。 645仿真结果和输出数据分析仿真结果和输出数据分析 在分布为均匀分布,参数在分布为均匀

49、分布,参数a=0.2,b=0.4的条件下,在的条件下,在MATLAB命令窗口运行仿真程序就可以得出仿真的结果。例如命令窗口运行仿真程序就可以得出仿真的结果。例如 z, s = baotong (5, 10, 0.2, 0.4) z = ?s = ? 此外,我们还可以改变参数此外,我们还可以改变参数a、b的值,观察相应最优值的变的值,观察相应最优值的变化,用化,用MATLAB可以很方便的画出可以很方便的画出C-a,C-b的变化曲线。的变化曲线。 65 我们对系统进行研究的过程中始终将对象分成两个我们对系统进行研究的过程中始终将对象分成两个重要的大类,一类是生活和工作中涉及最多的连续系统重要的大类

50、,一类是生活和工作中涉及最多的连续系统,而在教学和实践中往往忽略了非常重要的另外一类,而在教学和实践中往往忽略了非常重要的另外一类,那就是离散事件动态系统。连续系统多存在于技术系统那就是离散事件动态系统。连续系统多存在于技术系统中,而离散事件动态系统多与管理相关,而且是影响决中,而离散事件动态系统多与管理相关,而且是影响决策的一类系统,因此在特定的环境下离散事件动态系统策的一类系统,因此在特定的环境下离散事件动态系统是不能深入研究的。是不能深入研究的。u 小结小结66u 思考题思考题一个汽车加油站,有A、B两个加油工作台,汽车随机到达,到达间隔时间分布如表1。A台距入口近,出入较B台方便,如A

51、、B都空闲,A优先被占用。都忙,汽车将排队等待。汽车在A、B工作台的加油时间分布如表2。仿真的目的是分析系统中车辆平均排队时间和加油工作台的利用率。系统状态:通过一组变量来描述LQ(t)在t时刻等待服务的汽车数LA(t)在t时刻A台忙或闲(1或0)LB(t)在t时刻B台忙或闲(1或0)实体:A、B服务台;汽车事件:汽车到达,A开始服务,B开始服务,A结束服务,B结束服务;活动:到达间隔时间,服务时间。问:假如只有一台加油设备时系统运行是否平稳平稳?67u 思考题思考题68697071例1:理发店服务系统l一个理发店只有一个理发员。顾客来到理发店后,如果有一个理发店只有一个理发员。顾客来到理发店

52、后,如果有人正在理发就坐在一旁等候。理发员按先来先理发的原则人正在理发就坐在一旁等候。理发员按先来先理发的原则为每一个顾客服务,而且只要有顾客就不停歇。为每一个顾客服务,而且只要有顾客就不停歇。l建模目的建模目的是考察理发员的忙闲情况(假定顾客到达间隔和是考察理发员的忙闲情况(假定顾客到达间隔和理发花费的时间服从一定的概率分布)。理发花费的时间服从一定的概率分布)。l本例有本例有3类实体:类实体:理发员、顾客、顾客队列。理发员、顾客、顾客队列。l理发员:理发员:永久实体,其活动为永久实体,其活动为“理发理发”,有,有“忙忙”“”“闲闲”2种状态。种状态。l顾客:顾客:临时实体,与理发员共同完成

53、活动,有临时实体,与理发员共同完成活动,有“等待服等待服务务”、“接受服务接受服务”等状态。等状态。l顾客队列:顾客队列:特殊实体,状态为队列的长度。特殊实体,状态为队列的长度。 72例1中各个实体之间的关系 (1)某一顾客到达时,如果理发员处于某一顾客到达时,如果理发员处于“忙忙”的状态,则该顾客进的状态,则该顾客进入入“等待服务等待服务”的状态,否则,进入的状态,否则,进入“接受服务接受服务”状态。状态。(2)理发员完成对某一顾客的服务时,如果队列处于理发员完成对某一顾客的服务时,如果队列处于“非零非零”状态,状态,则立即开始服务活动,否则进入则立即开始服务活动,否则进入“闲闲”状态。状态

54、。(3)“顾客到达顾客到达”可以导致可以导致“服务服务”活动的开始,活动的开始,“顾客理完离去顾客理完离去”导致导致“服务服务”活动的结束,因此,这二个事情可以作为事件看待。活动的结束,因此,这二个事情可以作为事件看待。(4)“顾客到达顾客到达”将使理发员由将使理发员由“闲闲”变为变为“忙忙”,或使,或使“队列长队列长度度”加加1。(5)“顾客理完离去顾客理完离去”将使理发员由将使理发员由“忙忙”变为变为“闲闲”,或使,或使“队队列长度列长度”减减1。 73理发店服务系统实体流程图 l需要给出模型属性变量:需要给出模型属性变量:顾客的到达时间(随机变量)、理发员顾客的到达时间(随机变量)、理发

55、员为一个顾客理发所需的服务时间(随机变量)等,它们的值可以为一个顾客理发所需的服务时间(随机变量)等,它们的值可以分别从不同的分布函数中抽取。分别从不同的分布函数中抽取。l队列的排队规则:队列的排队规则:先到先服务(先到先服务(FIFO)。)。l注意:注意:实体流图是实体流动和逻辑关系图,不是计算机程序框图。实体流图是实体流动和逻辑关系图,不是计算机程序框图。 顾客到达顾客到达排队等待排队等待置理发员为忙置理发员为忙顾客开始理发顾客开始理发顾客理完离去顾客理完离去置理发员为闲置理发员为闲理发员闲理发员闲YN745.5 模型的人工运行 l人工运行:人工运行:建立实体流图模型后,应选取有代表性的例

56、建立实体流图模型后,应选取有代表性的例子将流图全部走一遍,即所谓的人工运行。子将流图全部走一遍,即所谓的人工运行。l人工运行模型要求遍历流图的各个分支和实体的各种可人工运行模型要求遍历流图的各个分支和实体的各种可能状态,在时间逐步变化的动态条件下,分析事件的发能状态,在时间逐步变化的动态条件下,分析事件的发生及状态的变化过程,以检查模型的组成和逻辑关系是生及状态的变化过程,以检查模型的组成和逻辑关系是否正确。否正确。 75模型的人工运行举例l例:例:“理发店服务系统理发店服务系统”(1)系统的初始状态(仿真开始时刻):)系统的初始状态(仿真开始时刻): 对应开门营业时间,此时,理发员为对应开门

57、营业时间,此时,理发员为“闲闲”,队列长度为,队列长度为0。(2)模型参数及变量的取值:)模型参数及变量的取值: 设第设第i个顾客与第个顾客与第i-1个顾客到达的时间间隔为个顾客到达的时间间隔为Ai, 设理发员为第设理发员为第i个顾客的理发时间为个顾客的理发时间为Si, 一般来说,一般来说,Ai、Si为随机变量,应根据分布函数来产为随机变量,应根据分布函数来产生。这里,为了便于解释,取其样本值为:生。这里,为了便于解释,取其样本值为:lA115,A232,A324,A440,A522,lS1=43,S2=36,S3=34,S4=28,76模型的人工规则l模型按一定的规则运行。本模型的人工规则如下:模型按一定的规则运行。本模型的人工规则如下:l规则规则1:确定当前时间确定当前时间l模型人工运行开始,取当前时间模型人工运行开始,取当前时间TIMEt0(t0为仿真初始为仿真初始时刻),人工运行开始后,当前时间逐步向前推移,且递时刻),人工运行开始后,当前时间逐步向前推移,且递取下一最早发生事件的发生时刻。如果当前时间有顾客到取下一最早发生事件的发生时刻。如果当前时间有顾客到达事件发生,转规则达事件发生

温馨提示

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

评论

0/150

提交评论