吳海東,高 健,李 思
(1.廣東輕工職業(yè)技術(shù)學(xué)院 汽車系,廣東 廣州 510300;2.廣東工業(yè)大學(xué) 機(jī)電工程學(xué)院,廣東 廣州 510006)
G2連續(xù)非均勻B樣條閉合曲線迭代擬合算法
吳海東1,2,高 健2,李 思2
(1.廣東輕工職業(yè)技術(shù)學(xué)院 汽車系,廣東 廣州 510300;2.廣東工業(yè)大學(xué) 機(jī)電工程學(xué)院,廣東 廣州 510006)
基于盈虧修正思路,提出一種二階連續(xù)B樣條閉合曲線迭代擬合算法,解決閉合曲面截面線重構(gòu)問題。該算法在非均勻B樣條曲線迭代擬合基礎(chǔ)上,加入曲線閉合和二階連續(xù)性等約束,迭代得到曲線控制點(diǎn)以擬合閉合曲線。最后以扭曲葉片截面線輪廓實(shí)例驗(yàn)證了算法有效性。
二階幾何連續(xù)性;閉合B樣條曲線;迭代算法;扭曲葉片
B樣條曲線曲面擬合是計(jì)算機(jī)輔助幾何設(shè)計(jì)、逆向工程、再制造工程的基礎(chǔ)性問題。傳統(tǒng)上,為得到B樣條曲線需要解算線性方程組來反求控制點(diǎn),但這種全局性插值方法,一個(gè)插值點(diǎn)的微小變化,會(huì)引起反求過程的重新進(jìn)行和反求結(jié)果的全部變動(dòng),失去了B樣條曲線局部性特點(diǎn)[1]?;诖耍珹kemi、周國(guó)華等人[2-3]提出了一種用遺傳算法對(duì)數(shù)據(jù)點(diǎn)參數(shù)化和節(jié)點(diǎn)矢量進(jìn)行優(yōu)化配置的方法,與傳統(tǒng)算法相比,同樣精度時(shí)用遺傳算法的控制點(diǎn)數(shù)要少很多,但存在收斂速度慢而導(dǎo)致的計(jì)算速度慢問題。齊東旭等[4-5]直接迭代計(jì)算插值曲線曲面的控制點(diǎn),提出了樣條曲線擬合的盈虧修正方法,并給出了均勻B樣條曲線迭代格式。藺宏偉[6]提出了非均勻B-spline曲線曲面的迭代擬合算法,并用矩陣?yán)碚撟C明了迭代極限曲線曲面插值于給定數(shù)據(jù)點(diǎn)集,算法具有局部性、收斂性、保凸性等優(yōu)點(diǎn)。史利民等[7]基于文獻(xiàn)[6]提出了NURBS曲線曲面擬合數(shù)據(jù)點(diǎn)的迭代算法。這些迭代算法的計(jì)算速度快,對(duì)于復(fù)雜曲面的擬合優(yōu)勢(shì)明顯。
B樣條擬合曲線往往是在曲線擬合完成之后再去對(duì)其進(jìn)行光順處理,這就犧牲了曲線擬合精度[8]。本文提出一種B樣條曲線迭代算法,即在迭代非均勻B樣條曲線算法基礎(chǔ)上,加入曲線閉合和二階幾何連續(xù)性等約束條件,擬合與光順處理同步進(jìn)行,得到一條二階連續(xù)且閉合的非均勻B樣條曲線。
1.1 B-spline曲線表達(dá)式
k次B樣條曲線定義為:
其中:di(i=0,1,…,n)為控制點(diǎn);Ni,k(u)(i=0,1,…,n)為k次B樣條基函數(shù);節(jié)點(diǎn)矢量U滿足:u0≤u1≤…≤un+k+1。
1.2 計(jì)算節(jié)點(diǎn)矢量
故節(jié)點(diǎn)矢量U定義為:
U=[u0,u1,…,uk,uk+1,…,un,un+1,…,un+k+1].
1.3 幾何連續(xù)性條件
本文在處理曲線光順性問題上采用與參數(shù)選取無關(guān)的幾何連續(xù)性來度量。采用Beta約束定義曲線幾何連續(xù)性,即:
(1)
首先,要滿足G0連續(xù),就要滿足曲線首尾控制點(diǎn)重合,即:
d0=dn.
(2)
然后,要滿足G1連續(xù),k次B樣條曲線首尾連接點(diǎn)切矢量為:
(3)
(4)
將式(2)、式(3)和式(4)代入式(1)中,得到B樣條曲線G1連續(xù)性條件為:
(5)
其次,要滿足G2連續(xù),B樣條曲線在首尾連接處二階導(dǎo)矢為:
(6)
(7)
將式(3)、式(4)、式(5)、式(6)和式(7)代入式(1)中,得到閉合B樣條曲線G2連續(xù)性條件為:
(8)
2.1 算法描述
為了擬合閉合且二階連續(xù)的B樣條曲線,在迭代算法中加入閉合和G2連續(xù)性條件。具體迭代過程如下:
(1) 迭代之初,令:
(9)
(10)
(11)
(12)
(2) 進(jìn)一步,記第j個(gè)控制頂點(diǎn)首次調(diào)整量為:
(13)
(14)
(15)
(16)
(17)
(18)
(3) 依次類推,如果已得到第t次迭代后的B樣曲線pt(u),記第j個(gè)控制頂點(diǎn)的第t+1次調(diào)整量為:
(19)
(20)
(21)
(22)
(23)
(24)
在迭代過程中通過調(diào)整β1和β2的取值和迭代次數(shù)來得到曲線,既保證了迭代精度又保證了G2曲線連續(xù)。
2.2 算法修正
在迭代中,發(fā)現(xiàn)曲線首尾連接點(diǎn)d0和dn左右分別受兩對(duì)控制點(diǎn)(d1,dn-1)和(d2,dn-2)的影響,導(dǎo)致這些點(diǎn)誤差變大,影響擬合結(jié)果。具體分析如下:
(25)
基于上述不足,將算法作如下調(diào)整,即在每一次迭代中,令:
(26)
本文以扭曲葉片截面輪廓線為實(shí)例,取其橫截面輪廓線上45個(gè)測(cè)點(diǎn),用Visual C++編寫該算法計(jì)算B樣條曲線控制點(diǎn),并擬合B樣條曲線,最后用Imageware檢測(cè)擬合曲線與原始模型的誤差。
圖1、圖2分別為扭曲葉片橫截面輪廓線原始圖形和用本文算法迭代20次后擬合的葉片橫截面輪廓線。
圖1 葉片橫截面輪廓線數(shù)據(jù)點(diǎn)
圖2 迭代20次后擬合的葉片輪廓線
圖3是在Imageware中檢測(cè)迭代20次后擬合曲線與原曲線之間的誤差對(duì)比。結(jié)果表明迭代20次后曲線擬合最大誤差為0.033 1 mm,最小誤差為0.005 mm,平均誤差為0.006 5 mm。
將得到的IGES文件格式導(dǎo)入U(xiǎn)G,以檢驗(yàn)生成的IGES文件是否滿足二階連續(xù)性要求。圖4為截面線首尾連接處的曲率梳,從圖4可以看出,擬合的扭曲葉片截面線曲率梳平滑過渡。
本文提出了一種迭代擬合非均勻B樣條曲線的算法。算法中,加入了曲線首尾閉合及幾何連續(xù)的二階Beta約束條件,并基于誤差約束對(duì)迭代算法做了修正,提高了擬合曲線精度。最后,用扭曲葉片橫截面輪廓測(cè)點(diǎn)進(jìn)行了曲線擬合,驗(yàn)證了此算法的有效性。
圖3 誤差分析結(jié)果
圖4 截面線首尾連接處的曲率梳
[1] 施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M].北京:高等教育出版社,2013.
[2] Akemi Galvez, Andres Iglesias, Jaime Puig-Pey. Iterative two-step genetic-algorithm-based method for efficient polynomial B-spline surface reconstruction[J]. Information Sciences,2012,182:56-76.
[3] 周國(guó)華,王國(guó)昭.基于遺傳算法的B樣條曲線和Bezier曲線的最小二乘擬合[J].計(jì)算機(jī)研究與發(fā)展, 2005,42(1):134-143.
[4] 齊旭東,田伯賢.曲線擬合的數(shù)值磨光方法 [J].數(shù)學(xué)學(xué)報(bào),1975,18(3):173-184.
[5] 齊東旭.關(guān)于計(jì)算機(jī)輔助幾何造型中數(shù)學(xué)方法的若干注記[J].北方工業(yè)大學(xué)學(xué)報(bào),1991,3(1):1-8.
[6] 藺宏偉,王國(guó)瑾,董辰世.用迭代非均勻B-spline曲線(曲面)擬合給定點(diǎn)集[J].中國(guó)科學(xué),2003,33(10): 912-923.
[7] 史利民,王仁宏.NURBS曲線曲面擬合數(shù)據(jù)點(diǎn)的迭代算法[J].數(shù)學(xué)研究與評(píng)論,2006,26(4):735-743.
[8] 尹小奎,李奇敏,葉仲泉,等.NURBS曲面光順方法綜述[J].圖學(xué)學(xué)報(bào),2012,33(5):13-18.
[9] Les Piegl, Wayne Tiller.非均勻有理B樣條[M]. 趙罡,穆國(guó)旺,王拉柱,譯.北京:清華大學(xué)出版社,2010.
An Iterating Fitting Algorithm ofG2Continuous and Closed Nonuniform B-Spline Curve
WU Hai-dong1,2, GAO Jian2, LI Si2
(1. Department of Automobile, Guangdong Industry Technical College, Guangzhou 510300, China; 2. School of Mechanical and Electrical Engineering, Guangdong University of Technology, Guangzhou 510006, China)
Based on the profit-loss modification, an iterating fitting algorithm ofG2continuous and closed nonuniform B-spline curve is provided to solve the problem of cross section profile reconstruction of closed curves. Combined the constraints of closed curve andG2continuity, the control points of the target curve are calculated to fit the cross section profile of closed surface by the iterating method of nonuniform B-spline curves. As a result, the validity of the algorithm is verified by a reconstructed example of cross section profile for twisted turbine blade.
G2continuity; closed nonuniform B-spline curve; iterating algorithm; twisted turbine blade
1672- 6413(2015)06- 0008- 03
國(guó)家自然科學(xué)基金資助項(xiàng)目(51175093);廣東省重大科技項(xiàng)目(2010A080401003)
2015- 02- 02;
2015- 08- 16
吳海東(1969-),男,湖北蘄春人,講師,在讀博士,研究方向:復(fù)雜曲面修復(fù)。
TP391.7
A