基于MATLAB的測量平差數(shù)據(jù)處理講解_第1頁
基于MATLAB的測量平差數(shù)據(jù)處理講解_第2頁
基于MATLAB的測量平差數(shù)據(jù)處理講解_第3頁
基于MATLAB的測量平差數(shù)據(jù)處理講解_第4頁
基于MATLAB的測量平差數(shù)據(jù)處理講解_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、內蒙占科技人學畢業(yè)設計緒論基于MATLAB的測量平差數(shù)據(jù)處理摘要MATLAB是目前在研究機構廣泛應用的一種數(shù)值計算及圖形工具軟件,它的特 點是語法結構簡明、數(shù)值計算高效、圖形功能完備,特別適合非專業(yè)編程員完成數(shù)值 計算、科學試驗處理等任務。以往的測量數(shù)據(jù)處理方法需要編制特定的處理矩陣運算 程序,而且程度復雜,難度大。本文介紹一種基于MATLAB的水準網和測邊網的程序設計方法,與其它算法語 言相比,具有編程簡單,運算速度快的特點。文中分別闡述了水準網和測邊網程序的 理論基礎、實現(xiàn)步驟和運行結果。通過實例的分析,總結出利用MATLAB對測量數(shù) 據(jù)處理有很大的應用價值,它縮短了編程的時間,提高工作效

2、率。關鍵詞:MATLAB;平差;程序設計ABSTRACTMATLAB is one species of numeiical-values calculation and grapluc tools software wluch is widely used to apply at reseaich institutions at present. The paiticulaiities are: concise gnunmai-structure、lughly efficient in numeiical values calculating、complete finiction of gi

3、aplis especially it is adapted to evildoing professional piogranunei- to accomplish the tasks that are nunieiical-values calculating and scientific expenments treating. The ancient methods of measured data-processmg need establislung special pioceedmgs of treating matiices operation, moieovei; it is

4、 complex and gieatlv difficultThis article mtroduces one piogianuning method dealing with leveling and measunng edge network based on MATLAB. Compared with other algoiitlmi language, it has paiticulaiities which are simply progianuiinig and quickly operating. The article separately expatiate the the

5、ories basics fealizuig steps and mimmg results at leveling and measuring edge netwoik. With the analysis of examples, it has prodigious application value in measured data-processing by use of MATLAB Moreover, it shortens piogianuning time and unpioves working effectivenessKey words: MATLAB; progianm

6、img緒論作為一名測量技術人員,如果不掌握一門PC機編程語言與便攜計算工具,要想 提高測量工作的效率幾乎寸步難行。測量需求的多樣性與復雜性,造就了測量計算鮮 明的個性化特點,這就是在商業(yè)測量計算軟件高度發(fā)達的今天,掌握一種實用的程序 語言進行編程計算仍有廣泛的市場需求的重要原因。當今較流行的計算機程序語言基本上都是基于Wmdows的,例如Turbo Pascal,Visual Basic,Visual C,Borland C十十等,這些程序語言的優(yōu)勢是基于對象及可利用 Wmdows豐富的系統(tǒng)資源,應用它們可以開發(fā)出界面非常豐富和友好的應用程序,其 劣勢主要有以下幾點:1 .Windows程序都

7、非常龐大,學習并熟練掌握它們并非易事。2. 雖然市場上己有的多種專用的測量平差軟件都是采用C語言開發(fā)的,但這些軟 件價格都比較貴,而且都帶有加密狗,一次只能供一個用戶使用。出于商業(yè)目的,開 發(fā)商不會公開程序源代碼,這為修改程序功能以適應用戶的特殊需求帶來了不便。3. 在測量生產中,經常需要根據(jù)工程的實際情況進行一些個性化的數(shù)值計算工作, 這些數(shù)值計算工作無固定模式,這就需要求測量技術人員最好能熟練掌握一種適用于 數(shù)值計算的程序語言,以便提高測量計算的效率。4. C語言的數(shù)值計算語句不夠豐富,例如,在測量平差計算中,經常需要進行的 矩陣運算,尤其是解法方程的矩陣求逆不能直接使用語句實現(xiàn),而必須應

8、用計算機算 法編程實現(xiàn)。如果不是基于商業(yè)軟件開發(fā),只為滿足實際測量工作計算需要,則C語言的劣勢 就變成了 MATLAB語言的優(yōu)勢。內蒙古科技大學畢業(yè)設計MATLAB軟件簡介1.MATLAB軟件簡介MATLAB是從Matrix (矩陣)和Laboratory (實驗室)各取前3個字母組成的,意思是 矩陣實驗室,是美國MathWorks公司于20世紀80年代中期推出的一種交互式、面向對象 的科技應用軟件,是一個為科學和工程計算而專門設計的高級交互式軟件包。MATLAB 集成了圖示與精確的數(shù)值計算,是一個可以完成各種計算和數(shù)據(jù)可視化的強有力工具, 其優(yōu)秀的數(shù)值計算能力和卓越的數(shù)據(jù)可視化能力使其很快在

