本發(fā)明涉及一種高效的徑向基函數(shù)支撐點精簡方法,屬于結(jié)構(gòu)網(wǎng)格、結(jié)構(gòu)/非結(jié)構(gòu)混合網(wǎng)格以及點云的動網(wǎng)格技術(shù)領(lǐng)域。
背景技術(shù):
動網(wǎng)格技術(shù)被廣泛運用于氣動外形優(yōu)化設(shè)計、非定常流動仿真以及氣動彈性力學(xué)仿真中。高效的動網(wǎng)格技術(shù)是解決此類問題的關(guān)鍵技術(shù)之一,也是工程應(yīng)用中最重要的技術(shù)“瓶頸”。網(wǎng)格變形技術(shù)屬于動網(wǎng)格技術(shù)的一種,在工程中有著廣泛的應(yīng)用。
徑向基函數(shù)網(wǎng)格變形技術(shù)是一類不依賴網(wǎng)格拓?fù)涞木W(wǎng)格變形方法,能夠應(yīng)用于任意網(wǎng)格類型的網(wǎng)格變形技術(shù)。該技術(shù)網(wǎng)格變形質(zhì)量高,魯棒性強。當(dāng)邊界網(wǎng)格點規(guī)模較大時,該技術(shù)計算量十分巨大,目前已經(jīng)提出了貪心算法來精簡徑向基函數(shù)支撐點,大大的提高了計算的效率。
但是,在采用貪心算法精簡徑向基函數(shù)支撐點的過程中,當(dāng)徑向基函數(shù)支撐點個數(shù)為n時,每增加一個徑向基函數(shù)支撐點,均需求解3個n維線性方程組。如果記最終徑向基函數(shù)支撐點個數(shù)為N,則花在求解線性方程組上的浮點計算量為O(N4),計算量較大。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的上述不足,提出的一種高效的徑向基函數(shù)支撐點精簡方法,該方法減少了求解線性方程組的重復(fù)計算,將花在求解線性方程組上的浮點計算量由O(N4)降為O(N3),顯著提高精簡徑向基函數(shù)支撐點的速度,從而提高動網(wǎng)格技術(shù)的效率,突破氣動外形優(yōu)化設(shè)計、非定常流動仿真以及氣動彈性力學(xué)仿真中的動網(wǎng)格技術(shù)“瓶頸”。
本發(fā)明的上述目的主要是通過如下技術(shù)方案予以實現(xiàn)的:
一種高效的徑向基函數(shù)支撐點精簡方法,包括如下步驟:
步驟1、采集邊界網(wǎng)格點的坐標(biāo),得到所有邊界網(wǎng)格點的集合{P},其中任意一個邊界網(wǎng)格點的坐標(biāo)為Ai(xi,yi,zi),i為正整數(shù);
步驟2、采集邊界網(wǎng)格點位置的改變量,其中任意一個邊界網(wǎng)格點Ai的位置改變量為(Δxi,Δyi,Δzi);
步驟3、建立徑向基函數(shù)支撐點集合{B},設(shè)定徑向基函數(shù)支撐點最大個數(shù)為Nmax,邊界網(wǎng)格點位置改變量的插值精度為err;
步驟4、從集合{P}中任取n個點加入徑向基函數(shù)支撐點集合{B},其中n為正整數(shù),且n≥1;
步驟5、以集合{B}中的n個點為徑向基函數(shù)支撐點形成初始矩陣Φn;
步驟6、將初始矩陣Φn進行矩陣分解,獲得初始分解矩陣Un,Un滿足等式其中為Un的轉(zhuǎn)置;
步驟8、在集合{P}中再任取一點Ai加入集合{B}中,集合{B}中包括n+1個點;
步驟9、如果n+1≤Nmax,進入步驟10;如果n+1>Nmax,進入步驟17;
步驟10、以集合{B}中的所有點為徑向基函數(shù)支撐點形成矩陣Φn+1:
其中:為矩陣Φn+1的第n+1列的1~n行;為的轉(zhuǎn)置;
根據(jù)以及Φn的分解矩陣Un,求解線性方程組得到bn,利用公式計算得到s,進一步得到矩陣Φn+1的分解矩陣
其中:bn為分解矩陣Un+1的第n+1列的1~n行,s為分解矩陣Un+1的第n+1列的第n+1行;
步驟11、求解線性方程組,得到徑向基函數(shù)支撐點集合{B}相應(yīng)支撐點的插值系數(shù)
步驟12、根據(jù)插值系數(shù)及步驟1中給出的集合{P}中所有邊界網(wǎng)格點的坐標(biāo)值A(chǔ)i(xi,yi,zi),采用徑向基函數(shù)插值獲取所有邊界網(wǎng)格點位置的改變量(Δxi*,Δyi*,Δzi*);
步驟13、根據(jù)所有邊界網(wǎng)格點的坐標(biāo)值A(chǔ)i(xi,yi,zi)及其位置改變量(Δxi*,Δyi*,Δzi*),得到所有邊界網(wǎng)格點的插值誤差最大值Emax對應(yīng)的集合{P}中網(wǎng)格點的編號i;
步驟14、如果Emax<err,則達到收斂精度,進入步驟16;否則進入步驟15;
步驟15、將步驟13得到的編號為i的邊界網(wǎng)格點Ai加入徑向基函數(shù)支撐點集合{B},集合{B}中的點數(shù)增加1,重復(fù)步驟(9)~(14);
步驟16、將步驟13得到的編號為i的邊界網(wǎng)格點Ai加入徑向基函數(shù)支撐點集合{B},完成徑向基函數(shù)支撐點精簡;
步驟17、徑向基函數(shù)支撐點達到最大值,完成徑向基函數(shù)支撐點精簡。
在上述高效的徑向基函數(shù)支撐點精簡方法中,所述步驟(11)中求解線性方程組,得到徑向基函數(shù)支撐點集合{B}相應(yīng)支撐點的插值系數(shù)的具體公式如下:
其中:ΔXn+1,ΔYn+1,ΔZn+1分別為集合{B}中n+1個點在坐標(biāo)軸X、Y、Z方向的坐標(biāo)改變量形成的向量;Qn+1、Pn+1、Rn+1為計算過程中的中間變量。
在上述高效的徑向基函數(shù)支撐點精簡方法中,所述步驟(13)中按如下公式計算所有的邊界網(wǎng)格點的插值誤差erri,并記錄erri的最大值Emax,同時記錄erri取得最大值Emax所對應(yīng)的集合{P}中網(wǎng)格點的編號i;
在上述高效的徑向基函數(shù)支撐點精簡方法中,所述步驟(6)中采用Choleskey分解法將初始矩陣Φn進行矩陣分解。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下有益效果:
(1)、本發(fā)明對徑向基函數(shù)支撐點精簡方法進行了創(chuàng)新設(shè)計,通過對求解線性方程組過程中的優(yōu)化,將求解一系列線性方程組的浮點計算量由O(N4)降低到O(N3),其中N為精簡后的徑向基函數(shù)支撐點個數(shù),大大提高了方程組求解的效率,提高了精簡徑向基函數(shù)支撐點的速度。
(2)、本發(fā)明采用Choleskey分解法求解線性方程組,Choleskey分解法數(shù)值穩(wěn)定性比列主元高斯消去法更高,能夠更加精確地求解線性方程組。
(3)、本發(fā)明利用了Φn矩陣的對稱性,Choleskey分解法僅需要Φn矩陣上三角部分,且Choleskey分解法求解方程組的計算量約為列主元高斯消去法的一半,有效地提高了精簡徑向基函數(shù)支撐點的效率。
(4)、本發(fā)明徑向基函數(shù)支撐點精簡方法減少了求解線性方程組的重復(fù)計算,顯著提高精簡徑向基函數(shù)支撐點的速度,從而提高動網(wǎng)格技術(shù)的效率,突破氣動外形優(yōu)化設(shè)計、非定常流動仿真以及氣動彈性力學(xué)仿真中的動網(wǎng)格技術(shù)“瓶頸”。
附圖說明
圖1為本發(fā)明邊界網(wǎng)格點示意圖;
圖2為本發(fā)明實施例1中網(wǎng)格示意圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步詳細(xì)的描述:
基于貪心算法徑向基函數(shù)支撐點精簡根據(jù)任意的初始徑向基函數(shù)子空間對所有的邊界網(wǎng)格進行插值,并搜索出誤差最大的網(wǎng)格點,將其加入徑向基函數(shù)支撐點集合,構(gòu)成新的徑向基函數(shù)子空間,重復(fù)上述過程,直至徑向基函數(shù)子空間能夠滿足插值精度要求為止。
在貪心算法的過程中,搜索誤差最大的網(wǎng)格點時需要求解方程組:
上式中,Φn為n階方陣,ΔXn、ΔYn、ΔZn為已知的n維列向量,為待求解的n維列向量。上式一般采用矩陣求逆法求解,計算量為O(n3)。本發(fā)明專利充分考慮Φn的特點,即Φn與Φn-1存在如下關(guān)系:
上式中,為已知的n-1維列向量,的上標(biāo)T表示的轉(zhuǎn)置(下同)。選取適當(dāng)?shù)膹较蚧瘮?shù)類型,可以保證Φn對稱正定,則式(1)可采用Choleskey矩陣分解法求解,由于矩陣Φn與Φn-1的Choleskey分解存在遞推關(guān)系,可大大提高方程組求解的效率。假設(shè)矩陣Φn-1的Choleskey分解為矩陣Φn的Choleskey分解為Un與Un-1分別為n階上三角矩陣及n-1階上三角矩陣。則Un與Un-1之間存在如下遞推關(guān)系:
上式中bn-1及s的計算方式如下:
由于為下三角矩陣,則由Un-1遞推計算Un的浮點計算量為O(n2)。因此,采用遞推Choleskey分解法求解方程組(1),可將浮點計算量由O(n3)降低到O(n2),大大提高了方程組求解的效率,從而提高精簡徑向基函數(shù)支撐點的速度,最終達到提高動網(wǎng)格技術(shù)的目的。
如果記最終精簡后的徑向基函數(shù)支撐點個數(shù)為N,則采用遞推Choleskey分解法可將求解線性方程組的浮點計算量為由O(N4)降低到O(N3),該計算量僅相當(dāng)于求解一個N階線性方程組的計算量。
本發(fā)明高效的徑向基函數(shù)支撐點精簡方法,具體包括如下步驟:
步驟1、采集邊界網(wǎng)格點的坐標(biāo),得到所有邊界網(wǎng)格點的集合{P},其中任意一個邊界網(wǎng)格點的坐標(biāo)為Ai(xi,yi,zi),i為正整數(shù);如圖1所示為本發(fā)明邊界網(wǎng)格點示意圖;
步驟2、采集邊界網(wǎng)格點位置的改變量,其中任意一個邊界網(wǎng)格點Ai的位置改變量(即坐標(biāo)改變量)為(Δxi,Δyi,Δzi);
步驟3、建立徑向基函數(shù)支撐點集合{B},設(shè)定徑向基函數(shù)支撐點最大個數(shù)為Nmax,邊界網(wǎng)格點位置改變量的插值精度為err;
步驟4、從步驟1采集的集合{P}中任取n個點加入徑向基函數(shù)支撐點集合{B},其中n為正整數(shù),且n≥1;例如可以取兩個點,分別為A1、A2。
步驟5、以集合{B}為徑向基函數(shù)支撐點形成初始矩陣Φn;此處僅需要計算矩陣Φn的上三角部分。
步驟6、采用Choleskey分解法將初始矩陣Φn進行矩陣分解,獲得初始分解矩陣Un,Un滿足等式其中為Un的轉(zhuǎn)置。
步驟8、在集合{P}中再任取一點Ai,Ai滿足加入集合{B}中,集合{B}中包括n+1個點。
步驟9、如果n+1≤Nmax,進入步驟10;如果n+1>Nmax,進入步驟17。
步驟10、以集合{B}中的所有點為徑向基函數(shù)支撐點形成矩陣Φn+1。
其中:為矩陣Φn+1的第n+1列的1~n行;為的轉(zhuǎn)置;
由于Φn與Φn+1存在遞推關(guān)系則本步驟只需計算
根據(jù)以及Φn的分解矩陣Un,求解線性方程組得到bn,利用公式計算得到s,進一步得到矩陣Φn+1的Choleskey分解矩陣可以驗證Un+1滿足
其中:bn為分解矩陣Un+1的第n+1列的前n行,s為分解矩陣Un+1的第n+1列的第n+1行。
步驟11、求解線性方程組,得到徑向基函數(shù)支撐點集合{B}相應(yīng)支撐點的插值系數(shù)
其中:ΔXn+1,ΔYn+1,ΔZn+1分別為集合{B}中n+1個點在坐標(biāo)軸X、Y、Z方向的位置改變量形成的向量;
上式中Qn+1、Pn+1、Rn+1均為計算過程中的中間變量,可以根據(jù)求解Qn+1,再根據(jù)求解同理得到
步驟12、根據(jù)插值系數(shù)及步驟1中集合{P}中所有網(wǎng)格點的坐標(biāo)值A(chǔ)i(xi,yi,zi),采用徑向基函數(shù)插值獲取所有邊界網(wǎng)格點位置的改變量(Δxi*,Δyi*,Δzi*)。
步驟13、根據(jù)所有網(wǎng)格點的坐標(biāo)值A(chǔ)i(xi,yi,zi)及其位置改變量(Δxi*,Δyi*,Δzi*),得到所有邊界網(wǎng)格點的插值誤差最大值Emax對應(yīng)的集合{P}中網(wǎng)格點的編號i(網(wǎng)格點為Ai)。
即按式計算所有的邊界網(wǎng)格點的插值誤差,并記錄erri的最大值Emax,同時記錄erri取得最大值Emax所對應(yīng)的集合{P}中網(wǎng)格點的編號i。
步驟14、如果Emax<err,則達到收斂精度,進入步驟16;否則進入步驟15;
步驟15、將步驟13得到的編號為i的網(wǎng)格點Ai加入徑向基函數(shù)支撐點集合{B},集合{B}中的點數(shù)增加1,重復(fù)步驟(9)~(14)。即集合{B}中的點數(shù)變?yōu)閚+2個,重復(fù)步驟(9)~(14),按照與n+1個點相同的處理方法進行判斷與計算,依次類推,對于其它點按照相同的方法進行處理。
步驟16、將步驟13得到的編號為i的網(wǎng)格點Ai加入徑向基函數(shù)支撐點集合{B},完成徑向基函數(shù)支撐點精簡;
步驟17、徑向基函數(shù)支撐點達到最大值,完成徑向基函數(shù)支撐點精簡。
實施例1
如圖2所示為本發(fā)明實施例1中邊界網(wǎng)格點示意圖,對于某二維網(wǎng)格,計算域內(nèi)網(wǎng)格節(jié)點65981個,邊界網(wǎng)格節(jié)點1230,采用貪心算法對徑向基函數(shù)支撐點進行精簡。分別采用高斯列主元消去法和本發(fā)明提出的遞推Choleskey分解法求解方程組,精簡過程所需的時間見表1和表2,可見本發(fā)明提出的遞推Choleskey分解法求解方程組效率遠遠高于高斯列主元消去法,且徑向基函數(shù)支撐點個數(shù)越多,效率越高。因此,本發(fā)明是一種非常高效的徑向基函數(shù)支撐點精簡技術(shù)。
表1采用高斯列主元法求解方程組
表2采用本發(fā)明方法求解方程組
以上所述,僅為本發(fā)明最佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。
本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員的公知技術(shù)。