楊 尚,施乃勇,侯 智
(重慶理工大學 機械工程學院,重慶 400054)
1913年亨利·福特建造了世界上第一條汽車流水組裝線,福特汽車被大批量組裝出來,產(chǎn)量大幅度提升。1995年,Nkasu等[1]提出了一種求解單模型裝配線平衡問題的隨機方法SALB,該方法能夠在規(guī)劃、設(shè)計和調(diào)度工作任務(wù)時,提供有價值的引導,但它僅僅是一種單模型求解方法。在實際生活中,裝配線平衡涉及到生產(chǎn)的很多方面,是一種復雜的多目標規(guī)劃問題,而遺傳算法對于求解多目標、多模型等復雜尋優(yōu)問題有很強的魯棒性。2015年,Lorenzo[2]利用遺傳算法對產(chǎn)線平衡進行尋優(yōu),取得了不錯的成果。隨著仿真技術(shù)的發(fā)展,2017年,Wang等[3]提出了一種基于遺傳算法和系統(tǒng)仿真的組合優(yōu)化方法,為研究裝配線平衡問題提供了新的思路。
隨著混流組裝生產(chǎn)方式的快速發(fā)展,國內(nèi)也進入了大規(guī)模的組裝時代。為了提高組裝效率,企業(yè)開始應(yīng)用優(yōu)化算法及仿真技術(shù)來解決產(chǎn)線平衡問題。2007年,黃克艱[4]針對混流生產(chǎn),建立了一種基于遺傳算法和Matlab的最小化工位閑置和超載時間的混流裝配線調(diào)度模型,取得了顯著成效。同年,趙建輝等[5]通過建模仿真得到生產(chǎn)線不同排產(chǎn)順序的仿真結(jié)果,使得生產(chǎn)過程更加形象可控。遺傳算法能很好解決產(chǎn)線平衡尋優(yōu)問題,但也存在算法計算復雜、求解效率低等的缺點。2016年,張子凱等[6]針對遺傳算法編碼復雜的問題,提出一種基于多級隨機分配編碼的改進遺傳算法,在降低計算復雜度的同時也能準確獲得較優(yōu)解。張洪亮等[7]提出一種基于最小化超載與閑置成本、最小化生產(chǎn)率變化成本的目標規(guī)劃模型,優(yōu)化了產(chǎn)線投產(chǎn)順序,為解決產(chǎn)線平衡優(yōu)化問題提供了新的思路。黃培星[8-9]基于這種模型對工時確定和不確定的U型混流裝配線平衡問題展開研究,為混流生產(chǎn)找到了更細化的優(yōu)化方案。鄭諧等[10]、苗志鴻等[11]、馬雪進等[12]通過分析混流裝配線平衡改善及產(chǎn)品投放次序問題,對混流裝配線平衡的改善作出了探析。
本文將以最小化閑置時間和過載時間為優(yōu)化目標,提出一種結(jié)合矩陣編碼及逆轉(zhuǎn)變異方式的改進遺傳算法,降低編碼計算復雜度,提高最優(yōu)解魯棒性。并結(jié)合Flexsim仿真軟件和改進遺產(chǎn)算法,分析Z企業(yè)發(fā)動機混流裝配線平衡的實際案例,發(fā)現(xiàn)該優(yōu)化方法有利于解決在制品堆積、工位超載、工位空閑等問題,也可以幫助企業(yè)解決訂單無法按時交付的問題。
科學的混流生產(chǎn)就是在裝配線上,多種產(chǎn)品按照一定的節(jié)奏、比例來進行生產(chǎn)。要達到裝配線平衡,首先要制定合理的排產(chǎn)序列,品種、產(chǎn)量、工時、設(shè)備負荷等都是確定排產(chǎn)序列的重要指標。企業(yè)普遍存在混流產(chǎn)線不平衡的現(xiàn)象,主要包括3個原因:
1)在制品積壓嚴重。這是由于部分后續(xù)工位加工時間過長,導致半成品在暫存區(qū)大量堆積。
2)設(shè)備阻塞。半成品堆積勢必會造成后續(xù)工序的設(shè)備阻塞,影響產(chǎn)線的正常運轉(zhuǎn)。
3)設(shè)備空閑。設(shè)備阻塞及設(shè)備空閑都會影響產(chǎn)線正常生產(chǎn),降低產(chǎn)線效率,進而影響產(chǎn)品產(chǎn)量。
要解決上述問題,需要合理調(diào)整產(chǎn)品投產(chǎn)順序,本文將以降低設(shè)備空閑率、平衡產(chǎn)線及提高產(chǎn)量為目標建立混流組裝線優(yōu)化模型。
假設(shè)混流組裝線上產(chǎn)品的型號數(shù)為M,在1個投產(chǎn)周期里,不同型號產(chǎn)品的需求分別為r1,r2,r3,…,rM,總需求量為設(shè)H(j,i)為R個產(chǎn)品的某一投產(chǎn)序列各工位(j=1,2…N)組裝不同產(chǎn)品(i=1,2,…,N)所需的時間(j為組裝線上的某個工位,Sj1=0為第1個產(chǎn)品在該工位上裝),H是一個各個工位操作時間矩陣。
由矩陣可知,產(chǎn)品在該工位上結(jié)束時間為Eji=Sji+Tji。操作工人在第i個產(chǎn)品結(jié)束組裝之后,將立刻返回到i+1個產(chǎn)品的組裝的起點。整個組裝序列中第i+1個產(chǎn)品加工起始點將會存在2種情況:
1)當一個工位的操作工人完成組裝,這時該工位等待上一個工位的下一個產(chǎn)品的完成,即Eji小于等于Tj,i+1,這時造成該工位閑置等待,因此下一個型號的產(chǎn)品在該工位操作的起始時間為S(j,i+1)=0。
2)工人未能按時在節(jié)拍內(nèi)完成組裝,即Eji大于或者等于K時,操作工人此時無法做其他活動,需繼續(xù)完成該件產(chǎn)品的組裝,由此可以看出下一個產(chǎn)品的組裝起點為Eji-K(K為節(jié)拍時間)。
綜上所述,S(j,i+1)=max{0,Eji-K}在第1種情況下,混流組裝線投產(chǎn)序列中第i個產(chǎn)品在第j個工位閑置時間為:Idleji=max{0,K-Eji}。在第2種情況下,投產(chǎn)序列中第i個產(chǎn)品在第j個工位超載時間為:Overtji=max{0,Sji+Tji-K}。
本文以最小化工位空閑時間與超載時間為目標,優(yōu)化產(chǎn)品投產(chǎn)順序,因此投產(chǎn)序的最優(yōu)目標函數(shù)為:
Z公司發(fā)動機組裝線主要組裝A、B、C、D 4種型號的發(fā)動機,每種型號包括8個組裝步驟,分別是安裝燃油供給機構(gòu)、裝點火系統(tǒng)、裝排氣系統(tǒng)、裝進氣系統(tǒng)、裝調(diào)速機構(gòu)、裝飛輪風扇、裝機油傳感器、裝曲輪連桿機構(gòu)。發(fā)動機組裝線上采用機器加工+人工輔助的組裝模式,各工位設(shè)有暫存區(qū),后道工序嚴格受前一道工序加工時間的約束,現(xiàn)有組裝線整體布局為U型,如圖1所示。
圖1 組裝線整體布局示意圖
該企業(yè)實行訂單式組裝,將產(chǎn)品月需求量平均分配到每天的加工任務(wù)之中。經(jīng)過訂單數(shù)據(jù)采集可以得到每月平均需求量、產(chǎn)品需求比重以及日需要量,A、B、C、D 4種發(fā)動機的日需要產(chǎn)量分別為55、100、155、100,日需要總產(chǎn)量為410臺,投產(chǎn)比例為1∶2∶3∶2。如圖2所示,組裝線以ABBCCCDD的投產(chǎn)方式進行投產(chǎn),Sji是第j個工位組裝第i個產(chǎn)品的起始時間,Eji為第j個工位第i個產(chǎn)品組裝結(jié)束時間。
圖2 組裝線組裝情況示意圖
工廠實行8 h上班制,即每天的工作時間為28 800 s,混流組裝線的平均節(jié)拍K=日工作時間/日需要總產(chǎn)量=28 800 s/420臺=69 s,即在仿真模型中,2臺發(fā)動機投產(chǎn)的時間間隔為69 s。使用秒表對工廠組裝線上各工位測時,并利用Minitab進行數(shù)據(jù)擬合[13],得到如表1所示的各工位標準時間,結(jié)合表1建立如圖3所示的混流裝配線的仿真模型。
表1 工位標準時間 s
圖3 Flexsim仿真示意圖
利用Flexsim軟件建立仿真模型,得到了裝配線生產(chǎn)的仿真結(jié)果,如表2、表3所示。分析仿真結(jié)果可以發(fā)現(xiàn)以下問題:① 暫存區(qū)2制品積壓嚴重[14],這是由于安裝燃油供給機構(gòu)耗時過長,導致半成品在暫存區(qū)大量堆積。②由表2可知,日產(chǎn)量仿真結(jié)果是368臺,而日需求產(chǎn)量是410臺,無法滿足訂單要求。從各工位的空閑率可以看出,安裝進氣系統(tǒng)工位空閑率高達38.90%,且其他工位空閑率也偏高,組裝線總空閑時間為46 944.11 s,總體平衡率較差。③ 由表3可知,安裝燃油供給機構(gòu)、點火系統(tǒng)時,有較長的阻塞時間,分別為146、181 s,占阻塞總時長的90.15%。針對以上問題,下文將利用遺傳算法對該混流線的投產(chǎn)順序進行尋優(yōu)。
表2 仿真數(shù)據(jù)
表3 最小循環(huán)周期仿真結(jié)果
結(jié)合矩陣H,采用N×R的矩陣A來進行矩陣實數(shù)編碼,區(qū)別于一般遺傳算法常用的二進制編碼方法,矩陣編碼可有效解決算法運算過程中編碼過長或編碼、解碼復雜的問題。在矩陣A中,每一行代表一個加工工位,每一列代表一個加工產(chǎn)品,矩陣中的生產(chǎn)單元代表在該投產(chǎn)序列中,第i(i=1,2,…,R)個產(chǎn)品在第j(j=1,2,…,R)個組裝工位生產(chǎn)。
初始種群按行產(chǎn)生,R個產(chǎn)品(包含M個型號的產(chǎn)品)按照比例進行投產(chǎn),每一個產(chǎn)品從最后一個工位隨機產(chǎn)生加工時間,接著進行倒數(shù)第二道工序,不進行該道工序則不進入該工位,加工時間分配計入0,依次完成時間分配。初始種群產(chǎn)生的目標值記為最優(yōu)目標值,按照上述步驟產(chǎn)生新的個體,比較不同種群的目標值可找到可行解。
交叉操作使用順序交叉,變異操作選擇逆轉(zhuǎn)變異。
在該數(shù)學模型中,各工位空閑時間和阻塞時間之和為t,則適應(yīng)度函數(shù)為:
基于適應(yīng)度值,采用輪盤賭的方式為交叉、變異操作選擇候選的染色體,適應(yīng)度值越大,相應(yīng)的被選擇的概率就越大。假設(shè)種群大小為N,f(xi)為個體適應(yīng)度值,則個體的選擇概率公式為:
模型中采用Z企業(yè)發(fā)動機混合流水線的生產(chǎn)數(shù)據(jù),算法的運行環(huán)境為Win 10操作系統(tǒng)下的Matlab 2015平臺,相關(guān)參數(shù)設(shè)置如表4所示。
表4 參數(shù)設(shè)置
經(jīng)過Matlab運行迭代50次后,適應(yīng)度函數(shù)值隨迭代次數(shù)的變化如圖4所示,進化至35代時,算法漸漸收斂于最優(yōu)解。輸出的最優(yōu)解個體為32 413 324,則解碼得到的組裝線最佳投產(chǎn)序列為CBDACCBD,該種投產(chǎn)方式下最小循環(huán)周期內(nèi)各工位超載時間、空閑時間之和為2 650.6 s。
圖4 適應(yīng)度函數(shù)值變化曲線
為了驗證該改進遺傳算法的性能,在硬件環(huán)境為Matlab 2015,IntelRRCore(TM)i5-5200U CPU@2.20Hz,Windows 10下使用benchmark函數(shù)將改進遺傳算法與文獻[15]和文獻[16]算法進行對比。
設(shè)定2種算法種群規(guī)模都為8,迭代次數(shù)為200次,采用Sphere、Rosenbrock和Griewank函數(shù)對該遺傳算法進行性能測試,函數(shù)表達式如下:
對每個函數(shù),分別在不同維數(shù)條件下進行實驗,實驗結(jié)果見表5。對于Sphere和Rosenbrock函數(shù),從實驗結(jié)果可以看出改進遺傳算法的最優(yōu)解平均值更接近最優(yōu)解,精度更高,其算法平均性能也比文獻[15]、文獻[16]算法更加穩(wěn)定。對于Griwank函數(shù),無論維數(shù)高低,改進遺傳算法的平均性能也都優(yōu)于其他算法。該算法通過矩陣編碼和提高逆轉(zhuǎn)變異概率可提高算法的局部搜索能力和求解精度,在求解后期,可加速最優(yōu)解收斂且保持解的多樣性和穩(wěn)定性。
表5 算法測試數(shù)據(jù)
優(yōu)化投產(chǎn)序列后,對比改善前后圖2與圖5的Flexsim仿真圖,可以看到暫存區(qū)在制品堆積明顯減少。對比表2與表6的暫存區(qū)在制品堆積數(shù),改善前為89,改善后為42,減少了47件,在制品堆積率減少了53%。在表2與表6中,對比成品存放數(shù),改善前的日產(chǎn)量為368件,改善后為421件,該企業(yè)單日訂單需求為410件,日產(chǎn)量提高了53件。各工位空閑率也明顯降低,安裝燃油供給機構(gòu)的工位空閑率由30.10%下降到19.69%,降低了10.41%。安裝飛輪風扇的工位空閑率由15.36%下降到2.81%,降低了12.55%。安裝機油傳感器的工位空閑率由20.49%下降到9.88%,降低了10.61%。對比表3與表7,優(yōu)化投產(chǎn)順序后,各工位空閑時間、工位阻塞時間之和由原來的2 801 s減少到2 650.31 s,減少了150.69 s。
圖5 Flexsim優(yōu)化仿真示意圖
混流裝配線整體設(shè)備空閑率降低5.4%,產(chǎn)線空閑率由20.39%下降到11.88%,降低了8.51%,訂單交付率提高了12.6%。解決了裝配線的產(chǎn)線不平衡問題,使得產(chǎn)品投產(chǎn)轉(zhuǎn)換更加合理,工序銜接更加流暢。
表6 改善后仿真結(jié)果輸出數(shù)據(jù)
表7 改善后最小循環(huán)周期工位輸出數(shù)據(jù)
運用Flexsim軟件建立三維可視化仿真模型,以Z企業(yè)發(fā)動機組裝線為例進行仿真優(yōu)化,使用矩陣實數(shù)編碼改進遺傳算法,解決了編碼過長及編碼、解碼復雜的問題,采用逆轉(zhuǎn)變異算子使解碼結(jié)果簡潔明了,更接近最優(yōu)解,提高了尋優(yōu)效率,有效地解決了企業(yè)的產(chǎn)線不平衡問題,達到了平衡工位負荷、提高組裝線柔性及組裝效率、降低組裝成本的目的。