9、數(shù)學軟件中脫穎而出,成 為以矩陣運算為主要工作方式的線性代數(shù)、概率論和數(shù)理統(tǒng)計、自動控制、數(shù)字信號 處理、動態(tài)系統(tǒng)仿真等領域教學和科研工作者的有力武器。隨著該軟件自身的發(fā)展及 市場的需求,其功能日趨完善,其最高版本7. 0版己經推出,隨著版本的不斷升級,它的 數(shù)值計算及符號計算功能得到了進一步完善。MATLAB是以矩陣作為數(shù)據(jù)操作的基本單位,矩陣的生成、運算、轉置、求逆等非 常簡單。在MATLAB環(huán)境中,不需要對創(chuàng)建的變量對象給出類型說明和維數(shù),所有的變量 都作為雙精度數(shù)來分配內存空間,MATLAB將自動地為每一個變量分配內存。MATLAB語 言起源于矩陣運算,并己經發(fā)展成為一種高度集成的計算

10、機語言,它提供了強大的科 學運算、靈活的程序設計流程、高質量的圖形可視化與界面設計、便捷的與其他程序 和語言接口的功能。MATLAB系統(tǒng)主要包含5部分的內容:MATLAB工作環(huán)境31ablab數(shù) 學函數(shù)庫、MATLAB語言體系、句柄圖形、MATLAB應用程序接口 (API) MATLAB系統(tǒng)主 要功能包括:數(shù)值計算功能、符號計算功能、數(shù)據(jù)分析和可視化、文字處理功能、 SIMULINK動態(tài)仿真功能。同時,MATLAB乂是開放的,除了內部函數(shù)之外,所有的MATLAB 主包文件和各工具包文件都是可讀可改的源文件,用戶可以作為參考掌握其用法,并 可對其修改以適應自己的需要,也可加入自己編寫的文件構成新

11、的工具包。例如,隨著 GPS 的廣泛應用,Orion Dynamics and Con21 rol Corporation、Constell Inc. GPSSoft LLC、NavsysCorporation等多家公司都相應開發(fā)出了適于GPS數(shù)據(jù)處理的 MATLAB工具箱。MATLAB是一個集數(shù)值計算、圖形管理、程序開發(fā)于一體的功能十分強大的系統(tǒng)。 將MATLAB應用于測量數(shù)據(jù)的處理是一件非常有意義的工作。Mo2hamed等曾成功地在 MATLAB系統(tǒng)中利用白濾波技術研究動態(tài)解算GPS載波相位信號的模糊度問題。因為 測量數(shù)據(jù)的處理特別是測量平差主要應用矩陣運算,而MATLAB 乂特別易于做矩

12、陣運 算,因此,研究開發(fā)基于MATLAB的測量平差方法具有極好的應用價值。畢業(yè)設計水準網平差程序2. MATLAB在測量平差中的應用測量平差數(shù)據(jù)處理主要是基于矩陣的運算,常用的矩陣運算主要是矩陣的生成、 轉置、求逆和矩陣求廣義逆等。在MATLAB環(huán)境中,不需要對創(chuàng)建的變量對象給出類型 說明和維數(shù),所有的變量都作為MATLAB中的M文件的語法與其他的高級語言類似,是一 種程序化的編程語言,同時也是一種解釋性的編程語言,即逐行解釋運行程序,使程序 容易調試,計算更為簡捷,而且對于平差原理理解和掌握變得更容易。另外,MATLAB語 言與數(shù)學語言比較接近,更容易掌握和理解。2. 1測量平差原理的概述測

13、量平差的函數(shù)模型有條件方程和觀測方程。以條件方程為函數(shù)的模型的最小二 乘平差稱為條件平差;在條件方程中,根據(jù)需要如果還設有一定數(shù)量的未知數(shù),則稱 為附有參數(shù)的條件平差;以觀測方程為函數(shù)模型的最小二乘平差稱為間接平差;如果 觀測方程中的某些參數(shù)不獨立,則這些不獨立參數(shù)必然存在一些條件,稱這種平差模 型為附有條件的間接平差。本文的兩個程序都采用間接平差模型。對于一個實際平差問題,根據(jù)所選參數(shù)的個數(shù)、選什么量為參數(shù)以及參數(shù)之間是 否函數(shù)獨立,經過仔細推敲可以發(fā)現(xiàn)附有條件的間接平差模型本身就是各種經典平差 模型的概括模型,其余的經典平差模型,如條件平差模型、間接平差模型、附有未知數(shù) 的條件平差模型和附

