当前位置:文档之家› MM1排队系统仿真matlab实验报告课案

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

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

M/M/1排队系统实验报告

一、实验目的

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

二、实验原理

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

1、 顾客到达模式

设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼

叫的概率 服从Poisson 分布,即e t k

k 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:SimTotal

t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);

ArriveNum(i)=i;

end

t_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;

for i=2:SimTotal

if t_Leave(i-1)

t_Leave(i)=t_Arrive(i)+Interval_Serve(i);

else

t_Leave(i)=t_Leave(i-1)+Interval_Serve(i);

end

LeaveNum(i)=i;

end

t_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;

end

end

%系统中平均顾客数计算

Time_interval=zeros(size(Timepoint));

Time_interval(1)=t_Arrive(1);

for i=2:length(Timepoint)

Time_interval(i)=Timepoint(i)-Timepoint(i-1);

end

CusNum_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)>=2

QueLength(i)=CusNum(i)-1;

else

QueLength(i)=0;

end

end

QueLength_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编程语言更加熟悉,并了解到仿真在通信网中的重要作用。此次实验我受益匪浅。

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

排队系统仿真matlab实验报告

M/M/1排队系统实验报告 一、实验目的 本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。 二、实验原理 根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。 1、 顾客到达模式 设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概 率 服从Poisson 分布,即e t k k 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:SimTotal t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i); ArriveNum(i)=i; end t_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1; for i=2:SimTotal if t_Leave(i-1)

matlab实验报告

数学实验报告 班级: 学号: 姓名: 实验序号:1 日期:年 月 日 实验名称:特殊函数与图形 ◆ 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到 明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。 ◆ 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性, 另一方面,就 Matlab 强大的作图功能作一个简单介绍。 实验原理与数学模型: 1、 球2222x y z R ++= ,x=Rsin φcos θ, y= Rsin φsin θ, z= cos φ, 0≤θ≤2π , 0≤φ≤π 环面 222222222()4(),(cos )cos ,x y z a r a x y x a r φθ+++-=+=- (cos )sin ,sin ,02,02y a r z r φθφφπθπ=-=≤≤≤≤ 2、 平面摆线:2 22 31150,(sin ),(1cos ),0233 x y x a t t y a t t π+-==-=-≤≤ 3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)22 cos ,sin ,x t t y t t z t === 4、 椭球面sin cos ,sin sin ,cos ,02,0x a y b z c φθφθφθπφπ===≤<≤≤ 双叶双曲面3 tan cos ,tan sin ,sec ,02,22 x a y b z c π φθφθφθπφπ===≤<- << 双曲抛物面2 sec ,tan 2 u x au y bu z θθ=== 实验所用软件及版本:mathematica(3.0) 主要内容(要点): 1、 作出下列三维图形(球、环面) 2、 作出下列的墨西哥帽子 3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形 4、 试画出田螺上的一根螺线 5、 作出如图的马鞍面

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

Matlab数学实验报告一

数学软件课程设计 题目非线性方程求解 班级数学081 姓名曹曼伦

实验目的:用二分法与Newton迭代法求解非线性方程的根; 用Matlab函数solve、fzero、fsolve求解非线性方程(组)的解。 编程实现二分法及Newton迭代法; 学会使用Matlab函数solve、fzero、fsolve求解非线性方程(组)的解。 通过实例分别用二分法及迭代法解非线性方程组并观察收敛速度。 实验内容: 比较求exp(x)+10*x-2的根的计算量。(要求误差不超过十的五次方) (1)在区间(0,1)内用二分法; (2)用迭代法x=(2-exp(x))/10,取初值x=0 。 试验程序 (1)二分法: format long syms x s=exp(x)+10*x-2 a=0; b=1; A=subs(s,a) B=subs(s,b) f=A*B %若f<0,则为由根区间 n=0; stop=1.0e-5; while f<0&abs(a-b)>=stop&n<=100; Xk=(a+b)/2; %二分 M= subs(s, Xk); if M* A<0 symbol=1 %若M= subs(s, Xk)为正,则与a二分 b= Xk else symbol=0 % 若M= subs(s, Xk)为负,则与b二分 a= Xk end n=n+1 end Xk n (2)牛顿迭代法; format long

