MM1排队系统仿真matlab实验报告课案

合集下载

排队系统仿真matlab实验报告

排队系统仿真matlab实验报告

M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。

二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。

1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概率 服从Poisson 分布,即e t kk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。

2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO )4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。

三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。

四、采用的语言MatLab 语言源代码:clear;clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;elseCusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');hold on;stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive;%各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。

基于matlab GUI的MG1排队系统的可视化仿真程序设计

基于matlab GUI的MG1排队系统的可视化仿真程序设计

基于matlab GUI的M/G/1排队系统的可视化仿真程序设计刘健鹭(云南民族大学电气与信息工程学院 10级信号与信息处理研究生邮编:650500)摘要:M/G/1排队系统是一个顾客到达是无记忆泊松过程,服务时间为相互独立的一般分布的、具有多种服务规则的排队系统。

利用matlab GUI的面向对象的可视化的开发环境,设计一个参数可调的,直观的动画仿真程序,用于不同参数的M/G/1排队系统;本程序的主要作用有:为研究M/G/1排队系统提供一个简单的可视化仿真环境;为课堂教学提供一个直观的演示平台。

关键词:M/G/1排队系统 matlab GUIM/G/1 queuing system of visual simulation programming basedon Matlab GUIJianLuLiu(Y unnan national university)Abstrac t: M/G/1 queuing system is a customer arrives is no memory Poisson process, service time is independent of the general distribution, with a variety of services, rules of queuing systems. Using matlab GUI object-oriented visual development environment, design an adjustable parameter, intuitive animation simulation program for different parameters of the M/G/1 queuing system; major role in this program are: to study the M/G/1 queuing system provides a simple visual simulation environment; for the classroom to provide a visual presentation platform;key word:M/G/1 queuing system Matlab GUI引言:排队论是研究系统由于随机因素的干扰而出现排队现象的一门学科。

matlab系统仿真课程设计

matlab系统仿真课程设计

matlab系统仿真课程设计一、教学目标本课程的教学目标是使学生掌握Matlab系统仿真的基本原理和方法,能够熟练使用Matlab进行系统仿真分析。

具体目标如下:1.理解系统仿真的基本概念和原理。

2.熟悉Matlab软件的基本操作和功能。

3.掌握Matlab系统仿真的常用方法和技巧。

4.能够运用Matlab进行简单的系统仿真分析。

5.能够编写Matlab脚本程序进行系统仿真。

6.能够运用Matlab进行复杂的系统仿真分析,并能够进行结果的可视化。

情感态度价值观目标:1.培养学生的创新意识和解决问题的能力。

2.培养学生对系统仿真技术的兴趣和热情。

3.培养学生团队合作和交流的能力。

二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.Matlab系统仿真基础:介绍系统仿真的基本概念和原理,Matlab软件的基本操作和功能。

2.Matlab系统仿真方法:讲解Matlab系统仿真的常用方法和技巧,包括连续系统仿真、离散系统仿真、非线性系统仿真等。

3.Matlab系统仿真实例:通过具体的实例分析,使学生能够熟练运用Matlab进行系统仿真分析,并能够进行结果的可视化。

4.复杂系统仿真:介绍复杂系统仿真的基本概念和方法,讲解复杂系统仿真的建模和分析技巧。

三、教学方法为了达到课程目标,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解和演示,使学生掌握Matlab系统仿真的基本原理和方法。

2.案例分析法:通过分析具体的案例,使学生能够熟练运用Matlab进行系统仿真分析。

3.实验法:通过实验操作,使学生能够亲身体验和掌握Matlab系统仿真方法。

4.讨论法:通过小组讨论和交流,培养学生的团队合作和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选择一本与Matlab系统仿真相关的教材,作为学生学习的主要参考资料。

2.参考书:提供一些与Matlab系统仿真相关的参考书籍,供学生进一步深入学习。

matlab仿真实训课程设计

matlab仿真实训课程设计

matlab仿真实训课程设计一、课程目标知识目标:1. 理解Matlab仿真的基本原理,掌握仿真模型的构建方法;2. 学会运用Matlab进行数据可视化,分析仿真结果,并提取有效信息;3. 掌握结合课本知识,运用Matlab解决实际问题的能力。

技能目标:1. 能够独立进行Matlab仿真实验,熟练操作Matlab软件;2. 学会编写简单的Matlab程序,实现对仿真模型的参数调整和优化;3. 能够运用Matlab工具箱进行数据分析和处理,提高问题解决效率。

情感态度价值观目标:1. 培养学生对Matlab仿真的兴趣,激发学生探索科学问题的热情;2. 培养学生的团队协作意识,提高沟通与表达能力;3. 引导学生认识到仿真技术在工程领域的应用价值,树立正确的工程观念。

课程性质:本课程为选修课,旨在帮助学生掌握Matlab仿真的基本技能,提高解决实际问题的能力。

学生特点:学生具备一定的编程基础和数学知识,对Matlab软件有一定了解,但实际操作能力较弱。

