秦賢杰, 黃有度
(合肥工業(yè)大學(xué) 數(shù)學(xué)學(xué)院,安徽 合肥 230009)
B樣條曲線曲面的一種光順算法
秦賢杰, 黃有度
(合肥工業(yè)大學(xué) 數(shù)學(xué)學(xué)院,安徽 合肥 230009)
文章給出了一種新的B樣條曲線曲面光順算法,該算法以型值點的變動量為未知量,以型值點變動量的變動范圍為約束條件,給出能量函數(shù);通過遺傳算法對能量函數(shù)最小化求解,直接得到光順后的新的型值點;最后給出實例,表明該B樣條曲線曲面光順算法是一種有效的光順算法。
B樣條;曲面;遺傳算法;光順;能量函數(shù)
在工業(yè)設(shè)計和反求工程中,B樣條曲線曲面是一種進行形狀設(shè)計和數(shù)據(jù)擬合的重要工具[1]。B樣條曲線曲面的光順性對最終產(chǎn)品外觀有著直接影響。光順處理包括曲線、曲面的光順性檢查和光順準則制定以及曲線、曲面的修正,現(xiàn)將分別討論這3個問題。國內(nèi)外已有大量文獻研究曲線曲面的光順問題,但以型值點作為優(yōu)化變量的文獻較少。文獻[2-3]用應(yīng)變能最小作為光順準則,加上約束條件對曲線曲面進行局部光順,其最優(yōu)化變量為曲線曲面的控制頂點。文獻[4-6]將控制頂點作為優(yōu)化變量,盡管其光順準則有所不同。以控制頂點為優(yōu)化變量的光順方法,曲線曲面光順后仍需曲線曲面與直線求交,然后求得光順后型值點。與現(xiàn)有方法相比,本文方法直接以型值點變動量作為優(yōu)化變量,光順后直接得到型值點的變動量及新的型值點,這在船舶型線放樣中有較強的實用性。
在實際工作中,經(jīng)常會要求根據(jù)給定的型值點用樣條攀成一條經(jīng)過這些型值點的曲線,即數(shù)學(xué)中所說的按順序插值型值點生成相應(yīng)曲線。設(shè)給定型值點Q0,Q1,…,Qn,本文用3次B樣條曲線按順序插值這些型值點[7]。型值點的參數(shù)化為累加弦長參數(shù)化,即令:
其中,li=|Qi-1Qi|。設(shè)U={u0,u1,…,un+6}=}為3次B樣條的節(jié)點空間。B樣條基函數(shù)的遞推公式為:
現(xiàn)在檢查各型值點Qi(即P))附近的曲率變化情況,P()附近曲率變化記作ΔK)。令,其中,i=1,2,…,n-1。K(u)為3次B樣條曲線P(u)的曲率,令
P)附近曲率變化)作為曲線光順性的檢查。大者說明型值點)點附近曲率變動大,相反,小者說明型值點點附近曲率變動小。此處認為小者附近曲線比大者附近曲線更為光順。找出 max{,i=1,2,…,n-1},假設(shè)為,則將Qj、Qj-1、Qj+1作 為 待 光 順 的型值點。
算法的基本步驟如下:
(1)找出“瑕點”,即型值點中型值點附近曲率變化最大的型值點。設(shè)max{ΔK(),i=1,2,…,n-1}為 ΔK(),則Qj即為所對應(yīng)的“瑕點”。
(2)將Qj、Qj-1、Qj+1作為待修改的型值點。
(3)給定修改約束,設(shè)為新型值點,Δj=|-Qj|≤ε,ε為給定的約束范圍。
(4)利用基本遺傳算法求解新型值點、
遺傳算法求解步驟如下[9]:
(1)設(shè)型值點Qj、Qj-1、Qj+1的變動量Δj、Δj-1、Δj+1為 基 因,種 群 數(shù) 為 30,進 化 代 數(shù)為1 000。
(2)令=Qj+Δj;=Qj-1+Δj-1;,重新插值生成經(jīng)過新型值點的3次B樣條曲線,將作為適應(yīng)度函數(shù)。
(3)經(jīng)過選擇、交叉、變異等操作后,終止進化,最終得到型值點的變動量Δj、Δj-1、Δj+1及新的型值點,即:=Qj+Δj,=Qj-1+Δj-1,
(4)插值新型值點生成光順后的3次B樣條曲線。
(5)判斷是否繼續(xù)修改曲線,此時既可以設(shè)定為人工判斷,也可以設(shè)定為計算機自動根據(jù)條件完成判斷。
圖1所示為某工程船型線圖中1條站線的部分曲線圖,圖2所示為帶有噪聲的曲線圖,圖3所示為用本文算法對圖2進行3次光順后的曲線圖。可以看出本文曲線光順算法十分有效。圖1~圖3中上方為曲線上離散點的曲率圖。
對曲面的光順一般可以轉(zhuǎn)化為對曲面的網(wǎng)格曲線或曲面的u、v方向參數(shù)曲線的光順。本文將曲面的光順轉(zhuǎn)化為對曲面的網(wǎng)格曲線的光順。給定型值點列{Qi,j},i=0,1,…n,j=0,1,…,m。根據(jù)上述插值曲線的方法,可以生成2組曲線,一組以{Qi,j}每一橫列的m+1個型值點生成n+1條3次B樣條曲線組,此處稱為水線組;另一組以{Qi,j}每一豎列的n+1個型值點生成m+1條3次B樣條曲線組,此處稱為站線組。
其中,i=1,2,…,n-1;j=1,2,…,m-1;K(u)為3次B樣條曲線P(u)的曲率,令
Qi,j附近網(wǎng)格曲線的曲率變化ΔK(i,j)作為網(wǎng)格曲線光順性的檢查。ΔK(i,j)大者說明型值點Qi,j點附近網(wǎng)格曲率變動大;ΔK(i,j)小者說明型值點Qi,j點附近網(wǎng)格曲率變動小。ΔK(i,j)小者附近網(wǎng)格曲線比ΔK(i,j)大者附近網(wǎng)格曲線更為光順。找出 max{ΔK(i,j),i=1,2,…,n-1;j=1,2,…,m-1},假設(shè)為 ΔK(i,j),則 將Qi,j、Qi-1,j、Qi+1,j、Qi,j-1、Qi,j+1作為待光順的型值點。
曲面光順過程中,可以將?Ω+)dΩ作為曲面光順程度的判定[5],其中,k1、k2為曲面的主曲率。本文按照上述曲線光順中的方法,將2組B樣條曲線組的應(yīng)變能總和最小作為光順準則,,其中,Wi為第i+1條站線的應(yīng)變能;Vj為第j+1條水線的應(yīng)變能,其求法與上文相同。
算法的基本步驟如下:
(1)找出“瑕點”,即型值點列中型值點附近網(wǎng)格曲率變化最大的型值點。max{ΔK(i,j),i=1,2,…,n-1,j=1,2,…,m-1},設(shè)為 ΔK(i,j),則Qi,j即為所對應(yīng)的“瑕點”。
(2)將Qi,j、Qi-1,j、Qi+1,j、Qi,j-1、Qi,j+1作為待修改的型值點。
(3)給定修改約束,設(shè)為新型值點,Δi,j=≤ε,ε為給定的約束范圍。
(4)利用基本遺傳算法求解新型值點、
遺傳算法求解步驟如下:
(1)設(shè)型值點Qi,j、Qi-1,j、Qi+1,j、Qi,j-1、Qi,j+1的變動量Δi,j、Δi-1,j、Δi+1,j、Δi,j-1、Δi,j+1為基因,種群數(shù)為30,進化代數(shù)為1 000。
(2)令=Qi,j+Δi,j,=Qi-1,j+Δi,j-1,=Qi,j+1+Δi,j+1,重新插值生成經(jīng)過新型值點的3次B樣條曲線網(wǎng)格,將作為適應(yīng)度函數(shù)。
(3)經(jīng)過選擇、交叉、變異等操作后,終止進化,最終 得 到 新 的 型 值 點 的 變 動 量Δi,j、Δi-1,j、Δi+1,j、Δi,j-1、Δi,j+1及新型值點,即
(5)插值新型值點生成光順后的3次B樣條曲線網(wǎng)格。
(6)判斷是否繼續(xù)修改曲線網(wǎng)格,此時既可以設(shè)定為人工判斷,也可以設(shè)定為計算機自動根據(jù)條件完成判斷。
(7)根據(jù)光順后的型值點及B樣條曲線網(wǎng)格,用蒙皮法生成B樣條曲面。
圖4所示為某工程船部分水線、站線網(wǎng)格圖。
圖4 水線、站線網(wǎng)格
圖5所示為帶有噪聲的網(wǎng)格圖,圖6所示為用本文算法對圖5進行10次光順后的網(wǎng)格圖。從中可以看出本文算法是十分有效的。
本文提出了一種新的B樣條曲線曲面的光順算法,以型值點的變動量為未知量,以型值點變動量的變動范圍為約束條件,給出能量函數(shù),通過遺傳算法對能量函數(shù)最小化求解,直接得到光順后的新的型值點。該算法的優(yōu)點在于以型值點變化量作為變量,光順處理后直接得到光順后的型值點,這在船舶放樣等工業(yè)工程中有較強的實際應(yīng)用。本文的不足之處在于,給定的修改約束ε過大或過小將影響光順效果。ε過大則光順后的曲線趨于平緩,ε過小則光順的次數(shù)需增加。通過實例,可以看出本文算法是十分有效的。
[1]席 平,劉 勇.反向工程中的曲面光順算法[J].北京航天航空大學(xué)學(xué)報,2002,28(2):125-128.
[2]Zhang Caiming,Zhang Pifu,Cheng Fuhua.Fairing spline curves and surfaces by minimizing energy[J].Computer-Aided Design,2001,33:913-923.
[3]Liu Yujun,Zhu Xiuli,Ji Zhuoshang.Ship hull plate processing surface fairing with constraints based on B-spline[J].Journal of Marine Science and Application,2005,4(3):13-17.
[4]屠 靜,檀結(jié)慶.參數(shù)3次B樣條曲線的一種局部光順方法[J].合 肥 工 業(yè) 大 學(xué) 學(xué) 報:自 然 科 學(xué) 版,2009,32(4):568-571.
[5]Sari¨oz E.An optimization approach for fairing of ship hull forms[J].Ocean Engineering,2006,33:2105-2118.
[6]Pérez-Arribas F,Suárez-Suárez J A,F(xiàn)ernández-Jambrina L.Automatic surface modeling of a ship hull[J].Computer-Aided Design,2006,38:84-594.
[7]Piegl L,Tiller W.The NURBS book(2ndEdition)[M].2nd ed.New York:Springer,1997:371-375.
[8]仵大偉,林 焰,紀卓尚.船體曲線曲面的B樣條光順[J].中國造船,2002,43(4):90-94.
[9]王小平,曹立明.遺傳算法:理論、應(yīng)用與軟件實現(xiàn)[M].西安:西安交通大學(xué)出版社,2002:18-50.
A kind of fairing method for B-spline curves and surfaces
QIN Xian-jie, HUANG You-du
(School of Mathematics,Hefei University of Technology,Hefei 230009,China)
In this paper,a new fairing method for B-spline curves and surfaces is presented.Taking the variation of points as the unknown and the range of the variation as the constraint,this method obtains new faired points after defining the energy function and minimizing the energy function with genetic algorithm.The examples given in the paper show the effectiveness of the method.
B-spline;surface;genetic algorithm;fairing;energy function
TP391.411
A
1003-5060(2012)03-0429-04
10.3969/j.issn.1003-5060.2012.03.032
2011-05-31;
2011-07-06
秦賢杰(1986-),男,安徽安慶人,合肥工業(yè)大學(xué)碩士生;
黃有度(1949-),男,廣西賀縣人,合肥工業(yè)大學(xué)教授,碩士生導(dǎo)師.
(責(zé)任編輯 張 镅)