劉 飛,魏 娜,呂萬林,游有鵬
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
鈑金折彎是一種典型的金屬板料冷加工工藝,廣泛應(yīng)用于家電、汽車、造船、航空等領(lǐng)域。鈑金折彎加工通常由計算機(jī)數(shù)字控制(Computer Numerical Control,CNC)折彎機(jī)完成。加工前,需要由操作員選擇適合的模具來確定折彎加工順序,避免出現(xiàn)工件與模具碰撞干涉等問題。這種人工規(guī)劃方法對操作員的工藝經(jīng)驗提出很高要求,尤其在面對復(fù)雜鈑金件時,往往需要反復(fù)規(guī)劃嘗試、多次試折驗證,才能獲得較為理想的加工順序。隨著現(xiàn)代數(shù)控技術(shù)、CAD/CAM技術(shù)的普及,鈑金折彎機(jī)床數(shù)控化和鈑金零件CAD快速普及,鈑金折彎編程與仿真(CAM)軟件也應(yīng)運(yùn)而生。在國外,英國Plaint公司推出了三維鈑金折彎編程軟件Radan,具有完善的工藝計算與工序規(guī)劃功能;以色列Metalix公司的折彎編程軟件MBend,可以方便地完成中等復(fù)雜程度三維鈑金的折彎規(guī)劃與仿真驗證;荷蘭Delem公司在其高端折彎機(jī)控制系統(tǒng)DA-69T中集成了三維鈑金折彎工序規(guī)劃系統(tǒng)。在國內(nèi),華中科技大學(xué)最早開始鈑金折彎工藝方向的研究;周強(qiáng)等[1]研發(fā)了二維鈑金折彎工藝規(guī)劃軟件,能夠規(guī)劃比較復(fù)雜二維鈑金件的折彎工藝;許加陳等[2]基于通用CAD的初始圖形交換規(guī)范(Initial Graphics Exchange Specification,IGES)模型,采用回溯法、遺傳算法等搜尋算法,開發(fā)了三維鈑金折彎離線編程與仿真軟件,可以完成中等復(fù)雜度的三維鈑金件折彎工序規(guī)劃。
折彎工序規(guī)劃是鈑金折彎編程系統(tǒng)的核心功能,其主要目標(biāo)是獲取給定零件的最優(yōu)或近優(yōu)折彎順序。一個有N道彎曲的鈑金件的可能工序方案空間是N!,其中可能有多個可行工序,如何在N!種方案中剔除不可行解并搜索可行解中的最優(yōu)解,研究人員多年來嘗試了大量方法。DUFLOU等[3]提出基于動態(tài)懲罰計算的分支定界搜索算法來解決重新指定的排序問題;SHPITALNI等[4]基于工件拓?fù)浣Y(jié)構(gòu)創(chuàng)建特征搜索樹,采用啟發(fā)式搜索算法獲取可行折彎工序;RICO等[5]將零件按形狀劃分并分別確定序列后組合為完整序列,根據(jù)碰撞、公差等限制檢查所有序列后考慮工藝時間選出最優(yōu)解;FARSI等[6]基于模糊集理論對零件按折彎方向分類后分別進(jìn)行規(guī)劃,最后合并成完整的折彎工序;LIN等[7]定義彎曲模式及其彎曲優(yōu)先級,在對金屬板理想輪廓進(jìn)行模式識別后獲取彎曲序列;THANAPANDI等[8]采用遺傳算法搜索折彎工序的可行解,并在適值計算方式中考慮優(yōu)選模具的問題;WANG等[9]對遺傳算法的編碼、雜交和變異方法提出改進(jìn),提高了遺傳算法的規(guī)劃效率;KONTOLATIS等[10]基于經(jīng)典遺傳算法進(jìn)行折彎工序規(guī)劃,同時考慮執(zhí)行彎曲順序的優(yōu)化問題,并通過機(jī)器擋板位置引入尺寸精度問題;彭賀明等[11]將工件的加工工序要求轉(zhuǎn)換為設(shè)計基準(zhǔn)的約束自由度任務(wù),研究了面向精加工工序的夾具定位方案自動規(guī)劃系統(tǒng),為獲取高精度鈑金折彎工序提供了思路;柳守寬等[12]針對遺傳算法面向復(fù)雜鈑金件規(guī)劃效率低的問題,改進(jìn)干涉工序適應(yīng)度的計算方式,提高了算法收斂速度;周康[13]對遺傳算法的搜索空間進(jìn)行剪枝優(yōu)化,減少了重復(fù)搜索。比較各種方法,遺傳算法在面對中等復(fù)雜工件時具有較好的表現(xiàn)力,已經(jīng)成為目前主流的折彎工序規(guī)劃方法;然而,其針對干涉工序適應(yīng)值的計算方式缺乏理論依據(jù),面向復(fù)雜工件時,折彎工序可行解極少,導(dǎo)致算法難以快速從不可行工序迭代收斂至可行工序。李成[14]采用從最終成形的零件至零件毛坯的逆向推理,通過工藝知識和干涉檢查控制推理和回溯過程,以提高工序搜索效率;PRASANTH等[15]通過繼承局部可行工序和發(fā)散局部干涉工序的潛在影響折彎來新建測試集,采用逆向推理模式構(gòu)建折彎可行性矩陣,以獲取零件的所有折彎可行解。逆向推理能夠借助零件形狀復(fù)雜度高的特點(diǎn)有效減少搜索空間,然而上述兩種逆向推理規(guī)劃方法由于未能有效利用規(guī)劃過程中的局部經(jīng)驗,導(dǎo)致測試集在逆向推理過程中越來越多而產(chǎn)生大量無效計算和重復(fù)計算。
本文針對復(fù)雜鈑金件的折彎工序規(guī)劃搜索空間大、折彎干涉測試多、規(guī)劃效率低的問題,以盡量減少其中耗時最長的折彎干涉檢測(即折彎可行性測試次數(shù))為突破口,提出一種基于反向狀態(tài)傳遞的高效工序規(guī)劃算法,即采用逆向推理規(guī)劃,從規(guī)劃起始狀態(tài)至終止?fàn)顟B(tài)的推理過程中,通過狀態(tài)傳遞獲取經(jīng)驗,創(chuàng)建最小測試集以減少無效計算,并通過經(jīng)驗的組合表示避免重復(fù)測試計算,最后在終止?fàn)顟B(tài)獲得鈑金件的所有工序可行解,以便進(jìn)一步根據(jù)加工效率、精度等要求,通過評估、優(yōu)選,從中獲得最優(yōu)鈑金折彎工序。
鈑金折彎工序規(guī)劃必須保證所產(chǎn)生的工序可以安全加工,為此對工序中的每一次折彎進(jìn)行碰撞檢測,測試其折彎的可行性。每次折彎加工分為定位和折彎兩個步驟。定位是將鈑金件的待折彎位置與下模的上表面中心線對齊,如圖1a所示;折彎是由機(jī)床滑塊帶動上模下壓,使鈑金件圍繞折彎位置彎曲變形至所需的折彎角度,如圖1b所示。
在圖1a中,鈑金件有4處折彎B1~B4,其將鈑金件分為5個平板面F1~F5;機(jī)床有上滑塊、上模夾具、下模夾具和下?lián)醢宓饶P?模具分為上模和上模。在折彎加工的定位和折彎兩個步驟中,均需對鈑金件的5個平面F1~F5與機(jī)床、模具等模型進(jìn)行碰撞檢測,只有兩個步驟中的鈑金件與加工模型均無碰撞,當(dāng)前折彎才具備可行性;反之,該折彎為不可行。如果工序中的每一次折彎均具備可行性,則該工序為可行工序,否則為不可行工序。
常見的鈑金折彎工序規(guī)劃算法(如遺傳算法等)是對單獨(dú)的折彎工序,即N!解空間的某一個體進(jìn)行處理來獲取可行解,而這種針對個體的處理方式往往導(dǎo)致丟失既有經(jīng)驗和大量重復(fù)計算。為此,本文采用基于狀態(tài)的處理方式,該狀態(tài)可以反映鈑金折彎件在加工過程中的折彎可行性,通過狀態(tài)之間的數(shù)據(jù)傳遞,規(guī)劃過程中產(chǎn)生的任意狀態(tài)數(shù)據(jù)都可以作為經(jīng)驗供后續(xù)規(guī)劃過程參考。
一個有N道彎曲的鈑金零件共有N處折彎位置,并經(jīng)N次彎曲工藝才能完成加工。為完整描述每次折彎及任一折彎位置的折彎可行性,本文將折彎過程中的N次折彎定義為N個大狀態(tài)BS,將每次折彎可選的N個折彎位置定義為大狀態(tài)中的N個小狀態(tài)SS,則該零件共有N2個具體狀態(tài)。在對N處折彎位置標(biāo)記序號后,N2個具體狀態(tài)中的每個狀態(tài)可以用BSiSSj表示,其中{i,j}∈(1,…,N),具體表示零件此時已經(jīng)完成前i-1次折彎,正在進(jìn)行第i次折彎,其加工位置為第j號折彎位置;每個具體狀態(tài)BSiSSj中存儲著對應(yīng)該狀態(tài)的折彎可行性數(shù)據(jù),可將其作為經(jīng)驗供后續(xù)計算參考。
根據(jù)折彎工藝的特點(diǎn),定義狀態(tài)在先后折彎工序中的轉(zhuǎn)遞機(jī)制:反映折彎次序的大狀態(tài)之間可以單向傳遞,而表示某次折彎所加工的不同位置的小狀態(tài)之間和表示相鄰折彎所加工的相同位置的小狀態(tài)之間相互隔離,即相同大狀態(tài)中的不同小狀態(tài)之間和相鄰大狀態(tài)的相同小狀態(tài)之間相互隔離。在計算獲取狀態(tài)數(shù)據(jù)前,首先需要從前一個BS中獲取經(jīng)驗數(shù)據(jù),然后根據(jù)經(jīng)驗數(shù)據(jù)和當(dāng)前SS數(shù)據(jù)計算生成當(dāng)前BS每個SS的折彎可行性數(shù)據(jù)。如此,通過構(gòu)建一個以BS為行、SS為列的N×N矩陣,稱為狀態(tài)傳遞矩陣,即可快速獲取鈑金折彎件的所有折彎可行性數(shù)據(jù),亦即該折彎件的所有折彎工序可行解。將該方法應(yīng)用于逆向推理規(guī)劃時,對應(yīng)的狀態(tài)傳遞矩陣稱為反向狀態(tài)傳遞矩陣。
現(xiàn)以一個具有4道彎曲的簡單折彎件為例,分析反向狀態(tài)傳遞矩陣的工作機(jī)制。對該折彎件的4處折彎位置標(biāo)記序號(如圖2),該折彎件的反向狀態(tài)傳遞矩陣為4×4矩陣(如圖3),矩陣中每個單元均為一個具體的狀態(tài),其中包含了相應(yīng)的折彎可行性數(shù)據(jù)。
1.2.1 初始大狀態(tài)BS4
當(dāng)采用逆向推理規(guī)劃時,從最后一道折彎開始狀態(tài)分析,即從反向狀態(tài)傳遞矩陣的BS4開始計算,BS4就是第1個大狀態(tài)。不同于后續(xù)的BS計算,BS4無法從前一個BS繼承經(jīng)驗,只能依靠每個SSj(i∈(1,4))數(shù)據(jù)計算,即將折彎位置j作為最后一次折彎加工的位置,并進(jìn)行折彎可行性測試,如圖4所示。在BS4的SS1和SS4中鈑金件均與模具存在碰撞,無法安全折彎,如圖4a和圖4d所示;而BS4的SS2和SS3中鈑金件與模具之間無碰撞,能安全折彎,如圖4b和圖4c所示。因此,BS4SS1和BS4SS4無折彎可行性數(shù)據(jù),BS4SS2和BS4SS3的折彎可行性數(shù)據(jù)分別為{[2]}和{[3]},如圖5中BS4行所示。這些折彎可行性數(shù)據(jù)可以作為經(jīng)驗傳遞給后續(xù)狀態(tài)參考使用。
1.2.2 后續(xù)大狀態(tài)BS
完成BS4計算后,后續(xù)的BSi均需基于BSi+1的經(jīng)驗計算。對于每一個BSiSSj,需要從BSi+1SSk(i∈(1,3),{j,k}∈(1,4),k≠j)的折彎可行性數(shù)據(jù)中獲取測試集,再將測試集中的每一個經(jīng)驗數(shù)據(jù)與j結(jié)合生成測試單元,即將折彎位置j作為第i次折彎加工的位置,將經(jīng)驗數(shù)據(jù)作為后續(xù)需要加工的折彎位置,經(jīng)折彎可行性測試通過后,方可作為BBiBBj的折彎可行性數(shù)據(jù)存儲。
對于BS3SS1,從BS4中獲取的測試集為{[2],[3]},與SS1結(jié)合后為兩個測試單元{[1,2],[1,3]}。其中[1,2]表示第3次折彎要在第1號折彎位置處進(jìn)行,第4次折彎要在第2號折彎位置處進(jìn)行,但此時每一個測試單元僅包括兩個折彎位置,而完整的折彎工序應(yīng)是4個折彎位置的一種排列,因此需要添補(bǔ)第3次折彎前已經(jīng)完成加工的兩處折彎位置。因為折彎位置3/4已經(jīng)完成加工,所以[1,2]可被添補(bǔ)為[3,4,1,2]或[4,3,1,2],然而對于BS3SS1的每一個測試單元,僅需測試第3次折彎在第1號折彎處的折彎可行性即可,對于[1,2]而言,無論前面的折彎順序如何變化,在第3次折彎開始前模型的形狀都是確定的,即僅有第1號和第2號折彎位置處還未進(jìn)行折彎,添補(bǔ)已折彎位置只是為了補(bǔ)全折彎工序,對測試結(jié)果并無影響,因此僅需添補(bǔ)已折彎位置的組合表示即可。兩個測試單元{[1,2],[1,3]}添補(bǔ)后的完整工序為[3,4,1,2]和[2,4,1,3]。對于[3,4,1,2],需要先將鈑金件的第3號和第4號折彎位置進(jìn)行彎曲加工,再測試第3次折彎在第1號折彎處的折彎可行性,如圖6a所示,該加工過程無碰撞;[2,4,1,3]如圖6b所示,鈑金件與模具存在碰撞。因此,BS3SS1的折彎可行性數(shù)據(jù)最終為{[1,2]}。
對于BS3SS2,因為SS之間具有隔離性而不能從BS4SS2獲取經(jīng)驗,所以獲取的測試集僅為{[3]}。BS4SS2中的經(jīng)驗{[2]}不能被獲取是因為同一處折彎位置2不能被多次加工,即第2號折彎位置不能同時在第3次折彎和第4次折彎中被加工。同BS3SS1的計算過程一樣,BS3SS2的折彎可行性數(shù)據(jù)最終為{[2,3]},BS3SS3的折彎可行性數(shù)據(jù)為{[3,2]},BS3SS4的折彎可行性數(shù)據(jù)為{[4,3]},如圖5中的BS3行所示。
對于BS2SS1,從BS3中獲取的測試集為{[2,3],[3,2],[4,3]},與SS1結(jié)合后為3個測試單元{[1,2,3],[1,3,2],[1,4,3]}。[1,2,3]和[1,3,2]分別是測試第2次折彎在折彎位置1處進(jìn)行且后續(xù)工序為[2,3]和[3,2]的折彎碰撞情況,由于后續(xù)工序[2,3]和[3,2]均表示測試時折彎位置2和折彎位置3還未折彎,屬于同一個組合{2,3},所以這兩個測試單元僅需要一次折彎可行性測試即可,如圖6c所示,該加工過程無碰撞。[1,4,3]的鈑金件與模具存在碰撞,如圖6d所示。因此,BS2SS1的折彎可行性數(shù)據(jù)最終為{[1,2,3],[1,3,2]}。同BS2SS1的計算過程一樣,BS2SS2的折彎可行性數(shù)據(jù)為{[2,4,3]},BS2SS3的折彎可行性數(shù)據(jù)為{[3,1,2]},BS2SS4的折彎可行性數(shù)據(jù)為{[4,2,3],[4,3,2]},如圖5中的BS2行所示。
BS1的計算方式同BS2和BS3,結(jié)果如圖5中的BS1行所示。最終完成圖3的4×4反向狀態(tài)傳遞矩陣計算,如圖5所示,其中BS1行的所有折彎可行性數(shù)據(jù)即為該鈑金件的所有折彎工序可行解。至此,圖2鈑金件的所有可行工序為{[1,2,4,3],[1,4,2,3],[1,4,3,2],[4,1,2,3],[4,1,3,2],[4,3,1,2]}。
在狀態(tài)傳遞矩陣中,SS之間互相隔離是因為同一處折彎位置不會被折彎多次,而BS之間狀態(tài)傳遞的原理是基于鈑金件加工過程中形狀特征的變化趨勢,從毛坯薄板變化為最終成形的復(fù)雜形狀。這一過程在現(xiàn)實中是單向、不可逆轉(zhuǎn)的,可以通過正向狀態(tài)傳遞矩陣從BS1~BSN進(jìn)行推導(dǎo)計算。在軟件系統(tǒng)中,可以模擬最終成形至毛坯薄板的反向形狀變化過程,即1.2節(jié)由BS4~BS1的逆向推理所演示的反向狀態(tài)傳遞矩陣工作機(jī)制中鈑金件的變化過程。
將狀態(tài)傳遞方法應(yīng)用于折彎工序規(guī)劃時,正向傳遞可以理解為:當(dāng)前折彎可折,則后續(xù)折彎可能可折;當(dāng)前折彎不可折,則后續(xù)折彎必不可折。反向傳遞可以理解為:當(dāng)前折彎可折,則前繼折彎可能可折;當(dāng)前不可折,則即使前繼折彎可折,也要被判定為不可折。例如,某鈑金件無論哪一處折彎都無法在最后一次折彎中安全加工,則即使前一次折彎有可折選項,也要被判定為不可折。
借助狀態(tài)傳遞矩陣的經(jīng)驗傳遞機(jī)制,無論正向傳遞還是反向傳遞,均先獲取前一個BS的經(jīng)驗,經(jīng)測試通過后成為新的經(jīng)驗。正向傳遞和反向傳遞的區(qū)別在于:正向傳遞經(jīng)驗從工件完全展開的狀態(tài)開始逐步折彎,往往折彎干涉少,折彎可行性狀態(tài)多,即產(chǎn)生的經(jīng)驗較多且容易通過測試被保留,很多經(jīng)驗被傳遞多次才發(fā)現(xiàn)是無效經(jīng)驗;而反向傳遞經(jīng)驗從工件完全折好的狀態(tài)開始逐步展開,往往折彎干涉多,折彎可行性狀態(tài)少,即產(chǎn)生的經(jīng)驗較少,無效經(jīng)驗?zāi)鼙豢焖偬蕹?可以顯著減少后續(xù)推理的測試工作量。
為通過實例對比正反向狀態(tài)傳遞的測試次數(shù),以一個有8道彎曲的中等復(fù)雜零件為例,如圖7e所示,分別獲取正向傳遞模式和反向傳遞模式在各個BS中的測試數(shù)和通過數(shù),即各個BS中所有SSj(j∈(1,8))的測試單元數(shù)之和與通過測試的折彎可行性數(shù)據(jù)之和,結(jié)果如表1和如圖8所示。從表1可見,正向傳遞模式下,起始狀態(tài)1的測試數(shù)和通過數(shù)相同,無可被剔除的無效經(jīng)驗,因為此時零件處于毛坯狀態(tài),各折彎位置大多可被安全加工。之后產(chǎn)生的無效經(jīng)驗較多,而且被多次傳遞,直到終止?fàn)顟B(tài)8仍有一半以上的無效經(jīng)驗才被剔除。反向傳遞模式下,起始狀態(tài)8就已經(jīng)開始剔除經(jīng)驗,通過數(shù)為測試數(shù)的一半,因為此時零件幾乎處于最終成形的狀態(tài),具有較高的形狀復(fù)雜度,很多折彎位置并不能被安全加工。之后產(chǎn)生的無效經(jīng)驗較少,也能被很快剔除,甚至在狀態(tài)7即被剔除完畢,因此終止?fàn)顟B(tài)8沒有無效經(jīng)驗。
表1 起始、終止關(guān)鍵數(shù)據(jù)
圖8中,實線對應(yīng)每個BS計算前獲取的經(jīng)驗,虛線對應(yīng)通過測試的有效經(jīng)驗,兩者之差是無效經(jīng)驗。從圖中可見,粗線表示的正向傳遞模式是BS1~BS8的計算過程,整體測試數(shù)較多,時間效率較低;細(xì)線表示的反向傳遞模式是BS8~BS1的計算過程,整體測試數(shù)較低,具有較高的效率。
由此可見,采用反向狀態(tài)傳遞模式,即逆向推理規(guī)劃時,無效經(jīng)驗往往在早期被排除,后續(xù)無效測試和整體測試數(shù)較少,有利于提高工序規(guī)劃的效率。
一個有N道折彎的鈑金零件,將其折彎位置標(biāo)號為{B1,B2,…,BN-1,BN},則折彎工序為全部標(biāo)號的一個排列,測試單元就是將該排列分為3部分:
Gl=[Bi1,Bi2,…,Bip-1,Bip],
{i1,i2,…,ip-1,ip}∈(1,N),p∈(0,N-1);
(1)
Gm=[Bj],j∈(1,N) ;
(2)
Gr=[Bk1,Bk2,…,Bkq-1,Bkq],
{k1,k2,…,kq-1,kq}∈(1,N),q∈(0,N-1)。
(3)
式中:i≠j≠k,p+q=N-1;Gl為已經(jīng)完成折彎的p處折彎位置;Bj為第p+1次折彎所加工的折彎位置;Gr為測試集中的某一經(jīng)驗,表示測試時還未完成加工的q處折彎位置。假如某折彎件采用逆向推理規(guī)劃,BS4SS2從BS5中獲取的測試集為{[1,4,3],[3,4,1],[3,1,4]},可由3個不同的Gr表示,盡管其排列不同,但可由同一個組合{1,3,4}表示,即測試時還未完成折彎位置1/3/4處的折彎加工屬同一種折彎狀態(tài),因此只需做一次折彎可行性測試,即可通過經(jīng)驗的組合表示替代其多種排列,實現(xiàn)對經(jīng)驗的去重,使得折彎可行性測試的實際執(zhí)行次數(shù)少于直接基于經(jīng)驗獲得的測試單元數(shù),避免了重復(fù)計算。
由此可見,反向狀態(tài)傳遞和經(jīng)驗去重共同作用,使基于狀態(tài)傳遞的逆向推理工序規(guī)劃算法在面對多折彎、高復(fù)雜度的鈑金件時具有很高的規(guī)劃效率。本文所提高效工序規(guī)劃算法可用偽代碼表示如下:
算法1反向狀態(tài)傳遞工序規(guī)劃算法。
輸入:折彎數(shù)N、狀態(tài)傳遞矩陣Matrix。
輸出:鈑金零件的所有可行折彎序列。
fori←N to 1 do
for j←1 to N do
if i=N then
if最后一改折彎在折彎位置處可安全加工then
將[i]譚加為Matrix[i][j]的折彎可行性數(shù)據(jù)
end if
else
從Matrix[i-1]中獲取不包含折彎位置j的經(jīng)驗TestSet
創(chuàng)建可行組合集合FeasibleCombinationSet
創(chuàng)建不可行組合集合InfeasibleCombinationSet
for each test in TestSet do
獲取test的組合表示test Combination
if testCombination 是FeasibleCombinationSet之一then
將[j,test]添加為Matrix[i][j]的折彎可行數(shù)據(jù)
else if testCombination 不是InfeasibleCombinationSet之一then
if 以test為后續(xù)折彎,第i次折彎在折彎位置j處可安全加工then
將[j,test]添加為Matrix[i][j]的折彎可行性數(shù)據(jù)
將testCombination添加到FeasibleCombinationSte中
else
將testCombination添加到InfeasibleCombinationSet中
end if
end if
end for
end if
end for
end for
從Matrix[1]中獲取所有經(jīng)驗All FeasibleSolution
return AllFeasibleSolution
為了驗證本文算法,選取10個具有較高復(fù)雜度的不同鈑金零件作為實驗樣例,如圖7所示,包括的折彎數(shù)從4道到13道,將其導(dǎo)出為IGES文件。為模擬實際生產(chǎn)加工環(huán)境,在SolidWorks中等比例創(chuàng)建機(jī)床和折彎模具等模型并導(dǎo)出為IGES文件。
在軟件開發(fā)環(huán)境Qt5.14中,通過用C++實現(xiàn)基于IGES的鈑金特征識別算法[2]、鈑金折彎層次包圍盒碰撞測試[13]、文獻(xiàn)[15]的折彎可行矩陣算法和本文基于反向狀態(tài)傳遞的工序規(guī)劃算法,形成鈑金折彎工序規(guī)劃應(yīng)用程序。程序通過讀入機(jī)床和模具等模型創(chuàng)建鈑金折彎生產(chǎn)加工場景,讀入鈑金件模型進(jìn)行折彎工序規(guī)劃以驗證本文算法。以圖7c為例,該鈑金件有6道彎曲,通過鈑金特征識別算法構(gòu)建其6處折彎和7個平板面的雙向鏈?zhǔn)浇Y(jié)構(gòu),如圖10a所示。根據(jù)雙向鏈?zhǔn)浇Y(jié)構(gòu)中的折彎鏈表B1~B6,將鈑金件按折彎位置依次展開至水平面,如圖10b所示,導(dǎo)入生產(chǎn)加工場景后如圖10c所示。工序規(guī)劃時,根據(jù)工序和折彎鏈表,在加工環(huán)境中將鈑金件按折彎順序依次定位和折彎,同時進(jìn)行碰撞檢測以檢驗工序的可行性。程序在配備Intel i5處理器和16 GB RAM的PC上運(yùn)行,對圖7所示的10個鈑金件進(jìn)行折彎工序規(guī)劃,獲得的規(guī)劃耗時如圖11所示。
從圖11細(xì)虛線可見,文獻(xiàn)[15]的折彎可行矩陣算法隨著折彎數(shù)的增大,耗時增長過快,而本文反向狀態(tài)傳遞算法在狀態(tài)傳遞和組合去重兩大機(jī)制作用下,耗時增長保持在較低比例,如圖中細(xì)實線所示。相比文獻(xiàn)[15]算法,本文算法的效率提升較大,折彎數(shù)越多效率提升越明顯,如圖中粗實線所示。以上實驗證明,本文反向狀態(tài)傳遞算法在面對復(fù)雜鈑金件折彎工序規(guī)劃時具有高效性,而且對于同等折彎數(shù)的鈑金件,復(fù)雜程度越高,算法表現(xiàn)越好。
采用上述算法獲得復(fù)雜鈑金件的所有可行折彎工序后,根據(jù)加工效率等優(yōu)化目標(biāo),采用已有的遺傳算法、深度優(yōu)先算法等常見搜索算法從中選取最優(yōu)折彎工序方案。
鈑金折彎工序規(guī)劃需對各種工序方案的每次折彎進(jìn)行碰撞檢測,以驗證工序的可行性,這種大量的三維折彎碰撞檢測算法復(fù)雜、耗時長,成為影響工序規(guī)劃效率的主要因素,尤其對于多道折彎、形狀復(fù)雜的折彎件,如何減少折彎工序規(guī)劃過程中的折彎可行性測試的執(zhí)行次數(shù),成為提高規(guī)劃效率的關(guān)鍵。本文提出將狀態(tài)傳遞與逆向推理相結(jié)合的反向狀態(tài)傳遞工序規(guī)劃算法,通過狀態(tài)經(jīng)驗傳遞充分利用已有折彎可行性測試數(shù)據(jù),通過逆向推理減少了無效的折彎可行性測試,通過經(jīng)驗組合去重避免了重復(fù)測試計算。相關(guān)措施極大減少了折彎可行性測試的執(zhí)行次數(shù),顯著提升了工序規(guī)劃的效率,降低了算法耗時。驗證實驗表明,本文算法在面對多折彎、高復(fù)雜度的鈑金折彎工序規(guī)劃時性能優(yōu)異,能夠顯著提高復(fù)雜鈑金件的工序規(guī)劃效率。