syms x s= (2-exp(x))/10; %迭代公式 f=diff(s); x=0; %迭代初值 a=subs(f,x); %判断收敛性(a是否小于1) s=(2-exp(x))/10; stop=1.0e-5; %迭代的精度 n=0; while a<1&abs(s-x)>=stop&n<=100; x=s %迭代 s=(2-exp(x))/10; n=n+1 end 实验结果: (1)二分法: symbol =1 b =0.50000000000000 n =1 symbol =1 b =0.25000000000000 n =2 symbol =1 b =0.12500000000000 n =3 symbol =0 a =0.06250000000000 n =4 symbol =1 b =0.09375000000000 n =5 symbol =0 a =0.07812500000000 n =6 symbol =1 b =0.09054565429688 n =15 symbol =1 b =0.09053039550781 n =16 symbol =0 a =0.09052276611328 n =17 Xk =0.09052276611328 n =17 (2)迭代法 由x =0.10000000000000 n =1 x =0.08948290819244 n =2 x =0.09063913585958 n =3 x =0.09051261667437 n =4 x =0.09052646805264 n =5 试验结果可见用二分法需要算17次,而用迭代法求得同样精度的解仅用5次,但由于迭代法一般只具有局部收敛性,因此通常不用二分法来求得非线性方程的精确解,而只用它求得根的一个近似解,再用收敛速度较快的迭代法求得其精确解。

queuing modeling排队论的matlab仿真(包括仿真代码)

Wireless Network Experiment Three: Queuing Theory ABSTRACT This experiment is designed to learn the fundamentals of the queuing theory. Mainly about the M/M/S and M/M/n/n queuing MODELS. KEY WORDS: queuing theory, M/M/s, M/M/n/n, Erlang B, Erlang C. INTRODUCTION A queue is a waiting line and queueing theory is the mathematical theory ofwaiting lines.More generally, queueing theory is concerned with the mathematical modeling and analysisof systems that provide service to random demands. Incommunication networks, queues are encountered everywhere. For example, theincoming data packets are randomly arrived and buffered, waiting for the routerto deliver. Such situation is considered as a queue. A queueing model is an abstract description of such a system. Typically, a queueing model represents (1) thesystem's physical configuration, by specifying the number and arrangement of theservers, and (2) the stochastic nature of the demands, by specifying the variabilityin the arrival process and in the service process. The essence of queueing theory is that it takes into account the randomness ofthe arrival process and the randomness of the service process. The most commonassumption about the arrival process is that the customer arrivals follow a Poisson process, where the times between arrivals are exponentially distributed. Theprobability of the exponential distribution function

MATLAB仿真实验报告

MATLAB 仿真实验报告 课题名称:MATLAB 仿真——图像处理 学院:机电与信息工程学院 专业:电子信息科学与技术 年级班级:2012级电子二班 一、实验目的 1、掌握MATLAB处理图像的相关操作,熟悉相关的函数以及基本的MATLAB语句。 2、掌握对多维图像处理的相关技能,理解多维图像的相关性质 3、熟悉Help 命令的使用,掌握对相关函数的查找,了解Demos下的MATLAB自带的原函数文件。 4、熟练掌握部分绘图函数的应用,能够处理多维图像。 二、实验条件

MATLAB调试环境以及相关图像处理的基本MATLAB语句,会使用Help命令进行相关函数查找 三、实验内容 1、nddemo.m函数文件的相关介绍 Manipulating Multidimensional Arrays MATLAB supports arrays with more than two dimensions. Multidimensional arrays can be numeric, character, cell, or structure arrays. Multidimensional arrays can be used to represent multivariate data. MATLAB provides a number of functions that directly support multidimensional arrays. Contents : ●Creating multi-dimensional arrays 创建多维数组 ●Finding the dimensions寻找尺寸 ●Accessing elements 访问元素 ●Manipulating multi-dimensional arrays操纵多维数组 ●Selecting 2D matrices from multi-dimensional arrays从多维数组中选择二维矩 阵 (1)、Creating multi-dimensional arrays Multidimensional arrays in MATLAB are created the same way as two-dimensional arrays. For example, first define the 3 by 3 matrix, and then add a third dimension. The CAT function is a useful tool for building multidimensional arrays. B = cat(DIM,A1,A2,...) builds a multidimensional array by concatenating(联系起来)A1, A2 ... along the dimension DIM. Calls to CAT can be nested(嵌套). (2)、Finding the dimensions SIZE and NDIMS return the size and number of dimensions of matrices. (3)、Accessing elements To access a single element of a multidimensional array, use integer subscripts(整数下标). (4)、Manipulating multi-dimensional arrays