教学要求:结合课本内容,注重实践操作,提高学生的动手能力,使学生在实践中掌握理论知识。

将目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. Matlab仿真基础- 介绍Matlab软件的安装与基本操作;- Matlab编程基础,包括数据类型、流程控制、函数编写等;- 理解仿真原理,掌握仿真模型构建的基本方法。

2. 数据可视化与分析- 学会使用Matlab进行数据可视化,如二维、三维图形绘制;- 掌握曲线拟合、插值、图像处理等数据分析方法;- 结合课本案例,进行实际操作练习。

3. 仿真实验与问题求解- 根据课本内容,选择合适的问题进行Matlab仿真实验;- 学会调整仿真模型参数,优化实验结果;- 分析实验数据,提取有效信息,解决实际问题。

4. 工具箱应用- 介绍Matlab常用工具箱,如信号处理、控制系统、神经网络等;- 学会运用工具箱进行数据分析和处理,提高问题解决效率;- 结合课本案例,进行实际应用练习。

MATLAB仿真技术实验教案

MATLAB仿真技术实验教案

MATLAB仿真技术实验教案第一篇:MATLAB仿真技术实验教案《MATLAB仿真技术》实验教案实验一实验名称:熟悉Matlab交互工作界面一、实验目的1、熟悉Matlab各种工作界面的操作要旨2、掌握Matlab的基本操作命令二、实验步骤1、命令窗口(1)体验命令窗口的菜单及各项功能(2)尝试命令窗口编辑特殊功能键和设置2、工作空间窗口与当前路径窗口(1)在工作空间窗口查看及修改变量(2)添加新的路径为Matlab路径3、图形窗口和文本编辑窗口(1)练习图形窗口中修改图形的方法(2)在文本编辑窗口调试程序4、体会Matlab的基本操作命令三、实验仪器PC机 MATLAB软件四、实验结果五、结论实验二实验名称:Matlab在符号计算方面的应用一、实验目的1、掌握标识符的生成和使用2、掌握矩阵及变量的赋值3、熟悉三类运算符及其功能二、实验内容1、标识符的生成和使用1)、计算y=x+(x-0.98)/(x+1.35)-5(x+1/x),当x=2和x=4时的值。

>>x=[2 4];y=x.^3+(x-0.98).^2./(x+1.35).^3-5*(x+1./x);y y = -4.4723 42.8096 32)、计算cos60-9-2。

ο323>> y=cos(pi/3)-(9-sqrt(2))^(1/3)y =-1.46492、矩阵及变量的赋值21)、已知a=3,A=4,b=a,B=b2-1,c=a+A-2B,C=a+2B+c,求C >> a=3;A=4;b=a^2;B=b^2-1;c=a+A-2*B;C=a+2*B+c;C C = 2)、创建3×4矩阵魔方阵和相应的随机矩阵,将两个矩阵并接起来,然后提取任意两个列向量。

>> A=magic(4);A(4,:)=[];B=rand(3,4);C=[A B];D=C(:,3);E=C(:,4);D,E D = 3 10 6E =8 12 3)、创建一个5×5随机阵并求其逆。

MM1排队系统仿真matlab实验报告

MM1排队系统仿真matlab实验报告

M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。

二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。

1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概率 服从Poisson 分布,即etkk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。

2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO ) 4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。

三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。

四、采用的语言MatLab 语言 源代码:clear; clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;elseCusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');hold on;stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive;%各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。

Matlab的mmn型排队仿真源程序

Matlab的mmn型排队仿真源程序

Matlab的mmn型排队仿真源程序题目:旅客登机前需要进行安检。

首先接受安检人员的检查,有两名安检人员,旅客根据安检人员前的等待人数排队;然后通过一道安检门完成检查。

请编制仿真程序,估计顾客通过安检所需时间。

