模型總覽: AnyLogic 中的工廠物流以活動為基礎的成本分析
- accessKey [取消設定] 模擬器用來連接到您工作區的授權金鑰 。 遵循 [ 取得您的工作區存取金鑰 ] 中的指示來設定參數字串。
- bonsaiMode [ ] 指出模擬是否已連接到 Bonsai 大腦。 值為1表示模擬應該預期會有大腦的輸入。 值為-1 表示模擬正在隔離中執行。
- workspaceID [取消設定] 與您工作區相關聯的 AZURE 物件識別碼 。 依照中的指示 Get your Bonsai workspace details 設定參數字串。
輸送機參數
傳送帶參數會定義與系統相關聯之 conveyors 的功能。
- ConveyorSpeed [ ] 產品在系統中移動的速率(以秒為單位)。 速度是常數。
- RelativeMoveCost [ ] 沿著每小時移動一次產品的費用。
一般參數
一般模擬參數會設定系統的整體狀態詳細資料。
- ArrivalRate [ ] 每日抵達系統的平均產品數量。 內部抵達時間會以指數方式分佈。
- ExistenceCostPerHour [] 會依現有的系統,來 捕捉產品大量所產生的每小時成本單位。 例如,針對尚未出貨的大量執行冷藏庫取出所需的電力成本。
電腦參數
機器參數會定義與系統相關聯之工廠設備的活動狀態。
- MeanProcessDelay [ ] 平均時間(以天為單位) (N) 個別產品大量花費在機器的處理。 模擬計算是以具有最小值 0.7 N 和最大 1.3 N 的三角形分佈為基礎。
- RelativeProcessingCost [ ] 在電腦中處理產品大量的每小時成本。
資源集區參數
資源集區參數會定義與系統相關聯之資源集區的活動狀態。
- ResourceACapacity [ ] 資源集區 A 中可用的資源單位數。
- ResourceBCapacity [ ] 資源集區 B 中可用的資源單位數目。
- BusyCostPerHourA [ ] 從集區 a 使用之資源的每小時成本。
- BusyCostPerHourB [ ] 資源在集區 B 中使用的每小時成本。
- IdleCostPerHourA [ ] 資源集區中未使用之資源的每小時成本。
- IdleCostPerHourB [ ] 在集區 B 中未使用之資源的每小時成本。
- sizeBufferQueues [ ] 在等候任一集區中的資源時,可以排入佇列的產品數量。 此值應小於或等於輸送機的總容量。
模擬程式流程
ABCA 模型是具有下列程式流程的連續模擬:
- 來源區塊會產生產品大量,並以指數方式分散內部抵達時間。
- 每個連入產品會嘗試從資源集區 A 中收回一個資源單位。
- 如果 無法 使用資源 A 的單位,就會在佇列中等候大量等候 (auxQueueA) ,直到有可用的資源單位為止。
- 如果有資源 A 的單位可用,則產品 會 拿取資源。
- 產品大量會處理 (電腦區塊中的延遲) 。
- 當產品很長離開時,它就會釋出資源 A,現在可供其他產品使用。
- 產品大量會傳達給任意點。
- 產品大量嘗試從資源集區 B 取一個資源單位。
- 如果 無法 使用資源 B 的單位,就會在佇列中等候大量等候 (auxQueueB) ,直到有可用的資源單位為止。
- 如果資源 B 的單位可用,則產品 會 拿取資源。
- 產品大量會處理 (電腦區塊中的延遲) 。
- 產品大量會傳達給接收區塊,表示大量結束系統並釋出資源 B,現在可供其他產品使用。
工廠物流 AnyLogic 模型中的程式流程圖表螢幕擷取畫面。 流程會依序顯示下列 AnyLogic 小工具: source、auxQueueA、seizeA、auxQueueB、seizeB、process、releaseA、queue、輸送機、releaseB、sink。 AnyLogic 標示為 resourceA 和 resourceB 的資源小工具,位於流程圖下方。 此外,auxQueueA、seizeA、auxQueueB、seizeB 和佇列 widget 都有組織標籤「等待中」。 進程 widget 標示為「處理中」。 傳送帶 widget 標示為「正在傳達」。 ResourceA 和 resourceB 小工具標示為「資源 (閒置成本) 。
如果系統超載,則會強制終止模擬。 只要 auxQueueA 中有多少數量 (佇列來從資源集區中佔用資源單位) 超過佇列的緩衝區容量集,系統就會被視為多載。 只要 auxQueueA 超過容量,它就會指出輸入系統的產品數目,大於離開系統的產品數目,通常是因為下列其中一個 (或多個) :
- 資源集區 A 中有太少資源可用
- 資源集區 B 中有太少資源可用
- 電腦處理時間太長
- 傳達速度太慢
營運成本計算
個別產品的作業成本定義為結合和處理大量的成本,以及與在系統中有許多相關聯的任何固有成本。
ProductLotCost = ExistenceCost +
BusyCost +
IdleCost +
ProcessingCost +
ConveyingCost
- ExistenceCost 是一種已設定的「工作進行中」或以每小時的每小時成本來保存 () ,只要產品的空間存在於系統中即可。
- BusyCost 是所有設定的成本總和(以每小時為單位),會在資源單位從特定資源集區中宣告為 X,以針對產品大量 () 來執行處理作業 。
- IdleCost 是在資源單位位於特定資源集區 X () 中時,每小時所套用的所有已設定成本的總和 。
- ProcessingCost 是計算成本,以每小時為單位,在機器中的產品有延遲時套用。 雖然不會明確建立處理活動的模型,但計算的處理成本可能會被視為相關聯的維護成本,其中較快的機器速度 (較低的延遲) 會導致更多的內部磨損,因而增加維護成本。 產品大量的處理成本計算方式是將所設定的處理成本除以平均處理時間的平方 [
RelativeProcessingCost/ (MeanProcessDelay)RelativeProcessingCost]。 - ConveyingCost 是計算成本,以每小時為單位,在機器中的產品有延遲時套用。 雖然不會明確地建立傳送帶的模型,但計算出的傳達成本可能會被視為相關聯的維護成本,其中較快或更長的輸送機會產生更多的細分點並提高磨損,因而增加維護成本。
產品大量的傳達成本計算方式是將所設定的傳達成本乘以輸送機速度 [
RelativeMoveCostx (ConveyorSpeed)RelativeMoveCost] 的平方。
在 ABCA 模型中,個別產品大量的每小時成本是由存在成本、使用的資源成本,以及實際在機器中處理大量的成本所組成:
ProcessCost = ExistenceCostPerHour +
[ BusyCostPerHourA + BusyCostPerHourB ] +
[ RelativeProcessingCost / (MeanProcessDelay)^2 ]
若要計算一段時間的完整營運成本,ABCA 模型會累積個別的每一成本費用:
- 處理產品的許多 (
accumProcessCost) - 閒置 (的資源單位
accumIdleCostA,accumIdleCostB) - 產品大量等候系統 (
accumWaitingCost) ,包括:- 閒置資源佇列 (
accumSeizeAQCost,accumSeizeBQCost) - 閒置 (
accumConveyorQCost) - 佔用資源 (
accumSeizeAQCost,accumSeizeAQCost)
- 閒置資源佇列 (
- 移動整個系統 (
accumMoveCost)
依產品的總營運成本計算方式是將這些成本的總和除以已離開系統的產品數目。
TotalOperationalCost = accumProcessCost +
[ accumIdleCostA + accumIdleCostB ] +
accumWaitingCost +
accumMoveCost
OperationCost = TotalOperationalCost / productCount
Bonsai 大腦整合
設定連接器的參數之後 Bonsai ,您可以執行 ABCA 模擬器的非受控 (本機) 版本,以定型 Bonsai 解決方案加速器隨附的新大腦版本。 大腦的目標是要針對特定的抵達率,以自我調整的比例調整可用資源數目、處理時間和輸送機速度,以維護每個產品的最低成本。
注意
每當您移動其中一個元件滑杆時,都會重設成本統計資料,因此觀察到的度量將會特別針對新選擇的抵達率。
可觀察和動作空間
這項資訊會在模擬之間傳遞,並 Bonsai 根據與大腦相關聯之 Inkling 檔中定義的可觀察空間和動作空間來傳遞:
- 可 觀察的空間 會定義由大腦用來進行預測的模擬所提供的資訊。
- 動作空間會定義大腦可能變更的模擬參數。
可觀察的空間和動作空間的相關資訊會使用 ABCA 模型中定義的輸入參數,以及 ObservableState 和動作類型中定義的 Inkling 欄位來交換。
| Space | 模型參數 | Inkling 欄位 | 允許的範圍 |
|---|---|---|---|
| 可觀察的空間 | ArrivalRate | ObservableState.arrivalRate |
[0.5, 2.0] |
| 動作空間 | ResourceACapacity | Action.numResourceA |
[1, 20] |
| 動作空間 | ResourceBCapacity | Action.numResourceB |
[1, 20] |
| 動作空間 | MeanProcessDelay | Action.processTime |
[1.0, 12.0] |
| 動作空間 | ConveyorSpeed | Action.conveyorSpeed |
[0.01, 1.0] |
訓練
解決方案加速器隨附的 Inkling 檔案將以六個月的劇集來訓練大腦。 在每一集開始時,大腦都會根據可觀察狀態中的資訊嘗試執行動作。 下一次觀察經過六個月後,就會發生這種情況。 屆時,大腦會先觀察其動作的結果,再開始新的劇集。 如此一來,大腦只有機會找到動作空間的最佳設定。 劇集之間的長時間長度是因為模擬中的抵達率相對較低 (0.5 –2個產品每天) ,而每個產品的處理時間相對較長 (1-2 天) 。
大腦選取的設定成功 (獎勵) 會計算為每個產品的負成本,如果系統超載,則會有很大的負面影響。 在每一集,大腦都會嘗試將負的最大化,以將每個產品的整體成本降到最低。
定型之後,當您移動其中一個元件滑杆,盡可能將每個產品單位的營運成本降至最低時,大腦就會變更模擬的動作空間參數。
以活動為基礎的成本分析 (ABCA) 是工廠物流控制項技師修理,可將輸出優化,同時降低營運成本。 以活動為基礎的成本分析取決於精確監視處理站活動和追蹤資源耗用量,以及最終輸出的一般成本分析。
工廠物流加速器中包含的 AnyLogic 模擬器,會實作為簡化工廠的模型。 此模型著重在高階程式,並抽象化一些真實世界的詳細資料,以支援彈性和自訂,使其可套用至不同產業的類似製造流程。
部署為解決方案加速器設定程式一部分的工廠物流 AnyLogic 模型螢幕擷取畫面。 螢幕擷取畫面會顯示 [專案] 索引標籤,並展開主要代理程式、顯示主要代理程式之即時輸出和調整小工具的 [顯示] 索引標籤,以及主要代理程式的 [屬性] 索引標籤。
ABCA 模型的運作方式
當大量抵達時,此模型會追蹤產品大量移動、通過機器和 conveyer 作業,然後結束系統:
- 產品大量:建立在模型化工廠中的離散貨物單位。
- 系統:模型化工廠的有限部分。
- 資源集區:在產品大量進入系統時,必須透過系統將產品大量移動所需的有限輸入集區,這會在產品很長的情況下,于產品大量進入系統並可能會在產品很長的時候釋出) (。 資源集區具有明確、量化的容量。
- 電腦:用來處理連入產品的工廠設備一般標記法。 機器有相關聯的佇列長度 (有多少數量正在等候機器) 和輸送量 (可同時處理) 。 機器受限於可用資源的數目。
- conveyer:用來透過系統將產品大量移出的工廠基礎結構的一般標記法。
- cost 物件:表示與使用或取用資源單位相關聯的成本。
ABCA 模型的優化目標是要降低每項產品的營運成本,同時根據設定的製造排程維持高生產輸送量。 從兩個可用的資源集區傳入的大量宣告資源,完成處理,然後釋放任何未耗用的資源。
此模型也會根據動態需求來追蹤資源配置和資源耗用量管理,以計算與資源使用率相關聯的營運成本。 在每個生產步驟累積的營運成本,會細分為數個類別以進行分析和優化。
ABCA 模型元件
ABCA 模型有許多移動元件,但主要元件如下:
- 模擬視覺化
- 來源產生
- 資源佇列
- 資源集區
- 機器活動建模器
- 輸送機活動建模器
在 [顯示] 索引標籤上反白顯示不同互動式元件的工廠物流 AnyLogic 模型螢幕擷取畫面。 上半部會標示為「即時輸出視覺效果」,並顯示每個產品總計、成本和橫條圖的成本,以及追蹤處理時間、等候時間和整體成本。 資源集區的溢位顯示小工具會標示為「資源佇列」。 資源集區的容量滑杆會標示為「資源集區」。 處理時間的延遲滑杆會標示為「機器活動」。 傳送帶系統的速度滑杆標示為「輸送機活動」。
來源產生、資源集區容量、電腦處理時間和輸送機速度的設定都有預設設定,但是在模擬執行時,可以拖曳相關聯的滑杆來變更。
模擬視覺化
模擬的視覺化檢視可讓您在模擬執行時,即時監視這些專案的變更。 在定型期間執行本機 (非受控) 版本的模擬器時,視覺效果相當有用 Bonsai 。
ABCA 模型輸出包括回應式計量、每個產品的目前成本,以及下列的摘要資訊:
- 目前處理的產品數目和百分比。
- 要傳達的產品數量和百分比。
- 未使用 (閒置) 的資源總數和百分比。
- 已封鎖並等候資源之產品的總數量和百分比。
來源產生
來源產生元件會建立新的產品,並將其插入系統中。 ABCA 模型會將來源產生實作為 AnyLogic 來源 區塊。
產品大量產生會遵循波氏分佈,模擬一種情況,亦即產品的大量抵達時間與平均抵達時間為 [ 1 / configured_arrival_rate ]。 參數型抵達率是預期的產品數量,會在一段特定時間內進入系統,例如,每天2。
重要
抵達率是 預期 的值,不是 保證 的值。 使用波氏分佈表示模擬期間計算的抵達時間不具決定性。 例如,如果每日設定的抵達率為2,當模擬執行時,有效的產品大量抵達速率值可能會在每日0.5 到2之間波動。 其目的是要建立可能因為外部因素而變更的實際抵達率模型。
資源佇列
當某個專案停止運作時,資源佇列會讓模擬成為大量產品的位置。 ABCA 模型會將資源佇列實作為 AnyLogic 佇列 區塊。
佇列可作為模擬內的過渡區塊:
- 如果在佇列之後的輸送機有 可用的空間 ,則產品會以零的模擬時間傳遞。
- 如果在佇列後的輸送機上沒有 可用的空間 ,則產品會在系統中閒置,直到空間可供使用為止。
佇列最重要的屬性是容量設定,可指定可在任何時間點于該佇列內累積的最大實體數目。 產品大量時無法進入佇列。
資源集區
資源集區 (資源 A 和 資源 B) 代表一組可用來處理產品大量的系統資源。 ABCA 模型會使用參數化資源容量,將系統資源集區實作為一組 AnyLogic ResourcePool、 佔用和 釋放 區塊。
ABCA 模型包含兩個可獨立設定的資源集區。 模擬器啟動時,會根據相關聯的參數設定來建立一組資源單位。 一旦建立之後,資源單位會保持閒置,直到產品大量取回為止。
機器活動建模器
機器活動建模者可捕獲處理產品大量的時間和工廠設備成本。 ABCA 模型會將機器活動實作為具有參數化平均延遲值的 AnyLogic 延遲 區塊。 延遲區塊會在指定的時間量內將產品保留在區塊中,以停止模擬進度,而且封鎖容量取決於系統中的資源數目。
ABCA 會使用以目標平均處理時間為基礎的參數化三角形分佈來處理延遲。 因此,在處理 (加上或減去 30% ) 時,產品很多可以花1到12天。 例如,如果模擬設定的平均處理延遲為5,則指定的產品會在延遲區塊中的3.5 到6.5 天之間花費很多時間。 由於處理時間是以隨機分佈為基礎,因此每個個別產品的延遲將會稍微不同一段時間。
輸送機活動建模器
傳送帶活動建模者會透過系統,來捕捉將產品大量移動的相關時間和成本。 ABCA 模型會將輸送機活動實作為具有參數化速度的 AnyLogic 輸送機 區塊。
傳送帶有一個定義的長度,並在路徑中以固定速度移動產品,同時保留許多之間的最小空間。
ABCA Anylogic 物件
| Name | 描述 | 相關參數集 | 靜態設定 |
|---|---|---|---|
| ABCAgent | 離散產品大量 | 一般 | 無 |
| ABCAResourceUnit | 離散資源單位 | 無 | 無 |
| ABCAgents | 建立目前在系統中的總產品數量的模型 | 無 | 無 |
| AuxQueueA | 建立資源集區 A 資源佇列的模型 | 資源集區 | 無 |
| AuxQueueB | 為資源集區 B 的資源佇列模型化 | 資源集區 | 無 |
| BonsaiConnector | Bonsai工作區設定詳細資料的容器 | Bonsai | 模擬器名稱超時 |
| 主要的輸送機 | 在系統中為目前的輸送機活動建模 | 輸送 | 長度 |
| Main. 進程 | 在系統中為目前的機器活動建模 | 機 | Capacity |
| Main。佇列 | 為此輸送機的產品大量容量建模 | 無 | Capacity |
| ReleaseA | 將資源釋放回資源集區的程式模型化 | 無 | 無 |
| ReleaseB | 將資源釋放回資源集區 B 的程式模型化 | 無 | 無 |
| ResourceA | 在資源集區 A 中建立目前的資源單位集模型 | 資源集區 | 速度 |
| ResourceB | 建立資源集區 B 中目前資源單位集的模型 | 資源集區 | 速度 |
| SeizeA | 建立從資源集區 A 宣告資源的程式模型 | 無 | 佇列容量 |
| SeizeB | 將從資源集區 B 索取資源的程式模型化 | 無 | 佇列容量 |
| Main. 接收 | 將產品的處理常式模型在離開系統 | 無 | 無 |
| Main。來源 | 將產品大量進入系統的程式模型 | 一般 | 無 |
模擬參數
Bonsai 參數
Bonsai 參數可讓您將非受控版本的 ABCA 模擬器連線到您的 Bonsai 工作區。