14、有限制條件的條件平差模型都是它的特例。間接平差的公式匯集:間接平差模型為(2-1)(2-2)(2-3)V = BX-l 1 VTPV f min系數(shù)矩陣B滿秩,即rank(B)= t法方程及解為:gx-fc = Wb = BTPBJe = BrPl)參數(shù)的平差值:X = X + x(2-4)觀測量的平差值:L=L+V(2-5)單位權的中誤差:b。=(2-6)(2-7)(2-8)平差參數(shù)的協(xié)方差陣:Dxx=crQN平差函數(shù)的協(xié)方差陣:0廠元嚴滬2. 2平差程序總體方案MATLAB號稱為全球工程師的共同語言,其語法和C語言相似,但它有強大的數(shù)值 計算和繪圖功能,這使之在工程應用方面的計算更出色,本

15、文就基于這種程序設計語 言環(huán)境設計一個控制網平差程序。該程序包含了一個高程控制網平差程序和測邊網平 差程序。本程序適用于各種等級的高程網和測邊網,程序在設計過程中,始終考慮數(shù)據(jù)的 儲存量。因而本程序不儲存誤差方程的系數(shù)和常數(shù)項,對待定點數(shù)較多的平差網,組 成法方程的系數(shù)矩陣是個稀疏矩陣,如待定點的編號恰當,法方程的系數(shù)會集中在主 元系數(shù)的兩側形成帶狀。為減少法方程系數(shù)的儲存量,只要按行儲存下三角陣或按列 儲存上三角陣中第一個非零系數(shù)起的系數(shù),就是通常叫做維變帶寬儲存方法。3. 水準網平差程序 3. 1程序的功能本程序適用于二、三、四等水準網平差計算,平差的水準網可以是獨立的、也可 以是附合網,

16、其主要功能是完成水準網的平差計算和精度評定計算。平差計算采用間 接平差法,以歸心的觀測值為高差,以未知點高程為未知參數(shù)。精度評定計算包括計 算單位權中誤差和每個待定點的高程中誤差。3. 2水準模型網的間接平差3. 2. 1“權”值的確定當在相同的條件下進行水準測量時,其精度是相同的,因而觀測結果的可靠性也 是同樣的。但如果在不同的條件下進行水準測量時,高程的精度就有所不同,此時稱為 不等精度觀測,所求出的未知量的值、高程的最或是值并對其精度進行評定時,就需要 “權” 了。由于觀測的不等精度,因而觀測值的可靠程度不同,求未知量的最或是值時,這樣 的一個因素就必須考慮了,這個因素是:可靠性大的某觀

17、測值,其精度高,對測量的最 后結果的影響也就越大。此時用“權”值來表示觀測值的可靠程度,那么,“權”值愈 大,觀測值的可靠程度就愈高。另外,在觀測過程中,觀測值的中誤差愈小,觀測結果愈 可靠,它的“權”值就愈大。因而,根據(jù)中誤差來確定“權”值是非常適當?shù)?。設以刃 表示觀測值的“權” 5為中誤差,則“權”值的定義為:叫(3-1)式中必為任意的正常數(shù),在一組觀測值中為一個定數(shù)。在實際測量中,通常是觀測值的中誤差事先并不知道,因而必須先確定觀測值的“權”, 然后才能求出未知量的最或是值。此時可以利用距離(5)或測站數(shù)(A)來確定觀測值一 一一高程的“權”。根據(jù)偶然誤差傳播定律,各觀測點高程旳的中誤差

18、加由測站數(shù)M確定時,則有:叫=n?(3-2)式中:加為一組觀測值的中誤差,為一個定數(shù).由(3-2-1) (3-2-2)兩式可得:P,=亠=丄1礦 MM(3-3)式中:C=氣r由于A、加都為定數(shù)、故C也為定數(shù). m同樣可得出:=f(3-4)式中:勸定數(shù),耳為測距.由(3-3) (3-4)兩式可以得出這樣一個結論:當測站觀測高差等精度時,觀測總高差 的“權”與測站數(shù)或距離成反比。3. 2. 2水準路線的平差計算1. 附合路線的平差計算假定在圖1示的力、萬兩水準點之間布設一條水準路線,/、方兩水準點的高程 為已知,分別設為日人、hb、“、C為中間水準點。假定觀測了所有的點的高 程,現(xiàn)擬求Q點的高程H