function[meant]=newMM2andMM1(mean_arr,mean_serv,mean_serv1,mean_serv21,mean_serv22,peo_nu m)%mean_arr,到达的时间参数%mean_serv,服务台a的服务时间参数%mean_serv1,服务台b的服务时间参数%mean_serv21,mean_serv22,二级服务台的均匀分布的参数%peo_num,总服务人数nt=exprnd(mean_arr,1,peo_num);%各顾客到达时间间隔服从指数分布state_a=zeros(3,peo_num);%用一个三行矩阵表示a台每个顾客的状态%三行依次为:到达时间间隔,服务时间,等待时间state_b=zeros(3,peo_num);%用一个三行矩阵表示b台每个顾客的状态%三行依次为:到达时间间隔,服务时间,等待时间state_a(2,:)=exprnd(mean_serv,1,peo_num);%生成a台各顾客服务时间的矩阵state_b(2,:)=exprnd(mean_serv1,1,peo_num);%生成b台各顾客服务时间的矩阵state_a(3,1)=0;state_b(3,1)=0;a=1;%a台服务的人数b=1;%b台服务的人数arr_time=cumsum(nt);%到达时间由时间间隔变成连续时间state_b(1,1)=arr_time(1);state_a(1,1)=arr_time(2);%state(1,:)=arr_time;lea_time_a(1)=sum(state_a(:,1));%先计算前1名顾客的离开时间lea_time_b(1)=sum(state_b(:,1));%先计算第2名顾客的离开时间for i=3:peo_numif lea_time_a(a)<lea_time_b(b)%第i个顾客到达,服务台满,等待时间为%当时服务台最早离开的顾客的离开时间减去第i个顾客的到达时间 a=a+1;state_a(1,a)=arr_time(i);if state_a(1,a)<=state_a(3,a-1)+state_a(2,a-1)state_a(3,a)=state_a(3,a-1)+state_a(2,a-1)-state_a(1,a-1);elsestate_a(3,a)=0;endlea_time_a(a)=sum(state_a(:,a));elseb=b+1;state_b(1,b)=arr_time(i);if state_b(1,b)<=state_b(3,b-1)+state_b(2,b-1)state_b(3,b)=state_b(3,b-1)+state_b(2,b-1)-state_b(1,b-1);elsestate_b(3,b)=0;endlea_time_b(b)=sum(state_b(:,b));endend%连接两个状态矩阵state=[state_a(:,1:a),state_b(:,1:b)];state(3,:)=[lea_time_a(1:a),lea_time_b(1:b)];%连接两个离开时间%[g,m]=min(lea_time_a);%[h,n]=min(lea_time_b);lea_time=[lea_time_a,lea_time_b];%按离开时间的先后顺序排队guodu1=lea_time;guodu2=zeros(1,peo_num);for i=1:peo_num[guodu2(i),j]=min(guodu1);guodu1(j)=max(guodu1);endstate2=zeros(3,peo_num);%用一个三行矩阵表示二级服务台每个顾客的状态%三行依次为:到达时间间隔,服务时间,等待时间state2(2,:)=unifrnd(mean_serv21,mean_serv22,1,peo_num); %产生二级服务台的服务时间分布state2(1,:)=guodu2;for i=2:peo_numif state2(1,i)<=state2(3,i-1)+state2(2,i-1)%需要等待,更新等待时间state2(3,i)=state2(3,i-1)+state2(2,i-1)-state2(1,i);elsestate2(3,i)=0;end;end;%arr_time2=cumsum(state2(1,:));%state2(1,:)=arr_time2;lea_time2=sum(state2);%计算平均时间t1=0;t2=0;for i=1:peo_numt1=t1+state(3,i)-state(1,i);t2=t2+lea_time2(i)-state2(1,i);endmeant=(t1+t2)/peo_num;调用格式:meant=newMM2andMM1(1,1.5,2,0.2,1,300) 得到结果:meant =2.2418;。

实验三 MM1队列模型实验

实验三 MM1队列模型实验

建立一个M/M/1排队模型一、实验目的1、了解M/M/1排队模型的主要结构和特点。

2、掌握OPNET节点编辑器的基本使用方法。

3、掌握使用工程编辑器来收集和观察不同统计类型的方法。

4、掌握从仿真结果中数学分析统计数据的方法。

二、实验设备和环境PC、Windows XP、Opnet14.5A等;三、准备知识M/M/1排队模型:M/M/1排队模型由一个数据包到达过程为泊松过程的单入单出(FIFO)缓冲器和一台从缓冲区以特定速度接受分组数据包的服务器(server)组成。

M/M/1队列系统的性能取决于以下几个因素:(1)数据包到达速度(2)数据包大小(3)服务器服务容量如果平均数据包到达速度和平均数据包大小的综合影响超过了服务器所能提供的服务容量,队列长度将会无限增长。

M/M/1队列模型如图1所示:图1. M/M/1队列模型1, 和C分别表示到达速度、数据包大小和服务容量。

其中λ, μ在本次实验中,我们会建立一个M/M/1队列模型,通过设定特定的到达速度、数据包大小和服务容量来使队列达到稳定。

四、实验内容和步骤实验内容:创建一个M/M/1队列模型,需要在节点编辑器中选择对象,包括一个queue和两个过程processors。

source节点(用processor module表示)负责产生数据包,sink节点(用processor module表示)负责处理无用的数据包,queue module表示无限的缓冲器和服务器。

packet streams用来连接每个模块。

模型如图2.图2. M/M/1队列模型实验步骤:1)打开OPNET,并新建project和scenario。

分别命名为mm1net和mm1。

如图3所示:图3. 新建工程和场景2)打开Startup Wizard后,点击Quit,会在节点模型创建之后再进行场景的设置。

3)选择File\New...并在弹出的窗口下拉菜单中选择Node Model,点击ok。

matlab仿真实验报告,Matlab仿真及其应用实验报告.doc

matlab仿真实验报告,Matlab仿真及其应用实验报告.doc

