王毛毛,趙衛(wèi)國,馮盈雪
(內(nèi)蒙古工業(yè)大學(xué)機(jī)械學(xué)院機(jī)械工程系,呼和浩特 010051)
隨著社會(huì)的進(jìn)步,科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)產(chǎn)品的外形有了多方面的要求,對(duì)產(chǎn)品曲面精度要求也越來越高,因此曲線曲面的光順要求就成了曲面造型設(shè)計(jì)的重要部分,如何評(píng)判曲線曲面是否光順以及怎樣使曲線曲面更加光順就成了曲線曲面造型的核心問題。能量法是曲線曲面光順常用的一種整體優(yōu)化法,它是把光順問題轉(zhuǎn)化為最優(yōu)化問題而進(jìn)行求解的。遺傳算法是通過生物自然選擇中的選擇、遺傳、變異等自然機(jī)制來提高各個(gè)個(gè)體的適應(yīng)性,從而選擇出更能適應(yīng)生存的個(gè)體。遺傳算法的最好優(yōu)點(diǎn)就是能與其他算法進(jìn)行結(jié)合,對(duì)其它算法的兼容性比較好。所以提出遺傳算法結(jié)合蟻群算法,形成一種新的曲線曲面光順方法,該方法結(jié)合改進(jìn)的網(wǎng)格能量法,能夠得到更好的曲線曲面光順效果。
根據(jù)能量法原理,把通過所有數(shù)據(jù)型值點(diǎn)Pi(i=0,1,…,n)連接而成的三次均勻B 樣條曲線設(shè)定為P0(t),而P(t)是光順后的三次均勻B 樣條曲線,數(shù)學(xué)分析中P(t)是過型值點(diǎn)Qi(i=0,1,…,n)連成曲線的樣條函數(shù),則曲線P(t)的應(yīng)變能為:
式中,常數(shù)EI 表示樣條的剛度系數(shù),k 表示曲率。在曲線曲面光順性的曲率分析中,若希望曲線曲面更光順,只需使三次均勻B 樣條曲線的應(yīng)變能更小即可。根據(jù)此原理,建立一個(gè)模型,就是把光順前后的型值點(diǎn)Pi與Qi之間掛上一條小彈簧,彈簧的彈性系數(shù)為βi,由于光順前后的型值點(diǎn)都有偏移,所以每個(gè)小彈簧上都有能量,所有小彈簧總的能量為:
小彈簧的能量模型已經(jīng)建立,這樣就能得到優(yōu)化的模型(即樣條和小彈簧在內(nèi)的整個(gè)系統(tǒng)總能量),總能量的表達(dá)式為:
式中:(EI)2=α,曲線P(t)光順的目的就是使曲線的總能量E 達(dá)到極小值;Ein的大小表示曲線光順的情況;Espring反映了光順后的曲線逼近原始曲線的情況。對(duì)于曲線P(t)光順程度要求越高,則曲線光順的應(yīng)變能Ein就得越小,對(duì)于要求光順后的曲線越是逼近光順前的原始曲線,則小彈簧的總能量Espring越?。?]。至此,這樣就能把實(shí)物模型的曲線光順的問題轉(zhuǎn)換成數(shù)學(xué)模型進(jìn)行優(yōu)化的問題。
設(shè)曲線P0(t)和P(t)分別為光順前后的三次B 樣條曲線,其表達(dá)式分別為:
將式(3)代入Vi-Vt=λ(Vt-Vj)中得到:
為使E=min,令?E/?Vt=0 得到
式(4)是關(guān)于{Vi}(i=0,1,…,n+2)建立的方程組。記V=(V0,V1,…,Vn+2)T則可以改將式(7)寫成如下矩陣形式:
式中,A=(αij)n+3,n+3是根據(jù)α 建立的系數(shù)矩陣,其元素表達(dá)式為:
C=(C0,C1,…,Cn+2)為式(7)右端向量,其分量為:
當(dāng)|i-j|>3 時(shí),αij=0 是線性方程組的系數(shù)矩陣,利用高等數(shù)學(xué)方法求解線性方程組,求得的有化解就是曲線的控制頂點(diǎn)Vi(j=0,1,…,n+2),代入式(2)就能得到光順后的曲線P(t)。
根據(jù)實(shí)際情況,為了在用能量法對(duì)目標(biāo)函數(shù)進(jìn)行光順處理時(shí),得到符合要求的后背曲線曲面,提出了兩種約束方法,即對(duì)控制點(diǎn)和型值點(diǎn)的約束。最終設(shè)定人體后背脊柱曲線的目標(biāo)函數(shù)及約束條件如下:
約束條件:
遺傳蟻群算法GAACA 的原理就是吸取遺傳算法和蟻群算法的精華,去掉遺傳算法和蟻群算法糟粕,就是分別吸取各自的優(yōu)點(diǎn),去掉不足,使兩種方法更好地結(jié)合。遺傳算法相比蟻群算法優(yōu)點(diǎn)是計(jì)算速度快,精度不足,而蟻群算法相比遺傳算法就是精度準(zhǔn)確,計(jì)算速率比較緩慢。遺傳蟻群算法繼承了兩種算法的優(yōu)點(diǎn),就是計(jì)算速度快,計(jì)算精度高[5]。為了提高速度與精度,把遺傳蟻群算法主要分成兩部分,上半部分是應(yīng)用遺傳算法計(jì)算,這是利用遺傳算法計(jì)算速度快,全局收斂結(jié)構(gòu)高的特點(diǎn),在數(shù)據(jù)全局收斂速度急速下降也就是快達(dá)到最優(yōu)解的時(shí)候,遺傳算法的計(jì)算速率同時(shí)下降的比較快,這時(shí)候的解保存起來在后面應(yīng)用。下半部分是應(yīng)用蟻群算法,因?yàn)檫@時(shí)候已經(jīng)有需要下一步計(jì)算的數(shù)據(jù)基礎(chǔ),在這個(gè)基礎(chǔ)上再應(yīng)用蟻群算法,就能較好地體現(xiàn)出蟻群算法的并行性和計(jì)算速率快的特點(diǎn)。這樣就能應(yīng)用兩種優(yōu)化算法的各自優(yōu)點(diǎn)來提高數(shù)據(jù)優(yōu)化的精度和速率。
圖1 遺傳蟻群算法過程
應(yīng)用遺傳蟻群算法,上半部分是遺傳算法的設(shè)定,其中設(shè)置種群的大小為NIND=50,交叉概率PC=0.2,變異概率PM=0.01,變量的二進(jìn)制位數(shù)PRECI=30,代溝GGAP=0.9,設(shè)定計(jì)算精度保留到小數(shù)點(diǎn)后4 位,設(shè)定種群在迭代計(jì)算時(shí),迭代滿5 代就任意抽出3 個(gè)最佳個(gè)體,判斷這些個(gè)體收斂是否停滯,若停滯便停止遺傳算法的運(yùn)算,選出其中10 個(gè)近似最優(yōu)解的數(shù)據(jù)作為下半部分蟻群算法的初始數(shù)據(jù),在進(jìn)行蟻群算法時(shí),設(shè)定參數(shù)螞蟻的種群為30,α=1,β=4,ρ=0.8,運(yùn)行的最大次數(shù)NC=20,整個(gè)遺傳蟻群算法運(yùn)算6 次,其結(jié)果就比較令人滿意。
在此過程中,取通過三坐標(biāo)測(cè)量儀測(cè)出的一部分脊柱曲線數(shù)據(jù)點(diǎn)作為優(yōu)化前脊柱曲線數(shù)據(jù),并把已知型值點(diǎn)轉(zhuǎn)化為曲線控制點(diǎn),通過對(duì)控制點(diǎn)的約束來改進(jìn)網(wǎng)格能量法,最后用遺傳蟻群算法進(jìn)行優(yōu)化計(jì)算。
首先通過利用MATLAB 軟件對(duì)測(cè)量數(shù)據(jù)點(diǎn)進(jìn)行擬合,通過得到的脊柱數(shù)據(jù)擬合曲線如圖2 所示。
利用改進(jìn)網(wǎng)格能量法就可以得到光順后的曲線,如圖3 所示。
利用遺傳算法、蟻群算法及遺傳蟻群算法優(yōu)化后的曲線及其精度如圖4 所示。
圖2 初始數(shù)據(jù)點(diǎn)擬合曲線圖
圖3 能量法曲線光順圖
圖4 各算法優(yōu)化曲線及精度比較圖
曲線優(yōu)化結(jié)果:由圖2~圖4 可以看出,利用改進(jìn)網(wǎng)格能量法以及控制點(diǎn)約束條件建立數(shù)學(xué)模型,并用遺傳蟻群算法進(jìn)行計(jì)算得出的曲線精度更高,同時(shí)曲線的收斂性也是三種算法中最快的,以此證明了此方法的有效性。所以用蟻群算法同樣對(duì)后背其它曲線進(jìn)行光順,在此基礎(chǔ)上完成后續(xù)曲面優(yōu)化。
曲面網(wǎng)格能量法是一個(gè)是帶有約束的最優(yōu)化問題,它的精確求解計(jì)算量非常大。因此,為將其簡(jiǎn)化,我們引進(jìn)罰因子,將其近似地轉(zhuǎn)化成一個(gè)無約束問題再進(jìn)行求解,該目標(biāo)函數(shù)就成為
求解線性方程組,使F(V)達(dá)到極小,就得到了光順后的曲面S(u,v)的控制頂點(diǎn)。
在應(yīng)用遺傳蟻群算法及能量法進(jìn)行曲面優(yōu)化過程中,與曲線優(yōu)化一樣,首先將以上得到的曲面型值點(diǎn)反求,從而得到優(yōu)化前曲面的控制頂點(diǎn),利用網(wǎng)格能量法建立數(shù)學(xué)模型,再通過遺傳蟻群算法進(jìn)行優(yōu)化運(yùn)算,從而得到優(yōu)化后曲面新的控制頂點(diǎn),完成曲面優(yōu)化運(yùn)算,雖然利用這種算法進(jìn)行的曲面優(yōu)化更光順,曲率變化更均勻,但是,應(yīng)用此方法的計(jì)算量很大,計(jì)算過程過度繁瑣。所以,曲面優(yōu)化要借助于曲線優(yōu)化方法,從而使過程更加簡(jiǎn)單,為此提出先把脊柱曲線和幾條橫向背部曲線進(jìn)行優(yōu)化(橫向曲線優(yōu)化方法如脊柱曲線),用優(yōu)化后的曲線形成曲面,最后用曲率分析驗(yàn)證優(yōu)化結(jié)果。優(yōu)化前曲線如圖5,優(yōu)化后曲線如圖6 所示。
圖5 優(yōu)化前曲面
圖6 優(yōu)化后曲面
分別對(duì)遺傳算法及改進(jìn)遺傳蟻群算法優(yōu)化的曲面曲率分析,利用曲率分析圖對(duì)兩種優(yōu)化算法進(jìn)行比較。具體的比較效果如圖7~9 所示。
通過光順后的分析圖可知,以能量法優(yōu)化的目標(biāo)函數(shù)為適應(yīng)度函數(shù)的改進(jìn)遺傳蟻群算法優(yōu)化,比傳統(tǒng)的優(yōu)化效果更加明顯。優(yōu)化后的曲線曲面不僅滿足優(yōu)化條件而且優(yōu)化的更加光順。
應(yīng)用能量法及改進(jìn)遺傳蟻群算法進(jìn)行曲線曲面優(yōu)化設(shè)計(jì)方法研究。通過實(shí)踐證明,兩種方法的結(jié)合可以更好地解決了曲線曲面優(yōu)化設(shè)計(jì)中的光順問題。但是對(duì)于提出的能量法及以及改進(jìn)的遺傳蟻群算法在曲面優(yōu)化方法,有待于進(jìn)一步研究改進(jìn)。
圖7 優(yōu)化前曲面曲率分析圖
圖8 遺傳算法曲率圖
圖9 遺傳蟻群算法曲率圖
[1]朱心雄.自由曲線曲面造型技術(shù)[M].北京:科學(xué)出版社,2000.
[2]王魯.基于遺傳算法的多目標(biāo)優(yōu)化算法[D].武漢:武漢理工大學(xué),2006.
[3]傅亞楠.CATIA 逆向造型曲面優(yōu)化技術(shù)研究[D].長春:長春理工大學(xué),2011.
[4]王立濤,賈明.能量法曲面光順技術(shù)研究與探索[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào):自然科學(xué)版,2003(1):110-112.
[5]趙義武,牛慶銀,王憲成.遺傳算法與蟻群算法的融合研究[J].科學(xué)技術(shù)與工程,2010(16):4017-4020.
[6]龔春林.多學(xué)科設(shè)計(jì)優(yōu)化技術(shù)研究[D].西安:西北工業(yè)大學(xué),2005.
[7]林昌華,趙利華,張甲瑞.曲面光順性的檢查及改進(jìn)方法[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué)版,2010(1):103-106.