基于Matlab的導(dǎo)線網(wǎng)坐標(biāo)計(jì)算_第1頁
基于Matlab的導(dǎo)線網(wǎng)坐標(biāo)計(jì)算_第2頁
基于Matlab的導(dǎo)線網(wǎng)坐標(biāo)計(jì)算_第3頁
基于Matlab的導(dǎo)線網(wǎng)坐標(biāo)計(jì)算_第4頁
基于Matlab的導(dǎo)線網(wǎng)坐標(biāo)計(jì)算_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、東華理工大學(xué)長江學(xué)院畢業(yè)設(shè)計(jì) 論文題目:基于Matlab的導(dǎo)線網(wǎng)坐標(biāo)計(jì)算English Title:Traverse Network Coordinate CalculationBased On Matlab學(xué)生姓名:閆曉天 申請學(xué)位門類:工學(xué)學(xué)士 學(xué)號:09351122專業(yè):測繪工程 系別:測繪工程系指導(dǎo)老師:劉波職稱:講師二 零 一 三 年 六 月摘 要導(dǎo)線計(jì)算是在所有測量工作中經(jīng)常遇見的問題之一,同時導(dǎo)線計(jì)算的方法也有很多種,本文主要是利用簡單易懂的Matlab對附合導(dǎo)線、閉合導(dǎo)線和支導(dǎo)線進(jìn)行相應(yīng)的平差計(jì)算。文章首先介紹了附合導(dǎo)線、閉合導(dǎo)線、支導(dǎo)線基本概念和計(jì)算方法,其次利用Matlab

2、計(jì)算機(jī)編程語言對三種導(dǎo)線的計(jì)算進(jìn)行編程實(shí)現(xiàn);最后通過實(shí)例驗(yàn)證,本文利用Matlab編寫的程序正確,通過輸入邊長和角度,能夠快速的得到各控制點(diǎn)的準(zhǔn)確坐標(biāo)。關(guān)鍵詞:Matlab;導(dǎo)線計(jì)算;精度評價;計(jì)算機(jī)編程ABSTRACTTraverse calculated in all measurements often met one of the problems,Also there are many kinds of traverse the way.This article mainly is to use simple Matlab to connecting traverse、closed

3、traverse、spur traverse to the corresponding adjustment calculation The article first introduces the connecting traverse、closed traverse、spur traverse is basic concept and calculation method.Secondly using Matlab computer programming language was realized by programming calculation of three traverse.

4、At last,through example validation, In this paper, using the Matlab program, right through the input variable length and Angle, able to quickly get the accurate coordinates of each control point.Key words:Matlab; TraverseCalculated ; Precision Evaluation; Computer Programming目 錄1. 緒 論11.1 導(dǎo)線坐標(biāo)計(jì)算常用的方

5、法比較11.2 基于Matlab的導(dǎo)線計(jì)算背景22. 導(dǎo)線類型及特點(diǎn)32.1 導(dǎo)線的布設(shè)32.1.1 導(dǎo)線的布設(shè)形式32.2 導(dǎo)線的觀測42.2.1 轉(zhuǎn)折角的觀測42.2.2 導(dǎo)線邊長觀測52.2.3 三聯(lián)腳架法導(dǎo)線觀測52.3 導(dǎo)線測量的近似平差計(jì)算62.3.1 附合導(dǎo)線的計(jì)算62.3.2 閉合導(dǎo)線的計(jì)算72.3.3 支導(dǎo)線的計(jì)算83. 基于Matlab的導(dǎo)線計(jì)算程序設(shè)計(jì)103.1 計(jì)算程序概述103.1.1 計(jì)算程序特點(diǎn)103.1.2 計(jì)算程序的基本要求103.1.3 計(jì)算程序的設(shè)計(jì)步驟103.1.4 坐標(biāo)計(jì)算處理過程113.2 附合導(dǎo)線計(jì)算程序113.3 閉合導(dǎo)線計(jì)算程序123.4 支導(dǎo)

6、線計(jì)算程序134. 三種導(dǎo)線計(jì)算實(shí)例144.1 附合導(dǎo)線算例144.2 閉合導(dǎo)線算例184.3 支導(dǎo)線算例21結(jié) 論25致 謝26參考文獻(xiàn)27附錄128附錄230附錄332緒 論導(dǎo)線坐標(biāo)計(jì)算是在所有測量工作中經(jīng)常遇見的問題之一,同時導(dǎo)線計(jì)算的方法也有很多種,主要包括:Excel辦公軟件、CASIO計(jì)算器、VB編程等,每種方法各有優(yōu)缺點(diǎn),本文主要是利用簡單易懂的Matlab對附和導(dǎo)線、閉合導(dǎo)線和支導(dǎo)線進(jìn)行相應(yīng)的坐標(biāo)平差計(jì)算。文章首先介紹了附合導(dǎo)線、閉合導(dǎo)線、支導(dǎo)線基本概念和計(jì)算方法,其次利用Matlab計(jì)算機(jī)編程語言對三種導(dǎo)線的計(jì)算進(jìn)行編程實(shí)現(xiàn);最后通過實(shí)例驗(yàn)證,本文利用Matlab編寫的程序正

