摘要:本文以主要研究如何在CAD軟件中實(shí)現(xiàn)數(shù)字地形的構(gòu)建。首先采集地形數(shù)據(jù),然后對(duì)采集的散亂數(shù)據(jù)進(jìn)行散亂點(diǎn)數(shù)據(jù)插值處理,編制產(chǎn)生地形譜的軟件,自動(dòng)生成地面譜文件,由軟件直接讀取,生產(chǎn)反映真實(shí)地域地形特征的數(shù)字地形。
關(guān)鍵詞:數(shù)字地形;插值算法;地面譜
1、引言
美同MSC公司的ADAMS軟件是世界一流首屈一指的大型機(jī)械系統(tǒng)運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)仿真分析軟件[1],所以我們選擇了ADAMS軟件來(lái)生成數(shù)字地形,用于仿真試驗(yàn)。ADAMS所提供地生成數(shù)字地形的工具是地面譜,要生成能反映真實(shí)地域形貌的數(shù)字地形,需要大量的數(shù)據(jù),因?yàn)锳DAMS數(shù)字地形的可視性以及精密度完全依賴于網(wǎng)格密度,網(wǎng)格密度越大數(shù)字地形的視覺(jué)效果越好,精度越高,這就為手工編寫(xiě)地面譜帶來(lái)了很大的難度。因此我們開(kāi)發(fā)了地面譜的生成軟件,處理散亂數(shù)據(jù),通過(guò)插值的方法,直接生成地形譜,成功地在ADAMS實(shí)現(xiàn)能表現(xiàn)真實(shí)地域形貌的數(shù)字地形。數(shù)字地形構(gòu)建的整體思路如圖1。
2、數(shù)據(jù)的獲取
三維數(shù)字地形數(shù)據(jù)采集的最終目的是為了獲取在CAD軟件中生成數(shù)字地形所需的三維數(shù)據(jù)點(diǎn),其主要模式就是地形測(cè)量。地形測(cè)量的任務(wù)就是確定地面上點(diǎn)的空間位置。而確定地面點(diǎn)的空間位置通常是求出該點(diǎn)在平面上的位置(平面直角坐標(biāo)),以及該點(diǎn)到大地水準(zhǔn)面的垂直距離,也就是高程。從任意一點(diǎn)到大地水準(zhǔn)面的鉛垂線距離,稱為該點(diǎn)的絕對(duì)高程。當(dāng)求一個(gè)點(diǎn)的絕對(duì)高程有困難的時(shí)候,我們可以假定任意一個(gè)水準(zhǔn)面為高程起算面,這個(gè)水準(zhǔn)面稱為假定水準(zhǔn)面。從一點(diǎn)到假定水準(zhǔn)面的鉛垂線距離稱為該點(diǎn)的假定高程[2]。
一個(gè)未知點(diǎn)的高程一般是根據(jù)一個(gè)高程已知的點(diǎn)確定的。先測(cè)出兩點(diǎn)之間的高程差,然后再根據(jù)一點(diǎn)的已知高程求出另一點(diǎn)的高程。在不同場(chǎng)合下可采用不同的高程測(cè)量的方法。幾何水準(zhǔn)法是利用水平視線的一種方法。這是高程測(cè)量中的最精確的方法,所用的儀器是水準(zhǔn)儀。水準(zhǔn)測(cè)量是利用水準(zhǔn)儀提供的水平視線對(duì)豎立在兩點(diǎn)的水準(zhǔn)尺進(jìn)行觀測(cè),以測(cè)定兩點(diǎn)間的高差,如果其中一點(diǎn)高程為已知,另一點(diǎn)高程即可算出,這個(gè)方法稱為幾何水準(zhǔn)法。如圖2,若要測(cè)定M、N兩點(diǎn)高差,可在兩點(diǎn)間安置水準(zhǔn)儀,在M、N兩點(diǎn)分別鉛直豎立水準(zhǔn)尺,利用水準(zhǔn)儀的水平視線讀出M點(diǎn)水準(zhǔn)尺上讀數(shù)a和N點(diǎn)水準(zhǔn)尺上讀數(shù)b,則得到高差法公式:
hMN=a-b
式中:a——已知高程點(diǎn)的水準(zhǔn)尺讀數(shù),稱為后視讀數(shù)
b——欲求高程點(diǎn)的水準(zhǔn)尺讀數(shù),稱為前視讀數(shù)。
hMN即為N點(diǎn)對(duì)M點(diǎn)的高差.如果M點(diǎn)高程HM為已知,則N點(diǎn)的高程為:
HN=HM+hmn
3地面譜生成軟件的開(kāi)發(fā)
3.1插值算法的確定
利用ADAMS實(shí)現(xiàn)地形仿真,主要是對(duì)地面譜的編制,而地面譜的編制主要是輸入節(jié)點(diǎn)的數(shù)量和每個(gè)節(jié)點(diǎn)的坐標(biāo)以及構(gòu)成每個(gè)三角形元素的三個(gè)節(jié)點(diǎn)和每個(gè)元素中輪胎與此塊地面之間的靜摩擦系數(shù)和動(dòng)摩擦系數(shù)。要生成M×N的格網(wǎng)地形,就必須輸入M×N個(gè)節(jié)點(diǎn)和(M×2-2)×(N-1)×3個(gè)構(gòu)成三角形元素的節(jié)點(diǎn)。精確度越高、網(wǎng)格劃分的越密,需要的數(shù)據(jù)量越大。為了能準(zhǔn)確表達(dá)地形地貌,不可能用測(cè)量的方法得到全部數(shù)據(jù),測(cè)量得到的僅僅是很小一部分的散亂數(shù)據(jù)。所謂散亂數(shù)據(jù)指的是在二維平面上或三維空間中,無(wú)規(guī)則的,隨機(jī)分布的數(shù)據(jù)。散亂數(shù)據(jù)按其復(fù)雜程度可分為單自變量,雙自變量及多自變量3種類(lèi)型。其可視化的方法可以分為插值與擬合,本文主要采用雙自變量散亂數(shù)據(jù)的插值方法。
近30年來(lái)已經(jīng)有多種插值算法被提了出來(lái)。但是,由于應(yīng)用問(wèn)題千差萬(wàn)別,數(shù)據(jù)量大小不同,對(duì)連續(xù)性的要求也不同等等,沒(méi)有一種算法適合用于所有的場(chǎng)合。而且大多數(shù)算法只能適用于具有中、小規(guī)模數(shù)據(jù)量的散亂點(diǎn)插值問(wèn)題[3]。具體可分為:與距離成反比的加權(quán)法;徑向基函數(shù)插值法;有限元方法。
在綜合考慮了各算法的計(jì)算速度和實(shí)現(xiàn)的難易度后,本文采用徑向基函數(shù)插值法Multiquadric方法對(duì)測(cè)量得到的散亂數(shù)據(jù)進(jìn)行插值。Multiquadric方法是R.L.Harry在1971年提出來(lái)的,它是最早提出并且應(yīng)用得最為成功的一種徑向基函數(shù)插值法。它屬于全局插值算法,插值函數(shù)決定于全部數(shù)據(jù)點(diǎn)的函數(shù)值,當(dāng)增加、刪除或改變一個(gè)點(diǎn)的位置或函數(shù)值時(shí),插值函數(shù)必須重新考慮。它采用的插值函數(shù)為:
如果相對(duì)于數(shù)據(jù)點(diǎn)之間得距離,C的取值過(guò)大,則會(huì)導(dǎo)致病態(tài)的系數(shù)矩陣,影響了求解。在大多數(shù)情況下,C取值小些則結(jié)果較好,本文取0.9-1.2。構(gòu)造插值函數(shù)F(X,Y)的關(guān)鍵在于得到Ai(i=1,2,3…,n),把所測(cè)的Xi,Yi值代入插值函數(shù)就可得以Ai為未知數(shù)的方程組。測(cè)得n組數(shù)據(jù)就有n個(gè)插值函數(shù)系數(shù)Ai,即n個(gè)未知數(shù),也會(huì)得到n個(gè)方程。則求解插值函數(shù)系數(shù)就轉(zhuǎn)化為齊次方程組求解問(wèn)題。
3.2軟件實(shí)現(xiàn)
本文應(yīng)用Visual Studio.NET[4]作為開(kāi)發(fā)工具,編寫(xiě)了地面譜生成得軟件。運(yùn)行程序,出現(xiàn)圖3界面:
根據(jù)對(duì)話框提示輸入數(shù)據(jù),單擊生成,在Release目錄下生成名為road.rdf的地面數(shù)據(jù)文件。
4 數(shù)字地形模型的生成
將地形譜文件讀入ADAMS/View中,可生成數(shù)字地形,見(jiàn)圖4;其多角度視圖如圖5。
地面視景的顯示涉及到多學(xué)科的理論,本文重點(diǎn)研究如何把現(xiàn)實(shí)真實(shí)地面的形貌映射到計(jì)算機(jī)中,構(gòu)建數(shù)字三維地形,在CAD軟件ADAMS用戶界面中生成地形視景。為了解決編制顯示精度高的地面譜數(shù)據(jù)文件而要處理大量文件的困難,編制軟件是一個(gè)很實(shí)用的方法。
參考文獻(xiàn)
[1] 李軍,邢俊文,覃文浩.ADAMS實(shí)例教程.北京理工大學(xué)出版社,2002.7,P129~134.
[2] 劉肇光,宗封儀.測(cè)量學(xué)(第四版).中國(guó)建筑工業(yè)出版社,1995.6,P251~258.
[3] 唐澤圣.三維數(shù)據(jù)場(chǎng)可視化.清華大學(xué)出版社,1999.12,P130~152.
[4] 錢(qián)能.C++程序設(shè)計(jì)教程.清華大學(xué)出版社,1999.4.