李純金,楊秋林
(江蘇科技大學(xué) 機(jī)械工程學(xué)院,江蘇 鎮(zhèn)江 212003)
船舶外板曲面展開一般通過三角形網(wǎng)格或者四邊形網(wǎng)格進(jìn)行展開。曲面網(wǎng)格劃分成為外板曲面展開的重要部分,對船舶外板曲面展開的精度有著重要的影響。網(wǎng)格過于稀疏會使展開誤差加大,過密則會降低展開效率。對于給定的船舶型值表數(shù)據(jù),重構(gòu)外板曲面后,曲面網(wǎng)格的劃分引起了廣泛的關(guān)注。在世博軸“陽光谷”工程設(shè)計中,李承銘[1]先對參數(shù)域曲面進(jìn)行人工細(xì)分后得到平面網(wǎng)格,之后將二維平面網(wǎng)格映射回三維空間曲面,實現(xiàn)了對該參數(shù)曲面的網(wǎng)格劃分,網(wǎng)格劃分效果較好,但其步驟繁瑣,通用性不高。丁慧[2]基于傳統(tǒng)的映射方法,基于等參數(shù)線分割法的劃分方法生成自由曲面網(wǎng)格,通過等弦長分割方式對曲面參數(shù)化不均勻的問題提出初步解決方案,但其生成的網(wǎng)格曲面單元仍存在劃分混亂情況。江存[3]提出自定義單元法的自由曲面網(wǎng)格劃分,建立網(wǎng)格拓?fù)涞膮?shù)化表達(dá),改善了網(wǎng)格映射時的網(wǎng)格失真,但其方法試用范圍單一,對非NURBS曲面不適用。王結(jié)臣[4]通過柵格對空間散亂點集進(jìn)行劃分,以柵格為整體進(jìn)行區(qū)域網(wǎng)格劃分。陳永就[5]與衛(wèi)洪春[6]分別通過直接剖分及遞歸程序分別對四邊形及三角形網(wǎng)格進(jìn)行了處理,網(wǎng)格擴(kuò)展過程中變形量較小。石磊[7]對現(xiàn)有的細(xì)分算法做出了分析,并同時指出了現(xiàn)有細(xì)分算法的劣勢。針對船舶外板曲面的網(wǎng)格細(xì)分算法研究不多,由于船舶外板曲面曲率比較復(fù)雜,需考慮網(wǎng)格劃分疏密對于以后外板曲面展開精度的影響。
Delaunay三角網(wǎng)格劃分為數(shù)值分析及圖形學(xué)方面重要技術(shù)手段,如圖1所示,Delaunay三角網(wǎng)格是將空間測量數(shù)據(jù)點投影到平面來實現(xiàn)的二維劃分法。算法基本思想為每一個Delaunay三角形的外接圓內(nèi)部不包含其他結(jié)點,一旦檢測到三角形外接圓含有其他結(jié)點后,就必須修改局部的網(wǎng)格劃分,直至滿足起始條件為止。
Delaunay三角網(wǎng)格劃分步驟為:
1)構(gòu)造大外接圓,使其包含所有結(jié)點,進(jìn)行步驟2;
2)每次導(dǎo)入一個結(jié)點,重復(fù)進(jìn)行步驟3~步驟5;
3)找出已有三角形中哪些外接圓包含新引入的結(jié)點,轉(zhuǎn)步驟4;
4)刪除這些三角形中離新結(jié)點最近的一條邊,轉(zhuǎn)步驟5;
5)將新結(jié)點與老結(jié)點連接,產(chǎn)生新的三角形,算法示意圖如圖2所示。
多邊形域由Delaunay三角網(wǎng)格劃分后生成的網(wǎng)格還不能滿足幾何造型或者有限元分析的需求,為此需對初步劃分后的網(wǎng)格作進(jìn)一步的細(xì)化,在邊界或者圖形區(qū)域內(nèi)部插入適當(dāng)?shù)墓?jié)點,提高網(wǎng)格的質(zhì)量。
對于給定的點云數(shù)據(jù)或者三角網(wǎng)格,構(gòu)造細(xì)分曲面使得曲面插值于點云或者三角網(wǎng)格頂點,就是細(xì)分曲面插值問題。
蝶形算法為一種插值細(xì)分算法,如圖3所示在每一條邊上引入一個新頂點,頂點的值由模型中8個頂點的值加權(quán)平均得到。權(quán)重系數(shù)設(shè)置為:
其中為張力系數(shù) ,與表面的光滑程度有關(guān)。蝶形算法產(chǎn)生C1連續(xù)的細(xì)分網(wǎng)格,但是對奇異點的處理不夠。
多面體算法在三角形網(wǎng)格細(xì)分中屬于最簡便的算法,算法基本思想是在三角形網(wǎng)格每2個頂點連線中間引入新的頂點,將原有單個三角形網(wǎng)格細(xì)分為4個三角網(wǎng)格。新引入頂點的位置通過取其所在連線兩端2個頂點加權(quán)平均值確定,該算法不受奇異點影響,常用于細(xì)分算法的原理介紹。圖4為多面體細(xì)分示意圖。
Loop算法是一種逼近細(xì)分算法,其算法步驟主要分為3步,首先生成邊界點,之后移動原有頂點,最后生成光滑表面(切平面連續(xù))。
若以為曲面中心頂點,為相鄰頂點構(gòu)成傘狀網(wǎng)格,再根據(jù)Loop算法就可得到下式:
綜合上述兩式得到如下局部細(xì)分矩陣形式:
中心頂點處的局部細(xì)分矩陣即為式(4)中的矩陣,采用靜態(tài)的網(wǎng)格細(xì)分模式,與網(wǎng)格頂點在網(wǎng)格中所處位置無關(guān),只與階數(shù)有關(guān)。
自適應(yīng)網(wǎng)格劃分(Adaptive Triangular Meshing)算法通過自動估算曲面曲率的大小,結(jié)合Delaunay算法,自動選擇合適的劃分密度,避免了人工劃分的繁瑣,提高了劃分效率。針對船舶外板曲面自適應(yīng)網(wǎng)格劃分算法基本步驟如下:
1)提取船舶型值表數(shù)據(jù),通過B樣條工具進(jìn)行參數(shù)化曲面重構(gòu),得到參數(shù)化曲面;
2)選定曲面適當(dāng)區(qū)域,在參數(shù)化曲面方向上選取相向的2條曲線,從一端的頂點開始搜索,計算步長兩端點弦長或者弧長(估算值)差的絕對值,將其值稱為弦弧差;
3)設(shè)定弦弧差許用范圍,將步驟2得到的值與弦弧差范圍比較,如果在弦弧差范圍之內(nèi),記錄步長,并生成劃分用網(wǎng)格線,否則步驟4;
4)調(diào)整步長重新判斷,直至滿足弦弧差范圍;
5)重復(fù)步驟2~步驟4,直到搜索至邊界的終點;
6)所有搜索完畢后得到的是四邊形網(wǎng)格,此時進(jìn)行Delaunay三角化生成細(xì)分網(wǎng)格。
3.1節(jié)所述ATM算法步驟適用于矩形參數(shù)域。對于非矩形參數(shù)域而言,需要先對曲面進(jìn)行擴(kuò)展補(bǔ)充,通過方 向的最大與最小參數(shù)值確定一個矩形域,此矩形域為原先非矩形參數(shù)域的最小外接矩形域。
以向網(wǎng)格劃分為例,如圖5所示,原先參數(shù)域為非矩形參數(shù)域,建立如圖的坐標(biāo)系,通過最大參數(shù)值及最小參數(shù)值構(gòu)建最小外接矩形參數(shù)域,包含原有的多邊形域中所有點。B與b之間距離的絕對值為劃分的步長值,將其與設(shè)定的弦弧差范圍比較。
選中由最值形成的參數(shù)化區(qū)域,由a、b兩點開始搜索,給定初始步長l,求出a與A,b和B之間的弦弧差的值,其中較大的弦弧差的值記作,較小的記作。 給定的許用弦弧差最小值為,許用弦弧差最大值為。判斷當(dāng)則滿足條件,步長合適并生成劃分網(wǎng)格線,否則需要重新修改步長再判定。
步長關(guān)系調(diào)整基于精度為主,效率為輔的原則。實際與許用弦弧差關(guān)系總共分為7種,如圖6所示,上面部分圖形為實際弦弧差絕對值,左端為最小值,右端為最大值,下面部分圖形為許用弦長差絕對值,左端為許用弦弧差范圍最小值,右端為許用弦弧差最大值。
針對7種步長關(guān)系圖進(jìn)行如下調(diào)整:
1)在情況1中,實際的弦弧差范圍均處于許用弦弧差范圍內(nèi),,,滿足判斷條件,可以記錄步長,生成網(wǎng)格劃分線,并進(jìn)行下一步搜索;
2)在情況2中,實際弦弧差與許用弦弧差關(guān)系為,,此時需要加大步長,在其滿足判斷條件后記錄步長,生成網(wǎng)格劃分線;
3)在情況3中,實際弦弧差最大值小于許用弦弧差最大值,關(guān)系為,,跟情況2的不同之處在于此時實際弦弧差最大值接近于許用弦弧差,不能加大步長,記錄步長,生成網(wǎng)格劃分線;
4)情況4中實際弦弧差與許用弦弧差關(guān)系為,,此時需要縮小步長,使得,即滿足情況1或情況3的狀態(tài),當(dāng)滿足這個條件時記錄步長,并生成網(wǎng)格劃分線;
5)情況5中實際弦弧差與許用弦弧差關(guān)系為,,此時需要增大步長值,在其滿足判斷條件后記錄步長,生成網(wǎng)格劃分線;
6)情況6中實際弦弧差與許用弦弧差關(guān)系為,此時需要縮小步長,記錄步長,在其滿足判斷條件后記錄步長,生成網(wǎng)格劃分線;
7)情況7中實際弦弧差與許用弦弧差關(guān)系為,,此時減少步長值,使其達(dá)到情況3的狀態(tài)。
算法實現(xiàn)電腦配置為PC i3CPU,M350 @2.27 GHz RATM4G。根據(jù)提供的船舶型值表數(shù)據(jù)首先通過B樣條進(jìn)行曲面重構(gòu)得到其參數(shù)化曲面,之后通過自適應(yīng)算法得出船舶曲面外板實現(xiàn)網(wǎng)格劃分效果。具體實現(xiàn)流程如圖7所示。
船舶外板曲面實例效果如圖8所示。經(jīng)過自動調(diào)整劃分的網(wǎng)格對于船舶外板的復(fù)雜曲面展開的精度更有益處。
下式為計算曲面展開面積誤差的表達(dá)式:
其中和為展開前后的三角網(wǎng)格的對應(yīng)三角形的面積值;為空間曲面第個頂點相連的三角形的個數(shù)。
如表1所示,在對不同劃分網(wǎng)格數(shù)的曲面進(jìn)行展開后,得到的曲面面積變化誤差也不同。對初始曲面分別進(jìn)行劃分處理,得到網(wǎng)格數(shù)為460,900,1 840的三角形網(wǎng)格曲面以及自適應(yīng)細(xì)分后的1 386個三角片的曲面,借助現(xiàn)有的三角形展開方法進(jìn)行展開后,得到相應(yīng)的面積誤差??梢姡瑢τ诰?xì)劃分后的曲面展開來講,其展開的面積誤差較小,對于船板制造加工具有指導(dǎo)意義。
表1 不同網(wǎng)格數(shù)曲面展開誤差對比Tab.1 The number of different grid surface expansion error comparison
本文取船舶曲面分段進(jìn)行曲面網(wǎng)格的劃分研究,針對船舶曲面外板曲面的復(fù)雜特征而言,選擇合適的網(wǎng)格劃分方式對外板展開尤為重要。通過B樣條工具進(jìn)行曲面重構(gòu),之后對重構(gòu)出的四邊形網(wǎng)格作進(jìn)一步的細(xì)分網(wǎng)格處理,并通過曲面展開驗證細(xì)分網(wǎng)格的效果?,F(xiàn)有的網(wǎng)格細(xì)分方法對劃分網(wǎng)格的準(zhǔn)確性存在一定缺陷,將Delaunay三角網(wǎng)格劃分與自適應(yīng)劃分算法結(jié)合起來,利用自適應(yīng)劃分網(wǎng)格的準(zhǔn)確性,實現(xiàn)船舶外板曲面的三角網(wǎng)格化處理,為曲面展開做好鋪墊。
[1]李承銘, 盧旦.自由曲面單層網(wǎng)格的智能布局設(shè)計研究[J].土木工程學(xué)報, 2011, 3: 1–7.
[2]丁慧.自由形態(tài)空間網(wǎng)格結(jié)構(gòu)的網(wǎng)格設(shè)計方法研究與實現(xiàn)[D].杭州: 浙江大學(xué), 2014.
[3]江存.自由曲面空間網(wǎng)格結(jié)構(gòu)網(wǎng)格劃分、優(yōu)化及力性能研究[D].杭州: 浙江大學(xué), 2015.
[4]陳永就, 林川.基于直接剖分的球面四邊形離散格網(wǎng)生成方法[J].地理空間信息, 2015, 3: 130–132+12.
[5]衛(wèi)洪春.多邊形三角剖分與三角細(xì)分的研究與實現(xiàn)[J].計算機(jī)與現(xiàn)代化, 2015, 7: 65–68, 76.
[6]石磊, 薛珊.基于三角形網(wǎng)格的幾種典型細(xì)分曲面方法概述[J].赤峰學(xué)院學(xué)報(自然科學(xué)版), 2013, 14: 13–14.
[7]LI Qi-rui.Surfaces expanding by the power of the Gausscurvature flow[J].Proceedings of the American Mathematical Society, 2010.