数学实验“几种常见的求积分近似解的方法”实验报告(内含matlab程序)

西京学院数学软件实验任务书

实验二十一实验报告 一、实验名称:Romberg 积分法,Gauss 型积分法,高斯-勒让德积分法,高斯-切比雪夫积分法,高斯-拉盖尔积分法,高斯-埃尔米特积分法。 二、实验目的:进一步熟悉Romberg 积分法,Gauss 型积分法,高斯-勒让德积分法,高斯-切比雪夫积分法,高斯-拉盖尔积分法,高斯-埃尔米特积分法。 三、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica 等其中一种语言完成程序设计。 四、实验原理: 1.Romberg 积分法: 龙贝格积分法是用里查森外推算法来加快复合梯形求积公式的收敛速度,它的算法如下,其中()i m T 是通过一系列逼近原定积分的龙贝格分值. 计算(0)1[()()]2 b a T f a f b -= + 对1,2,3,k n = ,计算下列各步: 21()(1)1 111 1(21)()[()]222k k k k k j b a j b a T T f a ---=---=++∑

对1,2,,m k = 和,1,2,,1i k k k =-- ,计算111 441 m i i i m m m m T T T --+-=- 随着计算的步骤的增加,()i m T 越来越逼近积分()b a f x dx ?。 2.Gauss 型积分法: 高斯积分公式的思想是用n 个不等距的节点123,,,n x x x x 对被积函数进行插值,然后对插值后的函数进行积分,其积分公式为: 1 1 1 ()()n k k k f x dx A f x -=≈∑? 如果积分区间不是[1,1]-,则需转换到此区间: 11()()222 b a b a b a b a f x dx f t dt ---+= +? ? 其中系数k A 、节点k x 与n 的关系如下表所示: 3.高斯-切比雪夫积分法: 第一类切比雪夫积分形式为: 1 1 ()()n k k k f x dx A f x -=≈∑? 其中k A n π= ,21cos 2k k x n π-= 4.高斯-拉盖尔积分法: 高斯-拉盖尔公式有两种形式: 1 ()()n x k k k e f x dx A f x +∞ -=≈∑?

matlab单服务台排队系统实验报告

matlab 单服务台排队系统实验报告 一、实验目的 本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。 二、实验原理 根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。 1、 顾客到达模式 设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼 叫的概率 服从Poisson 分布,即 e t k k 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:SimTotal t_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i); ArriveNum(i)=i; end t_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1; for i=2:SimTotal if t_Leave(i-1)

自动控制原理MATLAB仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

matlab数学实验报告5

数学实验报告 制作成员班级学号 2011年6月12日

培养容器温度变化率模型 一、实验目的 利用matlab软件估测培养容器温度变化率 二、实验问题 现在大棚技术越来越好,能够将温度控制在一定温度范围内。为利用这种优势,实验室现在需要培植某种适于在8.16℃到10.74℃下能够快速长大的甜菜品种。为达到实验所需温度,又尽可能地节约成本,研究所决定使用如下方式控制培养容器的温度:1,每天加热一次或两次,每次约两小时; 2,当温度降至8.16℃时,加热装置开始工作;当温度达到10.74℃时,加热装置停止工作。 已知实验的时间是冬天,实验室为了其它实验的需要已经将实验室的温度大致稳定在0℃。下表记录的是该培养容器某一天的温度 时间(h)温度(℃)时间(h)温度(℃)09.68 1.849.31 0.929.45 2.959.13 3.878.981 4.989.65 4.988.811 5.909.41 5.908.691 6.839.18 7.008.5217.938.92 7.938.3919.048.66 8.978.2219.968.43 9.89加热装置工作20.848.22 10.93加热装置工作22.02加热装置工作10.9510.8222.96加热装置工作12.0310.5023.8810.59 12.9510.2124.9910.35 13.889.9425.9110.18 三、建立数学模型 1,分析:由物理学中的傅利叶传热定律知温度变化率只取决于温度