matlab仿真实验报告,Matlab仿真及其应⽤实验报告.doc Matlab仿真及其应⽤ 实验报告温州⼤学物理与电⼦信息⼯程学院Matlab仿真及其应⽤ 实验报告课程名称:Matlab仿真及其应⽤班 级:10电信姓名:吴** 学号:1011000****实验地点:5B305⽇期:12.25实验⼆ Matlab 基本编程基础[实验⽬的和要求]熟悉MATLAB环境与⼯作空间熟悉变量与矩阵的输⼊、矩阵的运算熟悉M⽂件与M函数的编写与应⽤熟悉MATLAB控制语句与逻辑运算掌握if语句、switch语句、try语句的使⽤。

掌握利⽤for语句、while语句实现循环结构的⽅法。

[实验内容]1⾏100列的Fibonacc 数组a,a(1)=a(2)=1,a(i)=a(i-1)+a(i-2),⽤for循环指令来寻求该数组中第⼀个⼤于10000的元素,并之处其位置i。

编写M函数表⽰曲线以及它的包络线,并从命令窗⼝输⼊命令语句绘制曲线。

t的取值范围是[0,4π]。

设,编写⼀个M函数⽂件,使得调⽤f(x)时,x可⽤矩阵代⼊,得出的f(x)为同阶矩阵。

根据,求时的最⼤n值;与(1)的n值对应的y值。

已知求中,最⼤值、最⼩值、各数之和,以及正数、零、负数的个数。

输⼊⼀个百分制成绩,要求输出成绩等级A,B,C,D,E。

其中,90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

求分段函数的值。

⽤if语句实现输出x=-5.0, -3.0, 1.0, 2.0, 2.5, 3.0, 5.0时的y值。

编写⼀M函数,实现近似计算指数,其中x为函数参数输⼊,当n+1步与n步的结果误差⼩于0.00001时停⽌。

编写⼀M函数,a和x作为M函数参数输⼊,函数⾥⾯分别⽤if结构实现函数表⽰实验结果及分析:1.a=ones(1,100); %定义数组for i=3:100a(i)=a(i-1)+a(i-2);if(a(i)>10000)a(i),break;endend ,i2.function y=ff(t)y1=exp(-t/3);y2=exp(-t/3).*sin(3*t); y=[y1;y2]3.function y=f(x);a=input('输⼊a值:');x=input('输⼊x值:');if(x<=-a)y=-1;elseif(x-a)y=x/a;elsey=1;endend4.for n=1:100f(n)=1./(2*n-1);y=sum(f)if y>=3my=y-f(n)breakendendmy5.f(1)=1,f(2)=0,f(3)=1; for n=4:100f(n)=f(n-1)-2*f(n-2)+f(n-3);enda=sum(f);b=max(f);c=min(f);p=f==0,d=sum(p);%p等于f为0的个数p1=f>0,e=sum(p1);p2=f<0,f=sum(p2);a,b,c,d,e,f6.clear;n=input('输⼊成绩:');m=floor(n/10);%取整switch mcase num2cell(9:10)disp('A'); %显⽰在控制框case 8disp('B');case 7disp('C');case 6disp('D');case num2cell(0:5)disp('E');otherwisedisp('error')end7.function y=ex3_4(x)for i=1:length(x)if (x(i)<0)&(x(i)~=-3)y(i)=x(i)^2+x(i)-6elseif (x(i)>=0)&(x(i)<5)&(x(i)~=2)&(x(i)~=3) y(i)=x(i)^2-5*x(i)+6else y(i)=x(i)^2-x(i)-1 endendy8.function t=ex3_4(x) n=0;t=1;y=1;x=input(‘’);while y>=0.00001n=n+1;y=x^n/factorial(n);t=t+y;endn9.function y=f(x);a=input('输⼊a值:'); x=input('输⼊x值:'); if。

MATLAB与仿真系统课程设计报告

MATLAB与仿真系统课程设计报告

