一種在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法
【專利摘要】一種在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法,在直角坐標(biāo)系下,先由三角面元數(shù)據(jù)文件得到目標(biāo)的外接長方體,然后將此六面體向任一坐標(biāo)平面進(jìn)行投影,再從投影區(qū)域內(nèi)對目標(biāo)表面的每個(gè)三角面元利用投影求交的方法得到目標(biāo)的立方網(wǎng)格模型.根據(jù)目標(biāo)的三角面元數(shù)據(jù)文件能一次性地進(jìn)行適用于拋物線方程的立方網(wǎng)格建模,人工參與的成份少,提高了建模效率,另外,該方法還可進(jìn)一步推廣應(yīng)用于復(fù)雜目標(biāo)的FDTD方法建模。
【專利說明】一種在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算電磁學(xué)領(lǐng)域,尤其是在計(jì)算物體表面的雷達(dá)RCS (中文:雷達(dá)散射截面)時(shí),對物體模型進(jìn)行剖分建模方法,具體地說是一種在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法。
【背景技術(shù)】
[0002]目前,在計(jì)算物體表面的雷達(dá)散射截面(即雷達(dá)RCS)時(shí),對物體模型進(jìn)行剖分建模。在電磁場數(shù)值計(jì)算與仿真中有多種建模方法,如矩量法(Μ0Μ)、時(shí)域有限差分方法(FDTD)、有限元方法(FEM)、拋物線方程方法(PE)等等,不同的方法通常需要不同的剖分單元,如矩量法和有限元方法采用三角面元作剖分單元,而時(shí)域有限差分方法和拋物線方程方法則需要用六面體(立方體)作為基本計(jì)算單元。三角面元的數(shù)據(jù)模型可以從多種途徑,包括一些商用軟件如ANSYS、Supermesh,3DMAX, ANSOFT中得到,而立方網(wǎng)格則比較難得到,通用的全自動建模軟件還未見報(bào)到。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是針對在電磁計(jì)算中需要對物體模型進(jìn)行剖分的問題,提出一種由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的解決方案。
[0004]本發(fā)明的技術(shù)方案是:
[0005]一種在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法,它包括以下步驟:
[0006](a).讀入數(shù)據(jù)和確立剖分范圍的步驟:
[0007]獲取物體模型的三角面元剖分模型數(shù)據(jù),包括面片數(shù)目、面片編號、每個(gè)面片包含的三個(gè)頂點(diǎn)的編號以及各頂點(diǎn)的坐標(biāo)信息,根據(jù)前述信息得到該物體模型的外接長方體作為剖分范圍,所述的剖分范圍即物體模型的外接長方體由物體模型在X,Y,Z坐標(biāo)軸上的上下界坐標(biāo)X1, xh, Yi, yh, Z1, zh構(gòu)成;
[0008]根據(jù)拋物線方程方法或者時(shí)域有限差分方法的計(jì)算要求(指的是剖分網(wǎng)格的精度即邊長嗎?),確定剖分網(wǎng)格的邊長大小δ (文中取0.1個(gè)波長),再計(jì)算要剖分網(wǎng)格的數(shù)量,它由下面的公式確定:
[0009]nx= (Xh-X1) / δ ny= (Yh-Y1) / δ
[0010]Iiz=(Zh-Z1)/ δ N=nxXnyXnz
[0011]nx,ny,nz分別為X,Y,Z坐標(biāo)軸上剖分網(wǎng)格的數(shù)量,如果是整數(shù),則直接獲取,如果不是整數(shù),使用去余進(jìn)位法進(jìn)行取整;
[0012]在Ztl=Z1- δ /2平面上,將X1, xh, Y1, yh所構(gòu)成的正方形進(jìn)行nxXny等分,得到nxXny個(gè)正方形,再把每個(gè)正方形分為M=mXm個(gè)小方格;m=2或m=3 ;以各小方格的中心坐標(biāo)為起點(diǎn),沿正z軸方向作M條射向物體模型三角面元剖分模型的射線,獲得每一條射線與物體模型表面的相交情況,并將交點(diǎn)坐標(biāo)存入數(shù)組;
[0013](b).求各條射線與整個(gè)物體模型的三角面元剖分模型的交點(diǎn)并且判斷該交點(diǎn)是否在面元內(nèi)部的步驟:
[0014]求射線與三角面元的交點(diǎn)時(shí),首先求各射線與三角面元所在平面的交點(diǎn),然后再判斷該交點(diǎn)是否在三角面元內(nèi)。先從目標(biāo)的三角面元的數(shù)據(jù)文件中,讀取每一個(gè)三角面元,設(shè)為ABC的3頂點(diǎn)坐標(biāo),然后從3頂點(diǎn)坐標(biāo)求得該三角面元所在平面的幾何方程,最后聯(lián)立平行于z軸的網(wǎng)格線I方程,就可求交點(diǎn)的坐標(biāo),設(shè)為P點(diǎn);
[0015]判斷交點(diǎn)P是否在三角面元ABC內(nèi)可利用xoy面內(nèi)的投影來分析,設(shè)三角面元ABC和交點(diǎn)P在xoy面內(nèi)的投影分別為A' B' C'和P';
[0016]將P’與投影三角形A' B' C'的3個(gè)頂點(diǎn)可以構(gòu)造3個(gè)矢量八/i JyZUr1,并依
次形成矢量叉乘,即和^rX^r,若3者彼此同號表示交點(diǎn)P在三角面元ABC內(nèi);反之,則交點(diǎn)P不在三角面元ABC內(nèi)。當(dāng)P正好在三角面元ABC邊線上,3者中有一個(gè)為零。[0017](C).生成立方體剖分網(wǎng)格
[0018]由三角面元數(shù)據(jù)模型數(shù)據(jù)出發(fā)建立目標(biāo)的立方網(wǎng)格模型,判斷立方元胞是否位于目標(biāo)內(nèi),生成一個(gè)MXnz維數(shù)組;行對應(yīng)每條射線,列對應(yīng)各射線穿過的剖分網(wǎng)格;依次選取M條射線的每一條進(jìn)行判斷,對于閉合形體,每對交點(diǎn)截取射線所得的線段就是目標(biāo)的內(nèi)部區(qū)域;以δ為步長,從外接長方體的最小Z坐標(biāo)Z1開始,以網(wǎng)格中心為起點(diǎn),沿射線方向放置邊長為δ的網(wǎng)格并依次對應(yīng)數(shù)組中的各列,得出每個(gè)網(wǎng)格中心的坐標(biāo),取其Z坐標(biāo),對每一射線判斷此網(wǎng)格中心是否是在射線對應(yīng)的線段內(nèi),如在則把數(shù)組中對應(yīng)元素置為1,否則置為O ;在比較完所有射線后,把各網(wǎng)格對應(yīng)數(shù)組元素相加,如其值大于Μ/2,則表明網(wǎng)格在模型內(nèi)部,否則在模型外部,記錄網(wǎng)格的中心坐標(biāo);遍歷XY平面上所有正方形nxXny個(gè),即能得到剖分?jǐn)?shù)據(jù),各網(wǎng)格疊加起來的模型即為剖分后的模型;
[0019](d).最后求出該立方網(wǎng)格模型的最外層邊界點(diǎn),遍歷所有在模型內(nèi)部網(wǎng)格上的點(diǎn),如果以它為中心的邊長為2 δ的大立方體表面上的26個(gè)點(diǎn)不全在模型內(nèi)部,也不全在模型外部,則這個(gè)點(diǎn)就是邊界上的點(diǎn)。
[0020]本發(fā)明的步驟(a)之后,通過ANSYS軟件對物體模型進(jìn)行三角面元剖分,最終確立一個(gè)剖分的范圍,并且以各小方格的中心坐標(biāo)為起點(diǎn),沿正z方向作M條射向模型的射線。
[0021]本發(fā)明的步驟(b)中求得射線與三角面元的交點(diǎn)并且判斷該交點(diǎn)是否在面元內(nèi)部。
[0022]本發(fā)明的步驟(C)中依次選取M條射線的每一條進(jìn)行判斷,對于閉合形體,每對交點(diǎn)截取射線所得的線段就是目標(biāo)的內(nèi)部區(qū)域。在比較完所有射線后,把各網(wǎng)格對應(yīng)數(shù)組元素相加,如其值大于M/2,則表明網(wǎng)格在模型內(nèi)部,否則在模型外部。
[0023]本發(fā)明的步驟(d)中遍歷所有在模型內(nèi)部網(wǎng)格上的點(diǎn),如果以它為中心的邊長為25的大立方體表面上的26個(gè)點(diǎn)不全在模型內(nèi)部,也不全在模型外部,則這個(gè)點(diǎn)就是邊界上的點(diǎn)。
[0024]本發(fā)明的有益效果:
[0025]本發(fā)明可以很方便地將ANSYS生成的三角面元轉(zhuǎn)化為立方網(wǎng)格,不用通過設(shè)計(jì)圖、制造圖手工或半手工地去構(gòu)造模型,減少了工作量;建模方法和程序均具有通用性,一次編程可完成相應(yīng)情況的任何建模。
【專利附圖】
【附圖說明】
[0026]圖1是本發(fā)明的流程圖。
[0027]圖2是求得的交點(diǎn)在三角面元內(nèi)部的示意圖。
[0028]圖3是求得的交點(diǎn)在三角面元外部的示意圖。
[0029]圖4是金屬圓柱的模型示意圖。
[0030]圖5是坐標(biāo)系中的球錐模型示意圖。
[0031]圖6是用pad6_(l,O)三角面元一立方網(wǎng)格轉(zhuǎn)換PE算法求得的球錐雙站RCS值?!揪唧w實(shí)施方式】
[0032]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的說明。
[0033]如圖1所示,一種下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的說明。
[0034](a).讀入數(shù)據(jù)和確立剖分范圍
[0035]先利用ANSYS軟件對物體模型進(jìn)行三角面元剖分,在輸出的LIST文件中可以得到面片數(shù)目,面片編號,每個(gè)面片包含的三個(gè)頂點(diǎn)的編號以及相應(yīng)的坐標(biāo)等一些信息,利用這些信息可以獲得該物體的外接長方體,即獲得形體的X,Y,Z坐標(biāo)的上下界Xi, Xh, Yi, yh, Z1, Zh,這就是文中所指的剖分范圍。根據(jù)拋物線方程計(jì)算要求確定剖分網(wǎng)格的大小S (文中取0.1個(gè)波長),再計(jì)算要剖分網(wǎng)格的數(shù)量,它由下面的公式確定:
[0036]nx= (Xh-X1) / δ ny= (yh-y!) / δ
[0037]Iiz=(Zh-Z1)/ δ N=nx X ny X nz
[0038]nx, ny, nz并不一定是整數(shù),可以使用去余進(jìn)位法進(jìn)行取整,使其變?yōu)檎麛?shù),nx, ny, nz確定了計(jì)算量與存儲量的大小。在Zci = Z1- δ /2平面上,將X1, xh, Y1, yh所決定的正方形進(jìn)行nx Xny等分,得到nx Xny個(gè)正方形。再把每個(gè)正方形再分為M=mXm個(gè)小方格(m=2或m=3即可)。以各小方格的中心坐標(biāo)為起點(diǎn),沿正z方向作M條射向模型的射線,獲得每一條射線與模型表面的相交情況,并存入數(shù)組(如果不把正方形劃分成小方格,所得判決信息較少,不能反映復(fù)雜形體的細(xì)節(jié),建模精確度較差)。
[0039](b).求射線與三角面元的交點(diǎn)并且判斷該交點(diǎn)是否在面元內(nèi)部
[0040] 求射線與三角面元的交點(diǎn)時(shí),首先求射線與三角面元所在平面的交點(diǎn),然后再判斷該交點(diǎn)是否在三角面元內(nèi)。先從目標(biāo)的三角面元的數(shù)據(jù)文件中,讀取每一個(gè)三角面元(設(shè)為ABC)的3頂點(diǎn)坐標(biāo),然后從3頂點(diǎn)坐標(biāo)求得該三角面元所在平面的幾何方程,最后聯(lián)立平行于z軸的網(wǎng)格線I方程,就可求交點(diǎn)的坐標(biāo)(設(shè)為P點(diǎn),如圖2和圖3所示)。
[0041]判斷交點(diǎn)P是否在三角面元ABC內(nèi)可利用xoy面內(nèi)的投影來分析。設(shè)三角面元ABC和交點(diǎn)P在xoy面內(nèi)的投影分別為Ai B' C1和P'。圖2表示交點(diǎn)在三角面元內(nèi)的情況,圖3表示交點(diǎn)不在三角面元內(nèi)的情況。
[0042]將P’與投影三角形A’ B’ C’的3個(gè)頂點(diǎn)可以構(gòu)造3個(gè)矢量,并依次形成矢量叉乘,。若3者彼此同號表示交點(diǎn)P在三角面元ABC內(nèi);反之,則交點(diǎn)P不在三角面元ABC內(nèi)。當(dāng)P正好在三角面元ABC邊線上,3者中
有一個(gè)為零。
[0043](c).生成立方體剖分網(wǎng)格
[0044]由三角面元數(shù)據(jù)模型數(shù)據(jù)出發(fā)建立目標(biāo)的立方網(wǎng)格模型,關(guān)鍵是判斷立方元胞是否位于目標(biāo)內(nèi)。生成一個(gè)MXnz維數(shù)組(行對應(yīng)每條射線,列對應(yīng)各射線穿過的剖分網(wǎng)格)。依次選取M條射線的每一條進(jìn)行判斷,對于閉合形體,每對交點(diǎn)截取射線所得的線段就是目標(biāo)的內(nèi)部區(qū)域。以S為步長,從外接長方體的最小Z坐標(biāo)Z1開始,以網(wǎng)格中心為起點(diǎn),沿射線方向放置邊長為δ的網(wǎng)格并依次對應(yīng)數(shù)組中的各列,得出每個(gè)網(wǎng)格中心的坐標(biāo),取其Z坐標(biāo),對每一射線判斷此網(wǎng)格中心是否是在射線對應(yīng)的線段內(nèi),如在則把數(shù)組中對應(yīng)元素置為1,否則置為O。在比較完所有射線后,把各網(wǎng)格對應(yīng)數(shù)組元素相加,如其值大于Μ/2,則表明網(wǎng)格在模型內(nèi)部,否則在模型外部。記錄網(wǎng)格的中心坐標(biāo)。遍歷XY平面上所有正方形(nxXnyf)即能得到剖分?jǐn)?shù)據(jù)。各網(wǎng)格疊加起來的模型即為剖分后的模型。圖4為金屬圓柱的三角面元剖分模型。
[0045](d).最后求出該立方網(wǎng)格模型的最外層邊界點(diǎn),我們在此采用這樣的方法:遍歷所有在模型內(nèi)部網(wǎng)格上的點(diǎn),如果以它為中心的邊長為2 δ的大立方體表面上的26個(gè)點(diǎn)不全在模型內(nèi)部,也不全在模型外部,則這個(gè)點(diǎn)就是邊界上的點(diǎn)。
[0046]實(shí)施例一:
[0047]1.分析球錐的電磁散射問題
[0048]如圖5所示,球錐由底面半徑為5m的半球和半徑為5m,高為8m的圓錐組成,自由空間沿X軸入射水平極化波頻率為300MHz,應(yīng)用三維pad6_(l,O)拋物線方程算法得到0°?40°雙站雷達(dá)RCS,如圖6所示。
[0049]本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實(shí)現(xiàn)。
【權(quán)利要求】
1.一種在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法,其特征是它包括以下步驟: Ca).讀入數(shù)據(jù)和確立剖分范圍的步驟: 獲取物體模型的三角面元剖分模型數(shù)據(jù),包括面片數(shù)目、面片編號、每個(gè)面片包含的三個(gè)頂點(diǎn)的編號以及各頂點(diǎn)的坐標(biāo)信息,根據(jù)前述信息得到該物體模型的外接長方體作為剖分范圍,所述的剖分范圍即物體模型的外接長方體由物體模型在X,Y,Z坐標(biāo)軸上的上下界坐標(biāo) X1, Xh, Y1, yh, Z1, Zh 構(gòu)成; 根據(jù)拋物線方程方法或者時(shí)域有限差分方法的計(jì)算要求(指的是剖分網(wǎng)格的精度即邊長嗎?),確定剖分網(wǎng)格的邊長大小δ (文中取0.1個(gè)波長),再計(jì)算要剖分網(wǎng)格的數(shù)量,它由下面的公式確定:
nx= (Xh-X1) / δ ny= (Yh-Y1) / δ
Iiz=(Zh-Z1)/ δ Ν=ηχ X ny X ηζ ηχ, ny,ηζ分別為X,Y,Z坐標(biāo)軸上剖分網(wǎng)格的數(shù)量,如果是整數(shù),則直接獲取,如果不是整數(shù),使用去余進(jìn)位法進(jìn)行取整; 在Zci=Z1- δ /2平面上,將X1, xh, Y1, yh所構(gòu)成的正方形進(jìn)行nxXny等分,得到nxXny個(gè)正方形,再把每個(gè)正方形分為M=mXm個(gè)小方格;m=2或m=3 ;以各小方格的中心坐標(biāo)為起點(diǎn),沿正z軸方向作M條射向物體模型三角面元剖分模型的射線,獲得每一條射線與物體模型表面的相交情況,并將交點(diǎn)坐標(biāo)存入數(shù)組; (b).求各條射線與整個(gè)物體模型的三角面元剖分模型的交點(diǎn)并且判斷該交點(diǎn)是否在面元內(nèi)部的步驟: 求射線與三角面元的交點(diǎn)時(shí),首先求各射線與三角面元所在平面的交點(diǎn),然后再判斷該交點(diǎn)是否在三角面元內(nèi)。先從目標(biāo)的三角面元的數(shù)據(jù)文件中,讀取每一個(gè)三角面元,設(shè)為ABC的3頂點(diǎn)坐標(biāo),然后從3頂點(diǎn)坐標(biāo)求得該三角面元所在平面的幾何方程,最后聯(lián)立平行于z軸的網(wǎng)格線I方程,就可求交點(diǎn)的坐標(biāo),設(shè)為P點(diǎn); 判斷交點(diǎn)P是否在三角面元ABC內(nèi)可利用xoy面內(nèi)的投影來分析,設(shè)三角面元ABC和交點(diǎn)P在xoy面內(nèi)的投影分別為A' B' C’和P'; 將P’與投影三角形A’ B’ C’的3個(gè)頂點(diǎn)可以構(gòu)造3個(gè)矢量,并依次形成矢量叉乘,即/? X PB, PB X廣(7和尸八X PA,若3者彼此同號表示交點(diǎn)P在三角面元ABC內(nèi);反之,則交點(diǎn)P不在三角面元ABC內(nèi)。當(dāng)P正好在三角面元ABC邊線上,3者中有一個(gè)為零。 (c).生成立方體剖分網(wǎng)格 由三角面元數(shù)據(jù)模型數(shù)據(jù)出發(fā)建立目標(biāo)的立方網(wǎng)格模型,判斷立方元胞是否位于目標(biāo)內(nèi),生成一個(gè)MXnz維數(shù)組;行對應(yīng)每條射線,列對應(yīng)各射線穿過的剖分網(wǎng)格;依次選取M條射線的每一條進(jìn)行判斷,對于閉合形體,每對交點(diǎn)截取射線所得的線段就是目標(biāo)的內(nèi)部區(qū)域;以S為步長,從外接長方體的最小Z坐標(biāo)Z1開始,以網(wǎng)格中心為起點(diǎn),沿射線方向放置邊長為δ的網(wǎng)格并依次對應(yīng)數(shù)組中的各列,得出每個(gè)網(wǎng)格中心的坐標(biāo),取其Z坐標(biāo),對每一射線判斷此網(wǎng)格中心是否是在射線對應(yīng)的線段內(nèi),如在則把數(shù)組中對應(yīng)元素置為1,否則置為O ;在比較完所有射線后,把各網(wǎng)格對應(yīng)數(shù)組元素相加,如其值大于Μ/2,則表明網(wǎng)格在模型內(nèi)部,否則在模型外部,記錄網(wǎng)格的中心坐標(biāo);遍歷XY平面上所有正方形IixXny個(gè),即能得到剖分?jǐn)?shù)據(jù),各網(wǎng)格疊加起來的模型即為剖分后的模型; (d).最后求出該立方網(wǎng)格模型的最外層邊界點(diǎn),遍歷所有在模型內(nèi)部網(wǎng)格上的點(diǎn),如果以它為中心的邊長為2 δ的大立方體表面上的26個(gè)點(diǎn)不全在模型內(nèi)部,也不全在模型外部,則這個(gè)點(diǎn)就是邊界上的點(diǎn)。
2.根據(jù)權(quán)利要求1所述的在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法,其特征是在步驟(a)之后,通過ANSYS軟件對物體模型進(jìn)行三角面元剖分,最終確立一個(gè)剖分的范圍,并且以各小方格的中心坐標(biāo)為起點(diǎn),沿正z方向作M條射向模型的射線。
3.根據(jù)權(quán)利要求1所述的在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法,其特征是在步驟(b)中求得射線與三角面元的交點(diǎn)并且判斷該交點(diǎn)是否在面元內(nèi)部。
4.在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法,其特征是在步驟(c)中依次選取M條射線的每一條進(jìn)行判斷,對于閉合形體,每對交點(diǎn)截取射線所得的線段就是目標(biāo)的內(nèi)部區(qū)域。在比較完所有射線后,把各網(wǎng)格對應(yīng)數(shù)組元素相加,如其值大于M/2,則表明網(wǎng)格在模型內(nèi)部,否則在模型外部。
5.根據(jù)權(quán) 利要求1所述的在拋物線方程中由三角面元數(shù)據(jù)生成立方網(wǎng)格數(shù)據(jù)的方法,其特征是在步驟(d)中遍歷所有在模型內(nèi)部網(wǎng)格上的點(diǎn),如果以它為中心的邊長為2 δ的大立方體表面上的26個(gè)點(diǎn)不全在模型內(nèi)部,也不全在模型外部,則這個(gè)點(diǎn)就是邊界上的點(diǎn)。
【文檔編號】G06T17/30GK103914879SQ201310006196
【公開日】2014年7月9日 申請日期:2013年1月8日 優(yōu)先權(quán)日:2013年1月8日
【發(fā)明者】黃漢卿, 馮鋒, 戚湧, 李千目, 袁紅兵 申請人:無錫南理工科技發(fā)展有限公司