劉紅軍,李 斌
(沈陽航空航天大學(xué) a.機(jī)電工程學(xué)院;b.研究生院,沈陽 110136)
非可展直紋面是工程中常見的一種曲面,并且應(yīng)用在航空航天、國防工業(yè)、船舶等重要領(lǐng)域,加工此類零件難度較大,一直是數(shù)控加工領(lǐng)域研究的難點,因此非可展直紋面的加工方法以及加工精度成為主要的研究問題[1]。目前,國內(nèi)外學(xué)者主要集中在局部刀位優(yōu)化方法的研究,對整體優(yōu)化方法以及結(jié)合智能算法的研究比較少,并且停留在一些比較傳統(tǒng)單一的優(yōu)化算法,缺少對新算法應(yīng)用在側(cè)銑加工非可展直紋面領(lǐng)域的認(rèn)識與研究。通過對各種智能算法進(jìn)行理論研究,綜合比較各種智能算法優(yōu)缺點,最終選擇遺傳算法與非線性規(guī)劃的混合算法作為研究對象。通過MATLAB仿真對研究結(jié)果進(jìn)行認(rèn)證,預(yù)計最終能在效率上有明顯的提高,誤差也能得到明顯的改善。
遺傳算法(Genetic Algorithms)[2]是一類依靠生物的進(jìn)化規(guī)律演化而來的隨機(jī)優(yōu)化方法。它的主要特別之處能夠直接對結(jié)構(gòu)對象進(jìn)行操作,不受到函數(shù)之類的約束條件的限制;并且具有內(nèi)在的隱并行性和非常強(qiáng)的全局搜索優(yōu)化的能力;遺傳算法[2]采用了概率的優(yōu)化思想方法,能夠直接獲取并且能夠引導(dǎo)優(yōu)化的搜索空間,自動調(diào)節(jié)搜索的方向,沒有確切規(guī)則去限制。遺傳算法[3]針對適應(yīng)度函數(shù)能夠較快的進(jìn)行收斂計算,優(yōu)化結(jié)果合理。
非線性規(guī)劃算法(Nonlinear Optimization Algorithm)的研究主要針對于多元實函數(shù)在等式或者不等式約束的情況下的極值問題,并且在它們其中有一個或多個未知量的非線性函數(shù)。非線性規(guī)劃算法經(jīng)過將近70年的發(fā)展逐步在進(jìn)行完善,并且成功的應(yīng)用到了多個領(lǐng)域,傳統(tǒng)的非線性規(guī)劃算法主要通過梯度降階的方法來進(jìn)行求解的,它具有明顯的優(yōu)點是局部搜索能力比較強(qiáng),和遺傳算法形成了明顯的互補(bǔ)優(yōu)勢。
考慮到兩種算法的互補(bǔ)優(yōu)勢,本文提出遺傳算法和非線性規(guī)劃算法的混合算法。針對刀具軌跡優(yōu)化問題提出了單刀位下的誤差函數(shù),再結(jié)合遺傳算法和非線性規(guī)劃算法混合算法的求解策略并對其進(jìn)行優(yōu)化處理,得到最優(yōu)單刀位,進(jìn)而獲得優(yōu)化后的刀軸軌跡面,進(jìn)一步計算得到包絡(luò)誤差。
確定初始刀位,首先確定刀軸位置即確定刀軸基準(zhǔn)點和刀具軸線的矢量方向,采用三點偏置法來確定初始刀位,刀具選用圓柱刀,如圖1所示。
圖1 確定初始刀軸矢量
如圖1所示,設(shè)直紋面定義為:
R(u,v)=(1-v)R0(u)+vB(u)u,v∈0,1
(1)
它的等距面定義為:
R′(u,v)=R(u,v)+Rcn(u,v)u,v∈0,1
(2)
式中,RC—圓柱刀刀具半徑;R0u,R1u—兩條準(zhǔn)線的矢徑;n(u,v)—設(shè)計曲面的單位法矢。
本文采用三點偏置法來確定初始刀位,確定初始刀位的具體過程如下所示:
非可展直紋面直母線各點處法矢不同,無法用半徑大于0的圓柱滾動包絡(luò)面形成,除非滾動半徑為0[4]。真實的加工誤差為刀具包絡(luò)面相對與設(shè)計曲面的法向誤差。非可展直紋面的幾何特性決定了加工該類曲面有著不可避免的原理性誤差,那么對于每個刀位下,理想狀況下有:
|PiQi|=r(Pi)i=1,2,…,n,n
|PiQi|—刀軸一點到非可展直紋面的距離;r(Pi)—刀軸一點到圓錐面的距離。
顯然,若要使誤差減小,就應(yīng)使||PiQi|-r(Pi)|的值盡可能小,若每個刀位下刀軸上的每一點都盡可能滿足上述條件,進(jìn)而得到的刀具包絡(luò)面會最大限度逼近設(shè)計曲面。
由以上分析可知,單刀位下的誤差度量函數(shù)如下:
c—表示刀軸位姿。
式中,r(Pi)為已知量,因此核心部分是如何求解|PiQi|,即求解一點pi到非可展直紋面r(ui,vi)的距離問題。設(shè)垂足坐標(biāo)(ui,vi),則垂足點滿足以下方程:
[Pi-r(ui,vi)]·ru(ui,vi)=0
[Pi-r(ui,vi)]·rv(ui,vi)=0
其中,ru(ui,vi)—Pi點在u方向的切矢;
rv(ui,vi)—Pi點在v方向的切矢。
方程的解析求解較復(fù)雜,不便于計算,本文使用數(shù)值法對其求解。單刀位的誤差度量函數(shù)的求解可以看作是一個函數(shù)的極小值求解問題,由于函數(shù)難以建立明確的函數(shù)表達(dá)式,用傳統(tǒng)方法難以求解,智能算法在求解該類問題有著特別的優(yōu)勢,單刀位誤差函數(shù)作為智能算法優(yōu)化的目標(biāo)函數(shù)[5]。
初始種群的生成采用如下步驟:
(1)以初始刀軸兩端點P1,P2為球心,分別建立半徑為R的球形區(qū)域,作為初始種群生成區(qū)間。
(2)隨機(jī)在兩個球形區(qū)域內(nèi)產(chǎn)生一個點。每個點作為刀軸的一個端點。兩個點作為一個點對,構(gòu)成了一個新的刀軸矢量,重復(fù)上述步驟A次,構(gòu)成一個大小為A的矢量數(shù)組P[0],P[1],P[2]…P[A-1]。
(3)設(shè)刀軸矢量端點坐標(biāo)Q1(X1,Y1,Z1)和Q2(X2,Y2,Z2)。則數(shù)組P[]中每個元素分別為關(guān)于X1,Y1,Z1,X2,Y2,Z2的6維矢量,總計A個6維矢量作為智能算法的初始種群。
算法設(shè)計流程如下:
(1)種群初始化:遺傳算法與其它算法不同的是不能直接處理空間參數(shù)問題,因此需要把所要求取的問題所有可能性的解進(jìn)行編碼,組合成遺傳空間中一條條染色體。
(2)公告板初始化:每個染色體對應(yīng)一個刀軸矢量,計算每個染色體的適應(yīng)度值,即單刀位誤差度量函數(shù)的值,綜合比較選擇誤差比較小的值賦值給公告板。適應(yīng)度函數(shù)是來度量種群中個體優(yōu)劣的指標(biāo),并作為以后遺傳操作的依據(jù),適應(yīng)度函數(shù)的設(shè)計要結(jié)合求解問題本身,適應(yīng)度函數(shù)的設(shè)計直接影響到遺傳算法的性能。
(3)遺傳算法的基本操作:遺傳算法先后要經(jīng)過選擇操作、交叉操作、變異操作三個過程,每次新的個體更新后計算適應(yīng)度值并與公告版比較,若較優(yōu),則更新公告板;否則,公告板不變。
(4)遺傳算法終止條件:當(dāng)遺傳算法達(dá)到給定精度時,算法終止。即滿足
其中,ε為一個足夠小的正量,若滿足上式條件,將最優(yōu)值賦值公告板,否則轉(zhuǎn)到步驟(3)繼續(xù)迭代。
(5)賦值非線性規(guī)劃算法:獲取公告板的值賦值gbest,以遺傳算法計算得到最優(yōu)個體位置為圓心,建立半徑為R的解域范圍,由于最優(yōu)個體位置已經(jīng)是誤差較小的位置,即可以這樣認(rèn)為最優(yōu)位置在最優(yōu)個體附近。隨機(jī)在解域范圍中生成N個個體位置,賦予每個個體初始化速度。
(6)適應(yīng)度值計算:計算每個個體的適應(yīng)度值與gbest值進(jìn)行比較,若值較小,則更新當(dāng)前最優(yōu)位置賦值給gbest。
(7)個體狀態(tài)更新。
遺傳算法個體進(jìn)化速度和位置更新公式:
(8)計算更新后個體的適應(yīng)度:重新計算每個個體的適應(yīng)度值,并與其歷史值作比較,若較小,更新pbest值;將其與遺傳空間中最好粒子位置gbest比較,若較小 ,更新gbest值。
(9)更新公告板:重復(fù)步驟(7)~(8),當(dāng)達(dá)到遺傳空間迭代次數(shù)后,將gbest值賦值公告板,作為最優(yōu)解輸出。
圖2 ga-noa算法流程圖
在幾何角度上來講,誤差的大小是根據(jù)實際加工曲面與設(shè)計曲面之間法向誤差來度量的,在每個到刀位刀具面族形成了實際上的加工曲面,所謂的誤差問題就是研究刀具包絡(luò)面與設(shè)計曲面或稱為理想曲面之間的無限逼近問題[6]。如圖3所示,本文選擇圓柱刀進(jìn)行加工,在理想加工條件下,就是刀具的包絡(luò)面與設(shè)計曲面之間無限接近,也就是說刀軸的軌跡面相對于設(shè)計曲面之間偏置了圓柱刀半徑的距離。
圖3 誤差等價替換示意圖
第一步我們確定的初始刀位,由于誤差比較大,在應(yīng)用于實際加工之前對刀位需要進(jìn)一步優(yōu)化,如圖4所示通過映射的方法來描述每個刀位的加工誤差,找出減小加工誤差的方法[7]。
圖4 圓柱銑刀的映射曲線示意圖
其中,C——圓柱刀面;T——刀具軸線單位矢量;S(u,v)——設(shè)計曲面;T(b)——映射曲線;P——刀具軸線上的一點;N——設(shè)計曲面上的垂足點;b——刀具軸線參數(shù);R——圓柱刀半徑;n——垂足點N處的單位法向量;Β——n與t之間的夾角。
根據(jù)圖4的幾何關(guān)系,可以得到以下方程:
加工曲面的形成過程就是刀具面族的包絡(luò)過程,刀具在每個瞬時形成一條切觸線,這些切觸線的集合形成了加工曲面[8]。在本文上面所提到的映射曲線就是所謂的刀具在實際加工過程中在工件表面留下的痕跡,所謂的加工誤差就是痕跡曲線到設(shè)計曲面之間的距離。
根據(jù)上面對映射曲線的定義,以及對加工誤差的理解,我們知道映射曲線與設(shè)計曲面之間距離的絕對值越小,加工誤差越小[9]。如圖5所示,當(dāng)?shù)毒叩挠成淝€在設(shè)計曲面之內(nèi),這時就產(chǎn)生了所謂的過切誤差;當(dāng)?shù)毒叩挠成淝€在設(shè)計曲面之外,這時就產(chǎn)生了所謂的欠切誤差。
圖5 誤差示意圖
如圖5所示,在其中某個刀位下加工誤差方程可以表示如下:
Δ=T(b)-S(u′,v′)
在上面所表示的方程中,T(b)所表示的是刀軸的映射曲線,S(u′,v′)所表示的是映射曲線在加工曲面是所對應(yīng)垂足點之間的連線。
由于曲面是非可展直紋面,所以在實際加工過程中,刀軸上一點P所對應(yīng)的非可展直紋面上的垂足點N處的單位法向量n隨著加工的進(jìn)行而不斷地發(fā)生變化,因此這里采用數(shù)值算法來求解[7]。
由于不能求出映射曲線和加工誤差方程,因此需要對刀軸參數(shù)b離散化,離散化后得到的刀位誤差方程如下所示:
本文仿真所用的數(shù)據(jù)參考文獻(xiàn)[8]來進(jìn)行的,把整個大的曲面分為10個小的曲面片,我選擇其中第2個曲面片來進(jìn)行仿真的,曲面片的頂部導(dǎo)線和底部導(dǎo)線都是非均勻有理B樣條曲線,兩條導(dǎo)線具有相同節(jié)點矢量[0,0,0,0,0.2,0.4,0.6,0.8,1.0,1.0,1.0,1.0],它們的控制頂點如下表1中所示,曲面片模型如圖6所示。
圖6 葉片曲面模型
表1 曲面片2邊界B樣條曲線控制點(mm)
選用圓柱刀的參數(shù)為半徑為10mm,高度為30mm。接下來在曲面上均勻劃分11個刀位,對每個刀位進(jìn)行單刀位誤差函數(shù)的計算,如表2給出當(dāng)u=0的時候,在此刀位下的優(yōu)化結(jié)果。如圖7所示,反映單刀位全局最優(yōu)值的收斂情況,當(dāng)?shù)螖?shù)達(dá)到26次以上收斂趨于平緩。
表2 單刀位的優(yōu)化結(jié)果
圖7 單刀位全局最優(yōu)值的收斂情況
表3 初始軸跡面邊界B樣條曲線控制點(mm)
表4 優(yōu)化后軸跡面邊界B樣條曲線控制點(mm)
圖8 初始包絡(luò)誤差圖
圖9 優(yōu)化后包絡(luò)誤差圖
由表3和表4的數(shù)據(jù),對比圖8和圖9可以看出初始軸跡面下曲面最大極差已達(dá)到0.5mm。優(yōu)化后最大極差為0.0389mm。
通過仿真結(jié)果圖像看出,收斂的時間比前人研究得到明顯改善,主要得益于遺傳算法和非線性規(guī)劃算法的優(yōu)點,能夠快速準(zhǔn)確地捕捉刀位點,在實際加工中能夠有效地提高加工效率。從優(yōu)化后的包絡(luò)誤差圖像可以看出,通過對全局優(yōu)化后誤差也得到相應(yīng)的改善。通過仿真結(jié)果與前人比較,說明采用遺傳算法與非線性規(guī)劃算法結(jié)合是非常有效的,混合算法思想對未來研究者指引了解決問題的新方向,不在局限于單一的某一種算法,對科學(xué)研究的意義非常重要。
本文的研究結(jié)果可以得出混合智能算法的研究思想完全可以應(yīng)用到側(cè)銑刀位軌跡優(yōu)化的研究領(lǐng)域,并且能夠得到讓人意想不到的結(jié)果,在理論上給實際加工明顯地提高了效率,減小了加工誤差,帶來很大的經(jīng)濟(jì)價值。本文的研究對前人算法的應(yīng)用進(jìn)行改變,不在局限于單一算法的研究,在側(cè)銑刀位軌跡優(yōu)化領(lǐng)域應(yīng)用混合智能算法開辟新的出路。在該領(lǐng)域目前主要集中幾何單一方面進(jìn)行刀位軌跡進(jìn)行優(yōu)化,在實際加工中還要面臨切削力等復(fù)雜因素,因此在接下來的研究中要加入一些補(bǔ)償因子,在通過模擬仿真實驗不斷地接近實際加工環(huán)境,本方法最終才能在實際加工中得到應(yīng)用。