物流系統(tǒng)建模與仿真 課件 第六章 Flexsim仿真進階_第1頁
物流系統(tǒng)建模與仿真 課件 第六章 Flexsim仿真進階_第2頁
物流系統(tǒng)建模與仿真 課件 第六章 Flexsim仿真進階_第3頁
物流系統(tǒng)建模與仿真 課件 第六章 Flexsim仿真進階_第4頁
物流系統(tǒng)建模與仿真 課件 第六章 Flexsim仿真進階_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

物流系統(tǒng)建模與仿真

(第六章Flexsim仿真進階)普通高等教育物流管理與工程類專業(yè)一、任務(wù)序列及實訓(xùn)二、建模輔助工具三、其他內(nèi)容四、思考題

第六章Flexsim仿真進階Contents一、任務(wù)序列

1.任務(wù)序列任務(wù)序列是指一個任務(wù)執(zhí)行器按一定順序執(zhí)行的一系列任務(wù),如下圖所顯示。任務(wù)執(zhí)行器是指任務(wù)執(zhí)行器類實體,如操作員、叉車、起重機、堆垛機、機器人、升降機和其它可移動資源。如果實體的屬性窗口中包含任務(wù)執(zhí)行器選項卡,那它就是一個任務(wù)執(zhí)行器。優(yōu)先

先占任務(wù)1任務(wù)2任務(wù)3…除了一系列任務(wù)之外,每個任務(wù)序列還有一個優(yōu)先級。優(yōu)先級定義了此任務(wù)序列對比其它任務(wù)序列的重要程度。每個任務(wù)序列還有一個先占值,用來定義那個任務(wù)序列是否要搶占其它正在執(zhí)行的任務(wù)序列。2.自動創(chuàng)建任務(wù)序列固定實體擁有創(chuàng)建任務(wù)序列的默認(rèn)機制,實現(xiàn)把臨時實體搬運到下游設(shè)備。打開固定實體的屬性窗口,點擊臨時實體流選項卡中的使用運輸工具,就可以執(zhí)行這個默認(rèn)的任務(wù)序列了。處理器還擁有另外一種默認(rèn)機制,就是在執(zhí)行加工,預(yù)熱和維修操作時調(diào)用操作員。這是通過修改處理器,合成器或者分解器上的第一個選項卡完成的。每個默認(rèn)機制都會觸發(fā)創(chuàng)建一種任務(wù)序列。一、任務(wù)序列3.任務(wù)序列如何工作選擇了臨時實體流選項卡中的“使用運輸工具”后,會創(chuàng)建以下的任務(wù)序列:(1)行駛到當(dāng)前臨時實體所在的實體(2)從那個實體裝載臨時實體(3)中斷(4)行進到目的地實體(5)卸載臨時實體到目的地實體當(dāng)任務(wù)執(zhí)行器執(zhí)行這個任務(wù)序列時,將按順序執(zhí)行每個任務(wù)。上面的每個任務(wù)都對應(yīng)一種特定的任務(wù)類型。在上面例子中有兩個Travel任務(wù)、一個Load任務(wù)、一個Unload任務(wù)和一個Break任務(wù)。一、任務(wù)序列

4.行進任務(wù)(TravelTask)Travel任務(wù)是告訴任務(wù)執(zhí)行器行走到模型中的某個實體。根據(jù)模型的邏輯,完成任務(wù)的方式有多種。如果任務(wù)執(zhí)行器連接到一個網(wǎng)絡(luò)路徑,那么它會沿著網(wǎng)絡(luò)行走,直到與目標(biāo)實體相連的那個網(wǎng)絡(luò)節(jié)點停止。如果任務(wù)執(zhí)行器是一個起重機,那么它會升到用戶定義的高度,然后行走到目標(biāo)實體的x/y位置。所以,Travel任務(wù)可以代表不同類型的事件,這取決于模型設(shè)置和實體類型。然而,有一點請注意,所有Travel任務(wù)都會涉及一個目標(biāo)實體。5.裝載和卸載任務(wù)(Load和UnloadTasks)Load和Unload任務(wù)告訴任務(wù)執(zhí)行器從一個站點裝載臨時實體,或?qū)⒁粋€臨時實體卸載到一個站點。這通常需要任務(wù)執(zhí)行器行進一段距離,目的是在正確的位置撿取或卸載臨時實體,同時在移動之前完成用戶定義的裝載/卸載時間。雖然所有任務(wù)執(zhí)行器執(zhí)行裝載/卸載時間的方式相同,但是因為實體類型不同,所以它們的偏移方式也會有所不同。例如,叉車會行進到撿取/放置臨時實體的位置,在這個過程中,載貨平臺抬升到撿取/放置臨時實體的高度;而機器人將轉(zhuǎn)動到需要撿取/放置臨時實體的位置。參見偏移行進可獲得更多詳細(xì)信息。一、任務(wù)序列

