




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章水準網平差程序設計第1頁,課件共58頁,創作于2023年2月該課程中所采用的平差模型為間接平差,即所選的獨立參數的個數等于必要觀測數,這樣可以將每個觀測值表示成這t個參數的函數,組成觀測方程。間接平差的函數模型:平差時一般對所選參數取近似值
代入上式并令由此可得誤差方程,式中為誤差方程常數項一、水準網間接平差算法概述第2頁,課件共58頁,創作于2023年2月采用的平差準則為最小二乘法:不難看出總共有n+t個參數,而所列的誤差方程只有n個,故只采用誤差方程是不能解求n+t個參數的,還需尋找其他的條件。按著最小二乘法法則,對t個參數求偏導,得出式子由誤差方程和求偏導后得到的式子,可唯一確定n+t個待求量。并有這兩個式子可以推出法方程,如為:從而可求得,將該式代入到誤差即可求得改正數。第3頁,課件共58頁,創作于2023年2月從而平差值結果為:本課程中以未知點高程值作為未知參數,以高差作為觀測值,以觀測路線長度的倒數作為觀測值的權,采用間接平差模型進行平差計算。其平差的一般步驟如下:1.根據平差問題選定未知參數;2.根據觀測值與未知參數之間的函數關系建立誤差方程式,若誤差方程是非線性方程,還要引入參數近似值,將誤差方程線性化;3.由誤差方程組成法方程;第4頁,課件共58頁,創作于2023年2月4.解算法方程,求取未知參數;5.精度評定。平差程序設計不僅僅是“寫程序”,測量程序設計還包括程序功能設計、平差模型選擇、算法選擇、數據接口設計等內容。一般應按數據處理和計算功能的劃分,將網平差程序分為若干獨立函數(或過程),每個函數(或過程)完成特定的計算或操作,當需進行某種平差時,再調用這些函數即可。第5頁,課件共58頁,創作于2023年2月
二、水準網平差程序設計數據組織及處理流程第6頁,課件共58頁,創作于2023年2月2.1水準網平差中數據的組織(數據文件格式的設計)水準網平差程序設計中數據的組織是一個關鍵問題。文件格式的設計就是規定數據文件中包含的內容、各類數據的先后順序以及各種數據的書寫格式。從程序設計者的角度來說,數據文件格式設計相當于告訴用戶應當怎樣準備數據文件,當然,程序中也必須按照約定的格式從文件中讀取數據。數據文件由四個部分組成,其格式如下。1)基本信息部分:該部分僅占一行,其內容為已知點數N1,未知點數N2,高差觀測值個數NS。第7頁,課件共58頁,創作于2023年2月2)已知點高程信息:該部分占N1行,每行格式為已知點編號,該點的高程(單位:米)。注意:在給控制點編號時,先給待定點編號,然后給已知點編號。編號從1開始順序編號。3)高差觀測值信息:該部分占NS行,每行格式為測段編號,測段起點編號,測段終點編號,測段觀測高差(單位:米),測段長度(單位:千米)。4)點名信息:該部分占N(N=N1+N2)行,每行格式為水準點編號,該點名稱其中點名長度不超過8個字符,即4個漢字。但最好用字符串命名。第8頁,課件共58頁,創作于2023年2月
以下為一具有兩個已知點、三個待定點和七個測段的水準網的示例數據,打開TXT文件文件后,內容如下。2,3,74,5.0165,6.0161,4,1,1.359,1.12,4,2,2.009,1.73,5,1,0.363,2.34,5,2,1.012,2.75,1,2,0.657,2.46,1,3,0.238,1.47,3,5,-0.595,2.61,P12,P23,P34,A5,B第9頁,課件共58頁,創作于2023年2月2.2數據存儲方案設計
這里的數據存儲是指數據在內存中的存儲。測量平差程序中用到的數據較多,一般先將磁盤中的數據讀到內存中,按照不同的類別有序地放在變量或數組中,然后再進行平差計算,最后將計算結果寫到磁盤文件中。第10頁,課件共58頁,創作于2023年2月要整潔、簡練、實用、方便有關數據的輸入或輸出,必要的話要考慮和用戶的交互,盡量不要畫蛇添足。三、水準網平差界面設計第11頁,課件共58頁,創作于2023年2月水準網平差輸入界面一第12頁,課件共58頁,創作于2023年2月水準網平差輸入界面二第13頁,課件共58頁,創作于2023年2月水準網平差輸入界面三第14頁,課件共58頁,創作于2023年2月四、高差閉合差的計算與檢查為了檢查水準高差的質量,水準網平差前一般進行附合水準路線閉合差計算與多邊形閉合差計算,并進行閉合差的檢核。1.附合水準路線高差閉合差的計算a)最短路線搜索算法
“鄰接點”:若一個點借助另一個點與目標點發生了聯系,稱另一個點是這個點的“鄰接點”。如果一個點與目標點有直接聯系,我們也把目標點稱為這個點的鄰接點。第15頁,課件共58頁,創作于2023年2月
顯然鄰接點不是唯一的,但是我們規定每個點只有一個鄰接點;當網中每個點的鄰點都唯一確定時,順著鄰接點又可找到鄰點的鄰接點,這樣一層一層地找下去,最終找到目標點,每個點到目標點的路線是唯一確定的。根據鄰接點的概念可知,任何一點沿鄰接點到目標點的路線長度是其鄰接點到目標點的路線長度再加上該點與其鄰接點之間的路線長度。當一個點有多個點可以作為鄰接點時,只選擇路線最短的一點作為鄰接點,這樣就可保證沿鄰接點到目標點的路線是最短路線。第16頁,課件共58頁,創作于2023年2月
設p1選擇p2作為鄰接點,P2到目標點的路線長度為S2,p1到p2的路線長度為S12,則p1到目標點的路線長度S1為S1=S2+S12若還有一點P3也是P1的鄰接點,則經由P3到目標點的路線長度為
S’1=S3+S13為了尋求最短路線,顯然當S1<S’1時,應選p2作為p1的鄰接點,反之應選擇p3作為p1的鄰接點。因此尋求最短路線的過程轉化為給每個點尋找鄰接點的過程,當每個點都有了鄰接點,且這個點連接的路線又是最短路線時,搜素工作即告結束。第17頁,課件共58頁,創作于2023年2月綜上所述,設目標點點號為k1,搜索各點到k1的最短路線的計算過程如下:(1)定義兩個數組。一個數組Neighbor用來存儲每個點的鄰接點點號;另一數組S用來存儲每個點到目標點的路線長度。(2)將S(k1)賦值為0,數組的其它元素賦值為1.0e30(每點到目標點的初始路線長度為無窮大),Neighbor(k1)賦值k1,Neighbor數組的其它元素賦值為-1(表示沒有鄰接點)。(3)循環訪問每一個觀測值,取出每個觀測值的起點點號(假定為p1)和終點點號(假定為p2)第18頁,課件共58頁,創作于2023年2月根據p1、p2得到p1到目標點的路線長度S1和p2到目標點的長度S2,再結合p1、p2的路線長度S12,判斷p1是否可以作為p2的鄰接點,以及p2是否可以作為p1的鄰接點。那么p1可作為p2的鄰接點的條件為:S2>S1+S12
…(條件1)p2可作為p1的鄰接點的條件為:S1>S2+S12…(條件2)若條件1成立時,Neighbor(p2)=p1,S(p2)=S1+S12;若條件2成立時,Neighbor(p1)=p2,S(p2)=S1+S12。第19頁,課件共58頁,創作于2023年2月(4)當水準網的規模較大時,在循環訪問每一個觀測值后某些點到目標點的路線還不是最短路線,甚至有些點還沒有找到鄰接點,需要轉到(3)繼續為尋找路線最短的鄰接點,直到所有的觀測邊不再滿足條件1和條件2,這時表明每個點都已經找到了到目標點最短的鄰接點,搜素工作結束。第20頁,課件共58頁,創作于2023年2月最短路線搜索函數
FindShortPath(pasinteger,excludeasinteger,neighbor()as
integer,diff()as
double,S()asdouble)從一個已知點出發用觀測高差依次推算其它各點的高程,最后閉合到另外一個已知點上,閉合點上推算高程和已知高程值之差稱之為附合水準路線閉合差,簡稱路線閉合差。設k1、k2為兩個已知點,已知高程值分別為H1、H2,兩點之間的推算路線由高差h1,h2……hn,各測段路線長度分別為S1,S2
……Sn,路線閉合差為式中,正負號取決于高差起始點到終點的方向與推算路線是否一致。b)路線閉合差計算算法第21頁,課件共58頁,創作于2023年2月閉合差的限差為:假如網中共有m個已知點,將m個已知點兩兩組合,計算m(m-1)/2條附合路線的閉合差,每條路線按最短路線進行計算。
第22頁,課件共58頁,創作于2023年2月
在水準網中,由觀測高差相連接可以形成閉合多邊形,理論上構成閉合多邊形的各觀測高差之和應該為0,由于觀測誤差的存在,高差之和一般不等于0,閉合多邊形的觀測之和稱為環閉合差。一般情況下,設構成閉合環的觀測高差h1,h2……hn,環閉合差為
式中,正負號取決于高差起點到終點的方向與推算路線的方向一致。c)環閉合差計算算法第23頁,課件共58頁,創作于2023年2月環閉合差的限差為實際計算時,一般只計算最小獨立環的閉合差。最小閉合環應該滿足如下條件:(1)多邊形環應該是相互獨立(線性無關)的,即任何一個多變邊不能由其它多邊形線性組合而得到。滿足獨立條件可以避免重復計算,也可以避免遺漏。設水準網中有n個觀測高差、t個高程點,那么獨立閉合環的個數為r=n-t+1保證閉合環獨立的方法是,每個新環找到的閉合環都有前面找到的閉合環中不曾使用的觀測值。第24頁,課件共58頁,創作于2023年2月(2)在多邊形環獨立的情況下,閉合環的邊長最短。關于最小環問題可以用最短路徑的方法解決。若僅通過一個觀測值即可將兩個點p1到p2連接起來,構成一條路線,可把這種路線稱為p1到p2的直接路線。如果直接路線能同別的觀測值構成閉合環,那么從p1到p2應有兩條或兩條以上的路線。如果選定一條直接路線,再從非直接路線中找到p1到p2的最短路線,把這條最短路線與直接路線連接起來一定是包含直接路線的最小環。為保證找到的閉合環是獨立的,只能將未參加過前面環閉合差計算的觀測作為直接路線。第25頁,課件共58頁,創作于2023年2月五、待定點近似高程計算
待定點高程計算是為了得到未知點的高程近似值,在求取未知點近似高程的時候,要注意測段的方向及相關正負號。既可以進行人工計算后輸入到程序中,也可以直接將原始數據直接讀入到程序中,根據相關算法讓程序自動計算。計算原理如下式:第26頁,課件共58頁,創作于2023年2月水網觀測數據(測段)的組織:測段號起點終點測段高差(m)測段長(km)測站數1AB5.8351.52EC1.0060.83DC7.3842.14BC3.7823.25AD2.2701.76AC9.641.37AF0.0034.1第27頁,課件共58頁,創作于2023年2月水準網近似高程計算算法1、定義存儲水準網高程的數組H(),將已知點(原有高程和計算出的近似高程都可視為已知點)存到H()數組中;2、遍歷所有測段(即從第一個測段到最后一個測段);
a)判斷測段中起點為已知點,判斷終點為未知點,若同時成立,則利用公式計算該測段中未知點的高程,并存儲到H()中;第28頁,課件共58頁,創作于2023年2月b)再次遍歷測段,找到滿足這些條件的測段(其起點未知點,終點是已知點),若同時滿足,則進行起點近似高程的計算,把計算出的近似高程存到H()數組中;3、判斷計算出近似高程的個數是否小于未知點高程點的個數,若是再次進行循環,若否,計算完畢(即水準網中未知高程點的近似高程已全部計算出來),水準網中所有未知點的高程存放到H()數組中了。第29頁,課件共58頁,創作于2023年2月六、誤差方程的組成
對于水準網平差,關鍵就是誤差方程的構建,即相關矩陣的生成,這里所指的矩陣是誤差方程系數矩陣B和常數矩陣L。如何來組成這兩個矩陣呢?還是一個方程一個方程的建立,最后將相應值存儲到矩陣B和L的對應元素中。第30頁,課件共58頁,創作于2023年2月系數矩陣B構建算法描述:1、定義一個存儲系數B的數組B(),其行數為觀測測段數,列數為所選必要參數個數;定義一個存儲常數陣L的數組L(),其行數為測段個數,列數為1;2、取出第j個測段(測段數據存儲在測段信息數組中的),首先判斷該測段起點是否為已知點(也即其在已知點數組H()中的下標位于起算高程點個數內,如:起算高程點個數為5,起點在已知數組中的下標為i,當i小于等于5時,說明該起點為已知點,若i大于5,則說明該起點為未知點,同樣終點是什么類型的點也通過該方法判斷),記下其在a()中的下標i1(原始已知點數為i0);判斷該測段終點是什么類型的點記下其在a()中的下標i2;第31頁,課件共58頁,創作于2023年2月a)、若該測段的起點為未知點,且終點也為未知點,則矩陣B的第j行、第(i1-i0)列的元素為-1,第j行、第(i2–i0)列的元素為1;那么第j行其它元素都為0;
b)、若該測段的起點為已知點,且終點為未知點,則矩陣B的第j行、第(i2-i0)列的元素為1,該行其它元素都為0;
c)、若該測段的起點為未知點,且終點為已知點,則矩陣B的第j行、第(i1-i0)列的元素為-1,該行其它元素都為0;第32頁,課件共58頁,創作于2023年2月3、根據每測段起點和終點點的類型,就可以計算出這個誤差方程的常數項,把計算出的數值放到L()中去就可以了;4、遍歷完所有的測段,即可構建出矩陣B和常數項矩陣L,即其所有的元素都存儲在b()和L()中了。第33頁,課件共58頁,創作于2023年2月七、法方程的組建 有了B和L,基于最小二乘原理,對所選參數求偏導后的式子,推出法方程,即:第34頁,課件共58頁,創作于2023年2月直接計算法方程系數陣和常數陣(累加法)
組成法方程是間接平差的關鍵步驟,由間接平差模型可知,在誤差方程系數矩陣B,誤差方程常數項以及觀測值的權P確定時,法方程系數矩陣和自由項向量分別為BTPB和BTPL,組成法方程就是矩陣的乘積。但在水準網平差程序設計時,為了節省存儲單元,可不必為誤差方程矩陣B開辟存儲數組,權陣也只保存對角線上的元素,組成法方程的計算就不是矩陣乘積運算了,而是根據觀測值的起始點號、終點號、高差值和觀測值的權直接計算出法方程的系數陣BTPB和自由項向量BTPL。第35頁,課件共58頁,創作于2023年2月
應將pk、-pk累加到法方程系數矩陣的什么位置?若第K個觀測高差的起點點號和終點點號分別為i、j,則需將pk累加到法方程系數矩陣的第i行第i列和第j行第j列,將-pk累加到法方程系數矩陣的第j行和第i列。同理,應將pklk和-pklk分別累加到法方程常數項的第j行和第i行中。第36頁,課件共58頁,創作于2023年2月
組成法方程的過程就是以觀測值總數為循環界,逐個觀測值計算累加項的過程,在第k個循環中,所做的工作如下:(1)獲得高差的起點點號i和終點號j;(2)獲得起點和終點的高程值Hi和Hj;(3)計算誤差方程的自由項lk=Hj-Hi-hk;(4)將pk、pklk累加到法方程系數陣和法方程自由項的相應單元中。第37頁,課件共58頁,創作于2023年2月
可以將法方程系數矩陣和法方程常數項矩陣的計算定義成一個函數Ca_ATPA()。voidCLevelingAdjust::ca_ATPA(){intt=m_Pnumber;for(inti=0;i<t*(t+1)/2;i++)ATPA[i]=0.0;for(i=0;i<t;i++)ATPL[i]=0.0; for(intk=0;k<m_Lnumber;k++){inti=StartP[k]; intj=EndP[k]; doublePk=P[k]; doubleLk=L[k]-(Height[j]-Height[i]); ATPL[i]-=Pk*Lk; ATPL[j]+=Pk*Lk; ATPA[ij(i,i)]+=Pk; ATPA[ij(j,j)]+=Pk; ATPA[ij(i,j)]-=Pk;}}第38頁,課件共58頁,創作于2023年2月八、水準網平差定權水準網平差中還有涉及到權陣P的確定,有了權陣P,和我們上面所構建出來的B和l,就可以很容易的進行參數改正值和觀測值改正值的解算了。我們一般怎樣來定權?設有觀測值Li(i=1,2,…n)它們的方差為若選定一常數,定義,并稱P為觀測值Li的權。對于一組觀測值,其權之比等于相應方差的倒數之比。這表明,方差越小,其權越大;或者說精度越高,其權越大。因此權可以作為比較觀測值之間的精度高低的一種指標。第39頁,課件共58頁,創作于2023年2月結論:(1)選擇了一個,即對應一組權;(2)一組觀測值的權,其大小是隨的不同而異,但不論選何值,權之間的比例關系始終不變;(3)為了使全能夠起到比較精度的作用,在同一問題中只能選取一個值,不能同時選取幾個,否則就破壞了權之間的比例關系;(4)只要給出了一定的觀測條件,不一定要知道每公里觀測高差精度的具體數值,就可以確定出權的數值。第40頁,課件共58頁,創作于2023年2月
水準網平差中定權,一般二種方式,即以距離定權和測站數定權。一般觀測量之間是相互獨立的,故在構建權矩陣P時,只有對角線上的元素非零,非對角元素都為零。注意采用以上方法定權時,必須滿足“每測站觀測高差精度相等”或者“每公里觀測高差精度相等”這一前提條件。九、精度的評定
間接平差采用了與條件平差不同的數學模型,但它們是在相同的平差原理下進行的,所以這兩種方法的計算出的結果是相同的。第41頁,課件共58頁,創作于2023年2月中誤差的估值為:而對于的計算,將誤差方程代入即可。平差參數的協方差陣,而對于平差函數,其權函數式為:,協因數方差為:第42頁,課件共58頁,創作于2023年2月水準網如圖1所示,共7個高程點、10個測段觀測高差,觀測值的每千米觀測中誤差為±0.001m,已知高程和觀測高差分別見表1及表2。水準網平差程序設計實驗中用例水準網路線
第43頁,課件共58頁,創作于2023年2月已知數據和觀測數據點名高程/mA0.000F11.414表1已知高程點第44頁,課件共58頁,創作于2023年2月表2觀測高差與路線長度編號起點點號終點點號觀測高差/m距離/m1AB73.79520.42AD14.00518.83AG14.16715.44CB71.9498.95DB59.78014.26CD12.15912.87CE15.3649.88FE5.79719.69GE3.04415.110DG0.16910.0第45頁,課件共58頁,創作于2023年2月該水準網平差數據文件(data.txt)如下:10,7,2,0.001A,0.000F,11.414A,B,73.795,20.4A,D,14.005,18.8A,G,14.167,15.4C,B,71.949,8.9D,B,59.780,14.2C,D,12.159,12.8C,E,15.364,9.8F,E,5.797,19.6G,E,3.044,15.1D,G,0.169,10.0第46頁,課件共58頁,創作于2023年2月1、水準網程序設計中變量及數組說明
網中已知點數:m_knPnumber網中總點數:m_Pnumber先驗權中誤差:M單位權中誤:m_mu存儲網中觀測測段高差個數:m_GaochaN存儲測段高差數組:gaocha()測段起點編號數組:StartP()測段終點編號數組:EndP()測段長度數組:Li()第47頁,課件共58頁,創作于2023年2月存儲已知高程與近似高程值數組:H()誤差方程系數矩陣數組:B()誤差方程常數項數組:L()權陣數組:P()存儲值的數組:p_vv高程改正值數組:dx()法方程系數矩陣數組:Q()觀測高差改正值數組:v()第48頁,課件共58頁,創作于2023年2月2、數據文件讀入為了從數據文件中讀取數據,首先利用VB6.0中的Open函數打開該數據文件,接著,按著數據文件中數據內容的順序和格式,先讀取網的概況信息數據,再讀取已知高程數據,最后讀取觀測數據。1)讀取網的概況數據,將總點數、已知點數、觀測值總數分別存儲到變量m_knPnumber、m_Pnumber及m_GaochaN中。2)動態定義數組。觀測高差起點點號數組第49頁,課件共58頁,創作于2023年2月StartP()、高差終點數組EndP()、觀測高程數組gaocha()、殘差數組v()、觀測值權P()與觀測高差數有關;高程數組H()注意:動態數組是先聲明,再動態定義其大小。第50頁,課件共58頁,創作于2023年2月3、近似高程的推算(ca_H())近似高程的計算算法可參照該章節前面的內容。在編寫程序過程中,最好完成特有任務和功能的語句,定義成函數(或過程),以方便其調用。第51頁,課件共58頁,創作于2023年2月Subca_H()
'水準網中待定點近似高程計算Dimk1AsInteger,H_NAsInteger'H_N為計算出近似高程點個數Dimc1AsInteger,c2AsIntegerH_N=0DoWhileH_N<(m_Pnumber-m_knPnumber)Fork1=1Tom_GaochaNc1=StartP(k1)'觀測高差起點
c2=EndP(k1)'觀測高差終點
IfH(c1)=0AndH(c2)<>0Then
H(c1)=H(c2)-gaocha(k1)
H_N=H_N+1EndIfIfH(c1)<>0AndH(c2)=0Then
H(c2)=H(c1)+gaocha(k1)
H_N=H_N+1EndIfNextLoopEndSub第52頁,課件共58頁,創作于2023年2月4、誤差方程系數矩陣B和常數項矩陣L的生成SubGouJianBL(H()AsDouble,StartP()AsInteger,EndP()AsInteger)
'構建誤差方程系數矩陣B與L'**********************'H()為近似高程數組,StatP()為起點點號數組,EndP()為終點點號數組'**********************Dimk1AsInteger,k2AsInteger,k3AsInteger,c1AsInteger,c2AsInteger
Fork1=1Tom_GaochaNFork2=1To(m_Pnumber
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全知識答題試題及答案
- 安全員c2考試試題及答案
- 2025年鄉村旅游項目開發與社區和諧發展研究報告
- 推進家校合作教育機制創新促進協
- 2025年家庭教育指導服務市場家庭教育行業品牌形象塑造報告001
- 安全工作規程試題及答案
- 心態方面的培訓課件
- 配色培訓課件圖片大全
- 藝術培訓營招生課件
- 中國歷代服裝史
- CNC機加工作業指導書
- HALCON編程基礎與工程應用全書ppt課件匯總(完整版)
- 冀教版小學美術六年級下冊教案
- 《一級學科下屬專業證明模板》
- 信陽市平橋區農村土地承包經營權轉包
- 《城市軌道交通通風與空調系統》教學課件—07地鐵通風空調概述
- Stein-膀胱癌淋巴清掃資料課件
- 小柳樹和小棗樹(1)
- 市場營銷學期末復習題知識分享
- 化學常用單詞匯總
- 大客戶銷售實戰技巧PPT
評論
0/150
提交評論