宋艷麗
基于CFD的三維復雜地形建模技術研究
宋艷麗
(武漢交通職業學院,湖北 武漢430065)
運用數值方法和離散格式,分析穩定性、計算速度和精度等因素對各種復雜流動的物理現象的影響,以達到最佳組合,從而準確高效第解決在不同領域中的復雜流動的計算問題。文章運用CFD仿真模擬復雜地形氣體擴散,或大氣環境。介紹了地形圖數據的提取,具體運用Mat1ab對地形數據的處理及如何將地形數據導入CFD中,最后運用此方法建立了實際復雜地形地表的三維模型。證明此方法簡單適用,可對復雜地形氣體擴散數值模擬提供很大的幫助。
仿真;三維地形圖;插值;CFD
CFD軟件設計的思想,從用戶需求角度出發,針對各種復雜流動的物理現象,采用不同的離散格式和數值方法,以期在特定的領域內使計算速度、穩定性和精度等方面達到最佳組合,從而高效率地解決各個領域的復雜流動計算問題?;谏鲜鏊枷耄珻FD開發了適用于各個領域的流動模擬軟件,這些軟件能夠模擬流體流動、傳熱傳質、化學反應和其它復雜的物理現象,軟件之間采用了統一的網格生成技術及共同的圖形界面,而各軟件之間的區別僅在于應用的背景不同,因此大大方便了用戶。在運用CFD仿真模擬復雜地形氣體擴散,或大氣環境時。很難建立非常精確的地形圖,往往要經過一定的處理,建立與實際地形非常相似的地形圖。文章將對如何在CFD中建立三維復雜地形進行討論。
將地物和地貌中的空間實體用對應的水平位置和高程來表示。水平位置用在水平面上的正投影表示,高程用特征點和特征線的高程表示。地物或地貌在水平面上投影用X和Y用來表示,高程用Z表示,從而得到三維數值地形圖。
地形圖數據的獲取有以下幾種方法:
(1)把紙質地形圖劃分成四方網格,標出所有網格交點的三維坐標。此方法的弊端:當地形圖太大太復雜,人工輸入太煩瑣,效率不高。
(2)運用CAD2004配合CASS6.1提取地形圖的坐標。
MATLAB運用人們比較容易記住的代碼編程,解決各種學科中比較復雜的數學問題。并且開發出工各種程軟件,大大提高了工作的效率。數字高程模型(DEM)的優勢顯而易見。CASS6.1提取的坐標值非規則矩陣,在CFD中不能被識別,故需利用Matlab對其進行處理。
2.1數據讀入
Matlab有兩種數據讀入方式:文件輸入或屏幕數字化。本研究運用文件輸入方式。例如現有某山區復雜三維地形三維離散點坐標的txt文件。
(1)將原始坐標點文件用Load命令輸入到Matlab中,得到以點的個數為行,以x、y、z為列的矩陣,但不便于插值運算。
(2)按列提取上述矩陣,格式為:x=xyz(:,1);y=xyz(:,2);z=xyz(:,3),分別得到x、y、z的矩陣。
2.2Matlab三維插值
(1)運用meshgrid函數計算網格坐標矩陣,格式為:
[xx,yy]=meshgrid(xlin,ylin)。
(2)運用插值函數griddata計算網格點坐標,格式為:
zz=griddata(x,y,z,xx,yy,‘cubic’),其中‘cubic’表示三次樣條插值算法。
(3)運用Linspace函數計算x坐標數組,格式為:
xlin=linspace(min(x),max(x),256),y坐標數組類似。
(4)繪制三維網格圖如圖1所示,格式為:
mesh(X,Y,Z)
axis tight;hold on%打開坐標軸。
plot3(x,y,z,'.','MarkerSize',15)%繪制三維曲線圖。