6.中斷任務(wù)(BreakTask)Break任務(wù)告訴任務(wù)執(zhí)行器它是否需要“中斷”去執(zhí)行其它的任務(wù)序列。例如,如果在同一個位置有兩個臨時實體等待裝載,而叉車確實可以裝載兩個或更多的臨時實體,那么它有兩個任務(wù)序列要執(zhí)行。這兩個任務(wù)序列都和上面提到的任務(wù)序列一樣。第一個是撿取第一個臨時實體的任務(wù)序列,另一個則放在它的任務(wù)序列隊列中,叉車一完成活動的任務(wù)序列就來執(zhí)行隊列中的其它任務(wù)序列。使用break任務(wù),叉車在裝載第一個臨時實體后停止第一個任務(wù)序列,開始去執(zhí)行第二個任務(wù)序列,也就是行駛到第二個臨時實體的站點,裝載第二個臨時實體。如果任務(wù)序列中不包含中斷任務(wù),任務(wù)執(zhí)行器就必須先完成第一個任務(wù)序列,然后再去裝載第二個臨時實體。7.操作員任務(wù)序列(OperatorTaskSequences)這是自動創(chuàng)建任務(wù)序列的又一個示例。處理器創(chuàng)建任務(wù)序列,請求一個操作員來加工站點工作。任務(wù)序列描述如下:(1)行進到加工站點(2)然后被占用,直到被釋放一、任務(wù)序列

和前面的例子一樣,第一個任務(wù)告訴任務(wù)執(zhí)行器行駛到站點。第二個任務(wù)是一個新任務(wù),在前面的例子中沒有提到。這是一個Utilize任務(wù),它讓任務(wù)執(zhí)行器進入定義的狀態(tài),如Utilized或Processing,然后等待被釋放。調(diào)用freeoperators()命令時可釋放操作員。由于處理器自動創(chuàng)建任務(wù)序列,它也會自動釋放操作員。