19、e的最或是值??捎伤疁事肪€A -a B _C分別觀測的高差hAC 4九C計算得出,由此而 得到的觀測高程分別設為弘1、c2,其值為:Hc-Ha + A hAC ; Hc2=孔 + 4 hBC當尿1、*2在不等精度條件下觀測得出時,它們的“權”也不同,分別設為斤1、 P&,這樣C點的高程日。的最或是值為:(3-5)根據(jù)力點的高程Ha,A 一 CK準路線觀測的高差力g以及方一 CK準路線觀測的高差/ /張,可推算出乃點的觀測高程/為:H,B = HA + AhAC-hBC水準路線力-B的高程閉合差為:(3-6)fh = HfB-HB=Hcl-Hc2由(3-6)式得到:Hc2 = Hcl-fhcc由

20、3)式得到心喬石“、心分別表示水準路線I B-C的測站數(shù),水準路線力f別勺測站數(shù)Nab = Nac + NQ將上述表達式代入(3-2-5)式中,得到:耳1 PqP + Pd辦(3-7)如果以水準路線力一來J距離片。、方一期距離Spe/f尿勺距離S朋(SAB = SAC + SBC) 來確定高程觀測值的“權”值時,同樣可以得到:(3-8)B圖3T水準路線圖2. 閉合路線的平差計算閉合路線的平差計算原理與附合路線相同,因而(3-7). (3-8)兩式的結論適用于 閉合路線的平差計算。(3)具有一個結點的水準網的平差計算如圖2所示為具有一個結點的水準網,B, C, D,為己知高程水準點,B-A, C

21、-Ay D 一力,為水準路線,則接點/的高程最或是值為:(3-9)_ EuH知 + Pa:Ha2 + PaHA3 + _f=l式中粘皿皿分別為水準路線萬一4 C-AyD-Ay 計算力的觀測高程,各高程相應的“權”值為PAl,PA2,PAi-設比肆心的算術平均值為日各高程觀測值與日鴛的差值分別為 劉1,丹2, M3,則有:1 2 3 + + + &4垃 一一=1 2 3 或- - 12 3=將(3-10)式代入(3-9)式得到:(3-11)當以測站數(shù)和距離來確定“權”值時,(3-11)分別可以轉化為:r=l(3-12)f 召(成)憶=氏+(3-13)1=1上述結論也可應用于小三角水準網平差計算。

22、3. 2. 3精度評定單位權中誤差:(3-12)平差參數(shù)的協(xié)方差陣:D, 小一寫(3-13)A A平差函數(shù)的協(xié)方差陣:0廠元嚴AT1(3-14)3. 3水準網間接平差程序信息設計1. 數(shù)據(jù)文件的組織下面給出一個水準網輸入數(shù)據(jù)文件的例子:3 3 6 (己知點個數(shù)、未知點個數(shù)、觀測值個數(shù))101 102 103 104 105 106 (點號)34.788 35.259 37.825 (己知點高程)104 101 1.625 4.5 (起點點號、終點點號、高差觀測值、距離觀測值)101 102 -0.418 3.1105 102 0.714 3.4102 103 1.243 3.8106 103

23、-0.577 4.3103 101 -0.786 2.5(其中編號數(shù)組未知點在前,己知點在后)2.水準網平差變量約定表3-1變量約定表變量名說明ed已知點個數(shù)dd未知點個數(shù)sd總點數(shù)gd觀測值個數(shù)pn點號hO已知點高程be起點點號en絞占占號hl高差觀測值s距離觀測值3.4水準網程序與使用說明3. 4. 1水準網程序流程圖圖3-2水準網流程圖程序的全部代碼見附錄一。3. 4. 2水準網程序的使用本程序使用MATLAB的矩陣功能計算法方程,在運行程序前首先要有其始數(shù)據(jù)。 其始數(shù)據(jù)是一文件的形式保存在磁盤中,文件的格式在上文己經說明過,編好文件后, 以后綴-名為.TXT的形式保存。執(zhí)行時在MATL

24、AB命令窗口直接鍵入文件名即可。3.5案例如下圖水準網,104、105、106為己知點,101、102 103為待定點,己知點的 高程分別為 34. 788, 35. 259 , 37. 825 。觀測高差和觀測路線長度分別為:hl二 1.652, h2=-0. 418 ,h3=0.714 , h4=l. 243, h5=-0. 577, h6=-0. 786.sl=4 5, s2=3. 1, s3=3. 4, s4=3. & s5=4. 3, s6二2. 5.圖3-3水準網圖首先編數(shù)據(jù)文件,命夕I為datal. txt.數(shù)據(jù)的格式如下:3 3 6101 102 103 104 105 106

