王黎軒 姚雁春 楊江紅
摘要:本文從動(dòng)態(tài)調(diào)度[1]的角度出發(fā),針對(duì)三種具體情況,判斷RGV和CNC的工作狀態(tài),通過(guò)枚舉法[2]列出各種情況,對(duì)RGV進(jìn)行調(diào)度,并求出成料數(shù)量和工作效率。針對(duì)一道工序的物料加工,建立一個(gè)CNC的狀態(tài)矩陣,判斷CNC工作狀態(tài),并求解CNC狀態(tài)總和,如果不處于工作狀態(tài),則說(shuō)明其需要進(jìn)行上下料操作,由此可以確定RGV上下料消耗的時(shí)間以及CNC消耗的時(shí)間,然后將數(shù)據(jù)代入所寫(xiě)代碼求得產(chǎn)出的成品數(shù)量、CNC的工作效率。
關(guān)鍵詞:智能RGV動(dòng)態(tài)調(diào)度、0-1規(guī)劃、枚舉法、搜索算法、事件驅(qū)動(dòng)策
引言
隨著信息技術(shù)、控制工程和智能化的發(fā)展,智能加工系統(tǒng)極大地提高了工業(yè)制造、機(jī)械加工和物流運(yùn)輸?shù)缺姸囝I(lǐng)域的效率。為了最大程度地節(jié)省加工時(shí)間、降低生產(chǎn)成本,生產(chǎn)最大數(shù)量的成料,進(jìn)行物料加工調(diào)度成為了迫切的需要解決的問(wèn)題。作為一種無(wú)人駕駛、能在固定軌道上自由運(yùn)行的智能車,RGV可以根據(jù)指令完成一系列相關(guān)作業(yè)任務(wù),而我們將針對(duì)RGV三種不同的工作情況,分別對(duì)其整個(gè)加工過(guò)程進(jìn)行動(dòng)態(tài)調(diào)度,縮短RGV和CNC的等待時(shí)長(zhǎng),提升生產(chǎn)效率,以滿足現(xiàn)實(shí)中企業(yè)的需求。
1、一道工序的情況
針對(duì)一道工序的物料加工,我們要討論如何安排上下料順序來(lái)獲得最高的作業(yè)效率,首先確定最優(yōu)的RGV上料順序并求出最短時(shí)間,由于RGV右側(cè)的CNC上下料時(shí)間都小于RGV左側(cè)的CNC的上下料時(shí)間,所以當(dāng)RGV到達(dá)某一位置時(shí),先對(duì)其右側(cè)的CNC上料,隨后立即對(duì)其左側(cè)的CNC上料,完成后前往下一個(gè)位置。其次求解第一道工序的情況,通過(guò)0-1變量設(shè)定RGV和CNC的工作狀態(tài),建立一個(gè)CNC的狀態(tài)矩陣,判斷CNC工作狀態(tài),并求解CNC狀態(tài)總和,如果不處于工作狀態(tài),則說(shuō)明其需要進(jìn)行上下料操作,由此可以確定RGV上下料消耗的時(shí)間以及CNC消耗的時(shí)間,最后根據(jù)數(shù)據(jù)進(jìn)行程序運(yùn)算即可得到所需。
2、模型建立與求解
2.1初始上料順序的確定
由于RGV的移動(dòng)時(shí)間遠(yuǎn)遠(yuǎn)小于CNC的加工時(shí)間,故可以先確定RGV對(duì)CNC第一次上料的順序,來(lái)形成CNC加工的時(shí)間間隔。
為確定一個(gè)RGV對(duì)CNC第一次上料的順序,讓RGV在當(dāng)前位置先對(duì)其右側(cè)的CNC進(jìn)行上料,因?yàn)樗杏覀?cè)的CNC的上下料的時(shí)間p1是小于所有左側(cè)的CNC上下料的時(shí)間p2的。所以當(dāng)RGV到達(dá)某一位置,先對(duì)其右側(cè)的CNC上料,隨后立即對(duì)其左側(cè)的CNC上料,完成后前往下一個(gè)位置。將所有CNC的上料工作完成后,讓RGV再回到初始位置,等待CNC加工完成后按照第一次上料的順序進(jìn)行上下料和清洗工作即可。這樣就確定出來(lái)一個(gè)8臺(tái)CNC的工作順序,將這個(gè)工作順序稱為“一次工作循環(huán)”。
設(shè)RGV移動(dòng)1個(gè)單位消耗的時(shí)間為t1,移動(dòng)2個(gè)單位消耗的時(shí)間為t2,移動(dòng)3個(gè)單位消耗的時(shí)間為t3,觀察所有數(shù)據(jù),可以得出:
Δt=t2-t1=t3-t2=13
其為一個(gè)定值,那么就可以證明一個(gè)結(jié)論:RGV執(zhí)行一遍工作循環(huán)的最短移動(dòng)時(shí)間為4t1+2Δt。可以使用計(jì)算機(jī)利用搜索算法[5]來(lái)求解這一結(jié)論,使用搜索確定RGV移動(dòng)的順序,并且根據(jù)給定的順序來(lái)計(jì)算RGV消耗的時(shí)間,再與結(jié)論時(shí)間作比較,可以得出相同的結(jié)果。
兩個(gè)關(guān)鍵步驟為:
1. 移動(dòng)步驟:若當(dāng)前RGV處于空閑狀態(tài)并且其左右兩側(cè)CNC都在處于加工狀態(tài),一旦有其他CNC處于空閑狀態(tài)或發(fā)出上下料請(qǐng)求,RGV就移動(dòng)到其位置為其上下料和熟料清洗;
2. 上下料步驟:若當(dāng)前RGV的左側(cè)CNC或右側(cè)CNC處于空閑或發(fā)出上下料請(qǐng)求,RGV應(yīng)先對(duì)左側(cè)CNC進(jìn)行操作再對(duì)右側(cè)CNC進(jìn)行操作。
具體流程如下:
建立一個(gè)RGV的狀態(tài)序列RGVstatus,建立一個(gè)CNC的狀態(tài)矩陣CNCstatus,RGV的狀態(tài)序列記錄其每秒的狀態(tài),CNC的狀態(tài)矩陣儲(chǔ)存每臺(tái)CNC的每秒的狀態(tài);一秒一秒地進(jìn)行枚舉,對(duì)于當(dāng)前時(shí)間times,如果RGVstatus [times]=0,說(shuō)明當(dāng)前RGV處于空閑狀態(tài);
隨即判斷其左右兩側(cè)CNC的狀態(tài),這里記錄RGV的當(dāng)前位置為RGVPosition,具體數(shù)值為1到4,含義與RGV工作流程的確定中的相同;
若CNCsum<8,則RGV即可前往下一位置,定義RGVPath為當(dāng)前給定的移動(dòng)序列,定義RGVPathindex為當(dāng)前RGVPosition對(duì)應(yīng)在RGVPath中的位置指針,每次移動(dòng)時(shí)RGVPathindex都往后指向一次,因?yàn)镽GV最后一次移動(dòng)需要回到初始位置,這里是用取模操作讓RGVPathindex自動(dòng)指到初始位置,這樣就可以到RGV需要前往的下一個(gè)位置RGVnextPosition=RGVpath [RGVPathindex ],計(jì)算此次RGV移動(dòng)消耗的時(shí)間,即t|RGV_Position-RGV_nextPosition | ,將RGV狀態(tài)序列中后續(xù)狀態(tài)就行更新,并且記錄RGV的移動(dòng)次數(shù)RGVmoves加一;
若RGV不滿足移動(dòng)的條件,要么就是RGV處于工作狀態(tài),即RGVstatus [times]=1,要么就是其左右兩側(cè)CNC中至少有一臺(tái)處于空閑狀態(tài)或發(fā)出上下料請(qǐng)求。
因?yàn)镽GV左側(cè)的CNC上下料時(shí)間p1都小于RGV右側(cè)的CNC的上下料時(shí)間p2,故先檢查RGV右側(cè)的CNC是否處于工作狀態(tài),即檢查CNCstatus [RGVPosition*2-1][ times]是否為1,若為0,則說(shuō)明其需要進(jìn)行上下料操作,則RGV上下料消耗的時(shí)間為WastTimeRGV=p1,但特殊的,如果RGVmoves>0,則說(shuō)明所有CNC已經(jīng)完成了一遍上料過(guò)程,當(dāng)前RGV需要對(duì)CNC上的熟料進(jìn)行清洗,此時(shí)WastTimeRGV=p1+e,e為RGV清洗物料的時(shí)間,而對(duì)于CNC來(lái)說(shuō),其需要等待上下料和加工的時(shí)間,才能再次達(dá)到上下料請(qǐng)求的狀態(tài),故CNC消耗的時(shí)間為WastTimeCNC=p1+c,其中c為CNC加工一道工序時(shí)所消耗的時(shí)間,根據(jù)RGV和CNC消耗的時(shí)間分別更新其狀態(tài)序列和狀態(tài)矩陣;
再次簡(jiǎn)化問(wèn)題,忽略最后RGV需要返回初始位置,運(yùn)用C++進(jìn)行求解一道工序8小時(shí)工作的情況,源代碼見(jiàn)附錄二,求得結(jié)果:
結(jié)語(yǔ)
RGV不需要等到CNC處于空閑狀態(tài)或發(fā)出上下料請(qǐng)求再行動(dòng),而是完成當(dāng)前工作后立刻前往下一位置等待CNC完成,可以設(shè)定一個(gè)指標(biāo)RGVhavemoved來(lái)判斷RGV是否是移動(dòng)到下一個(gè)位置進(jìn)行等待。
參考文獻(xiàn)
[1]韓中庚,梅正陽(yáng).智能RGV的動(dòng)態(tài)調(diào)度策略問(wèn)題的數(shù)學(xué)模型[J].數(shù)學(xué)建模及其應(yīng)用,2019,8(01):53-65+83.
[2]高亞靜,周明,李庚銀,李睿,肖利民.基于馬爾可夫鏈和故障枚舉法的可用輸電能力計(jì)算[J].中國(guó)電機(jī)工程學(xué)報(bào),2006(19):41-46.
[3]鄧俊,韋化,黎靜華,白曉清.一種含四類0-1變量的機(jī)組組合混合整數(shù)線性規(guī)劃模型[J].中國(guó)電機(jī)工程學(xué)報(bào),2015,35(11):2770-2778.
[4]王寵兒. 事件驅(qū)動(dòng)策略的研究[D].山東大學(xué),2017.