MATLAB与仿真系统课程设计报告自动化专业课程设计报告《MATLAB与仿真系统课程设计报告》 -----模型仿真班级:自动化09-1姓名:许丹阳学号:0918120123时间:2011年12月12号至12月16号地点:电信实验中心EDA机房指导教师:崔新忠大连海洋大学信息工程学院自动化研究室目录1 课程设计的目的与要求 (3)1.1 课程设计目的 (3)1.2 课程设计要求 (3)2 课程设计课题的分析 (3)3课程设计的内容和安排 (3)4 课程设计的步骤 (4)4.1 根轨迹的概述 (4)4.2 根轨迹的基本概念 (4)4.3 举例 (5)5 课程设计的结果 (10)6课程设计的心得和体会 (11)7 参考文献 (11)大连海洋大学课程设计报告纸学院: 专业班级: 姓名: 学号:一、课程设计的目的与要求1、课程设计目的:(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。

(2)通过课程设计提高应用能力,为专业课的学习打下基础。

(3)培养查阅资料的习惯,训练和提高独立思考和解决问题的能力。

(4)对选定模型仿真,培养知识综合运用能力和技巧。

2、课程设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:(1)能够正确理解课程设计的题目和意义,全面思考问题。

(2)运用科学合理的方法,认真按时完成。

二、课程设计课题的分析既然根轨迹是系统特征方程的根随着某个参数变动在s平面上移动的轨迹,那么,根轨迹的形状不同,闭环特征根就不同,系统的性能就不一样。

工程上,为了改善系统的性能,往往需要对根轨迹进行改造。

从前面的分析可知,系统根轨迹的形状、位置完全取决于系统的开环传递函数中的零点和极点。

因此,可通过增加开环零、极点的手段来改造根轨迹,从而实现改善系统性能的目的。

根据根轨迹的绘制法,增加开环零、极点和偶被子对系统根轨迹的影响总结如下。

三、课程设计的内容与安排根据所学知识,设计系统并建立数学模型,选择适当的模块,进行仿真试验,并对所建立的模块合理封装。

MM1队列仿真

MM1队列仿真

实验一 M/M/1队列仿真1、实验目的(1)了解什么是M/M/1队列(2)利用节点编辑器,创建一个类似的M/M/1队列(3)在仿真过程中将过滤器应用于数据收集,以及对后期仿真数据的数学研究。

2、实验环境Windows XP系统OPNET Modeler 10.0仿真软件3、实验原理M/M/1队列是由先进先出(FIFO)的缓冲区组成,数据包到达服从柏松分布。

M/M/1队列的性能优以下几个参数决定:●数据包到达速率●数据包大小●服务容量下图就是M/M/1队列的模型图1:图1 M/M/1队列的节点模型图4、实验步骤<一> M/ M/1队列节点创建新建一个工程名为ch04_mm1,场景名MM1的工程,单击“Quit”后退出,以后再设置此网络场景。

在项目编辑器出创建一个node model的场景:执行File >New命令,创建即可。

1 定义数据源模块(1)在工具栏中单击“Create Processer”按钮,设置一个处理机模块放在工作区中。

(2)编辑其属性,右击选择“Edit Attributes”进行编辑。

设置各个属性如图2:图2 源模块属性图其中,设置数据包生成的间隔时间为指数分布;设置Mean Outcome为0.1(数据包到达的平均时间0.1s);改变Packet Size 的属性,Mean time 为9000。

(3)单击“ok”关闭属性对话框,完成属性设置。

2 建立队列模型(1)创建一个队列(按“Create Queue”按钮即可),再放一个处理及模块在它的左边。

(2)右击队列模块,编辑属性如图3:图3 队列属性图模块改名为“queue”,“process model”为acb_fifo;确认service_rate为9600(3)单击“ok”按钮,完成属性设置,关闭对话框。

3 定义是数据池模块(1)在创建一个处理及模块放置于队列模块的右边,如图4:图4 数据池模型的三个节点(2)右击该模块,编辑其属性,name为sink,“process model”也为“sink”。

matlab 仿真实验报告

matlab 仿真实验报告

matlab 仿真实验报告Matlab 仿真实验报告引言:在科学研究和工程应用中,仿真实验是一种非常重要的手段。

通过在计算机上建立数学模型和进行仿真实验,我们可以更好地理解和预测现实世界中的各种现象和问题。

Matlab作为一种强大的科学计算软件,被广泛应用于各个领域的仿真实验中。

本文将介绍我进行的一次基于Matlab的仿真实验,并对实验结果进行分析和讨论。

实验背景:在电子通信领域中,信号的传输和接收是一个重要的研究方向。

而在进行信号传输时,会受到各种信道的影响,如噪声、衰落等。

为了更好地理解信道的特性和优化信号传输方案,我进行了一次关于信道传输的仿真实验。

实验目的:本次实验的目的是通过Matlab仿真,研究不同信道条件下信号传输的性能,并对比分析不同传输方案的优劣。

实验步骤:1. 信道建模:首先,我需要建立信道的数学模型。

根据实际情况,我选择了常见的高斯信道模型作为仿真对象。

通过Matlab提供的函数,我可以很方便地生成高斯噪声,并将其加入到信号中。

2. 信号传输方案设计:接下来,我需要设计不同的信号传输方案。

在实验中,我选择了两种常见的调制方式:频移键控(FSK)和相移键控(PSK)。

通过调整不同的调制参数,我可以模拟不同的传输效果。

3. 信号传输仿真:在信道模型和传输方案设计完成后,我开始进行信号传输的仿真实验。

通过Matlab提供的信号处理函数,我可以很方便地生成调制后的信号,并将其传输到信道中。

4. 信号接收和解调:在信号传输完成后,我需要进行信号接收和解调。

通过Matlab提供的信号处理函数,我可以很方便地对接收到的信号进行解调,并还原出原始的信息信号。

5. 仿真结果分析:最后,我对仿真结果进行分析和讨论。

通过对比不同信道条件下的传输性能,我可以评估不同传输方案的优劣,并得出一些有价值的结论。

实验结果与讨论:通过对不同信道条件下的信号传输仿真实验,我得到了一些有价值的结果。

首先,我观察到在高斯噪声较大的信道条件下,PSK调制比FSK调制具有更好的抗干扰性能。

MATLAB系统仿真实验报告一

MATLAB系统仿真实验报告一

MATLAB系统仿真实验报告(一实验一、MATLAB语言环境与基本运算一、实验目的及要求1.学习了解MATLAB语言环境2.练习MATLAB命令的基本操作3.练习MATLAB数值运算相关内容4.练习MATLAB符号运算相关内容5.撰写实验报告二、实验内容1.熟悉Matlab语言环境1).学习了解MATLAB语言环境MATLAB语言操作界面(主界面的各个窗口)主界面:工具栏:状态栏:命令窗口:文件窗口:工作空间窗口:历史命令窗口:变量查询命令who, whosWho:列出当前存储器中的所有变量Whos:列出当前工作空间中的所有变量,包括与他们的维数、字节、类型有关的变量目录与目录结构目录,文件夹,文件搜索路径联机帮助2).MATLAB基本操作命令demos,clc,clf,clear,contro-c(^c),diary Demos:Clc:命令窗口清屏。

