《基于matlab的拥塞概率的仿真(共6页).doc》由会员分享,可在线阅读,更多相关《基于matlab的拥塞概率的仿真(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于M/M/C/模型拥塞概率的仿真一、M/M/C/模型的建立Erlang B公式将丢失呼叫清除系统的服务等级(GOS)定义为任意一个用户遇到呼叫拥塞的概率。.Erlang B模型基于以下假定:1) 呼叫请求无记忆,即所有用户,包括拥塞用户可以在任何时间请求分配一个信道。2) 在所有信道都被占用之前,任何空闲信道都能用来服务一个呼叫。3) 用户占用一个信道间隔(称为服务时间)的概率是指数分布。指数分布中较长时间的呼叫发生的概率较小。4) 在中继资源中可用信道是有限的。5) 业务请求是Poisson过程,即呼叫间隔时间是指数分布的。6) 呼叫请求到达时间间隔彼此独立。7)
2、 忙信道数等于服务中的用户数,拥塞概率为: 其中,C是中继信道数,A是中继系统的负荷。Erlang B 公式表示的中继系统称为M/M/C/排队系统。第一个M表示呼叫到达是非记忆Poisson过程,第二个M表示用户服务时间指数分布,C表示可用中继信道数,表示对同时服务用户数没有严格限制。其模型如下图1所示,用户到达的速率为,用户被服务的速率为,系统中有C个信道。ServiceUser C图1:M/M/C/排队模型基于Erlang B的模型根据丢失呼叫清除设计,当用户发起呼叫时发现任何一个信道是空闲的,既可获得服务,否则被拥塞。Markov链的性质可以用来导出Erlang公式。考虑一个离散时间随机
3、过程,从正整数集中取值,这样该过程状态是。如果该过程从当前状态i转移到下一状态i1,并只依赖状态i而与前面状态无关,则该过程称为Markov链。利用离散时间Markov链,我们可以在持定业务条件下,在分离观察点观察业务情况。一个实际中继系统的运作在时间上是连续的,但可以在小时间间隔内分析,是一个很小的正数。如是时间内系统中的呼叫(占用信道)数目,可以表示为: 其中,N是一个离散随机过程,表示在离散时间上被占用信道的数量。 转移概率为: 让,可得: Markov链的状态转移图由图2表示。图2:Erlang B中用Markov链状态图表示的转移概率图2中具有C个信道的中继系统可表示为一个Marko
4、v链。在该Markov链状态图中,假定系统中0个信道被占用,即无用户。在一个小的时间间隔后,系统继续保持0信道占用的概率为。从占用0信道变为占用1信道的概率为。另一方面,从占用一个信道变成占用0信道的概率为。类似的,系统保持为占用1信道状态的概率为。所有从一个状态转出的概率和为1。在一段长时间后,系统到达平稳状态,具有n信道占用。在平稳状态,占用n信道的概率与占用n-1信道的概率相等,并且是转移概率的倍数。这样在平稳状态条件下, 对不同的n值可得:, 利用不同n值对上面的方程式求值: 且 可得C中继信道拥塞率为: 总负荷。代入方程式拥塞率为: 即为Erlang B公式。二、M/M/C模型的仿真
5、此仿真是在MATLAB(R2009b)的平台下进行的。利用MATLAB仿真呼叫接入信道过程,得出在不同呼叫速率下的拥塞率,然后用画出仿真得到的拥塞率数据和ErlangB公式理论拥塞率曲线进行对比。仿真步骤如下:1) 业务请求是Poisson分布,即到达间隔时间是指数分布。程序设计产生以为均值的指数分布的随机数,作为一个服务的顾客到达间隔。2) 顾客服务时间是指数分布。程序设计产生以为均值的指数分布的随机数,作为一个顾客的服务时间。3) 以0为起点,由顾客的到达间隔可以求出到达时刻arrive,从而进一步求出顾客离开时刻leave。4) 检查是否有空闲信道,若有则接入并占用信道,若无则拥塞5)
6、统计总共被拥塞掉的顾客数,并除以到达的顾客数,即为拥塞率。6) 增大呼叫到达率,转至步骤1)三、仿真结果仿真参数:信道数为20,平均服务时间为20分钟,用户数为2000,总共进行了1000次仿真,呼叫到达率lamda从0开始每次增加0.01。拥塞概率曲线和理论拥塞概率曲线如下图所示: 图3:呼叫过程拥塞概率曲线四、结果分析从图3中可以看出,仿真曲线和理论曲线整体趋势基本吻合。所以所建立的模型是正确的。同时随着用户到达率的增加,而用户的服务率不变和信道的总数不变的情况下,呼叫的拥塞率逐渐增加,并且逐渐趋于平稳。附程序%M/M/C模型的呼叫过程阻塞概率的仿真clcN = 2000; %用户数H =
7、 30; %平均服务时间为30分,平均服务时间 lamda = 0; %泊松到达过程的参数,到达速率mu = 1/H; %指数分布的参数C = 30; %信道数for i = 1 : 1 : C %channel记录接入的呼叫的离开时间 leave(i) = 0;end%以话务量为变量进行呼叫过程阻塞概率的仿真%LOSS(1) = 0;for k = 1:N; lamda = lamda+0.01; for i = 1 : 1: C leave(i) = 0; endn=0; %被阻塞的用户数%产生服从Poisson到达过程的用户到达时间 U1 = rand(N,1); %产生N个均匀分布的随
8、机数 temp = 0; for i = 1:1:N arrive(i) = temp - log(U1(i)/lamda; temp = arrive(i); end%产生服从指数分布的用户服务时间 U2 = rand(N,1); for i = 1:1:N service(i) = -log(U2(i)/mu; end%产生用户离开时间 for i = 1:1:N depart(i) = arrive(i)+service(i); end%计算阻塞概率 for i = 1 : 1 : N flag = 0; %标志信道是否被阻塞 for j = 1 : 1 : C if leave(j)
9、arrive(i) % 若果第i个用户到达的时间小于某一个用户在j个信道中离开的时间,则说明该信道空闲,可接入第i个用户。 leave(j) = depart(i);%则此时第j个信道中用户的离开时间记为depart(i)。 flag = 1; break; end end if flag = 0 % 阻塞 n = n + 1; end end LOSS(k) = n / N;endlamda_temp = 0.01 : 0.01 : N*0.01; A = lamda_temp * H;%呼叫强度*保持时间=业务量plot(A,LOSS,g);%绘制呼损率的图形hold on;%计算阻塞概率的理论值A = lamda_temp * H;for j = 1 : length(A) sum=0.0; for i=1:1:C temp = (A(j)i) /factorial(i); sum = sum + temp; end Pr(j) = (A(j)C) / (factorial(C) * sum);%呼损率公式endplot(A, Pr, r);title(呼叫过程拥塞概率的仿真结果)xlabel(话务量(Elangs)ylabel(拥塞概率)legend(仿真曲线,理论曲线)grid on 专心-专注-专业
限制150内