製造系統模擬S1-動態變換資源

製造系統模擬S1-動態變換資源

tags: Arena Simulation Resource Capacity Change

製造系統模擬S1-動態變換資源

李碩軒
Tue, Mar 10, 2020 23:38 PM

前言:

日常生活中,我們常常看到資源配置的變換;當去速食店購買餐點的時候,如果排隊的人潮絡繹不絕,已經排到店門口,這時候店經理或是會比較多技能的員工,可能就會從製作餐點的位置,跑去支援點餐,並呼喊說:“點餐可以排這邊哦”~
這就是日常生活常見的資源配置的變換,點餐人員從一位變成兩位,這種根據情況去調配各站資源的產能上限,跟早、中、晚班排班(配置當班人員人數(,一個是已經有歷史資料(如:銷售量、來客量…)來安排人力是不同的。
後者,我們在學習模擬的過程有學過,就是接線員人力安排的那個Case,我們可以A時段排a個人,B時段排b個人,透過Scheduled 的方式來達成。而這邊討論的這個情況,則是討論,在"人數總量"(資源有限)可能是固定的情況下,根據各站當下的壅塞情況來調配人員;或者是從其他"非瓶頸站"抽出人力來支援"瓶頸"。
而未了達成此目的,我們就必須在模型內做到資源(Resource)的產量變化(Capacity Change),因此,以下用一段影片來簡單解釋。

正文

影片中我會舉了一個比較不是那麼符合實際的Case,就是看工作站的佇列(Queue)內的實體(Entity)的數量,來進行人力增減的判斷。
我們可以把這個Entity對比成速食店的漢堡訂單或是點餐櫃台前面等待的人員數量來理解,若換成製造管理的說法,就是有一個工件(Job)抵達了工作站(Workstation)需要被處理/加工(Process),但當下因為資源被占用的關係,所以需要等待。
而我們用了一個比較極端的例子,就是工件無法承受等待的風險,因此,只要有人等待,就必須立即調配該資源的數量(Capacity),來讓該工件(漢堡的訂單/等待點餐的人)馬上被服務到。

Youtube影片連結:請點此

以下,先針對會用到比較不常見的模塊進行說明:

Alter

Alter模塊在Arena軟體的內建說明如下:

The ALTER block changes the capacity of a resource defined by the operand Resource ID by a positive or negative Capacity Change. Resource ID may be specified as any of the following: an expression that evaluates a resource symbol number; a resource symbol name; or a set symbol name and a valid index into the set.

When an entity arrives at an ALTER block, the capacity variable, MR(Resource ID), for the resource is adjusted by the specified Capacity Change. The capacity of multiple resources may be changed by repeats of the Resource ID and Capacity Change operands. If the Capacity Change operand is positive, Capacity Change units are added for the specified resource. These additional units are then allocated to any entities waiting to seize the resource at SEIZE or PREEMPT blocks. If a negative capacity change is specified, MR(Resource ID) changes immediately. If Capacity Change units are idle, then the ALTER removes Capacity Change units. If fewer resource units are available than specified by Capacity Change, then any idle units are removed, and the remaining units are taken away when they are subsequently released.

翻譯與解釋:

以下以藍色區塊來翻譯原文,綠色區塊為個人對於此段話的引申意涵作補充說明:

翻譯:
Alter模塊可以用正貨是負的產量變化來改變以Resource ID這個運算子所定義的資源的數量。
Resource ID可以用以下任一種方式來表明:

  1. 計算資源編號的表達式
  2. 資源符號的名稱
  3. 一個符號名稱的集合以及一個明確的索引值在該集合內

當有實體(Entity)抵達Alter模塊,資源的容量變數 MR(Resource ID) 就會被以宣告的產量變化進行調整。 也就是Entity一經過該模塊,就會產生整數的資源容量的增、減。

補充說明:
也就是Entity一經過該模塊,就會產生整數的資源容量的增、減。

翻譯:
可以通過重複資源ID和容量更改操作數來更改多個資源的容量。

補充說明:
在操作式窗內,可以一次對多個資源進行操作;比方說總人數是5人,被分配給兩個工作站,第一站先配置3人第二站一個2人,如果我在此處讓第二站多一人的同時,我可以讓第一站的人數少一人,達到總人數固定。

翻譯:
如果產量的變化運算是正的話,則產量變化的單位數量將會被加到所指名的資源當中。這個被加入的資源將會被配置到任何正在SEIZE或PREEMPT模塊中等待獲取資源的實體。

補充說明:
所以當增加資源的數量,則會馬上將這個產能配給到所需要的實體。

翻譯:
If a negative capacity change is specified, MR(Resource ID) changes immediately. If Capacity Change units are idle, then the ALTER removes Capacity Change units. If fewer resource units are available than specified by Capacity Change, then any idle units are removed, and the remaining units are taken away when they are subsequently released.
如果產量的變化運算是負的話,則資源的容量變數 MR(Resource ID)會馬上改變。如果產量改變的單位現在是閒置,則Alter模塊會馬上移除這個產量變化的單位數量。如果擁有的資源單位過少於我們所指名的產能變化,則任何閒置的產能會被移除,其餘的單位(也就是正在被使用的)也會在被釋放後馬上被拿走。

補充說明:
所以如果是減少人員,它的資源如果不是閒置中,則會等到被使用完釋放後(Release)才還回去,這邊可能會因此產生資源比起預計多的情況,因為他的設定不是立即強制挪除的關係。

情境說明

影片中,我分成資源不足以及資源過剩兩個情況討論。
假設在擁有足夠資源可以讓我分配的情況下,如果碰到資源的容量不足,我會根據後方Queue內的個數,來增加資源的容量,使其可以從情況一:加工速率(Process Rate)小於抵達速速率(Arrival Rate)逐漸變成情況二:加工速率(Process Rate)大於抵達速速率(Arrival Rate)。

反之,如果一開始配置過多資源,導致資源過剩,則Process的Queue會長期都沒有,此時可以考慮把多餘限制的資源的容量挪除,減少閒置資源的浪費。

結語

這個結論做得比較倉促,來日再細究實際情況。
通常實際模擬會使用到的情況大多是在前題是人員是多能工的情況,該名人員可以視產線的負荷量,去彈性支援各站。因為實際情況不會如影片所說,資源的容量想加就加,會碰到諸多限制。
而還有一點就是要用什麼策略、機制去判斷何時該增加人力、減少人力,而不會過於頻繁,這個也是可深究、探討的重點,舉例: WIP數量高過於某個數量水準、Average Waiting Time高於某個時間水準,都是一個方向。
更極端一點,如果是連續的產線(如輸送帶),則如果加工速率過慢,會導致產線停線。若產線設計確定無法做更動的情況,則我們可以討論如何在資源有限的情況下,讓瓶頸站的加工速率保持大於某個水準,才不會導致產線需要停下來(變成需要等待該站加工完成,輸送帶才能啟動),去影響產出。

留言