孔德明, 黃紫雙, 楊 丹
(1.燕山大學(xué)電氣工程學(xué)院,河北秦皇島066004;2.根特大學(xué) 通信與信息處理系,比利時(shí)根特B-9000)
近年來(lái),隨著現(xiàn)代化工業(yè)的發(fā)展,逆向工程在機(jī)械零件加工和復(fù)雜形狀的模型構(gòu)建等相關(guān)領(lǐng)域中得到了廣泛的應(yīng)用。在許多機(jī)械零件的模型構(gòu)建中二次曲面是最為常見(jiàn)、最為基礎(chǔ)的幾何構(gòu)型,這些基礎(chǔ)構(gòu)型在制造過(guò)程上往往需要達(dá)到較高的加工精度。對(duì)于同時(shí)具有自由型曲面和二次曲面的零件,B樣條方法[1]所包括的特例Bézier方法[2]不能精確表示除拋物面以外的二次曲面,只能給出近似的表示進(jìn)而引入了誤差問(wèn)題。為了解決這個(gè)問(wèn)題,具有多項(xiàng)式表達(dá)的有理B樣條[3]被提出。其中非均勻有理B樣條(non-uniform rational B-spline,NURBS)方法[4]利用非均勻的節(jié)點(diǎn)向量表達(dá)式構(gòu)造有理B樣條函數(shù),為標(biāo)準(zhǔn)的解析結(jié)構(gòu)和自由型曲面提供了統(tǒng)一的數(shù)學(xué)表示,適用于各種自由型曲面及組合式曲面模型的構(gòu)建,并且具有更好的連續(xù)性和光順性。在國(guó)際標(biāo)準(zhǔn)化組織(ISO)頒布的工業(yè)產(chǎn)品幾何定義的STEP標(biāo)準(zhǔn)中,NURBS作為自由型曲線曲面的唯一表示方法在逆向工程中得到了廣泛的應(yīng)用。
目前曲面重構(gòu)研究主要集中在自由曲面擬合,二次曲面的NURBS擬合方法還存在著擬合精度低、擬合過(guò)程復(fù)雜的問(wèn)題。為利用NURBS方法得到高精度的二次曲面,Piegl L等[5,6]提出采用二階周期NURBS曲線來(lái)精確表示球面或橢球面。該方法通過(guò)對(duì)周期曲線進(jìn)行平移、旋轉(zhuǎn)和縮放得到目標(biāo)曲面,所需數(shù)據(jù)量少,擬合過(guò)程簡(jiǎn)單,擬合效果好。但該方法只能對(duì)周期曲線進(jìn)行修改,僅適用于由一條擬合曲線通過(guò)旋轉(zhuǎn)、縮放得到的旋轉(zhuǎn)曲面和對(duì)稱曲面,對(duì)于非旋轉(zhuǎn)類的拼接曲面并不適用。馬力全等[7,8]提出通過(guò)對(duì)數(shù)據(jù)點(diǎn)插值生成擬合曲面,并采用最小二乘極小化法對(duì)構(gòu)造的曲面進(jìn)行修正,該方法具有充分的靈活性,可以通過(guò)修改輸入數(shù)據(jù)項(xiàng)來(lái)逼近曲面的形狀,適用于任何二次曲面的擬合,但采用最小二乘逼近需要確定逼近曲面的合適次數(shù)才能滿足精度要求,實(shí)現(xiàn)過(guò)程較復(fù)雜。
本文根據(jù)二次曲面的形狀特征選取u、v參數(shù)化方向,改善了插值曲面的擬合效果;在避免多次進(jìn)行控制點(diǎn)調(diào)整的前提下,求解得到NURBS擬合高質(zhì)量二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)的合理選取范圍,簡(jiǎn)化了擬合過(guò)程,為非對(duì)稱的二次曲面拼接零件的構(gòu)建提供了數(shù)據(jù)基礎(chǔ);并以實(shí)例曲面為對(duì)象,對(duì)比分析了本文方法和傳統(tǒng)NURBS擬合方法[8,9]的擬合效果和擬合時(shí)間。相較于多項(xiàng)式擬合NURBS方法可以任意修改二次曲面拼接類零件的幾何形狀。
NURBS曲面的參數(shù)化方向?qū)?yīng)于曲面上參數(shù)增加的方向。曲面的參數(shù)化方向是不唯一的,選擇合適的參數(shù)化方向能夠改善曲面的擬合精度。曲面的u、v參數(shù)化方向選擇步驟如下:
Step1:根據(jù)要求擬合的二次曲面的一般方程式中的系數(shù)求解曲面判別式。
Step2:由判別式結(jié)果和判別條件判定曲面的形狀特征。
Step3:根據(jù)曲面的形狀特征選擇u、v參數(shù)化方向。
根據(jù)二次曲面的方程式推斷曲面的形狀特征,給出二次曲面的一般方程式式(1),以及判別式(2)~式(4)。
F(x,y,z)=a11x2+a22y2+a33z2+a12xy+a23yz+
a31zx+a1x+a2y+a3z+a4=0
(1)
(2)
(3)
(4)
式中:(x,y,z)是二次曲面上的點(diǎn)坐標(biāo);Δ、δ是二次曲面的不變量矩陣,矩陣中的元素a是二次曲面方程系數(shù);Δ0、δ0是位置判別式。
將二次曲面方程式中的各項(xiàng)系數(shù)分別代入判別式中進(jìn)行求解,當(dāng)判別式結(jié)果滿足下面兩個(gè)條件時(shí),所需重構(gòu)的二次曲面在xy面投影為四邊形截面,其余條件下二次曲面在xy面投影則為圓形截面。
條件1:Δ>0,δ=0;
條件2:Δ=0,δ=0;Δ0≠0。
為了精確表示曲面在3個(gè)坐標(biāo)軸平面內(nèi)各點(diǎn)的曲率,獲得較高的擬合精度。根據(jù)曲面的形狀特征選定當(dāng)二次曲面在xy面投影為圓形截面時(shí),選擇從z=zmax沿側(cè)面曲線到z=0的方向?yàn)閡方向,沿底面圓形的逆時(shí)針?lè)较驗(yàn)関方向。當(dāng)二次曲面在xy面投影為四邊形截面時(shí),選擇u、v參數(shù)化方向?yàn)閺脑c(diǎn)沿底面四邊形兩個(gè)相鄰邊長(zhǎng)到x=∞、y=∞的方向。
理論上曲面擬合的控制點(diǎn)越多且分布均勻,擬合的精度越高。但控制點(diǎn)的個(gè)數(shù)過(guò)多又會(huì)延長(zhǎng)計(jì)算時(shí)間,考慮到實(shí)驗(yàn)時(shí)間與設(shè)計(jì)過(guò)程將控制點(diǎn)選取分為兩個(gè)方面進(jìn)行分析:一是選擇最優(yōu)的控制點(diǎn)分布,在最優(yōu)的分布條件下確定利用NURBS擬合二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)的最小取值;二是限定程序運(yùn)行時(shí)間,求解較短運(yùn)行時(shí)間內(nèi)利用NURBS擬合二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)的最大取值。最優(yōu)控制點(diǎn)個(gè)數(shù)的選取范圍求解步驟如下:
Step1:根據(jù)3個(gè)不重合控制點(diǎn)決定一條擬合曲線的特性確定二次曲面所需的基本控制點(diǎn)個(gè)數(shù)。
Step2:選取最優(yōu)位置分布。采用極坐標(biāo)法將傳統(tǒng)直角坐標(biāo)系的參數(shù)值用極坐標(biāo)參數(shù)表示,并代入二次曲面一般方程式進(jìn)行聯(lián)合解算得到二次曲面的極坐標(biāo)方程式。代入均分角度值求得坐標(biāo)數(shù)據(jù)在曲面上均勻選取數(shù)據(jù)點(diǎn)。
Step3:改變極坐標(biāo)方程式中角度參數(shù)θ和φ的大小對(duì)數(shù)據(jù)點(diǎn)個(gè)數(shù)進(jìn)行增減。
Step4:利用積累弦長(zhǎng)法對(duì)數(shù)據(jù)點(diǎn)進(jìn)行參數(shù)化處理,對(duì)得到的節(jié)點(diǎn)參數(shù)值u′k和v′l采用取平均值法選定合適的節(jié)點(diǎn)矢量,將曲面反算問(wèn)題分解為曲線反算問(wèn)題求解線性方程組得到控制點(diǎn),對(duì)得到的控制點(diǎn)進(jìn)行NURBS曲面重構(gòu)。
Step5:求解最優(yōu)控制點(diǎn)個(gè)數(shù)的合理選取范圍。利用差值絕對(duì)值和均方根誤差(RMSE)對(duì)不同控制頂點(diǎn)數(shù)下生成的各個(gè)重構(gòu)曲面進(jìn)行定量分析,根據(jù)定量分析的結(jié)果曲線求解NURBS擬合二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)的最小取值。結(jié)合程序運(yùn)行時(shí)間關(guān)系曲線求解NURBS擬合二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)最大取值。
2.2.1 基本控制點(diǎn)個(gè)數(shù)確定
NURBS曲面是由多條NURBS曲線在u、v方向上多次構(gòu)建而成的,是由(m+1)×(n+1)個(gè)控制點(diǎn)構(gòu)成的控制網(wǎng)格。NURBS曲面的方程式定義[4]為
(5)
式中:{Pi,j}是曲面擬合的控制網(wǎng)格;{ωi,j}為權(quán)因子均取為1;{Ni,p(u)}和{Nj,q(v)}分別表示節(jié)點(diǎn)矢量U和V上的p次和q次非有理B樣條基函數(shù);u,v是節(jié)點(diǎn)值。
(6)
式中:r=p+m+1;s=q+n+1;U和V中包含的節(jié)點(diǎn)總個(gè)數(shù)分別為(r+1)和(s+1)。
利用NURBS進(jìn)行曲面擬合通常先獲得其低階曲面,再通過(guò)升階、修改控制點(diǎn)的方式逐步改善曲面的光順性和擬合精度[9]。因此本文選取p=q=2,以u(píng)向?yàn)槔?,結(jié)合式(6)可知節(jié)點(diǎn)矢量U能夠允許的最少節(jié)點(diǎn)個(gè)數(shù)r+1=6,即u方向上擬合3階NURBS曲線最少需要滿足3個(gè)控制點(diǎn)。而3個(gè)不重合的控制點(diǎn)任意擬合的二次NURBS曲線如圖1所示,C(u)是一條具有凸包性的無(wú)規(guī)則的弧線。同理對(duì)于在u方向、v方向上的NURBS曲線結(jié)構(gòu)較為復(fù)雜的二次曲面,可以采用外接多邊形法將其分別看作g段和h段弧線相連接而成,則曲線所需的基本控制網(wǎng)格頂點(diǎn)數(shù)為
(7)
式中:λ為閉合曲線的個(gè)數(shù)。
圖1 3個(gè)不重合控制點(diǎn)擬合曲線Fig.1 Fitting curve of three non-coincidence control points
2.2.2 數(shù)據(jù)點(diǎn)個(gè)數(shù)范圍的選取
相較于直接設(shè)計(jì)控制點(diǎn)的分布,先確定在曲面上最優(yōu)分布的數(shù)據(jù)點(diǎn)再反算求解控制點(diǎn)的方法更加直觀簡(jiǎn)便。最優(yōu)分布即在曲面上均勻選取數(shù)據(jù)點(diǎn),由于在直角坐標(biāo)系下的均分坐標(biāo)軸參數(shù)法不能實(shí)現(xiàn)在弧線上的均勻取點(diǎn),因此本文采用極坐標(biāo)取點(diǎn)法,其示意圖如圖2所示。
圖2 極坐標(biāo)法取點(diǎn)示意圖Fig.2 Diagram of polar coordinate method
圖2中,點(diǎn)P是選取的曲面上的點(diǎn),點(diǎn)P′是點(diǎn)P在xy面上的投影。l是點(diǎn)P距離原點(diǎn)的距離,θ是點(diǎn)P在xy平面上的投影點(diǎn)P′距離x軸的角度,φ是點(diǎn)P距離z軸的角度。
將二次曲面一般方程式的直角坐標(biāo)軸參數(shù)xp、yp、zp用極坐標(biāo)方程表示:
(8)
將式(8)中的坐標(biāo)軸參數(shù)替換方程代入二次曲面的一般方程式,得到式(9)二次曲面極坐標(biāo)方程:
(a11cosθcos2θsin2φ+a22sin2θsin2φ+a33cos2φ+
a12sinθcosθsin2φ+a23sinθsinφcosφ+
a31cosθsinφcosφ)l2+(a1cosθsinφ+
a2sinθsinφ+a3cosφ+a4)l=0
(9)
通過(guò)代入極坐標(biāo)參數(shù)和二次曲面一般方程式中的各項(xiàng)系數(shù)進(jìn)行聯(lián)合解算,求得點(diǎn)P距離原點(diǎn)的距離l值代入式(8),進(jìn)而得到在曲面上均勻選取數(shù)據(jù)點(diǎn)的坐標(biāo)數(shù)據(jù)。
在逆向工程中,常通過(guò)進(jìn)行多次控制點(diǎn)調(diào)整以用于在給定允差內(nèi)對(duì)曲線曲面形狀進(jìn)行表示[10]。本文為避免控制點(diǎn)調(diào)整給簡(jiǎn)單二次曲面擬合帶來(lái)耗時(shí)長(zhǎng)、計(jì)算復(fù)雜等問(wèn)題,從而對(duì)二次曲面擬合的最優(yōu)控制點(diǎn)個(gè)數(shù)的選取范圍進(jìn)行求解。在均勻選取數(shù)據(jù)點(diǎn)的基礎(chǔ)上,逐漸增加控制點(diǎn)個(gè)數(shù)生成擬合曲面進(jìn)行定量分析,判定在某一控制點(diǎn)個(gè)數(shù)的基礎(chǔ)上,增加控制點(diǎn)的個(gè)數(shù)對(duì)誤差變化的影響,若誤差變化的大小限定在一個(gè)很小的范圍區(qū)間內(nèi),且擬合精度滿足給定閾值條件,此控制點(diǎn)個(gè)數(shù)即為NURBS擬合二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)的最小取值。在最小取值的基礎(chǔ)上選取控制點(diǎn)個(gè)數(shù)進(jìn)行擬合,選取個(gè)數(shù)越多擬合曲面的精度越高,但程序運(yùn)行時(shí)間越長(zhǎng)。為了節(jié)省實(shí)驗(yàn)時(shí)間,需要結(jié)合程序運(yùn)行時(shí)間與控制點(diǎn)個(gè)數(shù)的關(guān)系曲線,給定時(shí)間的限定值,求解最優(yōu)控制點(diǎn)個(gè)數(shù)的最大取值。
2.2.3 NURBS反算的一般過(guò)程
NURBS曲面反算就是指構(gòu)造一張p×q次NURBS曲面,使其插值于給定的呈拓?fù)渚匦侮嚵械臄?shù)據(jù)點(diǎn)集{Qk,l}(k=0,1,…,m;l=0,1,…,n),表示成求解未知控制點(diǎn)Pi,j(i=0,1,…,m+p-1;j=0,1,…,n+q-1)的一個(gè)線性方程組。但曲面的線性方程組過(guò)于龐大,給求解及計(jì)算機(jī)上實(shí)現(xiàn)帶來(lái)困難,一般將曲面反算問(wèn)題分解為分別沿u向和v向的兩次曲線反算問(wèn)題。曲面反算時(shí)一般使兩個(gè)參數(shù)化方向上的曲線的首末端點(diǎn)分別與首末數(shù)據(jù)點(diǎn)Qk,l一致,且數(shù)據(jù)點(diǎn)將分別依次與二次曲面的節(jié)點(diǎn)一一對(duì)應(yīng)[11]。為確定與數(shù)據(jù)點(diǎn)相對(duì)應(yīng)的節(jié)點(diǎn)值,需要先對(duì)數(shù)據(jù)點(diǎn)進(jìn)行參數(shù)化處理。本文選擇積累弦長(zhǎng)參數(shù)化法,這種參數(shù)化法可以反映數(shù)據(jù)點(diǎn)按弦長(zhǎng)的分布情況,適用于構(gòu)造任意階次的非均勻有理B樣條節(jié)點(diǎn)矢量,且使所得插值曲線具有較好的光順性[12]。給出弦長(zhǎng)參數(shù)化法公式(僅以u(píng)向?yàn)槔齕13]):
(10)
(11)
式中:d為總弦長(zhǎng);u′k為Qk決定的節(jié)點(diǎn)參數(shù)值。
接著采用式(12)取平均值的方法選定合適的節(jié)點(diǎn)矢量U,這樣就可以建立一個(gè)系數(shù)矩陣為(m+1)×(m+1)的線性方程組。
(12)
待求的非均勻有理B樣條二次插值曲面的線性方程組可寫為,
(13)
將式(13)改寫為類似于非均勻有理B樣條曲線方程的表達(dá)式:
(14)
式中u方向上的控制頂點(diǎn)被另一方向上的控制曲線替代:
(15)
首先將式(11)和式(12)計(jì)算得到的節(jié)點(diǎn)參數(shù)值u′k和節(jié)點(diǎn)ui依次代入式(16)計(jì)算出節(jié)點(diǎn)矢量U上的B樣條基函數(shù),然后同已知的數(shù)據(jù)點(diǎn)集{Qk,l}一起代入式(14)就得到了這些控制曲線上m+1個(gè)點(diǎn)Ri(v′l),i=0,1,…,m。這些點(diǎn)又作為數(shù)據(jù)頂點(diǎn)代入式(15),運(yùn)用與節(jié)點(diǎn)矢量U上B樣條基函數(shù)相同的運(yùn)算公式求得節(jié)點(diǎn)矢量V上的B樣條基函數(shù),就反算出了曲面上數(shù)據(jù)點(diǎn)對(duì)應(yīng)的控制點(diǎn)。
(16)
式中
根據(jù)二次曲面的方程式確定u、v參數(shù)化方向。首先給出球面的解析方程式如下:
x2+y2+z2-a2=0
(17)
式中:(x,y,z)是曲面上的點(diǎn);a是球面半徑。
將方程式(17)中各項(xiàng)系數(shù)的值代入判別式,求解得到Δ=-a2<0,δ=1>0,Δ0=-3a2<0,δ0=3>0。由判別式結(jié)果確定球面的xy面投影為圓形截面,則選擇如圖3所示的u、v參數(shù)化方向。u向?yàn)橛汕蛎骓旤c(diǎn)沿側(cè)面弧線指向底面的方向,其側(cè)面圓弧線具有相同的曲率;v向?yàn)檠匕肭虻酌娴哪鏁r(shí)針?lè)较颉?/p>
圖3 球面u 、v參數(shù)化方向示意圖Fig.3 Diagram of u ,v parameter directions of sphere
將圓錐面的解析方程式變換成如下形式:
c2(x2+y2)-a2z2=0
(18)
式中:a是圓錐面的高;c是底面半徑。
將方程式(18)中各項(xiàng)系數(shù)代入判別式,更易求得Δ=0,δ=-a2c2<0,Δ0=0,δ0=c2-2a2c2不滿足所給出的兩個(gè)判別條件,因此選擇如圖4所示的u、v參數(shù)化方向,u向?yàn)橛蓤A錐面頂點(diǎn)沿側(cè)面母線指向底面z=0的方向,v向?yàn)檠貓A錐面在xy面投影圓形截面的逆時(shí)針?lè)较颉?/p>
圖4 圓錐面u 、v參數(shù)化方向示意圖Fig.4 Diagram of u ,v parameter directions of cone
同樣給出橢球面的變換方程式如下:
b2c2x2+a2c2y2+a2b2z2-a2b2c2=0
(19)
式中:a、b、c分別是橢球面的長(zhǎng)半軸、中半軸和短半軸。由判別式矩陣求解得到Δ=-a6b6c6<0,δ=a4b4c4>0,Δ0=-a4b4c4(a2+b3+c2)<0,δ0=a2b2c2(a2+b3+c2)>0 不滿足條件。則橢球面的u向?yàn)橛蓹E球面頂點(diǎn)沿側(cè)面弧線指向底面的方向,v向?yàn)檠貦E球底面的逆時(shí)針?lè)较颍?jiàn)圖5。
圖5 橢球面u 、v參數(shù)化方向示意圖Fig.5 Diagram of u,v parameter direction of ellipsoid
3.2.1 球面選取范圍最小值求解
首先定義擬合曲面是一個(gè)由(m+1)×(n+1)個(gè)控制網(wǎng)格頂點(diǎn)構(gòu)成的單位球面,設(shè)定階數(shù)為3。根據(jù)球面標(biāo)準(zhǔn)方程和式(1)可知a11=a22=a33=1,a4=-1,代入式(9)中得到球面上任意一點(diǎn)到原點(diǎn)的距離值l=1。根據(jù)設(shè)定的控制頂點(diǎn)個(gè)數(shù),求解在球面上均勻選取數(shù)據(jù)點(diǎn)的極坐標(biāo)參數(shù)φi和θj:
(20)
將l值和極坐標(biāo)參數(shù)值分別代入式(8)中,得到均勻選取數(shù)據(jù)點(diǎn)的極坐標(biāo)方程式(21)。對(duì)式(21)中得到的數(shù)據(jù)點(diǎn)坐標(biāo)進(jìn)行反算得到最優(yōu)的控制點(diǎn)分布。
(21)
最優(yōu)控制點(diǎn)個(gè)數(shù)的求解是通過(guò)選取不同控制頂點(diǎn)數(shù)生成各個(gè)重構(gòu)曲面,在最優(yōu)的控制點(diǎn)分布條件下,計(jì)算4×104個(gè)重構(gòu)球面坐標(biāo)數(shù)據(jù)與標(biāo)準(zhǔn)球面坐標(biāo)數(shù)據(jù)之間的差值絕對(duì)值進(jìn)行定量分析。表1給出了擬合球面與標(biāo)準(zhǔn)球面之間的差值平均值和均方根誤差,其數(shù)值大小隨著控制頂點(diǎn)數(shù)的增加而減小,根據(jù)精度要求設(shè)定二者的閾值分別為10-3、0.05。
為了求解擬合球面的最優(yōu)控制點(diǎn)個(gè)數(shù),本文將表1中擬合球面與標(biāo)準(zhǔn)球面之間差值絕對(duì)值的平均值及變化率與控制頂點(diǎn)數(shù)作為狀態(tài)變量進(jìn)行多項(xiàng)式擬合[14],得到兩者之間的關(guān)系曲線如圖6(a)所示,擬合關(guān)系式見(jiàn)式(22)。
表1 球面不同控制頂點(diǎn)數(shù)擬合結(jié)果分析Tab.1 Analysis of fitting results of different control vertices on sphere dm
圖6 球面差值平均值及其變化率與控制點(diǎn)個(gè)數(shù)的關(guān)系曲線Fig.6 Curves of relationship between average of differences,rate of change and number of control points of sphere
當(dāng)控制頂點(diǎn)數(shù)增加時(shí),差值絕對(duì)值的平均值隨之減小,擬合球面與標(biāo)準(zhǔn)球面之間的誤差減小,擬合精度提高。
fs(Ks)=1.79e-0.432 6Ks+0.020 78e-0.037 82Ks
(22)
式中:fs(Ks)是差值絕對(duì)值的平均值;Ks為球面的控制點(diǎn)個(gè)數(shù)。
求解差值平均值曲線的切矢量即對(duì)式(22)進(jìn)行求導(dǎo),得到差值平均值的變化率和控制頂點(diǎn)數(shù)的關(guān)系曲線如圖6(b)所示,關(guān)系式見(jiàn)式(23)。圖6(b)中變化率隨著選取控制頂點(diǎn)數(shù)的不斷增加逐漸趨近于0,設(shè)定變化率閾值為10-5,當(dāng)變化率的值小于閾值時(shí),就認(rèn)為變化率大小幾乎不再發(fā)生變化;當(dāng)差值平均值與變化率都小于閾值,這時(shí)的控制頂點(diǎn)數(shù)就是選取的最小控制頂點(diǎn)數(shù)。
f′s(Ks)=-0.774 3e-0.432 6Ks-7.859×10-4e-0.037 82Ks
(23)
將閾值分別代入式(22)、(23)聯(lián)合解算得到球面控制點(diǎn)個(gè)數(shù)的選取條件:
Ks>115.395 1
(24)
當(dāng)選取的控制點(diǎn)個(gè)數(shù)大于等于116時(shí),利用NURBS方法可以得到滿足高精度要求的擬合球面且誤差變化率在一個(gè)極小的范圍內(nèi)波動(dòng)。此時(shí)擬合球面的最優(yōu)控制點(diǎn)個(gè)數(shù)的最小取值對(duì)應(yīng)的控制頂點(diǎn)數(shù)是7×20。
不同控制頂點(diǎn)數(shù)下的擬合曲面如圖7所示,曲面上淺色的點(diǎn)為均勻選取的數(shù)據(jù)點(diǎn)。其中,當(dāng)選取的控制頂點(diǎn)數(shù)為3×4少于基本控制頂點(diǎn)數(shù)時(shí)(見(jiàn)圖7(a)),v向上的控制頂點(diǎn)不足以擬合一個(gè)整圓,擬合球面無(wú)法形成一個(gè)類似球面。圖7(b)是在基本控制定點(diǎn)數(shù)3×8下重構(gòu)得到的類似球面,其與標(biāo)準(zhǔn)球面之間的差值平均值超過(guò)所設(shè)閾值,不滿足精度要求。圖7(c)是最優(yōu)控制頂點(diǎn)最小取值7×20下得到的擬合球面,其與標(biāo)準(zhǔn)二次曲面之間的差值平均值和均方根誤差均滿足閾值要求,具有較高的擬合精度。圖7(d)是控制頂點(diǎn)數(shù)為51×200的擬合曲面,其表面選取的大量數(shù)據(jù)點(diǎn)構(gòu)成了一個(gè)光滑的標(biāo)準(zhǔn)球面。
圖7 球面不同控制頂點(diǎn)的擬合結(jié)果Fig.7 Fitting results of different control vertices on sphere
3.2.2 其他曲面選取范圍最小值求解
定義一個(gè)底面半徑為1,高為1.5的圓錐面,以及一個(gè)長(zhǎng)半軸長(zhǎng)為1,中半軸長(zhǎng)為0.8和短半軸長(zhǎng)為0.6的橢球面。同理球面在最優(yōu)控制點(diǎn)分布的情況下,選取不同的控制頂點(diǎn)數(shù)對(duì)圓錐面和橢球面進(jìn)行重構(gòu)和定量分析。
對(duì)比表1~表3中的數(shù)據(jù)發(fā)現(xiàn),在相同控制頂點(diǎn)數(shù)下,形狀特征較簡(jiǎn)單的曲面得到的NURBS擬合曲面精度更高。
通過(guò)對(duì)表2、表3中控制頂點(diǎn)數(shù)與差值平均值進(jìn)行多項(xiàng)式擬合,得到NURBS擬合圓錐面和橢球面控制點(diǎn)個(gè)數(shù)的選取條件:
(25)
式中:Kc和Ke分別為圓錐面和橢球面的控制點(diǎn)個(gè)數(shù)??芍?,圓錐面滿足高精度擬合要求的最少控制點(diǎn)個(gè)數(shù)為43,控制網(wǎng)格頂點(diǎn)數(shù)為5×12。橢球面滿足高精度擬合要求的最小控制點(diǎn)個(gè)數(shù)為167,控制網(wǎng)格頂點(diǎn)數(shù)為8×24。
表2 圓錐面不同控制頂點(diǎn)數(shù)擬合結(jié)果分析Tab.2 Analysis of fitting results of different control vertices on cone dm
表3 橢球面不同控制頂點(diǎn)數(shù)擬合結(jié)果分析Tab.3 Analysis of fitting results of different control vertices on ellipsoid dm
如圖8所示,利用NURBS方法得到控制頂點(diǎn)數(shù)為5×12的擬合圓錐面和控制頂點(diǎn)數(shù)為8×24的擬合橢球面,其兩者與標(biāo)準(zhǔn)曲面之間的差值平均值和均方根誤差均低于所設(shè)閾值,具有較高擬合精度。
圖8 其他曲面最少控制頂點(diǎn)下的擬合結(jié)果Fig.8 Fitting results of the least control vertices on other surfaces
3.2.3 3種曲面選取范圍的最大值求解
考慮到程序運(yùn)行總時(shí)間最優(yōu),對(duì)3種曲面不同控制頂點(diǎn)數(shù)下進(jìn)行擬合的程序運(yùn)行時(shí)間進(jìn)行實(shí)驗(yàn)分析。為保證誤差不影響實(shí)驗(yàn)結(jié)果,求取100次各個(gè)重構(gòu)曲面的程序運(yùn)行時(shí)間的平均值,獲得3個(gè)二次曲面在不同控制頂點(diǎn)下進(jìn)行NURBS擬合的程序運(yùn)行時(shí)間與控制點(diǎn)個(gè)數(shù)的關(guān)系曲線如圖9所示。
圖9 運(yùn)行時(shí)間及與控制點(diǎn)個(gè)數(shù)關(guān)系曲線Fig.9 Curves of relationship between runtime and number of control points
關(guān)系多項(xiàng)式為
(26)
由式(26)求解可知,采用本文方法在3種曲面各自的最優(yōu)控制頂點(diǎn)數(shù)下對(duì)曲面進(jìn)行擬合時(shí)所需的程序運(yùn)行總時(shí)間均在0.8 s左右。由圖9可知:3種曲面的關(guān)系曲線在1 s內(nèi)走勢(shì)趨于穩(wěn)定,斜率較小;1 s以后的時(shí)間與控制點(diǎn)個(gè)數(shù)之間的增長(zhǎng)關(guān)系呈類似指數(shù)增長(zhǎng)的趨勢(shì),斜率較大。為節(jié)省實(shí)驗(yàn)時(shí)間并求得合適的控制點(diǎn)個(gè)數(shù)選取范圍的上限,本文將運(yùn)行時(shí)間限定在1 s以內(nèi),求解式(26)得到3個(gè)二次曲面允許的最大控制點(diǎn)個(gè)數(shù)如下:
(27)
綜合實(shí)例結(jié)果可知,根據(jù)時(shí)間和精度的要求,在均勻選取數(shù)據(jù)點(diǎn)的前提下,利用NURBS擬合3種二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)的選取范圍是167~677??紤]其他二次曲面的結(jié)構(gòu)復(fù)雜程度的不同,在已求得的選取范圍基礎(chǔ)上允許20%的波動(dòng)差異,則利用NURBS擬合一般二次曲面的最優(yōu)控制點(diǎn)個(gè)數(shù)的合理選取范圍是201~541。
利用MATLAB軟件采用傳統(tǒng)NURBS方法[8,9]對(duì)3種二次曲面進(jìn)行擬合,各曲面選取的控制點(diǎn)個(gè)數(shù)為上述求得的最小控制頂點(diǎn)數(shù)。從差值平均值和均方根誤差兩個(gè)方面對(duì)比傳統(tǒng)方法與本文方法的擬合效果,對(duì)比參數(shù)見(jiàn)表4。然后,保證曲面擬合精度一定,比較兩種方法所需的程序執(zhí)行總時(shí)間,對(duì)比結(jié)果如表5所示。從表5中數(shù)據(jù)可知,與傳統(tǒng)NURBS方法相比,本文方法在擬合效果上均有不同程度的提高,運(yùn)行時(shí)間短。
表4 兩種方法擬合效果的對(duì)比結(jié)果統(tǒng)計(jì)Tab.4 Statistics of comparative results of fitting effect of two methods dm
表5 兩種方法擬合時(shí)間的對(duì)比結(jié)果統(tǒng)計(jì)Tab.5 Statistics of comparative results of fitting time of two methods
本文從參數(shù)化方向和控制點(diǎn)個(gè)數(shù)選取范圍出發(fā),提出了一種高效擬合二次曲面的方法。實(shí)例證明:與傳統(tǒng)方法相比,本文方法能夠有效改善整體曲面的擬合效果;求解得到的最優(yōu)選取范圍為201~541,選取該范圍內(nèi)的控制點(diǎn)個(gè)數(shù)對(duì)二次曲面進(jìn)行擬合,無(wú)需進(jìn)行多次控制點(diǎn)調(diào)整即可獲得高精度的擬合曲面,保證了測(cè)量精度,節(jié)省了時(shí)間;為利用NURBS對(duì)二次曲面與自由曲面的拼接曲面進(jìn)行加工和設(shè)計(jì)提供了二次曲面擬合的數(shù)據(jù)基礎(chǔ)和理論支持,為后續(xù)的曲面升階、控制點(diǎn)修改奠定基礎(chǔ),對(duì)低階標(biāo)準(zhǔn)解析曲面構(gòu)建提供了技術(shù)借鑒。