离散事件系统仿真课件

上传人:磨石 文档编号:243053629 上传时间:2024-09-14 格式:PPT 页数:178 大小:1.42MB
返回 下载 相关 举报
离散事件系统仿真课件_第1页
第1页 / 共178页
离散事件系统仿真课件_第2页
第2页 / 共178页
离散事件系统仿真课件_第3页
第3页 / 共178页
点击查看更多>>
资源描述
,*,单击此处编辑母版标题样式,例,3.1,理发店的服务过程仿真,一个理发店有两位服务员,A,和,B,,顾客随机地到达该理发店,每分钟有一个顾客到达和没有顾客到达的概率均是,1/2 ,其中,60%,的顾客理发仅用,5,分钟,另外,40%,的顾客用,8,分钟,.,试对前,10,分钟的情况进行仿真。,解:,假设开始无顾客,顾客到达、服务开始和结束都在每分钟开始时进行,,产生顾客:,抛硬币,正面,-,有顾客到来;,反面,-,无顾客到来,时间长短:,摸球,,3,白,2,黑,白球,,5,分钟,,黑球,,8,分钟。,仿真过程,:,.,时间,待排队等人数,服务员,A,服务员,B,T=0,T=1,T=2,T=3,T=4,T=5,T=6,T=7,T=8,T=9,T=10,例,3.4,某仓库有一个保管员,领料工人的到达为,Poisson,流,平均每小时有,12,个工人来领料,每个工人的领料时间均匀分布在,2-4,分钟之间,求该保管员忙的概率。,解:排队系统,到达率,=12,(,人,/,小时),=0.2,(人,/,分),保管员忙的概率近似用如下等式代替,即,P,忙,=,保管员忙时累计,/,总仿真时间,采用时间步长法,每隔,1,分钟观察一次工人的到达状态及领料状态,并记录该时间间隔,(t,t+1,中的忙时,便可得到结果。,仿真过程中,需要进行两个随机抽样,一个是到达,Poisson,流的抽样,(P(m)=,m,e,-,/m!, e,=,n,/n!),,,另一个是领料时间均匀分布的抽样,.,对于后者,可利用(,2,,,4,)区间上的均匀分布随机数来取得,即有,W=2+(4-2)*RND(1),其中,RND(1),为,(0,l),区间上的均匀分布随机数;至于,Poisson,流的抽样,由于我们只关心在,(t,t+1,中是否有领料工人到达,而根据,Poisson,流的性质,在,t=1,分钟时间内到达两个或两个以上工人的概率近似为零,故有,P(N(t,t+1)=1),t,= 0.2,P(N(t,t+1)=0) 0.8,系统初始状态,输入原始数据预定仿真时间,要求领料工人数加,1,保管员空闲否,是否有工人要求领料,有一工人要求领料,要求领料工人数减,1,计算领料时间,仿真时间是否到,结束,忙时统计并输出,忙,否,过一分钟是否有工人来,保管员忙时累加,改变保管员释放时间,保管员空闲,时间加,1,分钟,是,否,否,是,是,闲,输入,T,Q=Q+1,T,2, T,1,?,Q0?,Q=Q-1,W=2+(4-2)*RAN(1),T,2,T?,结束,忙,否,x0.2,T,3,= T,3,+W,T,4,= T,4,+1,是,否,否,是,是,闲,T,1,= T,2,+W,P= T,3,/T,输出,P,T,1,=0,T,2,=0,T,3,=0,T,4,=0,Q=0,x=RND(1),T:,预定仿真时间,T1:,保管员的释放时刻,T2:,仿真时钟时刻,T3:,保管员忙时累计,T4:,保管员空闲时间累计,Q:,当前时刻要求领料的工人数,W:,领料时间,P:,保管员忙的概率,/,仿真程序,,C,语言编写,#include ,#include ,void main(void),float T,T1,T2,T3,T4;,int,Q;,double x,P,W,S;,scanf(“%f”,&T,);/ T=1000;,T1=T2=T3=T4=Q=W=P=0;,do,T2+=1;,x=rand()%1000;,x/=1000;,if(xT1),if(Q0),Q-=1;,x=rand()%1000;,x/=1000;,W=(2+(4-2)*x);,T3+=W;,T1=T2+W;,else T4+=1;,while(!(T2=T);,P=T3/T;,printf(P,=%10.5fn,P);,运行结果:,第,1,次:,0.50627,第,2,次:,0.60152,第,3,次:,0.59153,第,4,次:,0.62537,第,5,次:,0.66309,第,6,次:,0.57581,第,7,次:,0.57048,第,8,次:,0.65604,第,9,次:,0.53166,第,10,次:,0.56407,平均:,0.58858,例,3.6,面积计算,求由曲线,x2+y2=16, x2/36+y2=1,以及,(,x-2)2+(y+1)2=9,所围成图形的面积。,用,Matlab,语句作出图形得区域图,t=0:0.01:2*pi;,x=sin(t);,y=cos(t);,plot(4*x,4*y,6*x,y,2+3*x,3*y-1),axis(-6,6,-6,6),此区域形状复杂,理论分析困难,可以用计算机仿真实现。将可能的区域等分, 考察每个小区域是否在此区域中 ,将在此区域中的小面积相加即可,其仿真图如下:,Matlab,程序为,x=-2:0.01:6;,y=-2:0.01:2;,s=0;,h=0.01;,for i=1:800,for j=1:400,xx=-2+i*h;,yy,=-2+j*h;,if xx2+yy2=16,if xx2/36+yy2=1,if (xx-2)2+(yy+1)2=9,s=s+h2;,end,end,end,end,end,s,运行后给出面积的值,8.8310,。,例,3.7,库存问题在物资的供应过程中,由于到货与销售不可能做到同步、同量,故总要保持一定的库存储备如果库存过多,就会造成积压浪费以及保管费的上升;如果库存过少,会造成缺货如何选择库存和订货策略,就是一个需要研究的问题库存问题有多种类型,一般比较复杂,下面讨论一种简单的情况,某自行车商店的仓库管理人员采取一种简单的订货策略,当库存量降低到,P,辆自行车时就向厂家订货,每次订货,Q,辆,如果某一天的需求量越过了库存量,商店就有销售损失和信誉损失,但如果库存量过多,将会导致资金积压和保管费增加若现在已有如下表所示的五种库存策略,试比较选择一种策略以使总费用最少,这个问题的已知条件是:,1,)从发出订货到收到货物需隔,3,天,2,)每辆自行车保管费为,0.75,元,/,天,,,每辆自行车的缺货损失为,1.80,元,/,天,每次的订货费为,75,元,3,)每天自行车需求量是,0,到,99,之间均匀分布的随机数,.,4,)原始库存为,115,辆,并假设第一天没有发出订货,.,方案编号,重新订货点,P/,辆,重新订量,Q/,辆,方案,1,125,100,方案,2,125,150,方案,3,150,250,方案,4,175,250,方案,5,175,300,这一问题用解析法讨论比较麻烦,但用计算机按天仿真仓库货物的变动情况却很方便我们以,150,天为例,依次对这五种方案进行仿真,最后比较各方案的总费用,从而就可以作出决策,输入一些常数和初始数据后,以一天为时间步长进行仿真,.,1),检查这一天是否为预定到货日期,如果是,则原有库存量加,Q,,,并把预定到货量清为零;如果不是,则库存量不变,;,2),接着仿真随机需求量,这可用计算机语言中的随机函数得到若库存量大于需求量,则新的库存量减去需求量;反之,则新库存量变为零,并且要在总费用上加一缺货损失,3),检查实际库存量加上预定到货量是否小于重新订货点,P,,,如果是,则需要重新订货,这时就加一次订货费,如此重复运行,150,天,即可得所需费用总值,库存问题仿真流程,初始化,库存,+Q,预定到货量置零,需求量,库存量?,结束,输出结果,是,今天是到货期?,当天日期,+1,是,否,产生随机需求量,计算新库存量,累加保管费,实际库存,+,预定,到货量,p,?,满150d?,总费用,+,短缺费,预定到货量,=Q,预定到货日期,=,今天,+3,是,否,否,是,按照图的流程编写程序,上机运行后得这五种库存策略的总费如表所示,比较这五种方案的总费用,可以看出方案,2,最好,即库存管理人员应取最低订发点为,125,辆、每次订,150,辆自行车的方案这时在,150,天中总的费用是,17147.85,元,方案编号,总费用,/,元,方案,1,24476.70,方案,2,17147.85,方案,3,21824.40,方案,4,24708.75,方案,5,27275.85,#include ,#include ,void main(void),/,重新订货点,float P5=125,125,150,175,175;,/,重新订货量,float Q5=100,150,250,250,300;,/,库存量,float S5=115,115,115,115,115;,float Z5=0,0,0,0,0;/,总费用,int,T=0;/,仿真时间,int,day5=0,0,0,0,0;/,预定日期,int,x;/,需求量,int,i;/,临时变量,int,YD5=0,0,0,0,0;/,预定量,randomize();/,初始化随机数,do,T+=1;,for(i=0;i5;i+) if(dayi=T)Si+=Qi,YDi=0;,x=random(100);,for(i=0;i5;i+),Zi+=0.75*Si;/,保管费,if(!(x=Si),Zi+=(x-Si)*1.8;/,缺货费,Si=0;,else Si-=x;,if(Si+YDi150);,for(i=0;i5;i+),printf(%d,%.2fn,i+1,Zi);,例,3.8,报童每天清晨从报社购进报纸零售,晚上将没有卖掉的报纸退回,.,每份报纸的购进价为,1.3,元,零售价为,2,元,退回价为,0.2,元,.,报童售出一份报纸赚,0.7,元,退回一份报纸赔,1.1,元,.,报童每天如果购进的报纸太少,不够卖时会少赚钱,如果购得太多卖不完时要赔钱,.,试为报童筹划每天应如何确定购进的报纸数使得收益最大,.,报纸每捆,10,张,只能整捆购买,报纸可以分为,3,种类型的新闻日:好、一般、差,它们的概率分别为,0.35,0.45,和,0.2,在这些新闻日中每天对报纸的需求分布的统计结果下图:,需求量,好新闻的需求概率,一般新闻的需求概率,差新闻的需求概率,40,0.03,0.10,0.44,50,0.05,0.18,0.22,60,0.15,0.40,0.16,70,0.20,0.20,0.12,80,0.35,0.08,0.06,90,0.15,0.04,0.00,100,0.07,0.00,0.00,试确定每天报童应该订购的报纸数量,解:,我们通过计算机仿真来解决此问题。,最优策略应该是每天的利润最大。,利润,=,销售收入,-,报纸成本,-,损失,+,残值,这是一个随机现象的计算机仿真问题,,故先确定各种情况的随机数的对应关系。,新闻日和需求量对应的随机数分别如下面两个表格所示,计算机仿真的流程:,1,)令每天的报纸订购数变化,,40-100,;,2,)让时间从,1,开始变化(循环)到,360,;,3,)产生新闻种类的随机数,确定当天的新闻类型;,4,)产生需求量随机数,确定当天的报纸需求量;,5,)计算当天的收入,计算累积利润,,6,)比较得出最优定货量。,需求量,好新闻的随机数区间,一般新闻的随机数区间,差新闻的随机数区间,40,(,0.00,0.03,(,0.00,0.10,(,0.00,0.44,50,0.03,0.08),0.10,0.28),0.44,0.66),60,0.08,0.23),0.28,0.68),0.80,1.00),70,0.23,0.43),0.68,0.88),0.80,1.00),80,0.43,0.78),0.880.96),0.80,1.00),90,0.78,0.93),0.96,1.00),100 , 102,100,0.93,1.00, 8 , 100,104 , 125,具体的计算由,Matlab,编程计算实现。,x1=rand(365,1);,x2=rand(365,1);,for n=4:10,paper=n*10;,sb(n,)=0;,for i=1:365,if x1(i)0.35,if x2(i)0.03,news=40;,elseif,x2(i)0.08,news=50;,elseif,x2(i)0.23,news=60;,elseif,x2(i)0.43,news=70;,elseif,x2(i)0.78,news=80;,elseif,x2(i)0.93,news=90;,else,news=100;,end,elseif,x1(i)0.8,if x2(i)0.10,news=40;,elseif,x2(i)0.28,news=50;,elseif,x2(i)0.68,news=60;,elseif,x2(i)0.88,news=70;,elseif,x2(i)0.96,news=80;,else,news=90;,end,else,if x2(i)0.44,news=40;,elseif,x2(i)0.66,news=50;,elseif,x2(i)0.82,news=60;,elseif,x2(i)=news,sale=news;,remand=paper-news;,else,sale=paper;,remand=0;,end,sb(n,)=sb(n)+2*sale-1.3*paper+0.2*remand;,end,end,optnews,=40;,optmoney,=sb(4);,40,sb(4)/365,for n=5:10,if,sb(n,)=,optmoney,optnews,=n*10;,optmoney,=,sb(n,);,end,n,sb(n)/365,end,optnews,optmoney,optmoney/365,经过计算机仿真后得到最优购货量是每天,60,份,,平均每天利润,34.4,元。,例,3.9,收款台前的排队过程的仿真。,考虑一个收款台的排队系统。某个杂货店只有一个收款台,顾客的到达时间时服从均值为,4.5,的负指数分布,每一个顾客的服务时间服从均值为,3.2,,方差为,0.6,的正态分布。这里时间的单位是分钟,且服务的时间不取负值,.,试对收款台前的排队过程进行仿真。,收款排队系统主控程序图,负指数分布的随机数的产生:,x=-4.5ln(u) ,u,为均匀分布的随机数,正态分布的随机数的产生,:,y=3.2+0.6v, v,为标准正态分布的随机数。,假设,:,开始时服务台前无顾客,顾客在服务台前不离去;,要求,:,对,100,个顾客到收款台缴款排队过程进行仿真,关心的问题,:,每个顾客的平均等待时间,atime,最大队长,maxl,服务员的工作效率,work,;,实体,:,服务员(忙,1,,闲,0,),,顾客,(,到达时刻,ca,,,服务时间,cs,,,等待 时间,ct),队列(长度,lq,);,事件,event,:,顾客到达事件,1,(交款,排队),服务结束事件,2,(闲忙),事件表,:,序号,事件类型(,1、2),发生时刻,t,顾客到达子程序图,服务结束子程序图,例,3.10,机器修理系统仿真,有,m,台机器,由,c,个工人共同负责修理,并设:,各台机器质量相同,机器的连续运转时间相互独立且服从同一负指数分布,平均寿命为,1/v,(,v0,)。,每个工人技术相同,且修理时间相互独立并服从同一负指数分布,平均修理时间为,1/u(u0).,修复后的机器其寿命分布不变。,机器停止运转每单位时间的损失费为,c,1,元,工人单位时间的产值为,c,2,元。,若机器的等待时间为,E,,,工人总的空闲时间为,F,,,则系统总的损失费为,S,=,c,1,E,+,c,2,F,试求当机器数,m,固定时,为使系统的总损失费最小,应配备多少工人为最优?,解,:,采用最短时间事件步长法进行仿真,首先要确定一个初始状态。不妨假定开始时所有的机器都正常运转,工人处于空闲状态。设,T,为仿真终止时间。依次仿真计算修理工人数,C,分别取,1,、,2,、,3,、,时的系统损失费。最后根据系统损失费,S,的极小值来确定最优工人数。,根据以上思想并采用最短时间事件步长法仿真。,输入原始数据,c,1,c,2,U,V,m,T,给出,m,台机器的指数寿命,B(H)=1?,结束,F=F+x-K,P= T,3,/T,输出,C,S,C=1,E=0 F=0,初始状态,:B(i)=1,i=1,2,m;D(j)=0,j=1,2,.,c,选取寿命最短的机器,i:H=i,K=A(i),选取最早释放时刻的工人,j:y=j,x=D(j),x”,为命令提示符,表示,MATLAB,正在处于准备状态。在命令提示符后键入命令并按下回车键后,,MATLAB,就会解释执行所输入的命令,并在命令后面给出计算结果。,一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。例如,p=15,m=35p=15;m=35,如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上,3,个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。,3,个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。在,MATLAB,里,有很多的控制键和方向键可用于命令行的编辑。,4.1.2.4,工作空间窗口,工作空间是,MATLAB,用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。,4.1.2.5,当前目录窗口和搜索路径,1,当前目录窗口当前目录是指,MATLAB,运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行或调用。在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。将用户目录设置成当前目录也可使用,cd,命令。例如,将用户目录,c:mydir,设置为当前目录,可在命令窗口输入命令:,cd,c:mydir,2,MATLAB,的搜索路径当用户在,MATLAB,命令窗口输入一条命令后,,MATLAB,按照一定次序寻找相关的文件。基本的搜索过程是:,(1),检查该命令是不是一个变量。,(2),检查该命令是不是一个内部函数。,(3),检查该命令是否当前目录下的,M,文件。,(4),检查该命令是否,MATLAB,搜索路径中其他目录下的,M,文件。,用户可以将自己的工作目录列入,MATLAB,搜索路径,从而将用户目录纳入,MATLAB,系统统一管理。设置搜索路径的方法有:,(1),用,path,命令设置搜索路径。例如,将用户目录,c:mydir,加到搜索路径下,可在命令窗口输入命令:,path(path,c:mydir,),(2),用对话框设置搜索路径 在,MATLAB,的,File,菜单中选,Set Path,命令或在命令窗口执行,pathtool,命令,将出现搜索路径设置对话框。通过,Add Folder,或,Add with Subfolder,命令按钮将指定路径添加到搜索路径列表中。在修改完搜索路径后,则需要保存搜索路径,。,4.1.2.6,命令历史记录窗口,在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除这些历史记录,可以选择,Edit,菜单中的,Clear Command History,命令。,4.1.2.7,启动平台窗口和,Start,按钮,MATLAB,的启动平台窗口可以帮助用户方便地打开和调用,MATLAB,的各种程序、函数和帮助文件。,MATLAB,主窗口左下角还有一个,Start,按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行,MATLAB,产品的各种工具,并且可以查阅,MATLAB,包含的各种资源。,4.1.3 MATLAB,帮助系统,4.1.3.1,帮助窗口,进入帮助窗口可以通过以下,3,种方法:,(1),单击,MATLAB,主窗口工具栏中的,Help,按钮。,(2),在命令窗口中输入,helpwin,、,helpdesk,或,doc,。,(3),选择,Help,菜单中的“,MATLAB Help”,选项。,4.1.3.2,帮助命令,MATLAB,帮助命令包括,help,、,lookfor,以及模糊查询。,1,help,命令在,MATLAB 7.4,命令窗口中直接输入,help,命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。同样,可以通过,help,加函数名来显示该函数的帮助说明。,2,lookfor,命令,help,命令只搜索出那些关键字完全匹配的结果,,lookfor,命令对搜索范围内的,M,文件进行关键字搜索,条件比较宽松。,lookfor,命令只对,M,文件的第一行进行关键字搜索。若在,lookfor,命令加上,-all,选项,则可对,M,文件进行全文搜索。,3,模糊查询,MATLAB 6.0,以上的版本提供了一种类似模糊查询的命令查询方法,用户只需要输入命令的前几个字母,然后按,Tab,键,系统就会列出所有以这几个字母开头的命令。,4.1.3.3,演示系统,在帮助窗口中选择演示系统,(Demos),选项卡,然后在其中选
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!