25、34. 788 35. 259 37. 8251041011.6524. 5101102-0.4183. 11051020. 7143.41021031.2433.8106103-0. 5774. 3103 101 -0.786 2. 5進入MATLAB界面,在命令窗口直接輸入level3運行程序。彈出如下窗口Input filenameIZI兇查找范圍(I):dadadahawo航 旨自色am.txttxt.txt閏新淫文本文檔(3) out新建文本文擋文本文檔文件類型d):I*, txt打開迫)I 取消 I圖3-4數(shù)據(jù)讀入文件 選擇datal. txt即可運行出如下結果:圖3-5計算結果在

26、圖3-5中,分別輸出了高程的平差值及精度。結果是一文本的形式保存,用戶可 對它進行編輯。水準網平差程序代碼function level3ed, dd, sd, gd, pn, hO, kl, k2, hl, s =readlevelnetdata;global pathname net_name s_datafile al_datafile;global ed dd sd pn gd hO kl k2 hl s dh;dh, h, V, L, uwO, uwh, uwl=calculatelevelnet (ed, dd, sd, pn, gd, hO, kl, k2, hl, s);writ

27、elevelnetdata(pn, kl, k2, hl, V, L, hO, dh, h, uwh, uwO) ;%輸岀水準網計算結果returnfunctionLdh, h, V, L, uwO, uwh, uwl=calculatelevelnet (ed, dd, sd, pn, hO, be, en, hd, distance);%水準平差網A二sparse (zeros (sd, gd) ;%求解系數(shù)陣b=(0: (gd-l)*sd);A (be +b)=l;A(en,+b)=l;A二A;A=A(:, 1:dd);l=zeros (gd, 1) ;%求解常數(shù)項l=h0(be)h0(

28、en)+hd; p=diag(l. /distance);%權陣dh=inv(A *p*A)*A,*p*l; hOO=hO(dd+l:sd); hO=hO(l:dd);h=hO+dh;V=A*dh-l;L=hd+V;%高程改正數(shù)%待定點高程近似值%待定點高程平差值%高差觀測值改正數(shù)%高差觀測值平差值%精度評定uwO=sqrt (V *p*V/ (gddd) ;%單位權中誤差Qxx二 inv(A *p*A);uwh=uwO*sqrt (diag(Qxx) ;%待定點高程平差值中誤差uwh(dd+1:ed+dd)二0. 0;Qff=A*Qxx*A,;%高差平差值中誤差%所有點高程uwh=uw0*s

29、qrt(diag(Qff); h二h;h00;ho二h0;h00;dh=dh;zeros(ed, 1);returnfunction ed, dd, sd, gd, pn, hO, kl, k2, hl, s =readlevelnetdata;global pathname net_name s_datafile b_datafile;global ed dd sd pn gd hO kl k2 hl s kll kl2: kl= ;k2= ;h= ;s=;if(isempty(pathname) isempty(net_name)filename, pathname =uigetfile

30、(J * txt , Input filename); i=find(,. =f ilename);net_name二filename (1: il);endf idl=fopen (strcat (pathname, net_name, s_dataf ile), rt); if(fidl=-l)msgbox C Input File or Path is not correct ,,Warning, warn,);return;end%open afile to read %open afile to readed二fscanf (fidl, %f , 1) ;%已知點個數(shù)dd二fscan

31、f (fidl, %f , 1) ;%未知點個數(shù)sd 二 ed+dd;%總點數(shù)gd=fscanf (fidl, %F , 1) ;%觀測點個數(shù)pn=fscanf (f idl, %f, sd) ;%點號%known datahO二fscanf (fidl, %f, ed) ;%己知點高程hO(dd+1:ed+dd)=h0(1:ed) heightdiff=fscanf (fidl, %f , 4, gd); heightdiff二heightd辻f;kl=heightdiff (:, 1) ;%起點k2=heightdiff(:,2) ;%終點kllheightdiff (:, 1) ;%起點

32、%終點%高差%距離kl2=heightdiff(:, 2); hl=heightdiff (:,3); s=heightdiff (:,4); fclose ( all);%點號轉換kl, k01=chkdat (sd, pn, kl);k2, k02=chkdat(sd, pn, k2); hO(l:dd)=20000.;ie二0;while(l)%計算近似高程for k=l:gdi=kl (k);j=k2 (k);if(h0(i)le4) hO(j)=hO(i)+hl(k);ie二ie+1;if(h0(i)le4&h0(j)A(m,9)其中,m為觀測值個數(shù),n為未知點個數(shù)的兩倍。改進后的A

33、陣格式為4=(編號1,系數(shù)1,編號2,系數(shù)2,編號4,系數(shù)4,常數(shù)項)共9列。即只存儲誤差方程的4個非零參數(shù)系數(shù)。法方程系數(shù)陣為對稱陣,在存儲時,只需要存其上三角部分就可以了。其占用的空間為:n(n +1)sum =現(xiàn)有A陣A=(編號1,系數(shù)1,編號2,系數(shù)2,編號4,系數(shù)4,常數(shù)項)其中偶數(shù)項為系數(shù),加上最后的A9為常數(shù)項,在組成法方程時,從A2開始分別與 剩下的偶數(shù)項以及常數(shù)項相乘,然后再用A4與剩余的項相乘,一直到A8為止,這 樣就完成了心=屮只4的過程。需要注意的是:若Al, A3, A5, A7小于零,則表 示該點己知點,不參與法方程的組成。4.1.2邊長觀測的權邊長觀測的精度一般與

34、其長度有關,定權公式為Ps = -(j = l,2,J2)*叮式中為所測邊長q的方差,1小5其中L =12 ,D= ,R = 0 d/心1)n 7由于此住A對稱性,得L = R, 乂根據(jù)A陣正定的性質,可證明D均為正數(shù)?,F(xiàn)在設陣1申.= .d何丿d風丿即D = D1 丄11T貝 ijA = LDlI = LD2D2lI = (LD2)(D2lI)=L L為方便,記為a=ll!稱為Cholesky分解,即正定對稱矩陣的平方根分解法。解AX=b等階于求解兩個三角方程組:LY = bL! X =Y在用平方根分解法計算時,需要進行n次開方運算。為了避免開方,可以直接釆用對稱正定的A = LDC分解式對

35、平方根法進行改進。從而解方程組AX=b可以按如下步驟進行:把A分解成A = LDCf則AX=b變成(LDU)X=b,即等價于LY = bHX = DlY由此可以解出X和Y。這稱為改進的平方根法,在計算中避免了開方運算。平方根法和改進的平方根法的計算量和存儲量比消去法節(jié)約近一半,而且不需要選主元,能得到比較精確的數(shù)值解。法方程用改進平方根法解算的過程如下:(1)分解:C = STDlS(sSau3 In其中s =,D =Snm nn /S12Sljj2SllS22511S22i=l純量計算公式為5二 5, 5X -E il,ag skk(2)求逆iiInnn /由RS=I得純量計算公式:nn i

36、tn_ r22S12r23 =S33*_ r22S24 + 23534)r24 通式為1rii =;-1防-,ji(3)求積Usii_ rilrin - 44_ r22S2nh 空(一 1)$(-1”?r2n =12ri2 =;S22” _一(佔3 + 佔3)r!3 _ 一(人21“ + +Q = (S7 S 尸=SlD(Sl)T = RDRT1111Q = RDR=nn /4.1.4精度評定(1) 坐標改正數(shù)以及單位權中誤差的計算叫使用上三角一維數(shù)組形式存儲坐標改正數(shù)的公式為:Hln心=工你 -工的旳,心匕/j=其中,11=2X dd, Xi的單位是dll.平差值:X = X + x寫成分量

37、的形式,為X: = X: + 5兀如果近似坐標的誤差較大,或網形較大,平差的結果不會精確,這時,就需要進行迭代平差,直到兩次平差間互差在允許值內。由測量平差理論:同樣可得到單位權中誤差:其中,mm觀測個數(shù)減去未知點個數(shù);m = “ + m2 +加3, = 2 x dd + ST, ST -方向觀測的測站數(shù)PW = pll + Sxco(2) 點位誤差橢圓誤差橢圓表示了網中點或點與點之間的誤差分布情況如圖。在測量工作中,常用的誤差橢圓對布網方案作精度分析。繪制誤差橢圓只需要三個數(shù)據(jù):橢圓長半軸a,短半軸b和主軸方向4),其求法為宀 + (時 + b J + g2-b:),+4吋)2b 卜 tan

38、 20 二jGj + _ J(Qxx-QQ+4Q)根據(jù)上述的理論,我們實際要求的是5、加、八 加如。只要得到了這些元素, 就能依照上面的公式來求得橢圓的元素了。4. 2 測邊網平差信息設計外業(yè)測量的數(shù)據(jù)首先應進行預處理,包括測站平差、歸心計算、觀測值歸化到橢 球面的改正、橢球面歸化到高斯平面的改正等,然后將預處理后的數(shù)據(jù)輸入到以后綴 名為TXT的文本文件中,該數(shù)據(jù)文件的組織格式如下所列:表4-1數(shù)據(jù)組織格式次序內容1已知點個數(shù)ed,未知點個數(shù)dd,控制參數(shù)2點號pn先輸入已知點編號,各點輸入順序無要求3己知點坐標 5xO,yO,xl,yl,x2,y2 4測量邊的個數(shù)ml5邊長的固定誤差ms,邊

39、長的比例誤差pp。單位分別是:cm和 X 0.0000016邊長的起始點號6終點點號d、邊長skL每一條邊一行,依次列岀7推算近似坐標的路線經過的邊數(shù)8推算近似坐標的起算已知點坐標(按順時針)9推算近似坐標的路線經過的邊的邊號4.2.1主要的技術要求表4-2測邊網的技術要求等級平均邊長(km)測距中誤差(mm)測距相對中誤差二等9301/30 萬三等5301 / 16 萬四等2161/12 萬一級小三角1161/6萬二級小三角0.5161/3萬4. 3利用MATLAB的繪圖語句繪制網圖1. 網形的繪制由于網形圖與誤差橢圓繪制在同一個圖形上,因此必須對誤差橢圓進行放大,在 本文的程序中,使用了

40、inputdig對話框輸入語句,其中,確省的放大倍數(shù)為100。在 程序中,使用了 ed dd pnml xy e d sid ai bi fi等變量,其意義與前面的變量相同。對 繪制的網圖有效放大和縮小功能,即點擊鼠標左鍵放大圖形,點擊右鍵縮小圖形,利 用MATLAB菜單本身的功能,可以將該圖形輸出為各種圖形文件格式。2誤差橢圓的繪制無論多么復雜的圖形,其基本單元還是點和線。換句話說,只需要利用基本元素 的點或線,通過各種組合,也能畫出復雜的圖形。MATLAB中沒有提供直接繪制橢 圓的命令,因此可以直接利用連線來畫橢圓。測量中描述誤差橢圓用長半軸A,短半軸B和方位角FI三個量。在如圖4-1的

41、x Oyf中直角坐標系中,橢圓的標準方程為(4-1)(4-2)如果以角度1為變量,則橢圓的標準參數(shù)方程為 = Acosfy = Bsnu設在測量坐標系xOy中橢圓長半軸的方位角為,則有COS %,Sill %-S1110OCOS 00(4-3)2用參數(shù)方程代入,得到(4-4)x= A cos(pQ cos z B siii(p0 sin iy = A sin(pQ cosz + B cos(pQ sin i測量坐標系與MATLAB或AUTOCAD繪制的數(shù)學坐標系的x,y坐標軸不同,繪 圖時,需要調換x, y坐標。在上式中,1取不同的值,就有一組(x, y),只需要將這些點連接起來,就可以繪出

42、一個橢圓。Y圖4-2誤差橢圓的參數(shù)方程4.4測邊網程序和使用說明使用本程序的全部數(shù)據(jù)都按規(guī)定的格式編輯成數(shù)據(jù)文件儲存在磁盤上。數(shù)據(jù)文件 的編輯取決于平差網型和觀測值的編號,為此,先繪制平差網的略圖,在圖上標明各 項數(shù)據(jù)的信息。以下就測邊網的點號,邊編號,輸入數(shù)據(jù),輸出成果,運行程序等問 題作簡明說明。1點號和觀測邊的編號己知點和待定點的編號為pn (取三為數(shù)),己知點在前,未知點在后,其順序 無要求。但為了減小法方程系數(shù)的帶寬,應使相臨的待定點編號的差數(shù)盡可能小。平 差網的編號見圖4-3。2. 推算近似坐標的路線近似坐標的路線是用戶在測邊網略圖上指定出來的。如圖4-3的箭頭,就是表示 推算路線

43、。路線的兩個起算點必須為己知點,從兩個己知推算出的第一個未知點開始, 選擇觀測邊,由觀測邊和己求得的近似坐標或己知坐標推算出觀測邊所對的未知點。 本程序是按推算的三個點A、B、P順序為順時針。圖4-3測邊網略圖2數(shù)據(jù)的輸入(1) 簡單變量為了在程序運行中數(shù)據(jù)的傳遞,定義了一些全局變量,參見4-1表。(2) 數(shù)據(jù)文件外業(yè)測量的數(shù)據(jù)首先應進行預處理,包括測站平差、歸心計算、觀測值歸化到橢 球面的改正、橢球面歸化到高斯平面的改正等,然后將預處理后的數(shù)據(jù)輸入到以后綴 名為TXT的文本文件中,該數(shù)據(jù)文件的組織格式如表4-1。3輸出成果本程序的計算成果是以文件的形式輸出到文本文件中,用戶可以在文本中查看和

44、 編輯。4.5程序代碼說明:程序的總體框架數(shù)據(jù)的諛入近似坐標計算誤差方程和法方程的組成解算法方程精度評定輸出計算結杲繪制控制網圖和誤差橢圓圖4-4測邊網總體流程圖1. 數(shù)據(jù)讀入塊本模塊的功能是打開一個*.txt的數(shù)據(jù)文件,同時生成一個Sllt.txt的文本文件, 記錄用戶數(shù)據(jù)和輸出成果用。程序調用fscanf函數(shù)把文件中的數(shù)據(jù)賦值給相應的變 量,這些變量是后面計算的數(shù)據(jù)依據(jù)。2. 近似坐標的計算測邊網的觀測數(shù)據(jù)是邊長,所以在近似坐標的計算時只能用測邊交會計算。以及 A、B兩點坐標及A、B到P點的距離b、a, c為A、B兩點的距離,A、B、P三點 按順時針排列。則P點的坐標計算公式如下: rJ

45、= y/b2-e2Zr + L-cr2cXp = XA+ecos a * - f sin aAB Yp = Xa +esinaAB + f cosaAB計算近似坐標的流程圖入圖4-5o輸入A、E點號for i = l: length (m)一 一一一蘭 1-嚴巡之|巳(m (匕書亠彳f*dm (il) )=A| dF二d(m(i)P二d(m(i)B=PA=PJ一仝)二AP=d(w(i)P=e (m(i)計算近似坐標h0(F),70(P)圖4-5計算近似坐標流程圖3. 誤差方程和法方程的形成程序中,用數(shù)組a來存儲誤差方程的編號和系數(shù),a(i,9)存儲常數(shù)項,w和c分別 存儲法方程系數(shù)和法方程常數(shù)

46、。4. 解算法方程。函數(shù)流程圖如圖4-6。函數(shù)的代碼見附錄三。5. 精度評定本模塊包括坐標改正數(shù)、單位權中誤差和誤差橢圓的計算。程序中定義了 dxy(坐 標改正數(shù))、pw (即存儲PW = pll + Sx.co )、uwO(單位權中誤差)等。同時計算 出誤差橢圓的三個參數(shù)長半軸ai,短半軸bi和主軸方向fiofor i=l:ndi=Crri/2. 0)Yfor j=l:nss=C(di+j)for k=l:i-l dk=(lri)*Gn-V2. 0) ss=S-C(dk+i)*C(dij)/C(dki-k)L=J?c (di4j)=l/ssc (d計 j)二 ee*CsCCdij)for k

47、=j-*-l:nss=C(di+j)*C(dj+j)dkz(lrl)*(ii-k/2.0)s 5=55吃di恢桁時林)札(血松)c (di4-j)=ssfor i=l:nl di=(i-1) *(ni/2. 0)fcr i=l:irldi=Crri/2. 0)for i=j+l:n ss=CCdi+j)foi k=i+l: j-1 dk=(Jrl)*(n-V2. 0) sszss-Cc (di+k) *C (dk+j)圖4-6平方根法求逆程序框架圖6.控制網的繪制程序中調用inputdig函數(shù)來打開一個對話框來輸入誤差橢圓的參數(shù);用text函數(shù) 來對點號標注;用ploth函數(shù)及控制參數(shù)繪制線和

48、誤差橢圓。程序的完全代碼見附錄二。4.6程序的使用算例有測邊網如圖4-3所示。網中A、B、C、C點己知,其余為未知點,現(xiàn)用某測距 儀觀測了 13條邊長,測距精度s = (3m + 1x10Ys)。起算數(shù)據(jù)和觀測數(shù)據(jù)如下:表4-3已知點坐標點需XY點名XYA53743.13661003.826C40049.22953782.79B47943.00266225.854D36924.72861027.086表4-4觀測值編號邊觀測值編號邊觀測值編號邊觀測值15760.70668720.162115487.07325187.34275598.57128884.58737838.8887494.881137228.36745483.15897493.32355731.788105438.3821 編輯數(shù)據(jù)文本文件如下圖圖4-7數(shù)據(jù)文件2.在MATLAB命令窗口鍵入nnbb執(zhí)行程序,運行中會彈出一個對話匡提示用戶輸入誤差橢圓的放大比例,默認為100,本例選擇500。如下圖竺i叩山the cab10D-OK Cancel圖4-8b對話框圖4-8a對話框3. 計算出的結果如下:在圖4-9a中,第1、2行分別是己知點

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論