Clf:清楚当前图形。

清楚工作空间。

Control+c:复制选定区域到粘贴板。

Diary:用于记录MATLAB窗口的输入的命令和响应输出,diary off关闭记录,diary on打开记录。

2.Matlab数值运算与符号运算1).MATLAB数值运算相关内容MATLAB变量及变量赋值变量名以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。

变量名区分大小写,不可使用保留字。

变量赋值:变量名=表达式。

初等矩阵函数ones, zeros, eye, rand, randn, sizeOnes:生成常熟1构成的数组。

Zeros:零数组。

Eye:生成单位矩阵。

Rand:生成随机数和矩阵。

产生标准正态分布的随机数或矩阵的函数。

Size:求矩阵的维数。

矩阵的基本运算+ 加- 减* 乘^ 乘方‘共轭转置/或\ 矩阵相除./或.\ 数组相除矩阵的特征运算det, eig, rank, svdDet:求行列式。

Eig:求特征值和特征向量。

Rank:计算矩阵的秩。

北邮通信网mm1级联排队系统MATLAB代码

北邮通信网mm1级联排队系统MATLAB代码
Num_a(i)>=2
QueLength_a(i)=CusNum_a(i)-1;%某事件时间断点系统内排队长
else
QueLength_a(i)=0;
end
end
QueLength_avg_a=sum([0 QueLength_a].*[Time_interval_a 0])/Timepoint_a(end);%系统平均等待队长
Time_interval_b(i)=Timepoint_b(i)-Timepoint_b(i-1);
end
CusNum_fromStart_b=[0 CusNum_b];
CusNum_avg_b=sum(CusNum_fromStart_b.*[Time_interval_b 0])/Timepoint_b(end);
for i=2:Simtotal
Interval_Arrive_b(i)=t_Leave_a(i)-t_Leave_a(i-1)
end
Interval_Serve_b=exprnd(1/Mu_b,1,Simtotal);
for i=1:Simtotal
t_Arrive_b(i)=t_Leave_a(i);
LeaveNum_b=zeros(1,Simtotal);
Interval_Arrive_b=zeros(1,Simtotal);
Interval_Arrive_a=exprnd(1/Lambda,1,Simtotal);%产生泊松流
Interval_Serve_a=exprnd(1/Mu_a,1,Simtotal);
else
CusNum_b(i)=CusNum_b(i-1)-1;

matlab系统仿真课程设计

matlab系统仿真课程设计

matlab系统仿真课程设计一、课程目标知识目标:1. 学生能理解Matlab系统仿真的基本概念,掌握仿真模型建立的基本方法。

2. 学生能掌握Matlab中相关工具箱的使用,实现对动态系统的建模与仿真。

3. 学生能运用所学知识对实际工程问题进行系统仿真,分析仿真结果。

技能目标:1. 学生能运用Matlab软件进行系统仿真,具备实际操作能力。

2. 学生能通过团队协作,解决复杂工程问题,提高沟通与协作能力。

3. 学生能运用仿真技术对实验结果进行分析,具备一定的数据处理能力。

情感态度价值观目标:1. 学生通过课程学习,培养对仿真技术的兴趣,提高学习积极性。

2. 学生能认识到系统仿真在工程领域的重要应用,增强专业认同感。

3. 学生在团队协作中,学会尊重他人,培养良好的团队合作精神和职业道德。

本课程针对高年级学生,结合Matlab系统仿真相关知识,注重理论与实践相结合。

课程性质为实践性较强的专业课程,旨在培养学生具备实际工程问题的建模与仿真能力。

根据学生特点和教学要求,课程目标具体明确,分解为可衡量的学习成果,便于后续教学设计和评估。

通过本课程的学习,使学生能够掌握Matlab系统仿真的基本方法,提高解决实际工程问题的能力,为未来从事相关工作打下坚实基础。

二、教学内容1. Matlab系统仿真基础理论- 动态系统建模基本概念- Matlab仿真流程与原理- 相关工具箱介绍2. 动态系统建模与仿真- 线性系统建模方法- 非线性系统建模方法- 系统仿真模型建立与验证3. 实际工程问题仿真案例分析- 控制系统仿真案例分析- 信号处理仿真案例分析- 机电系统仿真案例分析4. Matlab系统仿真实验- 基础实验:Matlab基本操作与绘图- 综合实验:动态系统建模与仿真- 创新实验:实际工程问题仿真教学内容根据课程目标进行选择和组织,确保科学性和系统性。

