亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于EXCEL的水準網(wǎng)間接平差應用

        2018-03-26 02:14:46李杰譚榮建
        軟件導刊 2018年3期
        關鍵詞:高差水準差值

        李杰 譚榮建

        摘要:

        在測量平差計算中,現(xiàn)有的各種平差軟件編制過程一般均為隱含,遇到特殊平差問題不便于軟件自身的優(yōu)化處理和實際應用。運用Excel的VBA編輯器,基于優(yōu)化處理的間接平差數(shù)學模型編制程序進行數(shù)據(jù)處理,闡述了運用Excel進行水準網(wǎng)間接平差的原理和方法。與專業(yè)平差軟件計算結果進行對比分析,結果表明:該方法滿足精度要求,適用于測量平差計算,克服了專業(yè)軟件在實際平差應用中的不足,更具實用性。

        關鍵詞:

        ExcelVBA;水準網(wǎng);間接平差;數(shù)據(jù)處理

        DOIDOI:10.11907/rjdk.173054

        中圖分類號:TP319

        文獻標識碼:A文章編號文章編號:16727800(2018)003017604

        英文摘要Abstract:In the adjustment of surveying calculation, the compilation process of all kinds of surveying adjustment software is generally implicit, and it is not convenient for the optimization processing and practical application of the software itself when the special adjustment of surveying problem is encountered. The mathematical model of leveling network adjustment of indirect observations based on optimized processing is compiled by using VBA editor of Excel, and its superiority is proved; Combined with examples calculation, expounds the principle and method of leveling network adjustment of indirect observations by using excel; and the calculated results were compared with the professional software. The results show that the result of this method meets the requirement of precision. This method can be applied to surveying adjustment, and it overcomes the shortcomings of professional software in application of actual surveying adjustment, and is more practical.

        英文關鍵詞Key Words:ExcelVBA; leveling network; adjustment of indirect observations; data processing

        0引言

        測量平差計算工作主要是矩陣轉(zhuǎn)置、求逆、相乘等[1]。因此,可利用不同的編程語言如VB、 VC++、 Delphi、C++ Builder甚至 Quick Basic、 PC-E500,應運而生了各式各樣的測量平差計算軟件,它們都有一個共同點:要設計一套原始數(shù)據(jù)文件格式,讓程序獲得水準網(wǎng)觀測數(shù)據(jù),但一些軟件使用不便,解決的問題也較單一。因此,需要設計一種使用方便靈活,且易學易懂便于操作的數(shù)據(jù)處理平臺。Excel 宏是一套 Visual Basic for Application ,簡稱 VBA,由 Excel提供一套 COM 接口,高級用戶可用 VB 語法控制 Excel,而且Excel中自帶平差計算用到的一些函數(shù),在程序編寫時可直接運用,非常方便[24]。

        1基本原理

        水準網(wǎng)間接平差是以待定點的高程平差值作為未知參數(shù),確定合理的近似值,列出測段高差觀測值的誤差方程,基于最小二乘原則求解未知參數(shù)、觀測值的平差值。水準網(wǎng)間接平差模型如下[56]:

        誤差方程:

        Vn×1=Bn×tX⌒t×1-ln×1(1)

        平差準則:

        VT1×nPn×nVn×1=min(2)

        法方程:

        NBBt×tX⌒t×1-Wt×1=0(3)

        式(3)中:NBB=BTPB, W =BTPl

        因為所選的t個參數(shù)是獨立的,所以系數(shù)陣NBB為滿秩,即R(NBB)= t, X⌒有唯一解,其解為:

        X⌒=N\+\{-1\}BBW=(BTPB)-1BTPl(4)

        參數(shù)的平差值:

        X⌒=X0+X⌒(5)

        高差觀測值的平差值:

        L⌒=L+v(6)

        單位權中誤差:

        σ⌒=VTPVn-t(7)

        未知數(shù)函數(shù)的中誤差:

        σ⌒X⌒i=σ⌒QX⌒iX⌒i(8)

        式(8)中:QX⌒iX⌒i是參數(shù)向量X⌒=[X⌒1X⌒2…X⌒t]T的協(xié)因數(shù)陣,即

        QX⌒X⌒=QX⌒1X⌒1QX⌒1X⌒2…QX⌒1X⌒tQX⌒2X⌒1QX⌒2X⌒2…QX⌒2X⌒t

        QX⌒tX⌒1QX⌒tX⌒1…QX⌒tX⌒t(9)

        2程序整體設計

        水準網(wǎng)間接平差的解算程序設計流程為:①已知數(shù)據(jù)和觀測數(shù)據(jù)的信息提取及輸入;②每個未知參數(shù)近似高程X0i的計算;③組成法方程,計算高程平差值及相應的中誤差[78]。根據(jù)上述模型編寫程序,所得到的結果直接為所求參數(shù)的估值。

        2.1Excel文件設計

        利用Excel VBA進行間接平差編程計算時,高程已知點、高程未知點、高差觀測值這3種數(shù)據(jù)需要從水準網(wǎng)中獲取。根據(jù)所讀取的3種數(shù)據(jù)在Excel中設計3張表,分別為“高程已知點表”、“高程未知點表”、“高差觀測值表”。將原始數(shù)據(jù)確認無誤的填入上述已經(jīng)設定好格式的3張表中。對表中的已知高程點的點名和高程值、未知高程點的點號和點名、每一測段的高差觀測值、起始點和終止點點號進行設定,在各點名和點號之間進行匹配,以便更準確地進行數(shù)據(jù)讀取。程序編寫應與所提取數(shù)據(jù)在Excel中的寫入格式嚴格對應起來。在計算高程平差值的誤差時,首先需要計算出QX⌒X⌒,因此增加了“協(xié)因數(shù)陣表”。本文的程序設計和實現(xiàn)都嚴格依靠3張表中數(shù)據(jù)的填寫格式。程序解算出結果后,需要把結果寫入對應的表格中,而寫入表格中的位置由用戶自己設定。通過創(chuàng)建宏,使用“窗體”工具欄,在“高差觀測值”工作表中添加“平差”按鈕控件,并為其指定宏,用戶則通過單擊該控件并根據(jù)相應提示進行操作,所得結果按預定位置寫入工作表中。

        2.2未知點近似高程計算

        根據(jù)表中的信息,讀取未知點的點號,計算每個未知點高程的近似值X0。

        (1)對水準網(wǎng)中每一測段的起點高程、終點高程、點號及高差觀測值掃描讀取,如其中的一個高程點為已知或已獲取近似高程,則另一個高程點為未知。對未知點的高程進行推算,將推算出來的未知點高程標記為“已獲得近似高程”(若是起點和終點的高程均為已知點則說明數(shù)據(jù)輸入錯誤)。

        (2)對水準網(wǎng)進行一次掃描,讀取未知點近似高程不能被完全推算出來的情況,循環(huán)掃描,直到一次循環(huán)沒有計算出任何一點近似高程,則表示完成高程未知點讀取。

        (3)進行多次掃描后,仍有未知點的近似高程未能計算出來,這說明水準網(wǎng)中該未知點與已知高程點沒有聯(lián)系,在水準網(wǎng)中這是不存在的。如果此情況發(fā)生,說明數(shù)據(jù)輸入錯誤。

        根據(jù)上述3點可知:“高差觀測值表”中,觀測值的排列順序嚴重影響著未知點近似高程的計算,即如果觀測值輸入順序有誤,則近似高程X0將發(fā)生改變,而平差結果是否正確將無法判斷。在間接平差中,X⌒=(BTPB)-1BTPl,顯然最終的平差值與 B、 l、P、 L有關,而與近似值X0無關。因此,本文在進行程序設計時直接把X0全部設置為零,不再進行X0的計算。

        2.3工作表中數(shù)據(jù)信息讀取

        觀測數(shù)據(jù)輸入后,程序首先讀取工作表中已知點名、高程值、未知點名。對于未知點高程的獲取,基于上述4點說明,在本文編寫的程序中賦初值為0。獲得已知點數(shù)、未知點數(shù)及總點數(shù),從而確定誤差方程個數(shù)。然后程序統(tǒng)計高差觀測數(shù)和讀取高差觀測值,列出誤差方程。與此同時,設定每一段高差觀測值起點和終點名稱讀取的正確性判斷,及確認起點和終點是已知點或未知點。本文實例中給出的是每一測段的長度,因此程序設定定權方式為:P=1/Si(Si 為相應測段的長度)。

        2.4間接平差程序?qū)崿F(xiàn)

        平差過程包括:法方程的組成、求NBB的逆矩陣、求解平差值、高程平差值中誤差、協(xié)因數(shù)陣、單位權中誤差[9]。大部分解算過程都是在B(系數(shù)矩陣)、l、P(權陣)間進行矩陣相乘、求逆和求轉(zhuǎn)置等工作,但最重要的是系數(shù)矩陣B的求解。在平差工作中,l的元素值為觀測值與近似值的差值,而法方程系數(shù)矩陣中,元素值是根據(jù)每段高差觀測值對應的起點和終點編號,以及測量時水準路線的前進方向,確定每段高差所列出的誤差方程中未知數(shù)的系數(shù)值[10],這些系數(shù)值只有1、-1、0三種。然而在實際計算過程中,當水準網(wǎng)中高程未知點和觀測數(shù)的個數(shù)很多時,系數(shù)矩陣B中的元素值大多數(shù)都為0,因此在編寫法方程計算程序時,不用單獨生成B和W兩個矩陣,而是通過程序讀取3張工作表中的觀測數(shù)、未知點數(shù)、已知點數(shù)、起點序號、終點序號等信息,作為系數(shù)值的判斷依據(jù),直接組成法方程并進行計算。

        間接平差中幾個主要程序段代碼如下:

        '組成法方程

        Dim N() As Double

        ReDim N(WZDS, WZDS)

        Dim U() As Double

        ReDim U(GCS)

        Dim w As Double

        Dim f As Integer

        Dim t As Integer

        Dim iFlag As Integer

        For i = 1 To GCS

        f = gc(i).Fidx

        t = gc(i).Tidx

        iFlag = 0

        If f > YZDS Then

        'B(i, f - YZDS) = -1

        iFlag = iFlag + 1

        End If

        If t > YZDS Then

        'B(i, t - YZDS) = 1

        iFlag = iFlag + 2

        End If

        w = pts(t).H - pts(f).H - gc(i).HDiff

        Select Case iFlag

        Case 1

        N(f - YZDS, f - YZDS) = N(f - YZDS, f - YZDS) + gc(i).P

        U(f - YZDS) = U(f - YZDS) - gc(i).P * w

        Case 2

        N(t - YZDS, t - YZDS) = N(t - YZDS, t - YZDS) + gc(i).P

        U(t - YZDS) = U(t - YZDS) + gc(i).P * w

        Case 3

        N(f - YZDS, f - YZDS) = N(f - YZDS, f - YZDS) + gc(i).P

        N(t - YZDS, t - YZDS) = N(t - YZDS, t - YZDS) + gc(i).P

        N(f - YZDS, t - YZDS) = N(f - YZDS, t - YZDS) - gc(i).P

        N(t - YZDS, f - YZDS) = N(t - YZDS, f - YZDS) - gc(i).P

        U(f - YZDS) = U(f - YZDS) - gc(i).P * w

        U(t - YZDS) = U(t - YZDS) + gc(i).P * w

        End Select

        Next

        求 N 的逆陣N-1

        Dim Q() As Double

        ReDim Q(WZDS, WZDS)

        Dim tt As Double

        Dim j As Integer

        Dim k As Integer

        For i = 1 To WZDS

        Q(i, i) = 1#

        Next

        For k = 1 To WZDS

        tt = 1# / N(k, k)

        For j = k + 1 To WZDS

        N(k, j) = N(k, j) * tt

        Next

        For j = 1 To WZDS

        Q(k, j) = Q(k, j) * tt

        Next

        For i = 1 To WZDS

        If i <> k Then

        tt = -N(i, k)

        For j = k + 1 To WZDS

        N(i, j) = N(i, j) + N(k, j) * tt

        Next

        For j = 1 To WZDS

        Q(i, j) = Q(i, j) + Q(k, j) * tt

        Next

        End If

        Next

        Next

        求解平差值

        For i = 1 To WZDS

        tt = 0#

        For j = 1 To WZDS

        tt = tt - Q(i, j) * U(j)

        Next

        pts(i + YZDS).H = tt

        Next

        3實例驗證

        為檢驗程序的正確性,本文采用文獻[11]中的數(shù)據(jù)作為實驗數(shù)據(jù)。水準路線如圖1所示,已知點A的高程為HA=11.100m, P1、P2、P3、P4、P5、P6、P7、P8為未知高程點,觀測高差及路線長度見表1

        將水準網(wǎng)中的數(shù)據(jù)分別輸入3張表中,點擊高差觀測值表中的“平差”按鈕,得到平差結果如圖2所示。

        對平差結果進行檢驗以驗證平差結果的可靠性。把上述水準網(wǎng)中的數(shù)據(jù)輸入南方平差易2002軟件中進行解算,得出平差結果,再將本文的平差結果、文獻[11]中的平差結果和運用南方平差易解算所得的平差結果進行對比,如表2所示。

        4結語

        通過表2對比結果可以看出,在同一個水準網(wǎng)平差中,本文程序解算的結果與文獻中的結果及專業(yè)軟件平差結果之間的差值為1mm以內(nèi),充分說明本文程序在運行中達到了預期值,所得的結果滿足水準測量精度要求[12]。本文程序根據(jù)水準網(wǎng)間接平差原理和解算步驟進行設計,在程序編寫過程中省略了一些平差步驟,提高了程序編寫的效率,適合測量初學者理解和掌握間接平差思路,解決相關問題。與此同時,運用Excel進行程序設計,可克服一些專業(yè)軟件程序代碼隱含的缺點,根據(jù)不同需求對程序進行優(yōu)化處理,更具實用性。

        參考文獻參考文獻:

        [1]李征航,黃勁松.GPS測量與數(shù)據(jù)處理[M].武漢:武漢大學出版社,2005:156165.

        [2]李輝,郝艷芬.Excel 2003VBA辦公應用[M].北京:人民郵電出版社,2006.

        [3]馬騄.新概念Excel 2003教程[M].北京:科學出版社,2006.

        [4]宋毅,王馳,張艷華.Excel實訓教程[M].北京:清華大學出版社,2011.

        [5]武漢大學測繪學院測量平差學科組.誤差理論與測量平差基礎[M].武漢:武漢大學出版社,2005.

        [6]靳祥升.測量平差[M].第2版.鄭州:黃河水利出版社,2010.

        [7]劉翔禹.基于ExcelVBA的水準網(wǎng)間接平差的應用[J].江西測繪,2015(2):1620.

        [8]胡遠新,趙奮軍.MATLAB軟件在測量平差解算中的應用[J].采礦技術,2009(2):98100.

        [9]胡奇.水準網(wǎng)測量平差軟件設計與開發(fā)[D].淮南:安徽理工大學,2012.

        [10]周長江,顧和和.基于VB環(huán)境下水準網(wǎng)平差程序設計研究[J].現(xiàn)代測繪,2012(1):1214.

        [11]曾紹炳.基于Excel的條件平差解算[J].東華理工學院學報,2007(1):5154.

        [12]梁先兵,李兆雄.利用GPS擬合方法代替四等水準的可行性分析[J].地理空間信息,2016(3):8393.

        責任編輯(責任編輯:杜能鋼)

        猜你喜歡
        高差水準差值
        高差影響下的城鎮(zhèn)燃氣管道水力計算簡化公式
        一種改進的水準網(wǎng)條件平差算法
        北京測繪(2021年1期)2021-02-05 11:43:46
        差值法巧求剛體轉(zhuǎn)動慣量
        框架結構梁板面鋼筋疊合產(chǎn)生的高差問題探討
        媲美激光光源的成像水準Acer宏碁E8620C
        同時對向間接高差精密測量技術應用研究
        鐵道勘察(2018年5期)2018-10-22 06:12:00
        枳殼及其炮制品色差值與化學成分的相關性
        中成藥(2017年6期)2017-06-13 07:30:35
        地形高差較大的別墅區(qū)排水設計要點分析
        基于區(qū)域最大值與平均值差值的動態(tài)背光調(diào)整
        用平均差值法制作鄉(xiāng)鎮(zhèn)精細化溫度預報
        河南科技(2014年14期)2014-02-27 14:12:06
        在线视频精品少白免费观看| 色狠狠一区二区三区香蕉| 女同啪啪免费网站www| 538在线视频| 在线观看午夜视频国产| 人妻av无码一区二区三区| 黄色成人网站免费无码av| 色婷婷色99国产综合精品| 日本一区二区三区精品免费| 免费av一区二区三区无码| 亚洲av日韩av无码av| 青榴社区国产精品| 粉嫩人妻91精品视色在线看| 色偷偷av一区二区三区| 亚洲国产精品一区二区第四页| 免费人成视频网站在线| 男奸女永久免费视频网站| 北条麻妃国产九九九精品视频| 三上悠亚免费一区二区在线| 成人影院免费观看在线播放视频 | 国产亚洲一区二区三区| 国产97在线 | 亚洲| 囯产精品无码一区二区三区| 日韩黄色大片免费网站| 国产日韩欧美一区二区东京热| 国产乱人伦av在线无码| 国产亚洲精品性爱视频| 亚洲精品国产一区二区免费视频 | 精品国产中文久久久免费| 精品国产第一国产综合精品| 精品国产午夜福利在线观看| 国产人妖在线免费观看| 精品国产一区二区三区av| 欧美日韩国产一区二区三区不卡| 最新国产成人综合在线观看| 精品人妻少妇丰满久久久免| 免费高清av一区二区三区| 精品十八禁免费观看| 操国产丝袜露脸在线播放| 人妻丰满av无码中文字幕| 肉体裸交丰满丰满少妇在线观看 |