999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于EXCEL的水準網間接平差應用

2018-03-26 02:14:46李杰譚榮建
軟件導刊 2018年3期
關鍵詞:程序

李杰 譚榮建

摘要:

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

關鍵詞:

ExcelVBA;水準網;間接平差;數據處理

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引言

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

1基本原理

水準網間接平差是以待定點的高程平差值作為未知參數,確定合理的近似值,列出測段高差觀測值的誤差方程,基于最小二乘原則求解未知參數、觀測值的平差值。水準網間接平差模型如下[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個參數是獨立的,所以系數陣NBB為滿秩,即R(NBB)= t, X⌒有唯一解,其解為:

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

參數的平差值:

X⌒=X0+X⌒(5)

高差觀測值的平差值:

L⌒=L+v(6)

單位權中誤差:

σ⌒=VTPVn-t(7)

未知數函數的中誤差:

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

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

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程序整體設計

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

2.1Excel文件設計

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

2.2未知點近似高程計算

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

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

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

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

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

2.3工作表中數據信息讀取

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

2.4間接平差程序實現

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

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

'組成法方程

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]中的數據作為實驗數據。水準路線如圖1所示,已知點A的高程為HA=11.100m, P1、P2、P3、P4、P5、P6、P7、P8為未知高程點,觀測高差及路線長度見表1

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

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

4結語

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

參考文獻參考文獻:

[1]李征航,黃勁松.GPS測量與數據處理[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的水準網間接平差的應用[J].江西測繪,2015(2):1620.

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

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

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

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

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

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

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 蝴蝶伊人久久中文娱乐网| 2021无码专区人妻系列日韩| 国产va在线| 91在线激情在线观看| 亚洲日韩国产精品综合在线观看| 亚洲色偷偷偷鲁综合| 亚洲第一视频网| 波多野结衣一区二区三区四区视频 | 日韩在线中文| 制服丝袜 91视频| 国产欧美日韩在线在线不卡视频| 尤物精品视频一区二区三区| 美女国内精品自产拍在线播放| 亚洲国产欧美目韩成人综合| 亚洲乱码精品久久久久..| 欧美一区精品| 婷婷色中文网| 国产aⅴ无码专区亚洲av综合网| 国产视频欧美| 亚洲人成网址| 国产亚洲成AⅤ人片在线观看| 国产91无码福利在线| 色综合狠狠操| 成人夜夜嗨| 国产精品免费露脸视频| 国产va免费精品| 亚洲天堂日韩在线| 国产后式a一视频| 免费一级无码在线网站| 久久精品日日躁夜夜躁欧美| 四虎成人精品| 亚洲日本www| 91成人免费观看在线观看| 97成人在线视频| 亚洲日本一本dvd高清| 丰满人妻被猛烈进入无码| 色天堂无毒不卡| 欧美一区中文字幕| 亚洲精品国产成人7777| 亚洲精品无码不卡在线播放| 青青操国产| 日韩123欧美字幕| 欧美色图久久| 在线观看精品自拍视频| 午夜色综合| 亚洲一区二区无码视频| 婷婷综合在线观看丁香| 在线免费亚洲无码视频| 欧美特黄一免在线观看| 久久精品波多野结衣| 黄色三级网站免费| 激情亚洲天堂| 精品国产免费第一区二区三区日韩| 亚洲欧洲一区二区三区| 色欲国产一区二区日韩欧美| 国产AV毛片| 精品伊人久久大香线蕉网站| 中文字幕永久在线观看| 日日噜噜夜夜狠狠视频| 91网站国产| 免费观看国产小粉嫩喷水| 99re在线免费视频| 欧美福利在线观看| 亚洲色欲色欲www网| 精品色综合| 精品夜恋影院亚洲欧洲| 伊人AV天堂| 日本精品一在线观看视频| 中文字幕无码中文字幕有码在线| 亚洲国产午夜精华无码福利| 青青操视频免费观看| 精品视频在线观看你懂的一区| 亚洲一区二区无码视频| 免费99精品国产自在现线| 日韩在线播放中文字幕| 成人午夜网址| 亚洲第一在线播放| 国产精品手机在线观看你懂的| 无码精油按摩潮喷在线播放 | 小说 亚洲 无码 精品| 欧美成人精品一级在线观看| 久久久久亚洲精品无码网站|