本课程以课本为基础,涵盖Matlab系统仿真的基本理论、建模方法、实际案例分析及实验操作。

MM1排队系统仿真matlab实验报告

MM1排队系统仿真matlab实验报告

M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。

二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。

1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概率 服从Poisson 分布,即etkk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。

2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO ) 4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。

三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。

四、采用的语言MatLab 语言 源代码:clear; clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;CusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive;%各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。

matlab仿真课程设计报告

matlab仿真课程设计报告

matlab仿真课程设计报告一、教学目标本课程的教学目标旨在通过MATLAB仿真技术的学习,使学生掌握MATLAB基本操作、仿真环境搭建、脚本编写及图形用户界面设计等技能,培养学生运用MATLAB解决实际问题的能力。

具体目标如下:1.知识目标:–理解MATLAB的系统结构及基本功能;–掌握MATLAB基本语法、数据类型、矩阵运算;–熟悉MATLAB仿真环境及相关工具箱;–了解MATLAB在工程领域的应用。

2.技能目标:–能够独立搭建简单的仿真环境;–能够运用MATLAB进行数据分析、算法实现;–具备编写MATLAB脚本及图形用户界面的能力;–能够运用MATLAB解决实际工程问题。

3.情感态度价值观目标:–培养学生的创新意识、团队协作精神及自主学习能力;–使学生认识到MATLAB在工程领域的重要性,提高学习兴趣;–培养学生运用所学知识解决实际问题的责任感。

二、教学内容本课程的教学内容主要包括MATLAB基础知识、MATLAB仿真环境及工具箱、脚本编写及图形用户界面设计等。

具体安排如下:1.MATLAB基础知识:–MATLAB概述及系统结构;–MATLAB基本语法、数据类型、矩阵运算。

2.MATLAB仿真环境及工具箱:–MATLAB仿真环境搭建;–MATLAB常用工具箱介绍,如控制系统、信号处理、图像处理等。

3.脚本编写及图形用户界面设计:–MATLAB脚本编写方法及技巧;–MATLAB图形用户界面设计原理及实例。

4.MATLAB在工程领域的应用:–利用MATLAB解决实际工程问题案例分析。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。

具体方法如下:1.讲授法:通过讲解MATLAB的基本概念、语法及应用,使学生掌握课程基本知识。

2.案例分析法:分析实际工程案例,让学生了解MATLAB在工程领域的应用,提高学生解决实际问题的能力。

3.实验法:安排适量实验,让学生动手操作,培养学生的实际操作能力和创新能力。

MATLAB实验报告1.doc

MATLAB实验报告1.doc

系统仿真与MATLAB实验报告实验一:MATLAB基本操作一、实验目的:1、学习并撑握MA TLAB语言的基本操作方法;2、撑握命令窗口的使用;3、熟悉MATLAB的数据表示、基本运算和程序控制语句;4、熟悉MATLAB程序设计的基本方法。