圖1 插值后的三維地形網格圖
(5)生成成xyz的矩陣坐標,矩陣為120行120列,程序為:
for i=0:n
xyz(1+i*120:120+i*120,1)=X(1:120,1+i);
xyz(1+i*120:120+i*120,2)=Y(1:120,1+i);
xyz(1+i*120:120+i*120,3)=Z(1:120,1+i);
end
(6)圖幅邊界處理。在大于圖幅坐標范圍內收集離散點的信息,從而保證在邊界處的網格點內插值的準確性。函數find查找超出圖幅邊界的網格點,函數nnz求取其個數,但不繪制圖幅外的等高線。
(7)保存生成的xyz,矩陣坐標為.txt格式,NaN輸為0,再保存。
在Matlab中生成具有特定的格式的txt文件,如果一個3行3列的三維數據地形為2,2,1;2,4,2;2,6,4;4,2,3;4,4,6;4,6,5;6,2,2,6,4,3;6,6,5。其在記事本中的格式如下:
3 3
2 2 1
2 4 2
2 6 4
4 2 3
4 4 6
4 6 5
6 2 2
6 4 3
6 6 5

圖2 劃分網格的簡單地形圖曲面
第一行包括行數和列數,每行是一個三維坐標,數值之間需用空格隔開,將txt文件導入File/Improt/ICEM Input…,生成三維地形,在一個完整面的地形途中進行網格劃分,如圖2所示。
現有重慶開縣井噴地點地形圖如圖3所示,通過上述方法建立地表三維實體模型,模型大小為10000m×10000m× 1300m,井口在模型正中間。

圖3 地形圖
是以井口中心為原點,Z坐標以海拔0m為起點。文章通過Matlab插值,把10000m×10000m的地形圖生成90×90的三維坐標矩陣,這個三維矩陣存在一個txt中。地形的最低點海拔為0m,最高點海拔1300m。村莊、路、小河、農田、山等的標識可以等到仿真后統一標注。圖4是在CFD中生成的復雜地形三維地表模型。

圖4 CFD中生成的復雜地形三維表模型
復雜山地地形模型可以說是仿真計算中最復雜的模型之一。文章探討了在CFD中復雜地形三維建模方法,介紹了地形圖數據的提取,具體運用Matlab對地形數據的處理及如何將地形數據導入CFD中,最后運用此方法建立了實際復雜地形地表的三維模型。證明此方法簡單適用,有很大的使用價值。
[1]徐青.地形三維可視化技術「M].北京:北京測繪出版社,2000.
[2]陳天偉.應用Mat1ab構造數字高成模型工具箱[J].桂林工學院學報,2003,23(4):453-456.
[3]陳天偉.建立基于MATLAB的測量控制網設計工具箱[J].桂林工學院學報,2002,22(3):244-245.
[4]張宜華.精通MATLAB5[M].北京:清華大學出版社,2000.
[5]王漢清,沈小建,等.復雜山地大氣環境三維建模與仿真方法[J].建筑熱能通風空調,2006,25(2):13-16.
Study on Complex Three-dimensional Terrain Modeling Technology Based on CFD
SONG Yan-li
(Wuhan Transportation Vocational College,Wuhan,Hubei 430065,China)
Using the numerica1 method and discrete format,inf1uence of stabi1ity,computing speed and accuracy on the physica1 phenomena of various comp1ex f1ow are ana1yzed to achieve the best combination,thus so1ving the comp1ex f1ow computationa1 prob1ems in different fie1ds.In this paper,the CFD simu1ation is used to simu1ate comp1ex terrain gas diffusion or atmospheric environment.Topographic map data extraction is introduced,using Mat1ab to process terrain data and 1oad terrain data into CFD,fina11y using this method to estab1ish the rea1 3D mode1 of the comp1ex terrain surface.It is proved that this method is simp1e and app1icab1e,and can provide numerica1 simu1ation of gas diffusion in comp1ex terrain.
simu1ation;three-dimensiona1 topographic map;interpo1ation;CFD
P221
A
2095-980X(2016)03-0052-02
2016-02-19
宋艷麗(1981-),女,山東濟寧人,碩士研究生,講師。