7、確,通過輸入邊長和角度,能夠快速的得到各控制點(diǎn)的準(zhǔn)確坐標(biāo)。1.1 導(dǎo)線坐標(biāo)計(jì)算常用的方法比較(1)Excel辦公軟件我們知道導(dǎo)線測量的成果計(jì)算雖然有多種方法,但與我們習(xí)慣的導(dǎo)線成果計(jì)算格式不統(tǒng)一,輸入數(shù)據(jù)不直觀,使用起來不習(xí)慣,很難推廣。針對這種情況,我們按照常用的導(dǎo)線成果計(jì)算本的樣式,直接利用excel辦公軟件。EXCEL是常用的辦公軟件,利用其自帶的函數(shù),和其強(qiáng)大的數(shù)據(jù)處理能力,創(chuàng)建一個EXCEL模板,利用預(yù)先編輯好的公式,輸入外業(yè)測量成果后自動進(jìn)行內(nèi)業(yè)的成果計(jì)算。能夠根據(jù)輸入的外業(yè)測量數(shù)據(jù)自動進(jìn)行坐標(biāo)成果正算;反過來,又能根據(jù)兩點(diǎn)的坐標(biāo)自動反算出兩點(diǎn)之間的距離和方位角,能自動識別測量路線

8、,計(jì)算導(dǎo)線間水平角;也能進(jìn)行簡單的條件分析,對一些誤輸入能自動識別;還能夠有效的保護(hù)公式和表格,防止誤操作的更改,或者蓄意的修改計(jì)算結(jié)果。(2)CASIO計(jì)算器CASIO計(jì)算器是測量人員在野外作業(yè)或礦山井下一線作業(yè)時經(jīng)常使用的便攜式計(jì)算器,它與一般計(jì)算器所不同的是有個自編程序步。CASIO系列可編程計(jì)算器,作為內(nèi)、外業(yè)計(jì)算工作的輔助設(shè)備。具有體積小、重量輕、攜帶方便、多行顯示、存貯量大、工作方便等特點(diǎn),編制好測量程序后,計(jì)算器通過程序計(jì)算,不需要測量人員進(jìn)行逐步計(jì)算,從而消除了人為輸入誤差。而且計(jì)算器在計(jì)算時小數(shù)位數(shù)是自身進(jìn)行取舍,所以它的精度可以得到保證,并且比人工逐步計(jì)算要高。在導(dǎo)線控制測

9、量中,將復(fù)雜的平差計(jì)算過程編成計(jì)算器程序,簡化計(jì)算過程減輕測量人員的內(nèi)業(yè)計(jì)算量。內(nèi)業(yè)計(jì)算時,只需按照提示輸入相應(yīng)觀測值便可得到平差成果,并進(jìn)行必要的精度評定,簡單快捷比專業(yè)的平差軟件更容易掌握。主要缺點(diǎn)是費(fèi)時、工作量大、還易出錯。(3)VB編程采用VB編程進(jìn)行導(dǎo)線計(jì)算,優(yōu)點(diǎn)是使用方便、直觀、計(jì)算速度快。采用計(jì)算器計(jì)算某一導(dǎo)線,可能需要一兩天時間,而采用程序計(jì)算可能只需幾分鐘到十幾分鐘時間。目前市場上,可以買到大型嚴(yán)密平差計(jì)算程序,但對于許多中小型日常的測量計(jì)算,還需要技術(shù)人員自己去開發(fā);例如:碎部測量、支導(dǎo)線測量、面積計(jì)算、解析交會等。1.2 基于Matlab的導(dǎo)線計(jì)算背景本文依據(jù)Matlab

10、對三種導(dǎo)線計(jì)算進(jìn)行編程設(shè)計(jì),主要因?yàn)樵撜Z言相對簡單和直接,它主要有如下特點(diǎn):(1)編程效率高M(jìn)atlab是一種面向科學(xué)與工程計(jì)算的高級語言,允許使用數(shù)學(xué)形式的語言編寫程序,且比VB和C等語言更加接近我們書寫計(jì)算公式的思維方式,用Matlab編寫程序猶如在演算紙上排列出公式與求解問題。因此,Matlab語言也可通俗地稱為演算紙式科學(xué)算法語言。由于它編寫簡單,所以編程效率高,易學(xué)易懂。(2)用戶使用方便 Matlab語言是一種解釋執(zhí)行的語言,它靈活、方便,其調(diào)試程序手段豐富,調(diào)試速度快,需要學(xué)習(xí)時間少。人們用任何一種語言編寫程序一般都要經(jīng)過四個步驟:編輯、編譯、鏈接,以及執(zhí)行和調(diào)試。各個步驟之間是

11、順序關(guān)系,編程的過程就是在它們之間做瀑布型的循環(huán)。Matlab語言與其他語言相比,較好的解決了上述問題,把編輯、編譯、鏈接和執(zhí)行融為一體。它能在同一畫面上進(jìn)行靈活操作,快速排除輸入程序中的書寫錯誤、語法錯誤以至語義錯誤,從而加快了用戶編寫、修改和調(diào)試程序的速度,可以說在編程和調(diào)試過程中它是一種比VB還要簡單的語言。具體的說,Matlab運(yùn)行時,如直接在命令行輸入Matlab語句(命令),包括調(diào)M文件的語句,每輸入一條語句,就立即對其進(jìn)行處理,完成編譯、鏈接和運(yùn)行的全過程。又如,將Matlab源程序編輯為M文件,由于Matlab磁盤文件也是M文件,所以編輯后的源文件就可以直接運(yùn)行,而不需要進(jìn)行編

12、譯和鏈接。在運(yùn)行M文件時,如果有錯,計(jì)算機(jī)屏幕上會給出詳細(xì)的出錯信息,用戶經(jīng)修改后再執(zhí)行,直到正確為止。所以可以說,MATLAB語言不僅是一種語言,廣義上講是一種該語言的開發(fā)系統(tǒng),即語言調(diào)試系統(tǒng)。(3)擴(kuò)充能力強(qiáng),交互性好高版本的的Matlab語言有豐富的庫函數(shù),在進(jìn)行復(fù)雜的數(shù)序運(yùn)算時可以直接調(diào)用,而且Matlab的庫函數(shù)同用戶文件在形成上一樣,所以用戶文件也可作為Matlab的庫函數(shù)來調(diào)用。因而,用戶可以根據(jù)自己的需要方便地建立和擴(kuò)充新的庫函數(shù),以便提高M(jìn)atlab的使用效率和擴(kuò)充它的功能1。2. 導(dǎo)線類型及特點(diǎn)2.1 導(dǎo)線的布設(shè)2.1.1 導(dǎo)線的布設(shè)形式導(dǎo)線可被布設(shè)為單一導(dǎo)線和導(dǎo)線網(wǎng)。兩條

