徐海龍 劉樹(shù)樹(shù) 牛學(xué)果 司 睿 李夢(mèng)璇
(1.蘭州交通大學(xué)交通運(yùn)輸學(xué)院,甘肅 蘭州 730070;2.蘭州交通大學(xué)土木工程學(xué)院,甘肅 蘭州 730070)
隨著自動(dòng)化技術(shù)和制造業(yè)的進(jìn)步和發(fā)展,智能化、自動(dòng)化、柔性化[1]為三個(gè)主要發(fā)展趨勢(shì)。柔性作業(yè)車(chē)間調(diào)度以其以需定產(chǎn)和定制模式向顧客提供優(yōu)質(zhì)服務(wù),車(chē)間產(chǎn)品加工的效率逐年提升,能更好地完成車(chē)間的生產(chǎn)計(jì)劃。但是,傳統(tǒng)的柔性車(chē)間調(diào)度策略往往忽略了加工產(chǎn)品的個(gè)體化差異以及單個(gè)產(chǎn)品每道工序之間的銜接問(wèn)題,使得智能化機(jī)器設(shè)備沒(méi)有得到充分利用。如果從單個(gè)產(chǎn)品工序之間的相互等待時(shí)間最小為切入點(diǎn),可使調(diào)度策略得到優(yōu)化,增加可行性。
目前有很多文獻(xiàn)著述了關(guān)于柔性車(chē)間的調(diào)度問(wèn)題,大部分趨于加工時(shí)間調(diào)整和多目標(biāo)優(yōu)化的動(dòng)態(tài)調(diào)度[2-4],以近似求得此NP難問(wèn)題的最優(yōu)解。然而,對(duì)于加工產(chǎn)品的工序銜接和時(shí)間順序調(diào)整方面的文獻(xiàn)相對(duì)不多。文獻(xiàn)[5]針對(duì)模糊柔性車(chē)間調(diào)度問(wèn)題,提出一種混合超啟發(fā)式遺傳算法進(jìn)行求解。文獻(xiàn)[6]針對(duì)虛擬制造網(wǎng)絡(luò)中的車(chē)間調(diào)度問(wèn)題,提出了一個(gè)非合作博弈調(diào)度優(yōu)化模型。文獻(xiàn)[7]為了實(shí)現(xiàn)機(jī)械加工車(chē)間的節(jié)能優(yōu)化運(yùn)行,建立了節(jié)能柔性作業(yè)車(chē)間調(diào)度模型。
本文主要基于圖論知識(shí)進(jìn)行建模,研究了CNC智能加工系統(tǒng),分析論證了基于圖游走和最小等待時(shí)間的調(diào)度模型和策略,同時(shí),利用JAVA語(yǔ)言進(jìn)行了多線程并行編程,模擬RGV的運(yùn)行以及各個(gè)CNC工作臺(tái)的狀態(tài),驗(yàn)證調(diào)度策略的可行性和相對(duì)高效性,評(píng)價(jià)系統(tǒng)的作業(yè)效率。
智能車(chē)間加工系統(tǒng)[9]主要是由數(shù)臺(tái)計(jì)算機(jī)數(shù)控機(jī)床(Computer Number Controller,CNC)、1臺(tái)固定軌道自動(dòng)引導(dǎo)車(chē)(Rail Guide Vehicle,RGV)、1條RGV固定軌道、2條分上下料的傳送帶等設(shè)備組成。RGV是一種智能小車(chē),可根據(jù)特定指令自動(dòng)運(yùn)行。并利用自帶的機(jī)械手臂、手爪等裝置,完成產(chǎn)品的上下料、清洗等作業(yè)。對(duì)于該系統(tǒng),需要設(shè)計(jì)合理實(shí)用的調(diào)度策略,提高平臺(tái)工作效率以增加產(chǎn)出率。本文針對(duì)一道工序、兩道工序加工和CNC故障情況進(jìn)行研究,建立調(diào)度數(shù)學(xué)模型并設(shè)計(jì)求解算法,并用JAVA進(jìn)行仿真,驗(yàn)證了其可行性。
將8臺(tái)CNC假設(shè)為8個(gè)節(jié)點(diǎn),由此構(gòu)成一個(gè)圖,邊表示RGV在兩節(jié)點(diǎn)間可移動(dòng)。在RGV小車(chē)在每進(jìn)行一次作業(yè),其他的CNC工作臺(tái)發(fā)出請(qǐng)求后,經(jīng)過(guò)篩選和權(quán)值的判斷,做出相應(yīng)的命令執(zhí)行。在車(chē)間調(diào)度問(wèn)題中,它是一個(gè)多項(xiàng)等式和不等式約束下的組合優(yōu)化問(wèn)題。從計(jì)算時(shí)間的復(fù)雜度看,它可以看作是NP難問(wèn)題,隨著調(diào)度規(guī)模數(shù)的增加,問(wèn)題的可行解的數(shù)量呈指數(shù)級(jí)增加。
目標(biāo)是在一定時(shí)間內(nèi)要獲得最大的加工產(chǎn)品數(shù),就要使得總的等待時(shí)間越少。總共生產(chǎn)的總共件數(shù)為:
每臺(tái)CNC生產(chǎn)的臺(tái)數(shù)由(2)式?jīng)Q定:
由(1)式:
目標(biāo)追求最大化N pro,等價(jià)最小化,所以最小化目標(biāo)函數(shù)為:
式(1)~(4)中:N pro—加工總產(chǎn)品數(shù)(個(gè));k—CNC臺(tái)數(shù)(臺(tái));ni—第i臺(tái)CNC加工產(chǎn)品數(shù)(個(gè));T—一個(gè)工作周期(s);—第i臺(tái)CNC等待時(shí)間(s);—第i臺(tái)CNC工作時(shí)間(s);Twait—總的等待時(shí)間(s)。當(dāng)該系統(tǒng)加工兩道工序時(shí),只需更改目標(biāo)函數(shù)中的相應(yīng)等待時(shí)間。如式(5):
當(dāng)該系統(tǒng)加工工序發(fā)生故障時(shí),如式(6):
針對(duì)單工序產(chǎn)品,圖鄰接矩陣的權(quán)值為節(jié)點(diǎn)間小車(chē)移動(dòng)和上下料時(shí)間之和。當(dāng)有1臺(tái)CNC發(fā)出請(qǐng)求時(shí),RGV對(duì)該CNC進(jìn)行相應(yīng)作業(yè);當(dāng)有多個(gè)節(jié)點(diǎn)發(fā)出請(qǐng)求時(shí),按照總體最小等待時(shí)間的策略選擇RGV移動(dòng)的位置。RGV在接收到兩道工序混合發(fā)出的請(qǐng)求之后,按照考慮了不同刀具平臺(tái)的等待時(shí)間,根據(jù)緊后工序依賴(lài)于緊前工序的完成的均衡原則和權(quán)值進(jìn)行判斷,從而選擇最優(yōu)的路徑。
對(duì)于系統(tǒng)故障的模擬和處理時(shí)間,本文均采用了生成隨機(jī)數(shù)的方法。規(guī)定當(dāng)隨機(jī)產(chǎn)生的數(shù)小于0.01時(shí),CNC便會(huì)發(fā)生故障。經(jīng)人工恢復(fù)(10~20 min)后重新進(jìn)入選擇隊(duì)列之中。以單工序?yàn)槔鐖D1所示,多臺(tái)CNC發(fā)出請(qǐng)求,選擇邊權(quán)最小的路徑,移動(dòng)至相應(yīng)CNC。算法設(shè)計(jì)如下:
圖1 三個(gè)CNC發(fā)出請(qǐng)求狀態(tài)
(1)相關(guān)參數(shù)初始化,請(qǐng)求隊(duì)列R={1,2,…,8},RGV在第一臺(tái)CNC的位置Gp=1,加工產(chǎn)品數(shù)為i=0,相關(guān)時(shí)間記錄表Tb,Artnum={0,0,0,0,0,0,0,0}//每臺(tái)CNC計(jì)數(shù)。(2)獲取當(dāng)前系統(tǒng)的時(shí)間。為每個(gè)CNC上料,new workThread(k,art[k]).start;// 啟動(dòng)工作并行線程。并記錄相關(guān)CNC平臺(tái)上下料的時(shí)間。(3)RGV.scan(R);//掃描請(qǐng)求隊(duì)列,若為空,則處于阻塞狀態(tài)[10],停止執(zhí)行。否則,執(zhí)行4)。(4)若R中只有一個(gè)元素為n,Ob=n;//找到下次工作CNC相應(yīng)的編號(hào)。否則,從請(qǐng)求隊(duì)列R={1,2,…,8}中找到RGV智能車(chē)移動(dòng)時(shí)間和對(duì)應(yīng)CNC上下料時(shí)間最短的元素j。Ob=j;//找到權(quán)值最小元素。(5)RGV.move(ob,tm);//RGV智能車(chē)用時(shí)tm移動(dòng)到ob對(duì)應(yīng)的CNC。RGV位置Gp=ob。(6)RGV.get(tq,Tb,art[ob],td));//RGV智 能車(chē)以tq的時(shí)間給ob對(duì)應(yīng)的CNC上料,并在Tb表中記錄上料開(kāi)始時(shí)間。(7)RGV.put(tp,ob,Tb,tpc,i);//RGV智能車(chē)以tp的時(shí)間給ob對(duì)應(yīng)的CNC下料,并在Tb表中記錄下料開(kāi)始時(shí)間。i=i+1;new workThread(k,art[k]).start;Artnum[ob]=i;//此時(shí),i發(fā)生變化,多線程并行。(8)Tc=Sys.getCurrentTime();//獲取系統(tǒng)當(dāng)前時(shí)間。若Tc-Tbegin<T,T為時(shí)間周期(取為8小時(shí))轉(zhuǎn)(3)。否則,轉(zhuǎn)(9)。(9)結(jié)束。
在評(píng)價(jià)系統(tǒng)的作業(yè)效率時(shí),本文采用的是產(chǎn)品模擬加工數(shù)量所用的時(shí)間與一個(gè)加工時(shí)間周期的比值。其評(píng)價(jià)模型表達(dá)式如下:
式中:Tud——上下料時(shí)間(s);k——CNC數(shù)量(臺(tái))。
對(duì)于模擬加工產(chǎn)品數(shù)量,本文取3~5次模擬結(jié)果的平均值。做出該調(diào)度策略下不同參數(shù)的系統(tǒng)作業(yè)效率分析。經(jīng)過(guò)JAVA仿真模擬運(yùn)算結(jié)果如表1所示。
表1 不同參數(shù)系統(tǒng)作業(yè)效率統(tǒng)計(jì)表 /%
基于圖游走和最小等待時(shí)間建立模型,抽象8臺(tái)CNC為圖的節(jié)點(diǎn),以RGV游走距離和上下料時(shí)間為圖邊權(quán)值,將NP難的調(diào)度問(wèn)題,通過(guò)模型和求解策略,各階段局部?jī)?yōu)化,最終達(dá)到整體近似最優(yōu)。以圖論的相關(guān)知識(shí)建立模型,比較切合實(shí)際CNC的工作狀態(tài)。用JAVA多線程編程進(jìn)行并行工作模擬,減少并驗(yàn)證了實(shí)際的調(diào)度時(shí)間。多次進(jìn)行模擬,消除了故障的隨機(jī)性。本文中大多數(shù)模型都是自行推導(dǎo)建立的,可以推廣到柔性車(chē)間的調(diào)度、小工廠的車(chē)間生產(chǎn)、智能化的選擇需求等問(wèn)題。