北邮erlangB计算器实验报告.docx_第1页
北邮erlangB计算器实验报告.docx_第2页
北邮erlangB计算器实验报告.docx_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

通信网性能分析基础实验二:Erlang B公式计算器实验报告 学院: 信息与通信工程学院 班级: 姓名: 学号: 一、实验目的Erlang B公式通信网理论基础这门课程的学习重点之一,其表达了电话交换系统的时间阻塞率B(s,a)与到达的呼叫量a以及中继线的数目s之间的关系,为电话网络的规划和中继线容量配置奠定了基础。 本次实验要求用计算机语言编写ErlangB公式计算器,实现给定任意两个变量求解第三个变量的功能,使学生掌握ErlangB公式的计算方法,培养数值分析计算与算法设计能力。二、实验原理Erlang即时拒绝系统用于建模电话交换系统,设电话呼叫流的到来服从Poisson过程,为呼叫的到达率,呼叫的持续时间服从参数的负指数分布。系统有s条中继线,呼叫到来时,如系统中有空闲的中继线,则呼叫可到达任意一个空闲的中继线,如果没有空闲的中继线,就拒绝该呼叫。在这样的情况下,该交换系统的排队系统模型为。利用生灭过程稳态分布的结论,可求解M/M/s(s)系统的时间阻塞率为 Bs,a=ass!r=0sarr!,该公式给出了a,s,与B之间的关系。本次实验要求编写Erlang B公式的计算器,实现给定任意两个变量求解第三个变量的功能:(1) 给定到达的呼叫量a和中继线的数目s,求解系统的时间阻塞率B;(2) 给定系统的时间阻塞率的要求B和到达的呼叫量a,求解中继线的数目s,以实现网络规划;(3) 给定系统的时间阻塞率要求B以及中继线的数目s,判断该系统能支持的最大的呼叫量a。三、实验内容1. 设计语言及开发工具:(1)计算器:界面生成采用C+语言(MFC),函数采用C语言在VC+6.0中编写;(2)作图程序:C语言和MATLAB语言,采用MATLAB开发。2. 计算器主要功能函数以下三个函数共同使用如下三个变量,但它们的使用方式不同,可能作为输出也可能是输入:a. 到达呼叫量(a,非负双精度浮点数);b. 时间阻塞率(eb,浮点数,取值范围01);c. 中继线数(s,非负整数)。(1) double calculate_b(double a,int s)功能:已知到达的呼叫量a和中继线的数目s,求时间阻塞率eB;算法原理:计算时间阻塞率可以用爱尔兰B公式本身实现,但这种算法不仅麻烦,还可能产生数据溢出。有一个更为简便的迭代算法。这个算法可表示为ebm,A=AeB(m-1,A)m+AeB(m-1,A) (m=0,1,2,n;P0,A=1)其中PB表示阻塞率,m表示中继线数,A表示到达呼叫量。这个算法表明在到达呼叫量一定时,s条中继线的阻塞率可以用(s-1)条中继线的阻塞率表示。若要求s条中继线的阻塞率,使用这个算法只需s次迭代就可以实现,大大减少了运算次数,而且也不会出现溢出问题。算法流程图:开始输入中继线数S、到达呼叫量aEb初值为1,迭代次数为0迭代次数为s?Y输出阻塞率eb结束N做运算:(a*eb)/(m+a*eb)结果付为新eb值S值加1(2)double calculate_a(int s,double eb)功能:已知中继线数s、时间阻塞率eb和精度ec,求到达呼叫量a算法原理:采用考虑精度的逐次逼近穷举法,此处引进精确度ec。首先输入s、eb和ec,设a的初值为0,以a此时值与s做calculate_b运算,得到的值与输入值eb作差,当差值小于精确值时则此时a值为运算结果,否则a以0.001为间隔递增循环计算,直到满足条件,输出此时a值。算法流程图:开始输入阻塞率eb、中继线数s和精确度ec置到达呼叫量a为0利用calculate_b计算当前a与s对应阻塞率与输入量eb之差差值是否小于精确度ec?输出此时a值为到达呼叫量结束a加0.01NY(3)int calculate_s(double eb,double a)函数功能:已知到达呼叫量a、时间阻塞率eb和精确度ec,求中继线数s。算法原理:与求解到达呼叫量a相同,采用穷举法逐次逼近结果首先设s值为1,计算此时s与输入值a对应eb减去输入值eb结果是否小于精度,是则输出s,否则s加1循环运算知道符合精确度。算法流程图:开始输入阻塞率eb、到达呼叫量a和精确度ec设置s为1利用calculate_b计算此时s与a对应eb减去输入值eb之差差值小于精确度?输出此时s作为中继线数结束YS加1N(4)函数具体代码double calculate_b(double a,int s)/知a、s,计算ebdouble eb;double temp1,temp2,temp3; int i,j; temp1=temp2=1;for(i=1;i=s;i+) temp1 *= a; temp2=temp2*i;eb=temp1/temp2;temp3=1;for(i=1;i=s;i+)temp1=temp2=1;for(j=1;j=ec|temp4-eb=ec;s+)temp4=calculate_b(a,s); return s;3. MATLAB作图程序函数说明:aAndB.m是计算到达率与阻塞率的关系aAndn.m是计算到达率与中继线条数的关系erlangb.m是通过a与n计算阻塞率findrhob.m是通过阻塞率与中继线条数计算到达率的关系nANDb.m是计算n与b之间的关系test3d.m是画出到达率阻塞率中继线条数的三维关系图(1) function B=erlangb(n,rho)利用循环:for k=1:n, B=(rho*B)/k)/(1+rho*B/k); end;通过固定到达率与中继线条数计算出来阻塞率函数具体代码:function B=erlangb(n,rho) if (floor(n) = n) | (n 1) warning(n is not a positive integer); B=NaN; return; end; if (rho 0.0) warning(rho is negative!); B=NaN; return; end;B=1;for k=1:n, B=(rho*B)/k)/(1+rho*B/k); end;(2)function rho=findrhob(n,p)固定中继线条数与阻塞率,采用逐渐逼近的原理,计算出到达率函数具体代码:function rho=findrhob(n,p) if (floor(n) = n) | (n 1) warning(n is not a positive integer); rho=NaN; return; end; if (p1.0) warning(Invalid p value!); rho=NaN; return; end;a=1.0;testp=erlangb(n,a);while (testp 0.0001*max(1 left), if (midp p), left=mid; mid=(left+right)/2; midp=erlangb(n,mid); else right=mid; mid=(left+right)/2; midp=erlangb(n,mid); end;end;rho=left;四、程序运行结果及分析1、ErlangB计算器运行结果分析:(1)程序主界面及使用说明:该界面的设计基本采用了上的计算器界面。以radiol按钮确定计算对象,另外添加了各自清除按钮与总清除按钮,弥补了网页计算器的不足,且添加了自主设置精确度的功能。本程序对阻塞率要求输入01之间的实数,中继线数要求输入非负整数,到达呼叫量要求输入非负实数。后两者支持的输入范围非常大,而网上的计算器则要求信道数和到达呼叫量都要小于180,当然输入数据越大所需要的计算时间也越长。另外计算到达呼叫量和中继线数时,可以实现任意给定精度的运算(2)为验证准确性,分别给出三个功能计算结果与网页计算器对比:1 已知s和a,计算到阻塞率eb2 已知eb和s,计算到达呼叫量a3 已知a和eb,计算中继线数s通过三组对比可表明基本功能实现且误差很小或无误差2、MATLAB作图运行结果分析:(1)信道与阻塞率关系图(固定到达率为45erl,最大信道数100)曲线分析:信道数为0阻塞率为1,对于全部到达的呼叫都采取拒绝,然后阻塞率随着信道数增减小,信道到达60以上的时候,阻塞率几乎为0,基本能保证所有的呼叫都能被服务到,此时,当系统的呼叫量为45erl的时候,建议系统最多使用60条中继线,最经济。(2)到达率与阻塞率的关系图(固定信道数为80)曲线分析:该图说明给定特定的信道数,可以保证一定范围的呼叫不会被拒绝,但是当呼叫量上升,超过一个范围(此时为60),阻塞率会急剧增加,此时就需要增加信道数量的了。(3)信道数与到达呼叫量的关系图(限定阻塞率为0.01)曲线分析:在保证阻塞率不变的情况下,信道数与呼叫量基本成线性关系,要保证一定的质量,到达的呼叫量越多,对应需要的中继线条数越多。(4)信道数,到达率,阻塞率之间的关系三维图五、实验问题及解决1. 计算器功能实现(1) 在界面中运用了radiol按钮,一开始功能无法实现,就在计算键中运算时采用其他条件判断,后来根据百度的技术支持添加语句,实现了根据radiol button 判断运算对象的功能(2) 有一个目前仍旧无法解决的问题:在第一次运算后,中间到达呼叫量a的运算radiol button会变暗且无法选择,在咨询同学与网络查询后未果,至今悬而未决。(3) 进行多次计算时两次计算中间有时忘记清除就会报错,所以添加了四个清除按钮,方便使用。2. MATLAB画图部分遇到的问题(1)在画到达率与阻塞率的关系图时,出现和理论相反的情况,后来改善了计算公式,解决了问题。(2)在画3维图时,出现的不是平整的三维图,而是有锯齿的情况,通过提高的到达率的精度,改善了作图结果。(3)在计算一些循环时,有的时候因为循环循环不当,进入死循环,一直出不来

温馨提示

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

评论

0/150

提交评论