13、以上導(dǎo)線的匯聚點(diǎn),稱為導(dǎo)線的結(jié)點(diǎn)。單一導(dǎo)線與導(dǎo)線網(wǎng)的區(qū)別,在于導(dǎo)線網(wǎng)具有結(jié)點(diǎn),而單一導(dǎo)線則不具有結(jié)點(diǎn)。按照不同情況和要求,單一導(dǎo)線可被布設(shè)為附和導(dǎo)線、閉合導(dǎo)線和支導(dǎo)線。導(dǎo)線網(wǎng)可被布設(shè)為自由導(dǎo)線網(wǎng)和附合導(dǎo)線網(wǎng)。(1) 附合導(dǎo)線如下圖1所示,導(dǎo)線起始于一個已知控制點(diǎn)而終止于另一個已知控制點(diǎn)。已知控制點(diǎn)上可以有一條或幾條定向邊與之相連接,也可以沒有定向與之相連接。圖1 附合導(dǎo)線(2) 閉合導(dǎo)線如圖2所示,由一個已知控制點(diǎn)出發(fā),最終又回到這一點(diǎn),形成一個閉合的多邊形。在閉合導(dǎo)線的已知控制點(diǎn)上至少應(yīng)該有一條定向邊與之相連接。由于閉合導(dǎo)線是一種可靠性極差的控制網(wǎng)圖形,在實(shí)際測量工作中應(yīng)避免單獨(dú)使用。 圖2

14、 閉合導(dǎo)線(3) 支導(dǎo)線如圖3所示,從一個已知控制點(diǎn)出發(fā),既不附合于另一個已知控制點(diǎn),也不閉合于原來的起始控制點(diǎn)。由于支導(dǎo)線缺乏檢核條件,故一般只限于地形測量中的圖根導(dǎo)線中采用。圖3 支導(dǎo)線2.2 導(dǎo)線的觀測導(dǎo)線的觀測包括轉(zhuǎn)折角的觀測和導(dǎo)線邊的觀測以及導(dǎo)線點(diǎn)高程的觀測。2.2.1 轉(zhuǎn)折角的觀測轉(zhuǎn)折角的觀測一般采用測回法進(jìn)行。當(dāng)導(dǎo)線點(diǎn)上應(yīng)觀測的方向數(shù)多于2個時,應(yīng)采用方向觀測法進(jìn)行。各測回間應(yīng)按規(guī)定進(jìn)行水平度盤配置。各等級導(dǎo)線測量水平角觀測的技術(shù)要求見表1: 表1 各等級導(dǎo)線測量水平角觀測的技術(shù)要求在進(jìn)行國家等級導(dǎo)線轉(zhuǎn)折角觀測時,應(yīng)以奇數(shù)測回和偶數(shù)測回分別觀測導(dǎo)線前進(jìn)方向的左角和右角;左角和右角

15、分別取中數(shù)后,再計(jì)算圓周角閉合差,值對于三、四等導(dǎo)線應(yīng)分別不超過±3.5和±5.0。在進(jìn)行一、二級和三級導(dǎo)線轉(zhuǎn)折角觀測時,一般應(yīng)觀測導(dǎo)線前進(jìn)方向的左角。對于閉合導(dǎo)線,若按逆時針方向進(jìn)行觀測,則觀測的導(dǎo)線角既是閉合多邊形的內(nèi)角,又是導(dǎo)線前進(jìn)方向的左角。對于支導(dǎo)線,應(yīng)分別觀測導(dǎo)線前進(jìn)方向的左角和右角,以增加檢核條件。當(dāng)觀測短邊之間的轉(zhuǎn)折角時,測站偏心和目標(biāo)偏心對轉(zhuǎn)折角的影響將十分明顯。因此,應(yīng)對所用儀器、覘牌和光學(xué)對中器進(jìn)行嚴(yán)格檢校,并且要特仔細(xì)進(jìn)行對中和精確照準(zhǔn)。2.2.2 導(dǎo)線邊長觀測導(dǎo)線邊長可采用電磁波測距儀測量,也可采用全站儀在測取導(dǎo)線角的同時測取導(dǎo)線邊的邊長。導(dǎo)線邊長

16、應(yīng)對向觀測,以增加檢核條件。電磁波測距儀測量的通常是斜距,還需觀測豎直角,用以將傾斜距離改變?yōu)樗骄嚯x,必要時還應(yīng)將其歸算到橢球面上和高斯平面上。2.2.3 三聯(lián)腳架法導(dǎo)線觀測三聯(lián)腳架法通常使用三個既能安置全站儀又能安置帶有覘牌的基座和腳架,基座應(yīng)有通用的光學(xué)對中器。如圖4所示,將全站儀安置在測站i的基座中,帶有覘牌的反射棱鏡安置在后視點(diǎn)i-1和前視點(diǎn)i+1的基座中,進(jìn)行導(dǎo)線測量。遷站時,導(dǎo)線點(diǎn)i和i+1的腳架和基座不動,只取下全站儀和帶有覘牌的反射棱鏡,在導(dǎo)線點(diǎn)i+1上安置全站儀,在導(dǎo)線點(diǎn)i的基座上安置帶有覘牌的反射棱鏡,并將導(dǎo)線點(diǎn)i-1上的腳架遷至導(dǎo)線點(diǎn)i+2處并予以安置,這樣直到測完整條

