实验1:Erlang-B公式计算器-实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

通信网性能分析基础1实验1:ErlangB公式计算器实验报告学院:信息与通信工程学院班级:姓名:学号:通信网性能分析基础2一、实验目的ErlangB公式通信网理论基础这门课程的学习重点之一,其表达了电话交换系统的时间阻塞率B(s,a)与到达的呼叫量a以及中继线的数目s之间的关系,为电话网络的规划和中继线容量配置奠定了基础。本次实验要求用计算机语言编写ErlangB公式计算器,实现给定任意两个变量求解第三个变量的功能,使学生掌握ErlangB公式的计算方法,培养数值分析计算与算法设计能力。二、实验原理Erlang即时拒绝系统用于建模电话交换系统,设电话呼叫流的到来服从Poisson过程,λ为呼叫的到达率,呼叫的持续时间服从参数μ的负指数分布。系统有s条中继线,呼叫到来时,如系统中有空闲的中继线,则呼叫可到达任意一个空闲的中继线,如果没有空闲的中继线,就拒绝该呼叫。在这样的情况下,该交换系统的排队系统模型为)(//ssMM。利用生灭过程稳态分布的结论,可求解M/M/s(s)系统的时间阻塞率为𝐵(𝑠,𝑎)=𝑎𝑠𝑠!∑𝑎𝑟𝑟!𝑠𝑟=0,该公式给出了a,s,与B之间的关系。本次实验要求编写ErlangB公式的计算器,实现给定任意两个变量求解第三个变量的功能:(1)给定到达的呼叫量a和中继线的数目s,求解系统的时间阻塞率B;(2)给定系统的时间阻塞率的要求B和到达的呼叫量a,求解中继线的数目s,以实现网络规划;(3)给定系统的时间阻塞率要求B以及中继线的数目s,判断该系统能支持的最大的呼叫量a。通信网性能分析基础3三、实验内容1.设计语言及开发工具:(1)计算器:界面生成采用C++语言(MFC),函数采用C语言在vs2013编译(2)作图程序:C语言和MATLAB语言,采用MATLAB开发。2.计算器主要功能函数以下三个函数共同使用如下三个变量,但它们的使用方式不同,可能作为输出也可能是输入:a.到达呼叫量(a,非负双精度浮点数);b.时间阻塞率(b,浮点数,取值范围0~1);c.中继线数(s,非负整数)。(1)doublecalculate_b(doublea,ints)功能:已知到达的呼叫量a和中继线的数目s,求时间阻塞率eB;算法原理:计算时间阻塞率可以用爱尔兰B公式本身实现,但这种算法不仅麻烦,还可能产生数据溢出。有一个更为简便的迭代算法。这个算法可表示为eb(𝑚,𝐴)=𝐴𝑒𝐵(𝑚−1,𝐴)𝑚+𝐴𝑒𝐵(𝑚−1,𝐴)(𝑚=0,1,2…,𝑛;𝑃(0,𝐴)=1)其中𝑃𝐵表示阻塞率,𝑚表示中继线数,𝐴表示到达呼叫量。这个算法表明在到达呼叫量一定时,s条中继线的阻塞率可以用(s-1)条中继线的阻塞率表示。若要求s条中继线的阻塞率,使用这个算法只需s次迭代就可以实现,大大减少了运算次数,而且也不会出现溢出问题。算法流程图:通信网性能分析基础4(2)doublecalculate_a(ints,doubleb)功能:已知中继线数s、时间阻塞率b,求到达呼叫量a算法原理:首先输入s、b,设a的初值为0,以a此时值与s做calculate_b运算,得到的值与输入值b作差,当差值小于精确值时则此时a值为运算结果,否则a以0.001为间隔递增循环计算,直到满足条件,输出此时a值。开始输入中继线数S、到达呼叫量aEb初值为1,迭代次数为0迭代次数为s?Y输出阻塞率b结束N做运算:(a*b)/(m+a*b)结果付为新b值S值加1通信网性能分析基础5算法流程图:(3)intcalculate_s(doublebdoublea)函数功能:已知到达呼叫量a、时间阻塞率eb和精确度ec,求中继线数s。算法原理:与求解到达呼叫量a相同,采用穷举法逐次逼近结果首先设s值为1,计算此时s与输入值a对应eb减去输入值eb结果是否小于精度,是则输出s,否则s加1循环运算知道符合精确度。开始输入阻塞率b、中继线数s置到达呼叫量a为0利用calculate_b计算当前a与s对应阻塞率与输入量b之差差值是否小于精确度0.001输出此时a值为到达呼叫量结束a加0.01NY通信网性能分析基础6算法流程图:(4)函数具体代码//ErlangBDlg.cpp:实现文件//#includestdafx.h#includeErlangB.h#includeErlangBDlg.h#includeafxdialogex.hcharA,B,C,D;charlll='A';#ifdef_DEBUG#definenewDEBUG_NEW开始输入阻塞率b、到达呼叫量a设置s为1利用calculate_b计算此时s与a对应b减去输入值b之差差值小于0.001输出此时s作为中继线数结束YS加1N通信网性能分析基础7#endif//用于应用程序“关于”菜单项的CAboutDlg对话框classCAboutDlg:publicCDialogEx{public:CAboutDlg();//对话框数据enum{IDD=IDD_ABOUTBOX};protected:virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV支持//实现protected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialogEx(CAboutDlg::IDD){}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg,CDialogEx)END_MESSAGE_MAP()//CErlangBDlg对话框CErlangBDlg::CErlangBDlg(CWnd*pParent/*=NULL*/):CDialogEx(CErlangBDlg::IDD,pParent),bbb(0),aaa(0),sss(0){通信网性能分析基础8m_hIcon=AfxGetApp()-LoadIcon(IDR_MAINFRAME);}voidCErlangBDlg::DoDataExchange(CDataExchange*pDX){CDialogEx::DoDataExchange(pDX);DDX_Text(pDX,IDC_EDIT1,bbb);DDX_Text(pDX,IDC_EDIT2,aaa);DDX_Text(pDX,IDC_EDIT3,sss);}BEGIN_MESSAGE_MAP(CErlangBDlg,CDialogEx)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_EN_CHANGE(IDC_EDIT1,&CErlangBDlg::OnEnChangeEdit1)ON_EN_CHANGE(IDC_EDIT2,&CErlangBDlg::OnEnChangeEdit2)ON_EN_CHANGE(IDC_EDIT3,&CErlangBDlg::OnEnChangeEdit3)ON_BN_CLICKED(IDOK,&CErlangBDlg::OnBnClickedOk)ON_BN_CLICKED(IDC_BUTTON4,&CErlangBDlg::OnBnClickedButton4)ON_BN_CLICKED(IDC_RADIO1,&CErlangBDlg::OnBnClickedRadio1)ON_BN_CLICKED(IDC_RADIO2,&CErlangBDlg::OnBnClickedRadio2)ON_BN_CLICKED(IDC_RADIO3,&CErlangBDlg::OnBnClickedRadio3)END_MESSAGE_MAP()//CErlangBDlg消息处理程序BOOLCErlangBDlg::OnInitDialog(){CDialogEx::OnInitDialog();//将“关于...”菜单项添加到系统菜单中。//IDM_ABOUTBOX必须在系统命令范围内。ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL){BOOLbNameValid;CStringstrAboutMenu;bNameValid=strAboutMenu.LoadString(IDS_ABOUTBOX);通信网性能分析基础9ASSERT(bNameValid);if(!strAboutMenu.IsEmpty()){pSysMenu-AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}}//设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动//执行此操作SetIcon(m_hIcon,TRUE);//设置大图标SetIcon(m_hIcon,FALSE);//设置小图标//TODO:在此添加额外的初始化代码returnTRUE;//除非将焦点设置到控件,否则返回TRUE}voidCErlangBDlg::OnSysCommand(UINTnID,LPARAMlParam){if((nID&0xFFF0)==IDM_ABOUTBOX){CAboutDlgdlgAbout;dlgAbout.DoModal();}else{CDialogEx::OnSysCommand(nID,lParam);}}//如果向对话框添加最小化按钮,则需要下面的代码//来绘制该图标。对于使用文档/视图模型的MFC应用程序,//这将由框架自动完成。voidCErlangBDlg::OnPaint(){if(IsIconic()){CPaintDCdc(this);//用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND,reinterpret_castWPARAM(dc.GetSafeHdc()),0);//使图标在工作区矩形中居中通信网性能分析基础10intcxIcon=GetSystemMetrics(SM_CXICON);intcyIcon=GetSystemMetrics(SM_CYICON);CRectrect;GetClientRect(&rect);intx=(rect.Width()-cxIcon+1)/2;inty=(rect.Height()-cyIcon+1)/2;//绘制图标dc.DrawIcon(x,y,m_hIcon);}else{CDialogEx::OnPaint();}}//当用户拖动最小化窗口时系统调用此函数取得光标//显示。HCURSORCErlangBDlg::OnQueryDragIcon(){returnstatic_castHCURSOR(m_hIcon);}voidCErlangBDlg::OnEnChangeEdit1(){//TODO:如果该控件是RICHEDIT控件,它将不//发送此通知,除非重写CDialogEx::OnInitDialog()//函数并调用CRichEditCtrl().SetEventMask(),//同时将ENM_CHANGE标志“或”运算到掩码中。//TODO:在此添加控件通知处理程序代码}voidCErlangBDlg::OnEnChangeEdit2(){//TODO:如果该控件是RICHEDIT控件,它将不//发送此通知,除非重写CDialogEx::OnInitDialog()//函数并调用CRichEditCtrl().SetEventMask(),//同时将ENM_CHANGE标志“或”运算到掩码中。通

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功