- 物流系統建模與仿真實用教程:基于Flexsim 2018中文版
- 馬向國 孫佩健 吳丹婷
- 5001字
- 2020-10-15 17:44:49
2.1 離散系統仿真概述
2.1.1 離散系統仿真的基本要素
1.基本要素介紹
(1)實體
實體是主導系統活動的對象(Object),它是描述系統的三個基本要素(實體、屬性、活動)之一。
在離散事件系統中的實體可分為兩大類:臨時實體及永久實體。在系統中只存在一段時間的實體叫臨時實體,如工件、貨物。這類實體由系統外部到達系統、通過系統,最終離開系統。始終駐留在系統中的實體叫永久實體,如緩沖站、倉庫。臨時實體按一定規律不斷地到達(產生),在永久實體作用下通過系統,最后離開系統,整個系統呈現出動態過程。
實體還可以分為主動體(Active)和被動體(Passive)。主動體為系統中具有自主移動能力,如服務系統的顧客、AGV小車,運輸系統中的車輛。被動體不具有自主移動的能力,如產品、工件、托盤、容器等。
(2)屬性
實體所特有的特性稱為實體的屬性,分為固有屬性和仿真屬性。固有屬性包括大小、顏色、形狀、重量等,仿真屬性包括到達時間間隔、到達批量等。
(3)狀態
在某一確定時刻,系統的狀態是系統中所有實體的屬性的集合。
(4)資源
資源系統中活動被執行時必須搭配的載具,通常用來定義由哪個實體在什么地方執行活動。資源在系統中為定點設置,但是和實體一樣可分為主動資源和被動資源。主動資源對象為本身具有自我驅動的能力,一般常見的為輸送帶、售貨員、叉車、堆垛機等,一般講到的資源指主動資源;被動資源對象如倉庫、軌道、道路等。
(5)事件
事件是引起系統狀態發生變化的行為,系統的動態過程是靠事件來驅動的。例如,在物流系統中,工件到達可以定義為一類事件。因為工件到達倉庫,進行入庫時,倉庫貨位的狀態會從空變為滿,或者引起原來等待入庫的隊列長度的變化。
事件一般分為兩類:必然事件和條件事件。只與時間有關的事件稱為必然事件。如果事件發生不僅與時間因素有關,而且還與其他條件有關,則稱為條件事件。系統仿真過程中最主要的工作就是分析這些必然事件和條件事件。
(6)活動
離散事件系統中的活動通常用于表示兩個可以區分的事件之間的過程,它標志著系統狀態的轉移。如等待活動。
(7)進程
進程由若干個有序事件及若干有序活動組成,一個進程描述了它所包括的事件及活動間的相互邏輯關系及時序關系,如圖2-1所示。例如,工件由車輛裝入進貨臺,經裝卸搬運進入倉庫,經保管、加工到配送至客戶的過程。
圖2-1 事件、活動與進程
(8)仿真時鐘
仿真時鐘用于表示仿真時間的變化。在離散事件系統仿真中,由于系統狀態變化是不連續的,在相鄰兩個事件發生之間,系統狀態不發生變化,因而仿真時鐘可以跨越這些“不活動”區域。從一個事件發生時刻,推進到下一個事件發生時刻。仿真時鐘的推進成跳躍性,推進速度具有隨機性。由于仿真實質上是對系統狀態在一定時間序列的動態描述,因此,仿真時鐘一般是仿真的主要自變量,仿真時鐘的推進是系統仿真程序的核心部分。
仿真時鐘的推進有兩種經典的方法:固定步長推進法和變步長推進法(或稱為下一事件推進法)。變步長推進法應用較多,目前市面的大多數仿真軟件都采用變步長推進法。
1)固定步長推進法。
確定一個固定的時間增量,以此增量逐步推進仿真時鐘。每推進一個增量,就在被推進的時刻觀察有無事件發生。如果沒有事件發生,則繼續以相同的增量推進仿真時鐘;如果有事件發生,則根據事件類型進入事件處理程序,對事件發生后的狀態變化進行相應處理,然后再推進仿真時鐘。
如果恰好在推進的增量的中間時刻有事件發生,一般采取簡化的方法,把該事件假定為是在增量推進的時刻發生的。
2)變步長推進法。
變步長推進法即事先沒有確定時鐘推進步長,而是根據隨機事件的發生而進行隨機步長的推進,推進的步長為最后易發生事件與下一事件之間的間隔時間。由于離散事件系統的狀態多數是隨時間離散變化的,在仿真時不需要考慮那些沒有發生狀態變化的時段。因此,這種變步長的推進方法,其節奏性與系統狀態變化更加吻合。
應當指出,仿真時鐘所顯示的是仿真系統對應實際系統的運行時間,而不是計算機運行仿真模型的時間。仿真時間與真實時間將設定成一定比例關系,使得像物流系統這樣復雜的系統,真實系統運行若干天、若干月,計算機仿真只需要幾分鐘就可以完成。
2.系統要素舉例分析
(1)分析理發店的實體、狀態、事件、活動
實體:顧客、服務員。
狀態:服務員個數、顧客數、服務員忙閑。
事件:顧客到達、服務完畢。
活動:顧客等待、理發員服務。
(2)分析柔性制造系統實體、狀態、事件、活動
實體:工件、加工中心。
事件:(待加工工件)到達、機床完成加工。
狀態:各加工中心的繁忙程度、各加工中心的等待隊列。
活動:工件等待、加工。
2.1.2 離散事件系統仿真的組成與構造
仿真可以用來研究千差萬別的現實世界,但是不同實際系統的離散事件仿真模型卻具有一些相同的組成部分和這些組成部分之間的邏輯組織關系。對于大多數采用變步長始終推進機制的離散事件系統仿真模型,通常都包含有如下幾個組成部分。
1)系統狀態:在特定時間用來描述系統的狀態變量集。
2)仿真時鐘:表示仿真時間當前值的變量。
3)事件列表:將發生各類事件時用來存放下次事件發生的時間和事件其他屬性的表。
4)統計計數器:用來存放有關系統性能統計數據的各個變量。
5)初始化子程序:在仿真開始時(即仿真時間為零時)初始化仿真模型的子程序。
6)時間推進子程序:從事件列表中確定下次事件,然后將仿真時鐘推進到該事件發生的時刻。
7)事件發生程序:指用來更新系統狀態的子程序。當某類型的特定事件發生后,根據該事件的類型,進行相應的系統狀態更新。
8)報告生成器:用來計算各種所期望的性能測度的量,并在仿真結束時輸出結果。
9)隨機觀測生成程序庫:是一組用來根據概率分布產生隨機觀測值的子程序。
10)主程序:用來喚醒時間推進子程序來確定下一要發生的事件,然后將控制轉向相應的事件程序,并對系統狀態進行相應的更新。主程序還可能檢查仿真的終止并在仿真結束時激活報告生成器。
2.1.3 離散事件系統仿真的基本步驟
離散事件系統仿真研究的一般步驟與連續系統仿真是類似的,它包括確定仿真目標、數據收集、系統建模、確定仿真算法、建立仿真模型、驗證與確認模型、運行仿真模型、仿真結果分析和輸出仿真結果。
1.確定仿真目標
對一個系統的仿真目的可以各不相同。例如,研究一個物流配送中心,可以提出各種不同的問題,如管理調度策略問題、運作流程協調問題等。針對所關心的問題不同,建立的系統模型、設定的輸入變量和輸出變量等都各不相同。因此在進行系統仿真時,首先要確定仿真的目標,也就是仿真要解決的問題。這是數據收集和系統建模的依據。
2.數據收集
數據收集的對象是仿真建模需要的相關數據。仿真建模的過程是一個從簡單到詳細的漸進過程,每個階段都需要收集整理有關數據。需要收集數據的種類和數量與仿真對象及其復雜程度有關。這些數據大多是仿真模型中各種實體的屬性,包括臨時實體和永久實體,如客戶到達時間間隔及其分布規律、服務時間及其分布規律等。
3.系統建模
系統模型由模型和模型參數兩部分組成。模型參數是對數據收集結果的整理。系統模型的形式可以是多樣的,有文字敘述型、流程圖型、圖表型、數學表達式型。離散事件系統仿真模型最常用的是建立系統的流程圖模型,也被稱為流程模型。流程模型中應包含臨時實體到達模型、永久實體服務模型和排隊規則。
4.確定仿真算法
離散事件系統雖然大多是隨機的,但由于仿真模型中采用的是偽隨機數,從理論上講,其狀態的轉移是確定的,因而也可得到確定性的狀態轉移函數。但離散事件系統的模型難以用某種規范的形式寫出,一般采用流程圖或網絡圖的形式才能準確地定義實體在系統中的活動。在一個較為復雜的離散事件系統中,一般都存在諸多的實體,這些實體之間相互聯系,相互影響,然而其活動的發生卻統一在同一時間基上,采用何種方法推進仿真時鐘,以及建立起各類實體之間的邏輯聯系,是離散事件系統仿真中建模方法學的重要內容,稱之為仿真算法或仿真策略。仿真策略決定仿真模型的結構。
5.建立仿真模型
前面建立的系統模型只是對系統的抽象化描述,是仿真者對系統深入了解的必經過程。然而這種模型僅僅能夠被人腦所接受和理解,還無法在計算機上運行。為此還需建立計算機可運行的模型,即仿真模型。仿真模型是將系統模型規范化和數字化的過程。同時也根據計算機運行的需要特定增加一些必要的部件。仿真模型的主要部件有初始化模塊、輸入模塊、仿真時鐘、隨機數發生器、狀態統計計數器、事件列表、事件處理程序和輸出模塊等。
6.驗證與確認模型
對建立的仿真模型必須進行驗證,以保證通過仿真軟件或者仿真語言所建立的系統模型能夠準確地反映所描述的系統模型。模型的驗證主要檢驗所建立的仿真模型(包括系統組成的假設、系統結構、參數及其取值、對系統的簡化和抽象)是否被準確地描述成可執行的模型(如計算機程序)。
模型的確認則是考察所建立的模型及模型的運行特征是否能夠代表所要研究的實際系統。實際上,沒有哪個模型能夠完全地代表所研究的實際系統,總是存在這樣或那樣的簡化或者抽象。只要一個模型在研究關注的問題上能夠代表實際系統,就是有效的。
7.運行仿真模型
運行仿真模型時需要確定終止仿真的時間。一般有兩種終止方法:一是確定一個仿真時間長度,如仿真100h。系統仿真時鐘推進100h后將自動終止仿真,并輸出仿真結果。另一種方式是確定仿真事件的數量。以工件到達倉庫為例,可以設定100批物品到達后終止仿真。選擇哪種方式可依仿真系統的具體情況確定。
8.仿真結果分析
由于離散事件系統固有的隨機性,每次仿真運行所得到的結果僅僅是隨機變量的一次取樣。盡管仿真實驗要進行多次,系統仿真結果的可信度仍然需要進行分析和判斷,不同的仿真方式(終態仿真或穩態仿真)有不同的仿真結果分析方法,詳細內容見本章第4節。
9.輸出仿真結果
仿真結果輸出有實時在線輸出和在仿真結束時輸出兩種方式。當對系統進行動態分析時,往往需要了解各種中間變量或者輸出變量的實時變化情況。對于這些變量可以設定在仿真時鐘推進的每一或某一時刻輸出該變量的瞬時值,即實時在線結果輸出,輸出的是仿真階段性的結果。最后在仿真結束時,需要輸出最終的仿真結果。目前成熟的仿真軟件一般都可以提供多種仿真結果輸出形式,如表格輸出、直方圖、餅圖、曲線圖等圖形以及數據文件等輸出。
2.1.4 離散事件系統仿真方法
離散事件系統仿真與連續系統仿真的方法很不相同。
離散事件系統模型只是一種穩態模型,無須研究狀態變量從一種狀態變化到另一種狀態的過程。而對于連續系統,主要是研究其動態過程,連續系統模型一般要用微分方程描述。
離散事件系統中的變量大多數是隨機的,例如實體的“到達”和“服務”時間都是隨機變量。仿真實驗的目的是力圖用大量抽樣的統計結果來逼近總體分布的統計特征值,因而需要進行多次仿真和較長時間仿真。
連續系統仿真中采用均勻步長推進仿真時鐘的原則,則離散事件系統仿真中時間的推進是不確定的,它決定于系統的狀態條件和事件發生的可能性。
離散事件系統仿真實質上是對那些由隨機系統定義的,用數值方式或邏輯方式描述的動態模型的處理過程。從處理手段上看,離散事件系統仿真方法可分為兩類。
1.面向過程的離散事件系統仿真
面向過程的仿真方法主要研究仿真過程中發生的事件以及模型中實體的活動,這些事件或活動的發生是順序的。而仿真時鐘的推進正是依賴于這些事件和活動的發生順序,在當前仿真時刻,仿真進程需要判斷下一個事件發生的時刻或者判斷觸發實體活動開始和停止的條件是否滿足,在處理完當前仿真時刻系統狀態變化操作后,將仿真時鐘推進到下一事件發生時刻或下一個最早的活動開始或停止時刻。仿真進程就是不斷按發生時間排列事件序列,并處理系統狀態變化的過程。
2.面向對象的離散事件系統仿真
在面向對象仿真中,組成系統的實體以對象來描述。對象有三個基本的描述部分,即屬性、活動和消息。每個對象都是一個封裝了對象的屬性及對象狀態變化操作的自主的模塊,對象之間靠消息傳遞來建立聯系以協調活動。對象內部不僅封裝了對象的屬性還封裝了描述對象運動及變化規律的內部和外部轉換函數。這些函數以消息或時間來激活,在滿足一定條件時產生相應的活動。消息和活動可以同時產生,即所謂的并發,但在單CPU計算機上,仍須按一定的仿真策略進行調度。在并行計算機和分布式仿真環境中,仿真策略則可以更加靈活、方便。
面向對象的仿真尤其適用于各實體相對獨立、以信息建立相互聯系的系統中,如航空管理系統、機械制造加工系統以及武器攻防對抗系統等。
- 中國傳媒大學外國語學院711基礎俄語歷年考研真題及詳解
- 數據結構(Java語言版)
- 財務共享服務
- 羅斯《公司理財》(第11版)筆記和課后習題詳解
- 2020年寧夏公務員錄用考試專項教材:判斷推理【考點精講+典型題(含歷年真題)詳解】
- 成本會計學
- 酒店項目選址和價值評估
- 李蔭華《全新版大學英語綜合教程(5)》(第2版)學習指南【詞匯短語+課文精解+全文翻譯+練習答案】
- 新視野大學英語形成性測評(第2冊)
- 創意設計色彩專業知識考研輔導教材【核心講義+案例分析】
- MATLAB建模與仿真實用教程
- 北京大學法學院642憲法與行政法歷年考研真題及詳解
- 動畫角色設計
- 吳侃《高級日語1》學習指南【課文重點+詞匯剖析+語法精解+全文翻譯+練習答案】
- 進出口貿易實務教程