17、導(dǎo)線為止。在觀測者精心安置儀器的情況下,三聯(lián)腳架法可以減弱儀器和目標(biāo)對中誤差對測角和測距的影響,從而提高導(dǎo)線的觀測精度,減少了坐標(biāo)傳遞誤差。 i-1 i i+1 i+2 圖4 三聯(lián)腳架法導(dǎo)線觀測在城市或工業(yè)區(qū)進(jìn)行導(dǎo)線測量時,可在夜間進(jìn)行作業(yè),以避免白天作業(yè)時行人、車輛的干擾,夜間作業(yè),空氣穩(wěn)定、儀器振動小,并可避免太陽暴曬,從而可提高觀測成果的精度。2.3 導(dǎo)線測量的近似平差計(jì)算導(dǎo)線測量的目的是獲得各導(dǎo)線點(diǎn)的平面直角坐標(biāo)計(jì)算的起始數(shù)據(jù)是已知點(diǎn)坐標(biāo)、已知坐標(biāo)方位角,觀測數(shù)據(jù)為觀測角值和觀測邊長。通常情況下,導(dǎo)線平差應(yīng)進(jìn)行嚴(yán)密平差,但對于二級及其以下等級的圖根導(dǎo)線允許對以單一導(dǎo)線、單結(jié)點(diǎn)導(dǎo)線網(wǎng)采用

18、近似平差方法進(jìn)行計(jì)算。導(dǎo)線近似平差的基本思路是將角度誤差和邊長誤差分別進(jìn)行平差計(jì)算,先進(jìn)行角度閉合差的分配,在此基礎(chǔ)在進(jìn)行坐標(biāo)閉合差的分配,通過調(diào)整坐標(biāo)閉合差,以達(dá)到角度的剩余誤差和邊長誤差的目的。在進(jìn)行導(dǎo)線測量平差計(jì)算之前,首先要按照規(guī)范要求對外業(yè)觀測成果進(jìn)行檢查和驗(yàn)算,確保觀測成果無誤并符合限差要求,然后對邊長進(jìn)行加常數(shù)改正、乘常數(shù)改正、氣象改正和傾斜改正(改正方法見數(shù)字測圖原理與方法第五章),對角度和邊長進(jìn)行歸心改正(有偏心觀測時),以取消系統(tǒng)誤差的影響2。2.3.1 附合導(dǎo)線的計(jì)算如下圖5為附合導(dǎo)線,其坐標(biāo)平差計(jì)算步驟如下:圖5 附合導(dǎo)線(1) 方位角計(jì)算 (2-1)判斷或0, 以便判

19、斷所在相應(yīng)象限,加上或減去180度,推算出每條導(dǎo)線邊的坐標(biāo)方位角。(2) 由地面實(shí)測點(diǎn)的轉(zhuǎn)角依據(jù)公式計(jì)算其角度閉合差用,依次加減,得出最后的方位角,用計(jì)算的方位角=閉合差值。 (3) 將角度閉合差除以測邊數(shù)分配到各觀測角中角度閉合差調(diào)整中,觀測角為左角時反符號平均分配到各觀測角中,觀測角為右角時,則按閉合差同符號分配到測角,如有小數(shù),按長邊少分,短邊多分原則。(4) 用調(diào)整后的觀測角計(jì)算方位角(5) 坐標(biāo)增量計(jì)算, (2-2) (6) 測站測出各邊的距離,用調(diào)整后的方位角進(jìn)行計(jì)算各點(diǎn)計(jì)算坐標(biāo)(7) 計(jì)算導(dǎo)線點(diǎn)坐標(biāo) 閉合差為: =計(jì)算終點(diǎn)X坐標(biāo)-設(shè)計(jì)終點(diǎn)X坐標(biāo)=計(jì)算終點(diǎn)Y坐標(biāo)-設(shè)計(jì)終點(diǎn)Y坐標(biāo) 將

20、閉合邊長差按路線邊長與總邊長的比例反向分配到坐標(biāo)增量后計(jì)算各點(diǎn)坐標(biāo)。2.3.2 閉合導(dǎo)線的計(jì)算如圖6所示為閉合導(dǎo)線,閉合導(dǎo)線的精度評定與具有兩個連接角的附和導(dǎo)線精度評定相同,可以采用角度閉合差和導(dǎo)線全長相對閉合差來評定,閉合導(dǎo)線的可靠性較差,在實(shí)際測量中避免單獨(dú)使用。由于角度觀測值存在誤差,使得多邊形內(nèi)角和的計(jì)算值不等于其理論值,而產(chǎn)生角度閉合差,即圖6 閉合導(dǎo)線(1)角度閉合差計(jì)算 (2-3) , n為實(shí)測內(nèi)角個數(shù) 應(yīng)進(jìn)行重測,如果則可進(jìn)行平差計(jì)算。(2)角度閉合差改正 (反號平均分配) (2-4)(3)計(jì)算改正后的角度 (2-5)(4)推算方位角 公式為: (2-6) 判斷x>或&l

