日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Matlab-离散事件系统仿真实验

發布時間:2025/3/21 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab-离散事件系统仿真实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分析一個單服務臺排隊系統

1、排隊系統的一般理論

一般的排隊系統都有三個基本組成部分:

(1) 到達模式:指動態實體(顧客)按怎樣的規律到達,描寫實體到達的統計特性。通常假定顧客總體是無限的。

(2) 服務機構:指同一時刻有多少服務設備可以接納動態實體,它們的服務需要多少時間。它也具有一定的分布特性。通常,假定系統的容量(包括正在服務的人數加上在等待線等待的人數)是無限的。(3) 排隊規則:指對下一個實體服務的選擇原則。通用的排隊規則包括先進先出(FIFO),后進先出(LIFO),隨機服務(SIRO)等。

2、離散系統常用的仿真策略

(1)事件調度法(Event Scheduling):

基本思想:離散事件系統中最基本的概念是事件,事件發生引起系統狀態的變化,用事件的觀點來分析真實系統。通過定義事件或每個事件發生系統狀態的變化,按時間順序確定并執行每個事件發生時有關邏輯關系。

(2)活動掃描法:

基本思想:系統有成分組成,而成分又包含活動?;顒拥陌l生必須滿足某些條件,且每一個主動成分均有一個相應的活動例程。仿真過程中,活動的發生時間也作為條件之一,而且較之其他條件具有更高的優先權。

(3)進程交互法:

基本思想:將模型中的主動成分歷經系統所發生的事件及活動,按時間發生的順序進行組合,從而形成進程表。系統仿真鐘的推進采用兩張進程表,一是當前事件表,二是將來事件表。

3、本實驗采用單服務臺模型

(1) 到達模式:顧客源是無限的,顧客單個到達,相互獨立,一定時間的到達數服從指數分布。

(2) 排隊規則:單隊,且對隊列長度沒有限制,先到先服務的?FIFO規則。

(3) 服務機構:單服務臺,各顧客的服務時間相互獨立,服從相同的指數分布。

(4) 到達時間間隔和服務時間是相互獨立的。

4、仿真運行方式

仿真運行方式可分為兩大類:

(1)終止型仿真:仿真的運行長度是事先確定的由于仿真運行時間長度有限,系統的性能與運行長度有關,系統的初始狀態對系統性能的影響是不能忽略的。為了消除由于初始狀態對系統性能估計造成的影響,需要多次獨立運行仿真模型。

(2)穩態型仿真:這類仿真研究僅運行一次,但運行長度卻是足夠長,仿真的目的是估計系統的穩態性能。

5、系統設計

采用事件調度法,事件調度法共有三種事件:即“顧客到達”、“服務開始”、“服務結束”。其中“服務開始”為條件事件,其條件是“顧客隊列長度不為零且服務員空閑”。在用事件調度法時,不單獨考慮條件事件,而將其并入非條件事件中。因此,需要考慮的事件例程有“顧客到達時間例程”和 “服務結束時間例程”?!邦櫩偷竭_時間例程”和 “服務結束時間例程”如圖

事件調度法的程序結構設計如下:

(1)初始化。

??設置仿真的開始時間?t0和結束時間?tf?;?

??設置實體的初始化狀態;

??設置初始事件及其發生時間?ts。?

(2)仿真時鐘?TIME =?ts。?

(3)確定在當前時鐘?TIME?下發生的事件類型?E(i?= 1,2,3,…,n),并按解結規則排序。

(4)如果?TIME <=?tf執行。

{case E1:執行?E1?的事件例程;產生后續事件類型及發生時間;……case En:執行?En?的事件例程;產生后續事件類型及發生時間;

}

否則,轉(6).

(5)將仿真時鐘?TIME?推進到下一最早事件發生時刻;轉(3)。(6)結束仿真。

6、思路分析

采用事件調度法來研究單服務臺排隊系統。顧客逐個到達服務臺,且相鄰兩個顧客到達服務臺的時間間隔服從參數為?3 min?的指數分布。到達服務臺后,若這時服務員空閑,則為其提供服務,若此時服務員正在為其他顧客服務,則剛到的顧客排隊等待。服務員為每位顧客服務的時間長度服從參數為?4 min?的指數分布。使用?Matlab?軟件進行建模仿真,用?exprnd?函數生成符合指數分布的隨機數。用三個空白數組分別存儲第?i?個顧客引起的三種事件先后發生的時刻,對獲得的參數按照時間順序進行整理和分析,可以得出平均隊長、平均等待時間等重要參數,流程樣例如下

單服務臺排隊系統的流程框架圖如下:

clcclose allclearrng defaultT = 1000; % T-仿真長度(min)mu1=3; %顧客到達時間間隔(指數分布)的均值mu2=4; %服務時間(指數分布)均值 arriveGap = []; % 到達時間間隔serveGap = []; % 服務時間Arrive=[]; %顧客到達時間Serve=[]; %服務開始時間Leave=[]; %服務結束時間%===========初始化============%i=0; % 第幾個顧客抵達t0=0; % 仿真開始時間TIME=0; % 系統時間arriveGap = [arriveGap, exprnd(mu1)];Tarrv=t0+arriveGap(i+1); % 第i個抵達時間serveGap = [serveGap, exprnd(mu2)];Tleave=Tarrv+serveGap(i+1); % 第i個服務結束時間Arrive=[Arrive,Tarrv];Serve=[Serve,Tarrv]; Leave=[Leave,Tleave];% 開始仿真while TIME < T i=i+1; arriveGap = [arriveGap, exprnd(mu1)]; Tarrv=Tarrv+arriveGap(i+1); %確定下一顧客到達時刻????%?留個空白思考 if Leave(i)<=Arrive(i+1) %服務員空閑,無需排隊 % 留個空白思考 else %服務員忙碌,需要排隊 % 留個空白思考 end % 留個空白思考 Leave=[Leave,Tleave]; end%% Twait=[]; %每個顧客的等待時間Nwait=[]; %每個顧客接受服務時的隊長WaitNum=0; % 平均等待人數WaitTime=0; % 平均等待時間%平均等待時間for j=1:i Twait(j)=Serve(j)-Arrive(j); WaitTime=WaitTime+Twait(j);endWaitTime=WaitTime/i;%平均隊長for m=1:i k=0; for n=m+1:i if Leave(m)>Arrive(n) k=k+1; else break; end end Nwait(m)=k; WaitNum=WaitNum+Nwait(m); end WaitNum=WaitNum/i;%繪圖figureplot(arriveGap)xlabel 顧客序號ylabel 到達間隔時間/minfigureplot(serveGap)xlabel 顧客序號ylabel 服務時間/minfigureplot(Twait);xlabel 顧客序號ylabel 等待時間/minfigureplot(Nwait);xlabel 顧客序號ylabel 隊伍長度/人 disp(['平均到達間隔時間:', num2str(mean(arriveGap)),' min'])disp(['平均服務時間:', num2str(mean(serveGap)),' min'])disp(['平均等待時間:', num2str(WaitTime),' min'])disp(['平均隊長指標:', num2str(WaitNum),' 人'])

?

總結

以上是生活随笔為你收集整理的Matlab-离散事件系统仿真实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。