活動任務(wù)序列圖正在等待的任務(wù)序列列隊圖如果沒有先占類型的任務(wù)序列,那么任務(wù)執(zhí)行器將會執(zhí)行當(dāng)前活動的任務(wù)序列。完成之后,把隊列中的第一個任務(wù)序列變?yōu)榛顒拥娜蝿?wù)序列,開始執(zhí)行。如此重復(fù),直到完成隊列中的所有的任務(wù)序列。二、建模輔助工具2.1全局表點擊工具主菜單>全局表,即可訪問全局表。不能通過拖拽到模型的方式創(chuàng)建全局表對象。只能通過工具菜單或者通過全局表窗口創(chuàng)建它們。全局表可以存儲數(shù)值型或字符串型數(shù)據(jù)。使用不同的表格命令,可以在任何一個實體上訪問這些數(shù)據(jù)。一個模型可以有多個全局表。1.全局表二、建模輔助工具2.全局任務(wù)序列點擊工具>全局任務(wù)序列,打開全局任務(wù)序列(GTS)窗口。使用全局任務(wù)序列可以不用編程,只通過圖形用戶界面就可以建立任務(wù)序列。一旦創(chuàng)建了GTS,就可以通過固定資源實體的使用運輸工具下拉列表,把它分配給任務(wù)執(zhí)行器。建立全局任務(wù)序列,首先創(chuàng)建實體引用的名稱,然后創(chuàng)建與引用關(guān)聯(lián)的任務(wù)。實體引用分為Dynamic和Static。二、建模輔助工具3.全局變量點擊工具菜單>全局變量,即可打開全局變量窗口在全局變量窗口中,創(chuàng)建全局變量和定義宏,使用腳本和C++都可訪問它們。一旦創(chuàng)建了一個變量,你可以在代碼編輯器窗口或者腳本控制臺中獲取和設(shè)置那個變量的值。注意:窗口中顯示的值是變量的初始值,不是當(dāng)前值。變量的當(dāng)前值存儲在內(nèi)存中,可以通過把它返回到腳本窗口或者打印到代碼中,進行查看。變量的當(dāng)前值不存儲在樹里。當(dāng)打開重置或編譯模型時,全局變量值也被重置。二、建模輔助工具4.全局宏全局宏選項卡可以用來創(chuàng)建宏??梢酝ㄟ^下面的#define語句,定義宏:#defineMACRO_VAL5#defineBLAHBLAHBLAH6#defineSOME_DESCRIPTIVE_NAMEgettablenum("GlobalTable1",1,1)一旦完成這些定義,就可以在代碼中使用了。gettablenum(PROCESS_TIME_TABLE,1,PAINTER_COLUMN)注意:宏定義不能以分號結(jié)尾。如果在宏定義中出現(xiàn)分號,會出現(xiàn)意想不到的結(jié)果。宏最基本的用途是使用指定文本替換代碼中的給定文本。如果在語句的結(jié)尾使用分號,那么分號會出現(xiàn)在錯誤的地方。二、建模輔助工具2.2時間表本節(jié)我們將學(xué)習(xí)如何創(chuàng)建TimeTable并分配成員實體;如何使用TimeTable指定處理器和操作員的中斷時間。使用時間表可以指定固定資源實體(FixedResource)或任務(wù)執(zhí)行器(TaskExecuter)發(fā)生中斷的時間。中斷的原因可以是故障、維護或維修等。模型概況在這個模型中,我們將用幾個操作員來執(zhí)行一個任務(wù)。創(chuàng)建一個TimeTable來指定操作員發(fā)生中斷的時間。使用另外一個TimeTable用來對處理器的維護進行規(guī)劃。2.分步建模創(chuàng)建時間表模型:點擊工具欄中的,開始一個新模型。點擊模型單位窗口上的確定按鈕,我們將使用默認(rèn)的單位。二、建模輔助工具2.2時間表第一步:創(chuàng)建實體,按照下圖的布局向建模區(qū)拖拽實體:二、建模輔助工具2.2時間表第二步:預(yù)置暫存區(qū)和處理器(Queue和Processors)一個操作員負(fù)責(zé)把臨時實體從Queue2搬運到兩個處理器上。另外兩個操作員負(fù)責(zé)在處理器上加工臨時實體,然后把加工完畢的產(chǎn)品從處理器搬運到Queue5。點擊Q2,在快捷屬性窗口中打開的屬性。在Flow(臨時實體流)模塊中,選擇UseTransport(使用運輸工具),保持默認(rèn)的centerobject選項。打開Processor3的屬性框。在處理器選項卡上,選擇UseOperator(s)forProcess(使用操作員進行加工)并且保持默認(rèn)的centerobject選項。二、建模輔助工具2.2時間表1.打開臨時實體流選項卡2.選擇UseTransport(使用運輸工具)并且保持默認(rèn)的centerobject選項。3.打開觸發(fā)器選項卡。4.點擊加工結(jié)束觸發(fā)器旁邊的按鈕。選擇SetColor選項并保持默認(rèn)設(shè)置(如右圖)。注意:點擊屬性下面的左右箭頭,可以輕松切換處理器(或者其它類似的實體)。對Processor4重復(fù)上面的設(shè)置。點擊確定,保存并關(guān)閉屬性窗口。重置并運行模型,確保操作員從Queue2往處理器上搬運箱子,加工箱子并把加工完畢的箱子運到Queue5去。在加工完畢之后,這些箱子的顏色應(yīng)該發(fā)生變化。二、建模輔助工具2.2時間表第三步:創(chuàng)建一個TimeTable我們現(xiàn)在要為Operator10創(chuàng)建一個TimeTable。1.點擊工具>時間表,然后點擊添加,打開時間表窗口。2.把TimeTable重命名為Operator10Break3.在Members按鈕,添加一個成員實體。高亮選中Operator10,點擊選中(Select)二、建模輔助工具2.2時間表4.點擊Table選項卡,在第一行中,把Time設(shè)置成200,State設(shè)置成12,Duration設(shè)置成30。5.把Repeat設(shè)置為Custom,把Value改為200。會導(dǎo)致操作員每隔200分鐘中斷一次。6.點擊Functions(函數(shù))選項卡,在DownFunction(中斷函數(shù))下拉列表中,選擇TraveltoLocation,DelayUntilDownTimeComplete(行走到指定位置,直到中斷結(jié)束)。只是把坐標(biāo)改成2,-8,0。這x,y和z左邊就是操作員在中斷的時候要去的地方。7.在ResumeFunction(恢復(fù)函數(shù))下拉列表中,選擇DoNothing(無操作)。8.點擊確定,應(yīng)用并關(guān)閉TimeTable窗口。重置并運行模型。當(dāng)你運行模型時,你會發(fā)現(xiàn),當(dāng)運行到200秒時,操作員會從工作區(qū)離開30秒,然后回去工作。注意:如果操作員正在執(zhí)行一個任務(wù),他將在中斷時間執(zhí)行自謙完成這個任務(wù)。三、其他內(nèi)容3.1觸發(fā)器故障/維修觸發(fā)器使用場景:故障觸發(fā)器:每次實體中斷停機時執(zhí)行這段代碼。維修觸發(fā)器:每次實體完成維修時間時行這段代碼。訪問變量:current:當(dāng)前的實體2.碰撞觸發(fā)器使用場景:當(dāng)實體執(zhí)行碰撞檢測,發(fā)現(xiàn)與它的一個碰撞成員發(fā)生碰撞時,就觸發(fā)此觸發(fā)器。訪問變量:thisobject:當(dāng)前實體otherobject:與當(dāng)前實體碰撞的那個實體thissphere:涉及當(dāng)前實體的碰撞球othersphere:與當(dāng)前實體碰撞的實體的碰撞球三、其他內(nèi)容3.創(chuàng)建觸發(fā)器使用場景:創(chuàng)建臨時實體時執(zhí)行此代碼。訪問變量:current:當(dāng)前實體item:創(chuàng)建的臨時實體rownumber:任務(wù)序列表的到達的行號(如果應(yīng)用)rownumber:到達序列的行號4.進入/離開觸發(fā)器使用場景:進入觸發(fā)器:當(dāng)臨時實體進入實體時,執(zhí)行此函數(shù)。離開觸發(fā)器:當(dāng)臨時實體離開實體時,執(zhí)行此函數(shù)。訪問變量current:當(dāng)前實體item:剛剛進入/離開的臨時實體port:臨時實體進入/離開的端口號3.1觸發(fā)器三、其他內(nèi)容5.裝載/卸載觸發(fā)器使用場景:裝載觸發(fā)器:任務(wù)執(zhí)行器一旦完成裝載(也就是說裝載時間結(jié)束),臨時實體移到任務(wù)執(zhí)行器之前,此觸發(fā)器被觸發(fā)。卸載觸發(fā)器:任務(wù)執(zhí)行器一旦完成卸載(也就是說卸載時間結(jié)束),臨時實體移動到目標(biāo)位置之前,此觸發(fā)器被觸發(fā)。訪問變量:item:將被裝載或者卸載的臨時實體current:當(dāng)前實體6.進入請求觸發(fā)器使用場景:當(dāng)另外一個實體發(fā)送了進入請求的時候,交通控制器就會調(diào)用這個觸發(fā)器。訪問變量:current:當(dāng)前實體traveler:請求進入的實體3.1觸發(fā)器三、其他內(nèi)容3.2標(biāo)簽使用Flexsim建模時,標(biāo)簽是一個重要概念。標(biāo)簽是建模人員用來存放臨時數(shù)據(jù)的。一個標(biāo)簽有兩部分:名稱和標(biāo)簽值。名稱可以任意命名,標(biāo)簽值可以是數(shù)字或文本(包含文字和數(shù)字的字符串)。使用標(biāo)簽需要注意以下幾點:1)建模人員需定義每一個標(biāo)簽的名稱。2)標(biāo)簽可在實體或者臨時實體上定義,如:發(fā)生器、暫存區(qū)或者處理器。3)用戶可以在一個實體上定義多個標(biāo)簽。4)標(biāo)簽可以存儲數(shù)值、字符串,甚至可以存儲一個表格。5)用戶必須通過屬性框?qū)?biāo)簽添加到實體上。6)在臨時實體箱中向臨時實體添加標(biāo)簽時,標(biāo)簽只會應(yīng)用于那個類型的臨時實體。如果你在托盤上添加了一個標(biāo)簽,那么只有創(chuàng)建托盤時,才會出現(xiàn)那個標(biāo)簽。三、其他內(nèi)容1.標(biāo)簽值對于Flowitems,指定的標(biāo)簽值將會成為所有臨時實體的默認(rèn)值,在它們穿過模型的過程中,可以對單個臨時實體的標(biāo)簽值進行修改。對于FlexSim實體的標(biāo)簽,標(biāo)簽值將保持不變,除非實體中有修改標(biāo)簽值的邏輯。標(biāo)簽值本身不會自動重置,除非選中標(biāo)簽選頂卡上的“自動重置標(biāo)簽”按鈕?;蛘?,可以在實體的重置觸發(fā)器中添加用于重置標(biāo)簽值的代碼。重置模型時,兩種方式都可以將標(biāo)簽值返回到它的初始值。2.標(biāo)簽的使用給臨時實體添加標(biāo)簽,首先打開臨時實體箱,選擇發(fā)生器要創(chuàng)建的臨時實體類型,并點擊屬性按鈕。打開標(biāo)簽選項卡,可以添加字符串或數(shù)值標(biāo)簽??梢酝ㄟ^快捷屬性窗口編輯標(biāo)簽或者雙擊打開實體的屬性框,在標(biāo)簽選項卡上設(shè)置。在行表頭列中設(shè)置每個標(biāo)簽的名字,在名字右側(cè)設(shè)置標(biāo)簽值。三、其他內(nèi)容3.標(biāo)簽示例在郵局,客戶來辦理郵寄包裹業(yè)務(wù)或者是復(fù)印業(yè)務(wù)。每位來到郵局辦理復(fù)印業(yè)務(wù)的客戶均需要復(fù)制特定數(shù)量的資料,客戶的服務(wù)時間依賴于需要復(fù)制的數(shù)量。復(fù)印1000份資料的客戶所需的服務(wù)時間比復(fù)印一份資料的客戶長。假設(shè)寄包裹客戶與復(fù)印客戶占據(jù)的比例分別為60%、40%。將寄包裹客戶的類型值設(shè)置為1,復(fù)印客戶的類型值設(shè)置為2,現(xiàn)在針對“復(fù)印”客戶,我們需要添加一個標(biāo)簽,表示他需要復(fù)印的份數(shù)。再次在臨時實體箱中添加標(biāo)簽,方法是:選擇一個臨時實體類型,點擊屬性,打開標(biāo)簽選項卡。添加一個數(shù)值標(biāo)簽,命名為“nrofcopies”(復(fù)印份數(shù))。保持默認(rèn)值0,在發(fā)生器的離開觸發(fā)器中設(shè)置這個標(biāo)簽的值。三、其他內(nèi)容在臨時實體箱中添加了標(biāo)簽之后,我們可在臨時實體離開發(fā)生器時設(shè)置它的標(biāo)簽值。此例中,“復(fù)印”客戶需要復(fù)印的材料數(shù)為1-1000的隨機值。要設(shè)置這樣的標(biāo)簽值,需要將發(fā)生器的離開觸發(fā)器設(shè)置為:setitemtype(item,bernoulli(60,1,2));if(getitemtype(item)==2)setlabelnum(item,"nrofcopies",duniform(1,1000));setitemtype命令按照60/40的比例將臨時實體的類型設(shè)置為1和2。添加一個if語句,意思是:如果當(dāng)前臨時實體的類型為2(它是“復(fù)印”客戶),那么將名nrofcopies標(biāo)簽的值設(shè)置為1-1000的隨機值。setlabelnum用于設(shè)置標(biāo)簽值,它包含3個參數(shù)。第一個參數(shù)是標(biāo)簽的載體(item)。第二個參數(shù)是標(biāo)簽名(“nrofcopies”)。此參數(shù)需要使用引號擴起,因為它是字符串。第三個參數(shù)是設(shè)置的標(biāo)簽值(duniform(1,1000))。duniform返回一個離散均

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論