21、t;0, y>或<0以便判斷所在相應(yīng)象限,加上或減去180度,推算出每條導(dǎo)線邊的坐標(biāo)方位角。 (5) 計(jì)算坐標(biāo)增量, (2-7)(6)坐標(biāo)增量閉合差, (2-8)(7) 坐標(biāo)增量閉合差的分配坐標(biāo)改正數(shù)的計(jì)算: (2-9)計(jì)算改正后的坐標(biāo)增量: (2-10)(8) 計(jì)算坐標(biāo) (2-11)2.3.3 支導(dǎo)線的計(jì)算以下圖7為例,支導(dǎo)線計(jì)算步驟如下:圖7 支導(dǎo)線(1)坐標(biāo)方位角推算設(shè)直線MA的坐標(biāo)方位角已知為,按方位角推算公式:計(jì)算導(dǎo)線邊的坐標(biāo)方位角。 (2)坐標(biāo)增量的計(jì)算 由各邊的坐標(biāo)方位角和邊長,按公式、,計(jì)算坐標(biāo)增量。 (3) 導(dǎo)線點(diǎn)坐標(biāo)計(jì)算按公式、,計(jì)算各導(dǎo)線點(diǎn)坐標(biāo)3。 3. 基于

22、Matlab的導(dǎo)線計(jì)算程序設(shè)計(jì)3.1 計(jì)算程序概述3.1.1 計(jì)算程序特點(diǎn)相對于手工計(jì)算,坐標(biāo)計(jì)算程序計(jì)算的主要特點(diǎn)是計(jì)算速度快、精度高、數(shù)據(jù)處理自動化,從而把人從繁重的計(jì)算工作中解放出來。從程序設(shè)計(jì)的角度看,程序設(shè)計(jì)與平差計(jì)算相對獨(dú)立。在平差手工計(jì)算時,我們總是面對需要計(jì)算的具體問題,所以其數(shù)據(jù)是特定的,計(jì)算過程由人實(shí)時控制;在計(jì)算機(jī)程序計(jì)算中,在程序設(shè)計(jì)時數(shù)據(jù)是抽象的,必須考慮到實(shí)際計(jì)算中問題的多樣性,以及數(shù)據(jù)計(jì)算過程的自動化,所以在程序設(shè)計(jì)時必須考慮需要處理的所有問題的普遍性和規(guī)律性。另外,相對于手工計(jì)算,在程序計(jì)算時,選擇平差方法的依據(jù)不同。在手工計(jì)算時,我們通常希望盡量降低計(jì)算工作量

23、。當(dāng)必要觀測數(shù)t大于多余觀測數(shù)r時,我們可以選擇條件平差;當(dāng)必要觀測數(shù)t小于多余觀測數(shù)r時,我們可以選擇間接平差,這樣,可以降低平差計(jì)算量。然而,在計(jì)算機(jī)程序計(jì)算時,由于計(jì)算機(jī)計(jì)算的快速高效性,我們不是很關(guān)心計(jì)算量的問題,而把主要精力集中于方法實(shí)現(xiàn)的現(xiàn)實(shí)性方面,也就是要求該方法具有較強(qiáng)的規(guī)律性,便于程序設(shè)計(jì)的技術(shù)實(shí)現(xiàn)。在坐標(biāo)計(jì)算程序設(shè)計(jì)中,使用間接平差,對于一般控制網(wǎng),誤差方程形式統(tǒng)一、規(guī)律性強(qiáng)、便于程序設(shè)計(jì);而使用條件平差,誤差方程形式多樣、規(guī)律性差,不利于程序設(shè)計(jì)。所以,在本課程中,我們主要使用間接平差方法進(jìn)行程序設(shè)計(jì)??傊覀冊谶x擇數(shù)學(xué)模型的時候,一定要考慮算法同計(jì)算機(jī)程序設(shè)計(jì)的特點(diǎn)相

24、統(tǒng)一。3.1.2 計(jì)算程序的基本要求坐標(biāo)計(jì)算程序設(shè)計(jì)與其它程序設(shè)計(jì)相同,應(yīng)當(dāng)滿足一定的要求:(1)程序邏輯結(jié)構(gòu)簡單,清晰易讀,符合結(jié)構(gòu)化程序設(shè)計(jì)要求,便于擴(kuò)展;(2)運(yùn)算速度快,占用內(nèi)存小,內(nèi)外存之間的交換不宜過于頻繁;(3)數(shù)學(xué)模型及計(jì)算方法正確、先進(jìn),計(jì)算結(jié)果精度高;(4)適應(yīng)性強(qiáng),便于移植,充分考慮各種可能形式,盡量滿足不同要求與需要。3.1.3 計(jì)算程序的設(shè)計(jì)步驟(1) 結(jié)構(gòu)總體設(shè)計(jì);(2) 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);(3) 確定軟件各組成部分的算法及數(shù)據(jù)組織;(4) 選定某種表達(dá)式來描述各種算法;(5) 程序編寫;(6) 程序調(diào)試。3.1.4 坐標(biāo)計(jì)算處理過程(1)數(shù)據(jù)輸入;(2)角度閉合差計(jì)算

