matlab測量導(dǎo)線描繪_第1頁
matlab測量導(dǎo)線描繪_第2頁
matlab測量導(dǎo)線描繪_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、測繪學(xué)院學(xué)號:28夏少波手機:基于MATLAB的測量導(dǎo)線描繪摘要:本文從導(dǎo)線的描繪出發(fā),提出了該問題的 MATLAB解決方法。給出了數(shù)據(jù)的處理結(jié)果 和圖表。并且,設(shè)計了二維和三維的代碼描述。其中對待處理的數(shù)據(jù)有一些優(yōu)化,但計算 方法和計算的邏輯是沒有問題的。最后,MATLAB對這個問題的解決也較為令人滿意。關(guān)鍵字:控制測量導(dǎo)線代碼運行結(jié)果MATLAB任何測量工作都會產(chǎn)生誤差,而誤差在絕對意義上是不可避免的,所以在測量工作中必 須采用一定的方法來控制誤差的范圍,以期達到工作需求。測量工作中遵循“先整體后局 部,先控制后碎部”的原則。簡而言之就是在工作區(qū)域內(nèi)建立一定精度的由一定數(shù)目的已 知坐標(biāo)點構(gòu)

2、成的幾何圖形,然后在幾何圖形內(nèi)進行測量。在測量過程中,我們可以通過各 個已知點的坐標(biāo)來驗算測得的未知點的坐標(biāo)。這樣通過不斷地檢核、測量、檢核,成果的 誤差就可以控制在一定范圍內(nèi)。其中,已知點被稱作“控制點”,幾何圖形被稱為“控制 網(wǎng)”,這種測量方法被稱為“控制測量”。一般意義上的控制測量可以分為“平面控制測量”和“高程控制測量”。平面控制測量 是基平面坐標(biāo)系 X-Y,而高程控制測量是基于高程 H的。目前,隨著測繪技術(shù)的發(fā)展,也 出現(xiàn)了把兩種控制測量結(jié)合起來的“三維控制測量”??刂凭W(wǎng)根據(jù)其精度從高到低大致可以分為一、二、三、四等,精度越高的點數(shù)目越少。 點數(shù)不夠自然無法形成有效地控制網(wǎng)。因此,測

3、量工作中需要通過已知的幾個點,“一生 二,二生三”,繪出一個可用于實際項目的控制網(wǎng)?!耙簧?,二生三”的過程需要已知 點前后通視 即互相看得見),然而,在城市中,因為建筑物較多,視線不好,往往會出現(xiàn) 已知點之間無法通視的現(xiàn)象。所以就引入了導(dǎo)線測量traverse survey )。導(dǎo)線測量又有很多分類,在此就不在贅述了。下面來介紹導(dǎo)線測量中的附和導(dǎo)線。所謂 附和導(dǎo)線就是:“導(dǎo)線起始于一個已知控制點而終至于另一個已知控制點”。通過測量導(dǎo) 線上未知點與已知控制點坐標(biāo)的對比、計算,進行平差控制誤差的一種手段),得出一條導(dǎo)線上的各個待測點的坐標(biāo)。這個過程就是導(dǎo)線測量的主體步驟了。導(dǎo)線示意圖如下圖-1附

4、合耳線示意圖根據(jù)導(dǎo)線示意圖,這里有五點需要說明:測繪中,坐標(biāo)系很多,一般導(dǎo)線測量使用的是“平面直角坐標(biāo)系”,之所以打上了雙引號,是因為,測量工作中的坐標(biāo)系是以正北方向豎軸)為X方向,橫軸為Y方向,極坐標(biāo)中順時針旋轉(zhuǎn)方向為正方向。二、圖中2、3等點要安放儀器進行測量,稱這些點為測站。三、A、B、C D為已知點。P2、P3等為待測點。導(dǎo)線測量中需要計算出各個點的坐標(biāo)。四、關(guān)于P1左、P2左等角度,為測繪中所謂的左角。所謂的左角可以通過導(dǎo)線的前進方向來確定。比如,在這張圖中,測量的順序為A-BC-D那么前進方向即為 A-BC-D,而前進方向的左手邊的角度就是左角了右角亦然,并不規(guī)定一定要測哪個角,計

