基于matlab的控制网平差程序设计,基于Matlab的水准网间接平差程序设计
基于 Matlab 的水準(zhǔn)網(wǎng)間接平差程序設(shè)計(jì)① 趙亞紅② 周文國(guó) ( 華北科技學(xué)院土木工程系,北京 東燕郊 101601) 摘 要: 設(shè)計(jì)水準(zhǔn)網(wǎng)數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)在文本中,按照水準(zhǔn)網(wǎng)的起點(diǎn)、終點(diǎn)、觀測(cè)數(shù)據(jù)相對(duì)應(yīng)關(guān)系建立矩陣,利用 Matlab 強(qiáng)大的矩陣運(yùn)算功能,通過(guò)間接平差方法,按照最小二乘原理,求得任意水準(zhǔn)網(wǎng)的未知點(diǎn)的最或然高程值,對(duì)平差結(jié)果輸出存儲(chǔ),程序直觀、簡(jiǎn)便。并用實(shí)例驗(yàn)證了其正確性及通用性。 關(guān)鍵詞: 水準(zhǔn)網(wǎng); 間接平差; Matlab 中圖分類(lèi)號(hào):P207 + . 2 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1672 -7169( 2011) 03 -0058 -03 水準(zhǔn)網(wǎng)間接平差的的具體過(guò)程是: ( 1) 根據(jù)水準(zhǔn)網(wǎng)形進(jìn)行分析,列誤差方程; ( 2) 根據(jù)誤差方程系數(shù)列法方程; ( 3) 解算法方程,求參數(shù) X 及V; ( 4) 求最或然值、精度評(píng)定。其中重點(diǎn)是誤差方程的列立及誤差方程系數(shù)矩陣的確定,在大多數(shù)利用 Matlab 計(jì)算水準(zhǔn)網(wǎng)平差問(wèn)題的文獻(xiàn)中,誤差方程的系數(shù)矩陣均為手動(dòng)輸入,不適用于任何網(wǎng)形,而且對(duì)于輸出結(jié)果沒(méi)有一定的存儲(chǔ)文件,針對(duì)以上存在的缺陷,本文利用 Matlab 強(qiáng)大的矩陣運(yùn)算且易學(xué)易懂等優(yōu)點(diǎn),通過(guò)程序設(shè)計(jì),利用. mat 文件,根據(jù)水準(zhǔn)網(wǎng)自身數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),自動(dòng)生成系數(shù)矩陣 B,進(jìn)行平差計(jì)算,最終以文本的格式輸出最終結(jié)果,簡(jiǎn)便快捷,減少了工作量。 1 水準(zhǔn)網(wǎng)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) 水準(zhǔn)網(wǎng)根據(jù)其網(wǎng)形可分為附合、閉合和支水準(zhǔn)。其中應(yīng)用最廣的為附合和閉合水準(zhǔn)網(wǎng)。不管何種網(wǎng)形,一條水準(zhǔn)路線包括四個(gè)數(shù)據(jù): 起始點(diǎn)、高差、距離、終點(diǎn),且 H起 + h高差 = H終 ,因此在進(jìn)行數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)中,必須體現(xiàn)出終點(diǎn)、起點(diǎn)從而判斷其與高差關(guān)系。在本程序設(shè)計(jì)中,利用 QD [],ZD[],hc[],S[],DD[]分別表示起點(diǎn)點(diǎn)號(hào)、終點(diǎn)點(diǎn)號(hào)、高差、距離、所有點(diǎn)點(diǎn)號(hào)所組成的矩陣。在進(jìn)行程序設(shè)計(jì)時(shí),為了簡(jiǎn)便快捷,利用讀入數(shù)據(jù)形式,讀取所有已知數(shù)據(jù),格式如下: 已知點(diǎn)個(gè)數(shù) 未知點(diǎn)個(gè)數(shù) 觀測(cè)值個(gè)數(shù)已知點(diǎn)點(diǎn)號(hào) 已知點(diǎn)高程起點(diǎn)點(diǎn)號(hào) 終點(diǎn)點(diǎn)號(hào) 觀測(cè)高差 距離值 利用 Matlab 的函數(shù) fopen 語(yǔ)句打開(kāi)文本文件。針對(duì)不同的網(wǎng)形,只需修改已知數(shù)據(jù)文件即可。 2 水準(zhǔn)網(wǎng)程序設(shè)計(jì) 根據(jù)水準(zhǔn)網(wǎng)平差的計(jì)算過(guò)程,本程序設(shè)計(jì)的流程如圖 1 圖 1 水準(zhǔn)網(wǎng)間接平差程序流程圖 2. 1 水準(zhǔn)網(wǎng)所有點(diǎn)高程確定 在水準(zhǔn)網(wǎng)間接平差計(jì)算過(guò)程中,按照已知點(diǎn)的個(gè)數(shù)確定參數(shù)個(gè)數(shù),有已知點(diǎn)時(shí),參數(shù)個(gè)數(shù)等于未知點(diǎn)個(gè)數(shù),沒(méi)有已知點(diǎn)時(shí)參數(shù)個(gè)數(shù)等于未知點(diǎn)個(gè)數(shù)減 1,但是在進(jìn)行方程列立時(shí),為了計(jì)算方便首先要求得參數(shù) X 的近似值,但是對(duì)于用程序?qū)?85 第 8 卷 第 3 期 華北科技學(xué)院學(xué)報(bào) 2011 年 7 月 ① ② 收稿日期:2011 -03 -14 作者簡(jiǎn)介: 趙亞紅( 1982 - ) ,女,河北衡水人,碩士,華北科技學(xué)院土木工程系講師,研究方向: 測(cè)繪工程教學(xué)、遙感圖像及數(shù)據(jù) 處理。 現(xiàn)其自動(dòng)求取近似值比較麻煩,為了 Matlab 實(shí)現(xiàn)運(yùn)算簡(jiǎn)單,因此在本程序中,所有未知點(diǎn)的高程起始值均為 0,通過(guò)以下代碼實(shí)現(xiàn)。 HHH = HH; % HH 為讀取文件中已知點(diǎn)高程矩陣,HHH 為未知點(diǎn)高程 %zd 總點(diǎn)數(shù),wz 未知點(diǎn)數(shù),fori =1: b HHH( zd - wz + i) = 0; % 給未知高程點(diǎn)添加高程零生成 HHH,b 為未知點(diǎn)個(gè)數(shù) end 2. 2 水準(zhǔn)網(wǎng)誤差方程系數(shù)矩陣生成 對(duì)于水準(zhǔn)網(wǎng)間接平差而言,最重要的計(jì)算步驟不外乎誤差方程的列立,而對(duì)于程序設(shè)計(jì)重點(diǎn)和難點(diǎn)就是自動(dòng)生成
總結(jié)
以上是生活随笔為你收集整理的基于matlab的控制网平差程序设计,基于Matlab的水准网间接平差程序设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ACM 动态规划(简称dp) 分类
- 下一篇: matlab人脸追踪,求大神帮助我这个菜