杜寶瑞,張 杰,屈力剛,李 亮
(1.中航工業(yè)沈陽(yáng)飛機(jī)工業(yè)(集團(tuán))有限公司,沈陽(yáng) 110000;2.沈陽(yáng)航空航天大學(xué),航空制造工藝數(shù)字化國(guó)防重點(diǎn)學(xué)科實(shí)驗(yàn)室,沈陽(yáng) 110136;3.中航工業(yè)中國(guó)空空導(dǎo)彈研究院,洛陽(yáng) 471000)
隨著國(guó)內(nèi)制造業(yè)的快速發(fā)展,為了滿足待檢測(cè)零件的精度和效率要求,航空制造業(yè)正在推行一種基于MBD(model based definition)[1]的數(shù)字化生產(chǎn)模式,逐漸形成以設(shè)計(jì)、制造、檢測(cè)為一體的閉環(huán)作業(yè)系統(tǒng)。在數(shù)字化生產(chǎn)模式的推動(dòng)下,以設(shè)計(jì)部門設(shè)計(jì)的三維MBD模型為信息傳遞的唯一標(biāo)準(zhǔn)載體,向下游的生產(chǎn)部門和檢測(cè)部門同步傳遞,生產(chǎn)部門依據(jù)模型所攜帶的加工信息加工零件,同時(shí)檢測(cè)部門依據(jù)模型所攜帶的待檢測(cè)信息在三坐標(biāo)系統(tǒng)上離線編制零件的檢測(cè)程序[2]。通過(guò)對(duì)三維MBD模型檢測(cè)要素的分類[3]和尺寸標(biāo)注的自動(dòng)規(guī)范化矯正[4,5]以及檢測(cè)程序的仿真推演,提前規(guī)劃并避免在使用三坐標(biāo)測(cè)量機(jī)檢測(cè)待檢測(cè)零件時(shí)可能遇到的干涉、撞針等問(wèn)題[6],當(dāng)零件加工完成后可立即在三坐標(biāo)測(cè)量機(jī)上自動(dòng)執(zhí)行待檢測(cè)零件的檢測(cè)程序任務(wù),完成對(duì)零件的測(cè)量。
航空企業(yè)內(nèi)成批次的零件使用壽命長(zhǎng),更新改動(dòng)小,基于三坐標(biāo)系統(tǒng)編制的測(cè)量程序具有可重復(fù)性、高效性、易改動(dòng)等特點(diǎn)。企業(yè)中的三坐標(biāo)檢測(cè)設(shè)備的數(shù)量在一定時(shí)期內(nèi)是相對(duì)不變的,但是由于對(duì)檢測(cè)設(shè)備資源的分配沒(méi)有合理的規(guī)劃,依然采用依靠人工經(jīng)驗(yàn)選擇的方式,不僅存在隨意性和約束性,而且在如何選配上耗費(fèi)大量的工作時(shí)間,降低了檢測(cè)效率。若零件加工生產(chǎn)完成后不能在交貨期內(nèi)及時(shí)檢測(cè)完成,會(huì)導(dǎo)致不能按時(shí)交貨,經(jīng)濟(jì)效益降低等問(wèn)題。因此若能夠針對(duì)不同的待檢測(cè)零件,通過(guò)合理分配三坐標(biāo)檢測(cè)設(shè)備資源進(jìn)行協(xié)同測(cè)量,最大化釋放現(xiàn)有設(shè)備資源的使用價(jià)值,是對(duì)檢測(cè)設(shè)備資源及檢測(cè)過(guò)程的優(yōu)化管理,是提高企業(yè)的生產(chǎn)效益和核心競(jìng)爭(zhēng)力的關(guān)鍵問(wèn)題之一。
針對(duì)上述航空企業(yè)中存在的問(wèn)題,本文提出了一種檢測(cè)設(shè)備資源分配的優(yōu)化方法,旨在解決數(shù)字化檢測(cè)模式下三坐標(biāo)檢測(cè)設(shè)備得不到合理規(guī)劃利用的問(wèn)題。
在使用三坐標(biāo)系統(tǒng)編制檢測(cè)程序的過(guò)程中,受實(shí)際檢測(cè)條件和性能的約束影響,如零件的精度、不滿足三坐標(biāo)設(shè)備檢測(cè)要求的特征、尺寸標(biāo)注關(guān)聯(lián)特征的矢量方向、夾具夾持零件時(shí)無(wú)法檢測(cè)被夾持面的關(guān)聯(lián)特征等因素,都決定了待檢測(cè)零件其檢測(cè)程序的數(shù)量多少和復(fù)雜程度。因此,同一批次的零件在三坐標(biāo)系統(tǒng)上會(huì)相應(yīng)編制出多個(gè)檢測(cè)程序,才能覆蓋待檢測(cè)零件的所有檢測(cè)信息。
假設(shè)在檢測(cè)資源的配置過(guò)程中滿足以下基本規(guī)則:
1)在某一時(shí)刻,一臺(tái)設(shè)備只能執(zhí)行一個(gè)零件的其中一個(gè)檢測(cè)程序任務(wù);
2)在某一時(shí)刻,一個(gè)零件的其中一個(gè)檢測(cè)程序任務(wù)只能在一臺(tái)設(shè)備上執(zhí)行;
3)檢測(cè)程序任務(wù)在某臺(tái)設(shè)備上開(kāi)始執(zhí)行后,就不能中斷,直到完成檢測(cè);
4)每個(gè)檢測(cè)程序任務(wù)的檢測(cè)時(shí)間固定且都為已知;
5)需要更換其他設(shè)備執(zhí)行其他檢測(cè)程序任務(wù)時(shí),此設(shè)備沒(méi)有在執(zhí)行檢測(cè)程序任務(wù)。
多批次的零件的檢測(cè)程序任務(wù)在檢測(cè)設(shè)備資源上的分配屬于典型的規(guī)劃和優(yōu)化問(wèn)題,可以描述為:若現(xiàn)有多批次共n個(gè)待檢測(cè)零件,每批次的零件根據(jù)檢測(cè)信息的要求編制成li(i?n)個(gè)檢測(cè)程序,則共有個(gè)檢測(cè)程序任務(wù);每個(gè)檢測(cè)程序任務(wù)需要從m臺(tái)檢測(cè)設(shè)備中選擇某一臺(tái)設(shè)備以完成檢測(cè)任務(wù)。不同的分配方式付出不同的代價(jià)。即將檢測(cè)資源配置問(wèn)題轉(zhuǎn)化為尋找待檢測(cè)零件與檢測(cè)設(shè)備資源的合理分配的最優(yōu)解問(wèn)題。
定義檢測(cè)設(shè)備集合為J={j|1,2,…,m},待檢測(cè)零件集合為I={i|1,2,…,n},每個(gè)零件的檢測(cè)程序任務(wù)集合為K={k|1,2,…,l},第i個(gè)待檢測(cè)零件的檢測(cè)程序任務(wù)為eik,交貨期限為T0。檢測(cè)設(shè)備j執(zhí)行檢測(cè)程序任務(wù)eik的時(shí)間為Rikj,則所構(gòu)成的所有檢測(cè)程序任務(wù)時(shí)間矩陣為。由于每臺(tái)檢測(cè)設(shè)備在某一時(shí)刻只能執(zhí)行待檢測(cè)零件的一個(gè)檢測(cè)程序任務(wù),即設(shè)當(dāng)檢測(cè)設(shè)備j執(zhí)行檢測(cè)程序任務(wù)eik時(shí),其占用狀態(tài)用Bikj表示,正在執(zhí)行檢測(cè)任務(wù)表示為Bikj=1,空閑狀態(tài)表示為Bikj=0。給出檢測(cè)程序任務(wù)在檢測(cè)設(shè)備上執(zhí)行所需要的檢測(cè)時(shí)間Rikj和檢測(cè)設(shè)備的占用狀態(tài)BRikj的關(guān)系矩陣如表1所示。
為了使多批次零件能在生產(chǎn)周期內(nèi)完成檢測(cè)任務(wù),按時(shí)交貨,以檢測(cè)時(shí)間最小為優(yōu)化目標(biāo),則檢測(cè)設(shè)備j執(zhí)行其分配到的檢測(cè)程序任務(wù)的檢測(cè)時(shí)間為:
則在m臺(tái)檢測(cè)設(shè)備上執(zhí)行n個(gè)待檢測(cè)零件的全部檢測(cè)任務(wù)的數(shù)學(xué)模型為:
在平時(shí)的課堂教學(xué)開(kāi)始前,先環(huán)視整個(gè)教室,關(guān)注每一位學(xué)生的精神狀態(tài)和課前準(zhǔn)備情況,用眼神告訴學(xué)生:老師很關(guān)注你的學(xué)習(xí)狀況。在課堂教學(xué)中,也要經(jīng)常開(kāi)展自主合作探究的學(xué)習(xí)方式,鼓勵(lì)學(xué)生在小組內(nèi)暢所欲言,達(dá)到生生互學(xué)的效果。這樣的學(xué)習(xí)方式,讓學(xué)生在學(xué)習(xí)伙伴面前展現(xiàn)了自己的存在感,進(jìn)而提升學(xué)習(xí)自信心。在小組匯報(bào)階段,都要鼓勵(lì)學(xué)生聲音響亮且有條理地表達(dá)自己的見(jiàn)解,要求其他學(xué)生能安靜傾聽(tīng)并思考,要求對(duì)匯報(bào)者的匯報(bào)給予眼神的關(guān)注和語(yǔ)言上的評(píng)價(jià)及掌聲鼓勵(lì)。美其名曰:“他說(shuō),你聽(tīng)!”“他說(shuō),你評(píng)!”“他說(shuō),你點(diǎn)贊!”通過(guò)這一系列的實(shí)踐活動(dòng),讓學(xué)生真切感受到學(xué)習(xí)伙伴和教師都在關(guān)注自己。
其中:式(2)表示以總檢測(cè)時(shí)間最小的目標(biāo);式(3)表示一個(gè)零件的其中一個(gè)檢測(cè)程序任務(wù)只能在一臺(tái)設(shè)備上執(zhí)行;式(4)表示一臺(tái)設(shè)備只能執(zhí)行一個(gè)零件的其中一個(gè)檢測(cè)程序任務(wù)。式(5)表示最長(zhǎng)檢測(cè)時(shí)間不能超過(guò)規(guī)定的交貨期限。
表1 執(zhí)行檢測(cè)程序任務(wù)的時(shí)間和檢測(cè)設(shè)備的占用狀態(tài)表
檢測(cè)設(shè)備資源的分配與柔性作業(yè)車間調(diào)度類似,也是一種很復(fù)雜的非確定多項(xiàng)式(Non-deterministic Polynomial)問(wèn)題[7]。目前國(guó)內(nèi)外對(duì)于NP問(wèn)題求解方式的研究常應(yīng)用智能優(yōu)化算法,包括模擬退火、禁忌搜索、神經(jīng)網(wǎng)絡(luò)、蟻群算法、遺傳算法等。其中,通過(guò)遺傳算法來(lái)求解最優(yōu)的檢測(cè)設(shè)備選擇原則,具有較高的全局搜索效率和收斂效果,得出最優(yōu)解與實(shí)際最優(yōu)解的誤差較小[8]。
遺傳算法是一種模擬自然進(jìn)化過(guò)程中優(yōu)勝劣汰的機(jī)理來(lái)搜索最優(yōu)解的方法,其利用編碼技術(shù)對(duì)一定數(shù)目的個(gè)體進(jìn)行編碼,完成初始種群的構(gòu)建。初始種群生成之后,由適應(yīng)度大小淘汰不符合要求的個(gè)體,對(duì)通過(guò)選擇而保留的個(gè)體進(jìn)行交叉和變異的重新組合生成新的種群,不斷的迭代使其進(jìn)化到滿足某一設(shè)定的要求,進(jìn)而得到符合要求的最優(yōu)解。
針對(duì)上述檢測(cè)設(shè)備資源分配的問(wèn)題,由于需要對(duì)檢測(cè)設(shè)備資源和檢測(cè)程序任務(wù)同時(shí)進(jìn)行編碼,因此采用雙層編碼的方法。第一層為每個(gè)待檢測(cè)零件的檢測(cè)程序任務(wù)的編碼層,第二層為檢測(cè)設(shè)備編碼層。這樣就可以給檢測(cè)程序任務(wù)選擇執(zhí)行的檢測(cè)設(shè)備,并將所選擇的檢測(cè)設(shè)備編號(hào)安排在對(duì)應(yīng)的檢測(cè)設(shè)備編碼層。
在執(zhí)行多批次零件的所有檢測(cè)程序任務(wù)期間,可能需要根據(jù)檢測(cè)程序的要求更換工裝夾具,為了減少此類不必要的更換以縮短額外的準(zhǔn)備時(shí)間,將相同類型的程序優(yōu)先排列選擇,避免無(wú)序選擇時(shí)造成的工裝夾具頻繁更換的問(wèn)題。因此檢測(cè)程序編碼層采用基于優(yōu)先權(quán)編碼的方式,即每一個(gè)基因代表一個(gè)優(yōu)先權(quán),表示每個(gè)檢測(cè)程序任務(wù)的執(zhí)行次序,如n個(gè)零件中每個(gè)零件對(duì)應(yīng)有l(wèi)i(i?n)個(gè)檢測(cè)程序,則共有個(gè)檢測(cè)程序,優(yōu)先權(quán)值為從1到,染色體分為n段,每一段代表一個(gè)零件的所有檢測(cè)程序,每段包含li個(gè)基因,代表程序1到的優(yōu)先權(quán)值。
檢測(cè)設(shè)備編碼層采用整數(shù)的編碼方式,由檢測(cè)設(shè)備的編號(hào)組成。根據(jù)檢測(cè)程序編碼層的基因隨機(jī)選擇對(duì)應(yīng)執(zhí)行檢測(cè)程序的檢測(cè)設(shè)備,將檢測(cè)設(shè)備編號(hào)填入檢測(cè)設(shè)備編碼層的對(duì)應(yīng)位置。
假設(shè)現(xiàn)有3臺(tái)檢測(cè)設(shè)備,有4個(gè)待檢測(cè)零件,每個(gè)零件分別包含3、2、4、3個(gè)檢測(cè)程序任務(wù),如表2所示。
為使其滿足約束條件,即檢測(cè)程序任務(wù)需按照合理的次序依次執(zhí)行,首先從全部待檢測(cè)零件的第一道檢測(cè)程序任務(wù){(diào)e11,e21,e31,e41}中隨機(jī)選擇出e31,賦予其優(yōu)先權(quán)值,令其對(duì)應(yīng)的染色體元素為1;然后再?gòu)膡e11,e21,e31,e41}中隨機(jī)選擇出e21,賦予其優(yōu)先權(quán)值,令其對(duì)應(yīng)的染色體元素為2;然后再?gòu)膡e11,e21,e32,e41}中隨機(jī)選擇出e32,賦予其優(yōu)先權(quán)值,令其對(duì)應(yīng)的染色體元素為3;依次類推,直到所有的檢測(cè)程序任務(wù)對(duì)應(yīng)的染色體元素優(yōu)先權(quán)值都被確定,生成父代檢測(cè)程序任務(wù)染色體編碼P11。隨機(jī)生成父代檢測(cè)設(shè)備染色體編碼C11。按照上述方法生成初始種群。從初始種群中隨機(jī)選取一個(gè)初始解染色體編碼P21和C21與父代染色體編碼P11和C11用于后續(xù)的交叉操作。如圖1所示。
圖1 生成初始種群
以總檢測(cè)時(shí)間為要求解的目標(biāo)函數(shù),為了使目標(biāo)函數(shù)取最小值,取遺傳算法的適應(yīng)度函數(shù)為f=-F。
檢測(cè)程序任務(wù)交叉操作時(shí),首先保持各檢測(cè)設(shè)備染色體編碼不變,隨機(jī)選擇1個(gè)待檢測(cè)零件作為交叉零件,交換兩個(gè)染色體中對(duì)應(yīng)的優(yōu)先權(quán)值,如染色體P11和P21進(jìn)行交叉,隨機(jī)選取第一個(gè)待檢測(cè)零件作為交叉零件,交換P11和P21中第一個(gè)零件的檢測(cè)程序任務(wù)編碼,得到新的交叉子代染色體編碼層P12。
檢測(cè)設(shè)備交叉操作時(shí),再保持各檢測(cè)程序任務(wù)染色體編碼不變,對(duì)檢測(cè)設(shè)備染色體編碼進(jìn)行多點(diǎn)交叉。首先隨機(jī)產(chǎn)生一個(gè)與染色體長(zhǎng)度相等的由0、1代碼組成的交叉編碼串(1,0,1,0,1,1,1,0,1,0,0,1),交叉編碼串中的1代表對(duì)檢測(cè)設(shè)備染色體編碼層C11和C21中相同位置的元素進(jìn)行互換,得到新的交叉子代染色體編碼層C12。如圖2所示。
表2 檢測(cè)程序任務(wù)表
圖2 染色體編碼層交叉操作結(jié)果
然后統(tǒng)計(jì)出P12中缺少和重復(fù)的優(yōu)先權(quán)值,并用缺少的優(yōu)先權(quán)值代替重復(fù)的優(yōu)先權(quán)值,最后把所有檢測(cè)程序任務(wù)對(duì)應(yīng)的優(yōu)先權(quán)值按從小到大的順序重新排列,代表執(zhí)行的順序。編碼層P12用缺少的優(yōu)先權(quán)值(4,6)替代重復(fù)的優(yōu)先權(quán)值(1,3),根據(jù)每個(gè)待檢測(cè)零件的優(yōu)先權(quán)值從小到大的順序,用4替換1,6替換3,得到新的子代染色體編碼層P13。如圖3所示。
圖3 檢測(cè)程序任務(wù)編碼層優(yōu)先權(quán)調(diào)整結(jié)果
檢測(cè)程序任務(wù)變異操作時(shí),保持各檢測(cè)設(shè)備染色體編碼不變,隨機(jī)選擇2個(gè)不同待檢測(cè)零件的兩個(gè)基因交換其優(yōu)先權(quán)值,如染色體P13中第一個(gè)零件的第二個(gè)檢測(cè)程序和第三個(gè)零件的第三個(gè)檢測(cè)程序編碼進(jìn)行交換,得到新的變異子代染色體編碼層P14。
檢測(cè)設(shè)備變異操作時(shí),如在C12中隨機(jī)選擇第二個(gè)零件的第二個(gè)檢測(cè)程序編碼,將隨機(jī)其替換為另一臺(tái)檢測(cè)設(shè)備,得到新的變異子代染色體編碼層C13。如圖4所示。
圖4 染色體編碼層變異操作結(jié)果
再按照4)中提到的方法調(diào)整P14層優(yōu)先權(quán)值大小排序,得到新的子代染色體編碼層P15和C13。如圖5所示。
圖5 檢測(cè)程序任務(wù)編碼層優(yōu)先權(quán)調(diào)整結(jié)果
至此一次循環(huán)結(jié)束,重復(fù)上述步驟,根據(jù)設(shè)定的遺傳算法迭代次數(shù)ε停止循環(huán),輸出最終的結(jié)果即為最優(yōu)解。
根據(jù)本文中所提出的檢測(cè)設(shè)備資源分配優(yōu)化方法,為了驗(yàn)證其在實(shí)際生產(chǎn)作業(yè)中是否具有實(shí)用性和高效性,根據(jù)建立的數(shù)學(xué)模型對(duì)其進(jìn)行優(yōu)化求解。選取初始種群規(guī)模為50,迭代次數(shù)為50,檢測(cè)設(shè)備交叉概率和檢測(cè)程序任務(wù)交叉概率都為pc=0.9,檢測(cè)設(shè)備變異概率和檢測(cè)程序任務(wù)變異概率都為pm=0.01。得到上述資源分配的最優(yōu)結(jié)果如表3所示。
由表得知,每臺(tái)檢測(cè)設(shè)備分配到的最優(yōu)檢測(cè)程序任務(wù)集合分別為{j1|e11、e42、e33、e34}、{j2|e31、e21、e22、e13}和{j3|e41、e32、e12、e43},每臺(tái)檢測(cè)設(shè)備工作的總檢測(cè)時(shí)間甘特圖如圖6所示。
表3 最優(yōu)分配結(jié)果表
圖6 本文方法檢測(cè)設(shè)備資源配置圖
圖7 傳統(tǒng)方法檢測(cè)設(shè)備資源配置圖
而按照傳統(tǒng)的檢測(cè)零件的方式,檢測(cè)人員會(huì)根據(jù)個(gè)人的習(xí)慣和經(jīng)驗(yàn)選擇檢測(cè)設(shè)備,傳統(tǒng)的人工方法存在隨意性,不能最大程度釋放檢測(cè)設(shè)備資源的性能。其檢測(cè)時(shí)間甘特圖如圖7所示。
通過(guò)將所有的檢測(cè)程序任務(wù)合理地分配到每一臺(tái)檢測(cè)設(shè)備上,待全部的零件檢測(cè)完成后即為完成檢測(cè)任務(wù),即可交貨。由木桶效應(yīng)可知,每臺(tái)檢測(cè)設(shè)備工作的最長(zhǎng)總檢測(cè)時(shí)間為實(shí)際總檢測(cè)時(shí)間,由圖6得本文方法為29.8min;而傳統(tǒng)人為選擇并分配檢測(cè)設(shè)備的方法其實(shí)際總檢測(cè)時(shí)間由圖7得為41.9min。根據(jù)現(xiàn)場(chǎng)作業(yè)統(tǒng)計(jì),針對(duì)多批次的零件檢測(cè)任務(wù),在檢測(cè)設(shè)備資源相同的情況下,零件的總數(shù)量越多,對(duì)應(yīng)檢測(cè)程序任務(wù)的總數(shù)量就越多,本方法相對(duì)于傳統(tǒng)方式的優(yōu)越性就越明顯,具體表現(xiàn)在需要人為干涉的任務(wù)量少,相對(duì)檢測(cè)時(shí)間比(傳統(tǒng)方式檢測(cè)時(shí)間/本方法檢測(cè)時(shí)間)越來(lái)越低,即檢測(cè)效率得到明顯提高,驗(yàn)證了本文方法的可行性。如表4所示。
表4 本文方法和傳統(tǒng)方法對(duì)比表
本文面向數(shù)字化檢測(cè)生產(chǎn)模式,針對(duì)存在的檢測(cè)設(shè)備資源沒(méi)有提前規(guī)劃分配而是依靠人為經(jīng)驗(yàn)進(jìn)行選擇的不合理問(wèn)題,采用了一種雙層編碼的遺傳算法求解方法對(duì)建立的數(shù)學(xué)模型進(jìn)行求解,根據(jù)實(shí)際生產(chǎn)要求得到其最優(yōu)分配結(jié)果,避免了人為的選擇干涉,提高了檢測(cè)設(shè)備資源的利用率和檢測(cè)多批次零件的效率。最后通過(guò)實(shí)例驗(yàn)證表明了該方法能夠?qū)崿F(xiàn)檢測(cè)設(shè)備資源的合理分配,滿足數(shù)字化檢測(cè)的實(shí)際生產(chǎn)需求,并對(duì)推進(jìn)數(shù)字化檢測(cè)的發(fā)展具有一定的意義。