25、及分配;(3)方位角推算;(4)坐標(biāo)增量計(jì)算;(5)坐標(biāo)增量閉合差分配;(6)坐標(biāo)計(jì)算。3.2 附合導(dǎo)線計(jì)算程序附合導(dǎo)線包括一個連接角的附合導(dǎo)線、兩個連接角的附合導(dǎo)線和無連接角的附合導(dǎo)線等,依據(jù)本文介紹的附合導(dǎo)線計(jì)算方法和基本公式,依據(jù)matlab語言對附合導(dǎo)線進(jìn)行編程,主要的程序代碼如下(具體程序代碼見附錄1): %觀測數(shù)據(jù)輸入 n=input('請輸入導(dǎo)線邊數(shù)'); string1=(char('請輸入第')',a,('條導(dǎo)線邊長')')' string2=(char('請輸入第')',s,(&

26、#39;個轉(zhuǎn)折角')')' %起算數(shù)據(jù)輸入 %起算方位角的計(jì)算 %角度閉合差計(jì)算 fb=fwjAB-fwjCD+sum(jiao1)-n*180; %各觀測角改正后的角度 jiao2=jiao1+(fb/6)*(-1); %真方位角的計(jì)算 fwjz(k)=fwjAB+jiao2(k); fwjz(k)=fwjz(k-1)+jiao2(k)-180; %坐標(biāo)閉合差計(jì)算 xz(i)=bian(i)*cosd(fwjz(i); yz(i)=bian(i)*sind(fwjz(i); fx=xA+sum(xz)-xC; fy=yA+sum(yz)-yC; %坐標(biāo)閉合差分配 vx

27、(i)=(-1)*fx/sum(bian)*bian(i); vy(i)=(-1)*fy/sum(bian)*bian(i); %坐標(biāo)計(jì)算 x(1)=xA+xz(1)+vx(1) y(1)=yA+yz(1)+vy(1); x(i)=x(i-1)+xz(i)+vx(i); y(i)=y(i-1)+yz(i)+vy(i);3.3 閉合導(dǎo)線計(jì)算程序閉合導(dǎo)線就是已知一條邊,測量若干個邊長和夾角后又閉合到已知邊的導(dǎo)線測量方法。通過計(jì)算平差后,可計(jì)算得到經(jīng)過的未知點(diǎn)的平面坐標(biāo)。依據(jù)本章介紹的閉合導(dǎo)線計(jì)算方法和基本公式,依據(jù)matlab語言對閉合導(dǎo)線進(jìn)行編程,主要的程序代碼如下(具體程序代碼見附錄2): %

28、觀測數(shù)據(jù)的輸入 n=input('請輸入閉合導(dǎo)線的點(diǎn)數(shù)'); string1=(char('請輸入第')',a,('條導(dǎo)線的邊長:')')' string2=(char('請輸入第')',b,('個轉(zhuǎn)折角:')')' %起算數(shù)據(jù)的輸入 string3=(char('請輸入起始已知方向的起算方位角'); %角度閉合差的計(jì)算 fb=sum(jiao2)-(n-2)*180; %真方位角計(jì)算 fwjz(1)=fwj2+jiao2(1)+v(1)-180; %

29、坐標(biāo)閉合差計(jì)算 xzq=cosd(fwj2)*bian(1); yzq=sind(fwj2)*bian(1); xz(i)=cosd(fwjz1(i)*bian(i+1); yz(i)=sind(fwjz1(i)*bian(i+1); fx=xzq+sum(xz); fy=yzq+sum(yz); fs=sqrt(fx2+fy2); k=fs/sum(bian); %坐標(biāo)計(jì)算 X(1)=x+xzq+vx(1); Y(1)=y+yzq+vy(1); X(i)=X(i-1)+xz(i-1)+vx(i); Y(i)=Y(i-1)+yz(i-1)+vy(i);3.4 支導(dǎo)線計(jì)算程序由已知控制點(diǎn)出發(fā),不

30、附合、不閉合于任何已知點(diǎn)的導(dǎo)線。依據(jù)本章介紹的支導(dǎo)線計(jì)算方法和基本公式,依據(jù)matlab語言對支導(dǎo)線進(jìn)行編程,主要的程序代碼如下(具體程序代碼見附錄3): %觀測數(shù)據(jù)輸入 n=input('please the 待定點(diǎn)個數(shù):'); s1=char('please input the 邊長 of a:'); s2=char('please input the 轉(zhuǎn)折角 of a:'); jiao2(i)=degree1+minute1/60+second1/3600; %已知數(shù)據(jù)輸入 %方位角推算 fwj(j)=f0+jiao2(j)-180; fw

31、j(j)=fwj(j-1)+jiao2(j)-180; %坐標(biāo)增量計(jì)算 xzl(k)=S(k)*cosd(fwj(k); yzl(k)=S(k)*sind(fwj(k); %坐標(biāo)推算 x(l)=x0+xzl(l); y(l)=y0+yzl(l); x(l)=x(l-1)+xzl(l); y(l)=y(l-1)+yzl(l);4. 三種導(dǎo)線計(jì)算實(shí)例4.1 附合導(dǎo)線算例利用現(xiàn)實(shí)中獲得的一組附合導(dǎo)線數(shù)據(jù),輸入到所設(shè)計(jì)的matlab平差程序進(jìn)行實(shí)現(xiàn),如下圖8所示:圖8 附合導(dǎo)線如上圖8所示,已知兩控制點(diǎn)平面坐標(biāo)分別為:B(2507.69,1215.63)、C(2166.72,1757.29),其中坐標(biāo)

32、方位角=237°5930,各觀測角數(shù)據(jù)如下:1 =99°0100,2 =167°4536,3=123°1124,4 =189°2036,5 =179°5918,C=129°2724,其導(dǎo)線各邊長分別為:S12=225.85mS23=139.03m,S34=172.57m,S45=100.07m,S5C=102.48m.依據(jù)本文程序設(shè)計(jì)對上述數(shù)據(jù)進(jìn)行平差操作,輸出如下成果截圖:(1) 基于Matlab的附合導(dǎo)線程序輸入界面如下圖9所示:圖9 程序設(shè)計(jì)界面(2) 結(jié)果輸出界面如下圖10所示:圖10 結(jié)果輸出界面(3)根據(jù)程序輸出

33、的平差結(jié)果,整理得下表2:表2 具有兩個連接角的附合導(dǎo)線計(jì)算上表為相應(yīng)實(shí)例基于Matlab程序設(shè)計(jì)的輸出結(jié)果,誤差均在限差之內(nèi)。4.2 閉合導(dǎo)線算例利用一組由全站儀觀測的閉合導(dǎo)線的數(shù)據(jù),對matlab平差程序進(jìn)行實(shí)現(xiàn),如下圖11所示:圖11 閉合導(dǎo)線 已知1點(diǎn)坐標(biāo)為(10.00,100.00),S12=50.340,S23=91.515,S34=36.863,S45=51.860,S51=41.999。12=0°0000。各觀測內(nèi)角分別為:1=89°5853,2=91°926,3=89°1925,4=105°3740,5=163°53

34、47。依據(jù)本文程序設(shè)計(jì)對上述數(shù)據(jù)進(jìn)行平差操作,輸出如下成果:(1)基于Matlab的閉合導(dǎo)線程序輸入界面如圖12所示:圖12 程序輸入界面(2)結(jié)果輸出界面如下圖13所示:圖13 結(jié)果輸出界面(3)根據(jù)程序輸出的平差結(jié)果,整理得下表3:表3 閉合導(dǎo)線的計(jì)算上表為相應(yīng)實(shí)例基于Matlab程序設(shè)計(jì)的輸出結(jié)果,誤差均在限差之內(nèi)。4.3 支導(dǎo)線算例利用一組支導(dǎo)線的數(shù)據(jù)對matlab程序進(jìn)行實(shí)現(xiàn),實(shí)例如下圖14:圖14 支導(dǎo)線如上圖所示,A為一已知點(diǎn)其坐標(biāo)為(2507.69,1215.63),已知坐標(biāo)方位角為237°5930,SA-1=225.85,S1-2=139.03,S2-3=172.5

35、7,轉(zhuǎn)折角分別為:099°0100,167°4536,123°1124。依據(jù)本文程序設(shè)計(jì)對上述數(shù)據(jù)進(jìn)行平差操作,輸出如下成果:(1)基于Matlab的支導(dǎo)線程序輸入界面,如下圖15所示:圖15 程序輸入界面(3)結(jié)果輸出界面如下圖16所示:圖16 結(jié)果輸出界面(3)根據(jù)程序輸出的平差結(jié)果,整理得下表4:表4 支導(dǎo)線的計(jì)算上表為相應(yīng)實(shí)例基于Matlab程序設(shè)計(jì)的輸出結(jié)果,誤差均在限差之內(nèi)。結(jié) 論 導(dǎo)線坐標(biāo)計(jì)算是在所有測量工作中經(jīng)常遇見的問題之一,本文在比較了Excel辦公軟件、CASIO計(jì)算器、VB編程等導(dǎo)線計(jì)算方法的優(yōu)缺點(diǎn)后,決定利用簡單易懂的Matlab對附和導(dǎo)

36、線、閉合導(dǎo)線和支導(dǎo)線進(jìn)行相應(yīng)的坐標(biāo)平差計(jì)算。 文章首先介紹了幾種導(dǎo)線坐標(biāo)計(jì)算方法的優(yōu)缺點(diǎn),也敘述了Matlab的特點(diǎn),其次依據(jù)數(shù)字測圖原理與方法介紹了附合導(dǎo)線、閉合導(dǎo)線、支導(dǎo)線基本概念和計(jì)算方法,詳細(xì)描述了導(dǎo)線布設(shè)和導(dǎo)線觀測,導(dǎo)線觀測包括轉(zhuǎn)折角和邊長觀測,也敘述了三聯(lián)腳架法的相應(yīng)內(nèi)容。接下來利用Matlab計(jì)算機(jī)編程語言對三種導(dǎo)線的計(jì)算進(jìn)行編程實(shí)現(xiàn),主要思路為:數(shù)據(jù)輸入、角度閉合差計(jì)算及分配、坐標(biāo)閉合差計(jì)算及分配、坐標(biāo)計(jì)算;最后通過三種導(dǎo)線實(shí)例驗(yàn)證,本文利用Matlab編寫的程序正確,通過輸入邊長和角度,能夠快速的得到各控制點(diǎn)的準(zhǔn)確坐標(biāo)。致 謝四年大學(xué)生活一晃而過,回首走過的歲月,留下了很多美

37、好的回憶,心中倍感充實(shí),當(dāng)我寫完這篇畢業(yè)論文的時候,有一種如釋重負(fù)的感覺,感慨良多。首先誠摯的感謝我的論文指導(dǎo)老師劉波老師。他在忙碌的教學(xué)工作中擠出時間來審查、修改我的論文。還有教過我的所有老師們,你們嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。感謝四年中陪伴在我身邊的同學(xué)、朋友,感謝你們?yōu)槲姨岢龅挠幸娴慕ㄗh和意見,有了你們的支持、鼓勵和幫助,我才能充實(shí)的度過了四年的學(xué)習(xí)生活。本論文是在導(dǎo)師劉波老師的悉心指導(dǎo)下完成的。老師淵博的專業(yè)知識,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng)范,樸實(shí)無華、平

38、易近人的人格魅力對我影響深遠(yuǎn)。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了對待一件事要有認(rèn)真、負(fù)責(zé)的態(tài)度。本論文從選題到完成,每一步都是在指導(dǎo)的悉心指導(dǎo)下完成的,傾注了指導(dǎo)老師大量的心血。在此,謹(jǐn)向劉波老師表示崇高的敬意和衷心的感謝!參考文獻(xiàn)1 姚連壁、周小平編著.基于MATLAB的控制網(wǎng)平差程序設(shè)計(jì),上海:同濟(jì)大學(xué)出版社,2006年, 1-32.2 潘正風(fēng)、楊正堯、程效軍、成樞等編著.數(shù)字測圖原理與方法,武漢:武漢大學(xué)出版社,2004年,181-190.3 武漢大學(xué)測繪學(xué)院測量平差學(xué)科組編著.誤差理論與測量平差基礎(chǔ),武漢:武漢大學(xué)出版社,2010 年,1-5.4 高寧、高

39、彩云.MATLAB在測繪領(lǐng)域中的應(yīng)用J,平頂山工學(xué)院學(xué)報(bào),2008年01期.5 魯鐵定、周世健、張立亭、官云蘭.測量教學(xué)中MATLAB軟件的應(yīng)用J,地礦測繪;2004年01期.6 崔利、武文波.測繪領(lǐng)域中MATLAB的應(yīng)用J,遼寧工程技術(shù)大學(xué)學(xué)報(bào),2005年S1期.7 陳以新.Matlab的幾則程序設(shè)計(jì)經(jīng)驗(yàn)J,計(jì)算機(jī)應(yīng)用研究,1999年09期.8 孫慶華、熊偉、張憲柱、王磊.基于Excel和MATLA導(dǎo)線網(wǎng)平差J,北京測繪,2009年03期,1-32.9 白征東.Matlab在測量平差教學(xué)中的應(yīng)用J,測繪通報(bào),2009年11期,1-23.10 高彩云、高寧、孫敬克.MATLAB在測量平差課程教

40、學(xué)中的嘗試J,科技信息,2009年05期,1-12.11 尹暉主編.測繪工程專業(yè)英語,武漢:武漢大學(xué)出版社,2005年1月第1版,1-43.12Ingenieurvermessung2004,14thInternationalcourseonEngineeringSurveyingC.ETHZuerich,2004.13 KahmenH.HybridMeasurementRobotsinEngineeringSurveysJ.ISPRSCongres,Washington,1992.附錄1 基于Matlab的附合導(dǎo)線平差程序:%觀測數(shù)據(jù)輸入n=input('請輸入導(dǎo)線邊數(shù)');

41、for i=1:n a=num2str(i); string1=(char('請輸入第')',a,('條導(dǎo)線邊長')')' bian(i)=input(string1);endfor k=1:(1+n) s=num2str(k); string2=(char('請輸入第')',s,('個轉(zhuǎn)折角')')' jiao=input(string2,'s'); B=jiao; du=str2num(B(1:3); fen=str2num(B(4:5); miao=str2nu

42、m(B(6:7); jiao1(k)=du+fen/60+miao/3600;end%起算數(shù)據(jù)輸入xA=input('請輸入已知點(diǎn)A的x坐標(biāo)');yA=input('請輸入已知點(diǎn)A的y坐標(biāo)');xB=input('請輸入已知點(diǎn)B的x坐標(biāo)');yB=input('請輸入已知點(diǎn)B的y坐標(biāo)');%起算方位角的計(jì)算Rab=atand(abs(yB-yA)/(abs(xB-xA); %AB的起算方位角if (yB-yA)>0&(xB-xA)>0fwjAB=Rab;end if (yB-yA)>0&(xB-x

43、A)<0fwjAB=180-Rab;endif (yB-yA)<0&(xB-xA)<0fwjAB=180+Rab;endif (yB-yA)<0&(xB-xA)>0fwjAB=360-Rab;endRcd=atand(abs(yD-yC)/(abs(xD-xC); %CD的起算方位角if (yD-yC)>0&(xD-xC)>0fwjCD=Rcd;end if (yD-yC)>0&(xD-xC)<0fwjCD=180-Rcd;endif (yD-yC)<0&(xD-xC)<0fwjCD=18

44、0+Rcd;endif (yD-yC)<0&(xD-xC)>0fwjCD=360-Rcd;end%角度閉合差計(jì)算 fb=fwjAB-fwjCD+sum(jiao1)-n*180; jiao2=jiao1+(fb/6)*(-1);%各觀測角改正后的角度 %真方位角的計(jì)算 for k=1:(n+1) if k=1 fwjz(k)=fwjAB+jiao2(k); end if k>1 fwjz(k)=fwjz(k-1)+jiao2(k)-180; end end %坐標(biāo)閉合差計(jì)算 for i=1:n xz(i)=bian(i)*cosd(fwjz(i); for i=1:n

45、 yz(i)=bian(i)*sind(fwjz(i);end end fx=xA+sum(xz)-xC; fy=yA+sum(yz)-yC; %坐標(biāo)閉合差分配 for i=1:n vx(i)=(-1)*fx/sum(bian)*bian(i); end for i=1:n vy(i)=(-1)*fy/sum(bian)*bian(i); end %坐標(biāo)計(jì)算 for i=1:n if i=1 x(1)=xA+xz(1)+vx(1) y(1)=yA+yz(1)+vy(1); end if i>1 x(i)=x(i-1)+xz(i)+vx(i); y(i)=y(i-1)+yz(i)+vy(i

46、); end附錄2 基于Matlab的閉合導(dǎo)線平差程序:%觀測數(shù)據(jù)的輸入n=input('請輸入閉合導(dǎo)線的點(diǎn)數(shù)');for i=1:n a=num2str(i); string1=(char('請輸入第')',a,('條導(dǎo)線的邊長:')')' bian(i)=input(string1); b=num2str(i); string2=(char('請輸入第')',b,('個轉(zhuǎn)折角:')')' jiao1=input(string2,'s'); c=ji

47、ao1; du=str2num(c(1:3); fen=str2num(c(4:5); miao=str2num(c(6:7); jiao2(i)=du+fen/60+miao/3600;end%起算數(shù)據(jù)的輸入x=input('請輸入起始已知點(diǎn)x的坐標(biāo):');y=input('請輸入起始已知點(diǎn)y的坐標(biāo):');string3=(char('請輸入起始已知方向的起算方位角');fwj1=input(string3,'s');c=fwj1;du=str2num(c(1:3);fen=str2num(c(4:5);miao=str2num(c(6:7);fwj2=du+fen

溫馨提示

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

評論

0/150

提交評論