差,与温度本身无关。因为培养容器最低温度和最高温度分别是:8.16℃和10.74℃;即最低温度差和最高温度差分别是:8.16℃和10.74℃。而且,16.8/74.10≈1.1467,约为1,故可以忽略温度对温度变化率的影响2, 将温度变化率看成是时间的连续函数,为计算简单,不妨将温度变化率定义成单位时间温度变化的多少,即温度对时间连续变化的绝对值(温度是下降的),得到结果后再乘以一系数即可。 四、问题求解和程序设计流程1)温度变化率的估计方法 根据上表的数据,利用matlab 做出温度-时间散点图如下: 下面计算温度变化率与时间的关系。由图选择将数据分三段,然后对每一段数据做如下处理:设某段数据为{(0x ,0y ),(1x ,1y ),(2x , 2y ),…,(n x ,n y )},相邻数据中点的平均温度变化率采取公式: 温度变化率=(左端点的温度-右端点的温度)/区间长度算得即:v( 2 1i i x x ++)=(1+-i i y y )/(i i x x - +1). 每段首尾点的温度变化率采用下面的公式计算:v(0x )=(30y -41y +2y )/(2x -0x )v(n x )=(3n y -41+n y +2+n y )/(n x -2-n x )

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。程序: theta=0:0.01:2*pi x=cos(theta) y=sin(theta) l=1 v=1 while l<10 for t=1:10 y=y+(-1)^l*v*t plot(x,y,[-1,1],[-56,2],'.') axis equal pause(0.1) end l=l+1 end 结果:

-50 -40 -30 -20 -10 收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往 返运动! 实验二 旋转五角星 内容:一个五角星在圆内匀速旋转 程序:x=[2 2 2 2 2 2] y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0] y1=2*sin(y) x1=2*cos(y) theta=0:4/5*pi:4*pi

x2=2*cos(theta) y2=2*sin(theta) plot(x,y,x1,y1,x2,y2) axis equal theta1=theta+pi/10 x2=2*cos(theta1) y2=2*sin(theta1) plot(x2,y2) axis equal theta=0:4/5*pi:4*pi for rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y) pause(0.1) end 结果:

-2 -1.5-1-0.500.51 1.52 -2-1.5-1-0.500.511.5 2 收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速 旋转! 实验三 转动的自行车 内容:一辆自行车在圆内匀速转动 程序:x=-4:0.08:4; y=sqrt(16-x.^2); theta1=-pi/2:0.01*pi:3*pi/2; x3=0.5*cos(theta1); y3=0.5*sin(theta1); theta=-pi/2+0.02*pi for k=1:100

MATLAB Simulink系统建模与仿真 实验报告

MATLAB/Simulink 电力系统建模与仿真 实验报告 姓名:****** 专业:电气工程及其自动化 班级:******************* 学号:*******************

实验一无穷大功率电源供电系统三相短路仿真 1.1 无穷大功率电源供电系统仿真模型构建 运行MATLAB软件,点击Simulink模型构建,根据电路原理图,添加下列模块: (1)无穷大功率电源模块(Three-phase source) (2)三相并联RLC负荷模块(Three-Phase Parallel RLC Load) (3)三相串联RLC支路模块(Three-Phase Series RLC Branch) (4)三相双绕组变压器模块(Three-Phase Transformer (Two Windings)) (5)三相电压电流测量模块(Three-Phase V-I Measurement) (6)三相故障设置模块(Three-Phase Fault) (7)示波器模块(Scope) (8)电力系统图形用户界面(Powergui) 按电路原理图连接线路得到仿真图如下: 1.2 无穷大功率电源供电系统仿真参数设置 1.2.1 电源模块 设置三相电压110kV,相角0°,频率50Hz,接线方式为中性点接地的Y形接法,电源电阻0.00529Ω,电源电感0.000140H,参数设置如下图:

1.2.2 变压器模块 变压器模块参数采用标幺值设置,功率20MVA,频率50Hz,一次测采用Y型连接,一次测电压110kV,二次侧采用Y型连接,二次侧电压11kV,经过标幺值折算后的绕组电阻为0.0033,绕组漏感为0.052,励磁电阻为909.09,励磁电感为106.3,参数设置如下图: 1.2.3 输电线路模块 根据给定参数计算输电线路参数为:电阻8.5Ω,电感0.064L,参数设置如下图: 1.2.4 三相电压电流测量模块 此模块将在变压器低压侧测量得到的电压、电流信号转变成Simulink信号,相当于电压、电流互感器的作用,勾选“使用标签(Use a label)”以便于示波器观察波形,设置电压标签“Vabc”,电流标签“Iabc”,参数设置如下图:

MATLAB实验报告

数字信号处理及MATLAB 实验报告 班级: 学号: 姓名:

4.7.2 例4,2 设x(n)是由两个正弦信号及白噪声的叠加,试用FFT文件对其作频谱分析。程序清单 %产生两个正弦加白噪声 N=256; f1=.1;f2=.2;fs=1; a1=5;a2=3; w=2*pi/fs; x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N); %应用FFT求频谱 subplot(2,2,1); plot(x(1:N/4)); title('原始信号'); f=-0.5:1/N:0.5-1/N; x=fft(x); y=ifft(x); subplot(2,2,2); plot(f,fftshift(abs(x))); title('频域信号'); subplot(2,2,3); plot(real(x(1:N/4))); title('时域信号');

例4.3 设x(n)为长度N=6的矩形序列,用MATLAB程序分析FFT取不同长度时x(n)频谱的变化。N=8,32,64,时x(n)的FFT MATLAB实现程序如下。 x=[1,1,1,1,1,1]; N=8; y1=fft(x,N); n=0:N-1; subplot(3,1,1);stem(n,abs(y1),'.k');axis([0,9,0,6]); N=32; y2=fft(x,N); n=0:N-1; subplot(3,1,2);stem(n,abs(y2),'.k');axis([0,40,0,6]); N=64; y3=fft(x,N); subplot(3,1,3);stem(n,abs(y3),'.k');axis([0,80,0,6]);

参考答案Matlab实验报告

实验一 Matlab基础知识 一、实验目的: 1.熟悉启动和退出Matlab的方法。 2.熟悉Matlab命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握Matlab各种表达式的书写规则以及常用函数的使 用。 二、实验内容: 1.求[100,999]之间能被21整除的数的个数。(rem) 2.建立一个字符串向量,删除其中的大写字母。(find) 3.输入矩阵,并找出其中大于或等于5的元素。(find) 4.不采用循环的形式求出和式 63 1 2i i= ∑ 的数值解。(sum) 三、实验步骤: ●求[100,199]之间能被21整除的数的个数。(rem) 1.开始→程序→Matlab 2.输入命令: ?m=100:999; ?p=rem(m,21); ?q=sum(p==0) ans=43 ●建立一个字符串向量,删除其中的大写字母。(find) 1.输入命令:

?k=input('’,’s’); Eie48458DHUEI4778 ?f=find(k>=’A’&k<=’Z’); f=9 10 11 12 13 ?k(f)=[ ] K=eie484584778 ●输入矩阵,并找出其中大于或等于5的元素。(find) 1.输入命令: ?h=[4 8 10;3 6 9; 5 7 3]; ?[i,j]=find(h>=5) i=3 j=1 1 2 2 2 3 2 1 3 2 3 ●不采用循环的形式求出和式的数值解。(sum) 1.输入命令: ?w=1:63; ?q=sum(2.^w) q=1.8447e+019

实验二 Matlab 基本程序 一、 实验目的: 1. 熟悉Matlab 的环境与工作空间。 2. 熟悉M 文件与M 函数的编写与应用。 3. 熟悉Matlab 的控制语句。 4. 掌握if,switch,for 等语句的使用。 二、 实验内容: 1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 2. 编程完成,对输入的函数的百分制成绩进行等绩转换,90~100为优,80~89为良,70~79为中,60~69为及格。 3. 编写M 函数文件表示函数 ,并分别求x=12和56时的函数值。 4. 编程求分段函数 2226;03 56;0532 1;x x x x y x x x x x x x +-<≠=-+≤<≠≠-+且且及其它,并求输入x=[-5.0,-3.0,1.0,2.0,2.5,3.0,3.5]时的输出y 。 三、 实验步骤: 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 1. 打开Matlab ,新建M 文件 2. 输入命令: 51022-+x

控制理论实验报告MATLAB仿真实验解析

实验报告 课程名称:控制理论(乙) 指导老师:林峰 成绩:__________________ 实验名称:MATLAB 仿真实验 实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验九 控制系统的时域分析 一、 实验目的: 1.用计算机辅助分析的办法,掌握系统的时域分析方法。 2.熟悉Simulink 仿真环境。 二、实验原理及方法: 系统仿真实质上就是对系统模型的求解,对控制系统来说,一般模型可转化成某个微分方程或差分方程表示,因此在仿真过程中,一般以某种数值算法从初态出发,逐步计算系统的响应,最后绘制出系统的响应曲线,进而可分析系统的性能。控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,分别称为单位阶跃响应和单位冲激响应。在MATLAB 中,提供了求取连续系统的单位阶跃响应函数step ,单位冲激响应函数impulse ,零输入响应函数initial 等等。 二、实验内容: 二阶系统,其状态方程模型为 ? 1x -0.5572 -0.7814 1x 1 = + u ? 2x 0.7814 0 2x 0 1x y = [1.9691 6.4493] +[0] u 2x 四、实验要求: 1.编制MATLAB 程序,画出单位阶跃响应曲线、冲击响应曲线、系统的零输入响应、斜坡输入响应; (1)画出系统的单位阶跃响应曲线; A=[-0.5572 -0.7814;0.7814 0 ]; B=[1;0];

浅析Matlab数学实验报告

数学实验报告 姓名: 班级: 学号: 第一次实验任务 过程: a=1+3i; b=2-i; 结果: a+b =3.0000 + 2.0000i a-b =-1.0000 + 4.0000i a*b = 5.0000 + 5.0000i a/b = -0.2000 + 1.4000i 过程: x=-4.5*pi/180; y=7.6*pi/180; 结果: sin(abs(x)+y)/sqrt(cos(abs(x+y))) =0.2098 心得:对于matlab 中的角度计算应转为弧度。 (1)过程: x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4=log(x); plot(x,y1,x,y2,x,y3,x,y4) plot(x,y1,x,y2,x,y3,x,y4) 结果: (2)过程:>> subplot(2,2,1) >> plot(x,y1) >> subplot(2,2,2) >> plot(x,y2) ./,,,,2,311b a b a b a b a i b i a ?-+-=+=计算、设有两个复数 6,7,5.4)

cos()sin(2=-=++y x y x y x ,其中、计算的图形。 下分别绘制)同一页面四个坐标系)同一坐标系下(、在( x y e y x y x y x ln ,,cos ,sin 213==== >> subplot(2,2,3) >> plot(x,y3) >> subplot(2.2.4) >> subplot(2,2,4) >> plot(x,y4) 结果: 心得:在matlab中,用subplot能够实现在同一页面输出多个坐标系的图像,应注意将它与hold on进行区别,后者为在同一坐标系中划出多条曲线。 5、随机生成一个3x3矩阵A及3x2矩阵B,计算(1)AB,(2)对B中每个元素平方后得到的矩阵C,(3)sinB,(4)A的行列式,(5)判断A是否可逆,若可逆,计算A的逆矩阵,(6)解矩阵方程AX=B,(7)矩阵A中第二行元素加1,其余元素不变,得到矩阵D,计算D。 过程:A=fix(rand(3,3).*10) ; B=fix(rand(3,3).*10);

相关主题
文本预览
相关文档 最新文档