二、实验编程与测试1.矩阵运算(1)已知A=[1 2;3 4];B=[5 5;7 8];求A^2*B程序:>> A=[1 2;3 4];B=[5 5;7 8];>> C=(A^2)*BC =105 115229 251(2)矩阵除法已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];求A/B,A\B程序:>> A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];>> C1=A/BC1 =1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 3.0000>> C2=A\BWarning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 1.541976e-018.(Type "warning off MATLAB:nearlySingularMatrix" to suppress this warning.)C2 =1.0e+016 *-0.4504 1.8014 -1.35110.9007 -3.6029 2.7022-0.4504 1.8014 -1.3511(3)矩阵的转置及共轭转置已知A=[15+i, 2-i ,1;6*i,4,9-i];求A.’,A’程序:>> A=[15+i,2-i,1;6*i,4,9-i];>> B1=A.'B1 =15.0000 + 1.0000i 0 + 6.0000i2.0000 - 1.0000i 4.00001.0000 9.0000 - 1.0000i>> B2=A'B2 =15.0000 - 1.0000i 0 - 6.0000i2.0000 + 1.0000i 4.00001.0000 9.0000 + 1.0000i(4)使用冒号选出指定元素已知A=[1 2 3;4 5 6;7 8 9];求A中第3列前2个元素;A中所有第2行的元素;程序:>> A=[1 2 3;4 5 6;7 8 9];>> B1=A(1:2,3)B1 =36>> B2=A(2,1:3)B2 =4 5 6(5)方括号[]用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列A =16 2 3 135 11 10 89 7 6 124 14 15 1>> A(:,4)=[]A =16 2 35 11 109 7 64 14 152.多项式(1)求多项式的根程序:>> p=[1 0 -2 -4];>> roots(p)ans =2.0000-1.0000 + 1.0000i-1.0000 - 1.0000i(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]求矩阵A的特征多项式;求矩阵多项式中未知数为20时的值;把矩阵A作为未知数代入到多项式中;程序:>> A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4];>> b=poly(A)b =1.0000 -6.9000 -77.2600 -86.1300 604.5500>> c=polyval(b,20)c =7.2778e+004y=polyval(b,A)y =1.0e+003 *0.3801 -0.4545 -1.9951 0.4601-1.9951 0.2093 -1.9951 -2.8880-0.4545 -4.8978 0.6046 0.43530.4353 0.0840 -0.4545 -1.1617>> z=polyvalm(b,A)z =1.0e-010 *-0.0591 -0.0913 -0.0712 -0.0662-0.0909 -0.1273 -0.1065 -0.1023-0.0843 -0.1171 -0.0909 -0.0878-0.0523 -0.0777 -0.0621 -0.06033.基本程序设计(1)编写命令文件:计算1+2+…+n<2000时的n值;程序:>> clears=s+i;i=i+1;end>> i=i-1i =63(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。

MMN排队系统建模与仿真

MMN排队系统建模与仿真

《系统仿真与matlab》综合试题....................... 错误!未定义书签。

M/M/N 排队系统的模拟仿真 (1)摘要 (1)1. 问题分析 (2)2. 模型假设 (2)3. 符号说明 (3)4. 模型准备 (3)4.1 排队系统的组成和特征 (3)4.1.1输入过程 (4)4.1.2排队规则 (4)4.1.3服务过程 (4)4.1.4排队系统的主要指标 (5)4.2输入过程与服务时间的分布 (5)4.2.1负指数分布 (5)4.2.2泊松分布 (5)4.3生灭过程 (6)5. 标准M/M/N模型 (8)5.1多服务台模型准备 (8)5.2多服务台模型建立 (9)5.2.1服务利用率 (9)5.2.2平均排队长 (9)5.2.3平均队长 (10)5.2.4平均等待时间 (10)6. 程序设计 (11)6.1动画流程图 (11)6.2 M/M/N流程图 (12)7. 程序运行实例介绍 (13)7.1动画实例讲解 (13)7.2M/M/N排队系统实例讲解 (14)8. 程序实现难点和模型评价 (17)8.1程序实现难点 (17)8.2模型评价 (17)9. 参考文献 (17)10. 附录 (17)10.1动画实现的核心程序 (17)10.2 M/M/N模型计算主要程序 (22)M/M/N 排队系统的模拟仿真摘要排队是在日常生活中经常遇到的事,由于顾客到达和服务时间的随机性,使得排队不可避免。

因此,本文建立标准的M/M/N模型,并运用Matlab软件,对M/M/N排队系统就行了仿真,从而更好地深入研究排队问题。

问题一,基于顾客到达时间服从泊松分布和服务时间服从负指数分布,建立了标准的M/M/N模型。

运用Matlab软件编程,通过输入服务台数量、泊松分布参数以及负指数分布参数,求解出平均队长、服务利用率、平均等待时间以及平均排队长等重要指标。

然后,分析了输入参数与输出结果之间的关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。

二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。

1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概率 服从Poisson 分布,即e t kk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。

2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO )4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。

三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。

四、采用的语言MatLab 语言源代码:clear;clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;CusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive;%各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。

每发生一次事件,记录下两次事件间隔的时间以及在该时间段内排队的人数:Timepoint=[t_Arrive,t_Leave]; %系统中顾客数变化CusNum=zeros(size(Timepoint));CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end); %系统中平均顾客数计算QueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end); %系统平均等待队长2.算法的流程图六、仿真结果分析顾客的平均等待时间与顾客的平均等待队长,计算其方差如下:从上表可以看出,通过这种模型和方法仿真的结果和理论值十分接近,增加仿真顾客数时,可以得到更理想的结果。

但由于变量定义的限制,在仿真时顾客总数超过1,500,000时会溢出。

证明使此静态仿真的思想对排队系统进行仿真是切实可行的。

实验结果截图如下(SimTotal分别为100、1000、10000、100000):(仿真顾客总数为100000和1000000时,其图像与10000的区别很小)七、遇到的问题及解决方法1.在算法设计阶段对计算平均队长时对应的时间段不够清楚,重新画出状态转移图后,引入变量Timepoint用来返回按时间排序的到达和离开的时间点,从而得到正确的时间间隔内的CusNum,并由此计算出平均队长。

2.在刚开始进行仿真时仿真顾客数设置较小,得到的仿真结果与理论值相差巨大,进行改进后,得到的结果与理论值相差不大。

3.刚开始使用exprnd(Mu,m)产生负指数分布,但运行时报错,上网查找资料后找到替代方法:改成Interval_Serve=-log(rand(1,SimTotal))/Mu;方法生成负指数分布,运行正常。

八、实验心得通过本次实验我对M/M/1单窗口无限排队系统有了更深的认识,同时对MatLab编程语言更加熟悉,并了解到仿真在通信网中的重要作用。

此次实验我受益匪浅。

相关文档
最新文档