5、算方法略有不同而已)。這些角一般稱作轉(zhuǎn)折角。五、平面的導(dǎo)線控制測量需要在一測站測相鄰的左右測站之間的夾角如圖中的P1),該測站到前進方向上的下一測站的距離如圖中的D(1-2,也稱作邊長)。如果把高程算進去,還需要獲得兩測站之間的高差。而獲得高差數(shù)據(jù)的方法很多,一般可以通過水準(zhǔn)測量或三角高程測量獲得。在這里介紹一下三角高程的基本原理。三角高程測量的 基本原理就是利用三角形各邊角關(guān)系來獲得所需數(shù)據(jù)。如圖二。已知A、B兩點的水平距離D,和一個夾角a,通過計算 DX tan( a ,再通過加減測量儀器高就可以獲得 A、B兩點的高程差。當(dāng)然實際運作中還要考慮地球曲率、大氣溫度等誤差。在本文中, 我對模型

6、作了簡化,對儀器高和地球曲率等因素做了默認(rèn)設(shè)置。圖二以上為本文要討論的問題背景做了一個比較完整的描述下面進入問題的主體。-、提出問題有一測量小組通過查詢獲得了三個已知點的坐標(biāo),又通過野外測量,做了導(dǎo)線,并獲得了導(dǎo)線中的轉(zhuǎn)折角和邊長,同時他們也獲得了各個測站的a角。數(shù)據(jù)如下:E6甕三ABC£100B2226157115呂139144225-17237p 8:305100971 424© _1029751870lA列是邊長,B列是左角值A(chǔ)列是a角值現(xiàn)在要求獲得各個待測點的坐標(biāo),并描繪出導(dǎo)線的形狀,對比已知點得出測量值與實際 獲得坐標(biāo)值的偏差。二、對問題的分析和方案的產(chǎn)生現(xiàn)在獲得

7、的數(shù)據(jù)已經(jīng)可以畫出導(dǎo)線了。問題是坐標(biāo)系是不同的,那么可以進行轉(zhuǎn)換。MATLAB數(shù)學(xué)坐標(biāo)系的 Y軸是正北方向,那么我們規(guī)定:Y軸北方向,X軸為東方向?;癁闃O坐標(biāo)時,順時針為角的方向。確定坐標(biāo)系后,我們可以根據(jù)已知坐標(biāo)把做邊長和轉(zhuǎn)折角轉(zhuǎn)化為坐標(biāo)值。計算方法:a 仁 a 2+ a <轉(zhuǎn)折角)180 °。X1=X2+ D(邊長>x sin( a 1>。丫仁Y2+ D(邊長 > x cos(a 1>。注:此處的坐標(biāo)轉(zhuǎn)化考慮到坐標(biāo)系的轉(zhuǎn)化,故sin、cos互換了。通過以上計算獲得了這些數(shù)據(jù)還是不夠的。還需要用戶輸入已知點的坐標(biāo)來對比測量結(jié)果。同時為了增加代碼的通用性

8、,可以由用戶輸入所需處理的文件名稱,以及初始坐標(biāo)值。同 時,還可以通過用戶選擇,來實現(xiàn)計算和描繪平面的導(dǎo)線或者是三維的導(dǎo)線。通過用戶選 擇那個函數(shù),調(diào)用了二維描述和三維描述這兩個函數(shù)。從而實現(xiàn)整個功能。如上所示,整個框架已經(jīng)構(gòu)成了。三、描述解決方案首先給出可供用戶選擇的函數(shù):f unction begin (>%這個函數(shù)給了用戶選擇。2D or 3D?in put('welcome to use my programpress 走?ter to star '>£?N = in put('choose 1 for 2D,choose 2 for 3D

9、'>switch(N>case 1daoxia n(>。case 2gaoche ng(>。end再給出描畫二維導(dǎo)線的函數(shù)描述:function daoxia n(>% this function is for 2DFILENAME = input('what is the name of date file?'>% 獲取用戶所要處理的文件名X0 =input('input the x : '>Y0 =input('input the y : '>%用戶輸入已知坐標(biāo)。Angle = atan

10、(Y0/X0>。 %用戶輸入已知的坐標(biāo)點后,進行角度的轉(zhuǎn)化,使之能在坐標(biāo)系中正 常實現(xiàn)。A=xlsread(FILENAME>。 %獲取用戶所要處理的文件內(nèi)容L=A(:,1>。L=L'。CT=A(:,2>。CT=CT。' %以上是對獲取數(shù)據(jù)的處理,使之符合矩陣運算。GT=。CT(1>=Angle。CT=(CT./(360»*2*pi。 %把一般測得的360制角轉(zhuǎn)化為2Pi制X=0,X0,0,0,0,0,0。Y=0,Y0,0,0,0,0,0。 %初始化 X,YGT(3>=CT(1>+CT(2>-p。I=4。for k=1:

11、4 %轉(zhuǎn)化各個轉(zhuǎn)角,使結(jié)果符合坐標(biāo)系的運算GT(l>=CT(l-1>+GT(l-1>-p。I=I+1。endfor l=1:7if GT(l><0%對小于 0度的角進行轉(zhuǎn)換GT(l>=GT(l>+2*pi。endif GT(l>>2*pi %對大于 360度的角進行轉(zhuǎn)換GT(l>=GT(l>-2*pi。endendGT(1>=0。GT(2>=0。l=3。for J=1:5 %核心計算,獲得坐標(biāo)。X(l>=X(l-1>+L(l-1>.*sin(GT(l>>。Y(l>=Y(l-1>

12、;+L(l-1>.*cos(GT(l>>。l=l+1。endOUTPUT = X' ,Y' %輸出數(shù)據(jù)save OUTPUT %保存數(shù)據(jù)。plot(X,Y,'b - O'>。 %畫圖。axis('equal'> 。xlabel('X'>。ylabel('Y,北方向>。title('2Dmap'> 。 %以上為坐標(biāo)的優(yōu)化grid on 。hold on 。% 對比已知點,求出坐標(biāo)差,并描點。CONx = input('please enter the x

13、 of control point : '>。CONy = input('please enter the y of control point : '>。plot(CONx,CONy,'r o'> 。 %描出用于檢核的點。delx =X(7>- CONx %俞出相差X,Y坐標(biāo)大小。dely =Y(7>- CONy函數(shù)的描述和解釋代碼的后面已經(jīng)闡述,現(xiàn)在直接給出三維的函數(shù)描述:function gaocheng(>%This function is for 3DFILENAME1 = input('what i

14、s the name of lengt-hdate file?'>% 獲得用戶所需要處理的文件名。 FILENAME2 = input('what is the name of high-date file?'>X0 =input('input the x : '>%獲得初始的起算坐標(biāo)Y0 =input('input the y : '>Z0 =input('input the z : '>Angle = atan(Y0/X0>。 %計算出起算的兩點間在坐標(biāo)系中的夾角。A=xlsread

15、(FILENAME1>。 %獲得用戶提供的數(shù)據(jù)L=A(:,1>。L=L'。CT=A(:,2>。CT=CT。' %以上是對獲取數(shù)據(jù)的處理,使之符合矩陣運算。GT=。CT(1>=Angle。 %用戶輸入已知的坐標(biāo)點后,進行角度的轉(zhuǎn)化,使之能在坐標(biāo)系中正常實現(xiàn)。CT=(CT./(360>>*2*pi 。 %轉(zhuǎn)化角度X=0,X0,0,0,0,0,0。 %初始化坐標(biāo)值Y=0,Y0,0,0,0,0,0。CT(1>=Angle。GT(3>=CT(1>+CT(2>-p。I=4。for k=1:4 %計算獲得可計算的坐標(biāo)方位角GT(l&

16、gt;=CT(l-1>+GT(l-1>-p。I=I+1。endfor l=1:7if GT(l><0 %對小于 0度的角進行轉(zhuǎn)換GT(l>=GT(l>+2*pi。endif GT(l>>2*pi %對大于 360度的角進行轉(zhuǎn)換GT(l>=GT(l>-2*pi。endendGT(1>=0。GT(2>=0。I=3。for J=1:5 %核心計算,獲得坐標(biāo)值。X(I>=X(I-1>+L(I-1>.*sin(GT(I>>。Y(I>=Y(I-1>+L(I-1>.*cos(GT(I>

17、;>。I=I+1。endHT=xlsread(FILENAME2> %獲得用戶提供的高程a角。HT=HT'。HT=(HT./(360>>*2*pi 。 % a 角轉(zhuǎn)化;LT=。for k=1:5LT(k>=L(k+1>。endT=LT.*tan(HT>。通過tan函數(shù)獲得H的初始值。Z=。Z(1>=0。Z(2>=Z0。for k=3:7 %獲得H的值。Z(k>=Z(k-1>+T(k-2>。endOUTPUT = X' ,Y',Z' %輸出計算結(jié)果save OUTPUT。plot3(X,Y,Z

18、,'k - O'>。%畫出圖像。axis('equal'> 。xlabel('X'>。ylabel('Y,北方向>。zlabel('H,高程'>。grid on 。title('3Dmap'> 。 %以上為坐標(biāo)的優(yōu)化hold on 。%獲得已知點,進行比較,描繪,輸出結(jié)果CONx = input('please enter the x of control point :'>。CONy = input('please enter the y

19、of control point :'>。CONz = input('please enter the z of control point :'>。plot3(CONx,CONy,CONz,'r o'> %描出用于檢核的點。delx=X(7>- CONx % 輸出相差的坐標(biāo)值dely=Y(7>- CONydelyz=Z(7>- CONz現(xiàn)在整個函數(shù)的實現(xiàn)已經(jīng)給出來了。其中,function begin (> 放在一個M文件里,function daoxian(> 放在一個 M 文件里,function g

20、aocheng(> 放在一個 M文件里。其實,第2D和3D就差了一個坐標(biāo)元素。主體函數(shù)還是差不多的。不過,為了表達清楚, 我還是把它們都寫出來了。我在寫這些函數(shù)的時候,遇到了一些矩陣數(shù)組計算的小問題, 最后雖然得到了解決,但我一直懷疑是不是有更好的描述方法。四、運行MATLAB,獲得結(jié)果首先,我要說明的是,本來我是想在 word里直接運行代碼的,但是,因為不同的M文件,這樣的表達,我覺得不是很清晰可能我方法不對),所以就選擇了截圖運行過程的方法。運行時首先運行begin函數(shù),選1,再按要求輸入所要求調(diào)用的文件名:導(dǎo)線數(shù)據(jù).xlsl,再輸入起算點的X,Y坐標(biāo),此處是100,200。運行后,

21、再根據(jù)提示輸入控制點的坐標(biāo)進行檢核, 這里是-36,350)。整個輸入過程就結(jié)束了。運行過程如下:啟動界面n.RidaMotasvcisn m.g 歟 hang 蒯 igaochng mMATLABSirf? tftHOLJIPUT.fi atttnEdrtorAiitosaV-frie列-:*血j駅wITF也VAT-fi:e 貂KFih -LEG eSre 3a:» Me drift dDeser p:nIKE 11-1215:2 HE 1M1-Q TipTO 2 KE 10-1(42 T«:2fl2 KB 10-t142TR:16 2 KE 1W1-12TR19 1KB

22、 irn 上TO2 KB 1011-12 TU09 tIKB圧皿上冉 11 KE 10-f-l 2 FT9-3S:i e pi Dgi am gi.« usr twi 幡 y t;卩時加 m 孵 sdv 2J;'i siundur 負2D?:s1unc:iDr.i3for 3DComna.i d H 阿# MATLAB J.6£ (RJOOBaJ"aH"'lFik Edk Uflbug Pjfllkl Dcsktcp Window H咋:Q d 為引砌畫| Currert Dreanyi GudAMA7UBjK*% 一 ihortetb

23、刃 Tm、to Add 刃加兀弓兀evrCirnMtDirKtnry h- i x Ccnnnifid '3indaw-n J x也 i 寸 i TD New tn MAm時 WdKii This 仙曲,梵電跳mg or red 血tma EtaiMxAll FiltiTyptvtl:>w tn 鋌 r.y protran! psiesE Em*r tj star!9 ijininKkilBehcoj J ter _D, chMse 2 for JllJ:. < cll.c:'.FdiorAu'daBHisn.m-1-f =TF 一ga:cbfnq.TMAT

24、IA醮封姻.trtTXT File* ;uJTFJ-ni3t1g F拒g卜Ipvhatthw tthe of date film'?扌戎羥據(jù).zdsx"'Editor M<町F1EJAIC =Commaftd H itcy片X103尋遴Stif ilsxck-1th? j>* Start Mine by incutF圖顯示的是輸出的X,Y勺坐標(biāo)值F圖顯示的delx, dely是與控制點相差的數(shù)值I a D屯f o J由崔i iCurrent Diectory:<3zma 時占二、IMAT1AE.謹(jǐn) 耀仃口 rtcLFri:Hq 畑 to Ad J I

25、Jl; s h aT's Mew下圖顯示的是導(dǎo)線的圖像,其中紅點為檢核所用的控制點<此處幾乎重合)M Figure I| 二 | 叵)E5File Edit View Insert Tods Desktop Window Help=心tataa I戛頭目膜求“ai 砂|至a: 現(xiàn)在來看看三維導(dǎo)線的運行。首先調(diào)用begin函數(shù),選2,按要求輸入文件名,再輸入起算點的坐標(biāo),這里是 <100,200,300 );運行如下即輸出了計算結(jié)果,然后按要求說如已知控制點的坐標(biāo)用于檢核。這里輸入<170,390,640),則其輸出了測算點與控制點差值。結(jié)果如下:最后我們可以看一下三維

26、圖像的運行結(jié)果<如下圖),注意,紅點是用于檢核的已知坐標(biāo)的點,不得不提一下的是,實際操作中,精度往往比較高,這里為了突出誤差,便于觀察和理解圖像,把誤差放大了。號廿廠 i I'ai iu ; ir ru U¥* IF rhdli A -Nihv 'johis .'deo. :ttr(d uitt naXMl Files *4 =JiMlile伽 ian asrEditor Au啊E:mAu!'羽巧 g.nM-fikcmm =呻T囲軌惟丈rr=三jlTPLTathAAT-fle0匚弍訴曲XLSX File00WFile130.000::腫two3C

27、1TO卜型.58M37;.0L633KLS565Cunnund HictDiy ”E f 乂257.3235510*021血3;33ri匸 5.38J:=11.9093524. id 15:C._13SI1S.S910減2«4100159.035:33.8W血 3422-200jOQphas« erret th? e rfccntrsl point:1f Start siting orinpfo/R .:*" 'r ”pgAia-0 Mm k: MAT/Br atch* 打 J«c.二卅輒 sr read Celinq !i:ar?lXji吐車丄Type£Jtgir m脳d*li =cso:f an 涮Editor Ay,;caoJi'annM-f!e噸9制gaockng.KVrdilor Ac;ocbr:m般nrFfedely -KLSX File'c-dT; - 5t;-'*-XLSFile1 ? X4.155ZdeLjE =ro-3?.65r8r F33DZD皂-640TT|g

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論