張鵬飛
摘要: 本文主要介紹了工程測(cè)量平差程序所用到的函數(shù)模型與算法,重點(diǎn)討論了參數(shù)平差方法.對(duì)于近似坐標(biāo)推算作了較多的分析,采用了深度遍歷算法,并且解決了導(dǎo)線網(wǎng)和三角網(wǎng)近似坐標(biāo)的問題。在此基礎(chǔ)上設(shè)計(jì)了能夠解決工程測(cè)量中各種網(wǎng)型平差問題的平差算法。
關(guān) 鍵 詞:測(cè)量平差 參數(shù)平差 工程測(cè)量網(wǎng) 深度遍歷
中圖分類號(hào):TB22文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):
Abstract:This paper mainly introduces the engineering measurement adjustment procedure used by the function model and algorithm, discusses the parameter adjustment method. For approximate coordinate calculation made more analysis, using depth traversal algorithm, and solved the wire network and the triangular mesh approximation the problem of coordinate. Based on the design can solve the engineering measurement of a variety of network type adjustment adjustment algorithm.
Key Words: Surveying adjustment; Parameter adjustment; Engineering Surveying;
引 言
工程控制網(wǎng)在平差模型的選擇上,由于參數(shù)平差誤差方程組成非常有規(guī)律,便于程序解算,因此在平差實(shí)踐中間接平差得到了廣泛的應(yīng)用,本文主要以參數(shù)平差為模型建立數(shù)據(jù)結(jié)構(gòu),并以此編寫主要算法解決以下問題。一、最小二乘平差原理在程序中的實(shí)現(xiàn);二,適合各種工程測(cè)量網(wǎng)型的點(diǎn)位近似坐標(biāo)的推算;三、 程序能解決理論上可解算的各種復(fù)雜網(wǎng)型。設(shè)計(jì)出能適應(yīng)導(dǎo)線網(wǎng),純測(cè)角網(wǎng),純測(cè)邊網(wǎng),邊角聯(lián)合網(wǎng),水準(zhǔn)網(wǎng),前、后、側(cè)方交會(huì)網(wǎng),附有限制參數(shù)的網(wǎng)型等的各種平差問題的通用算法。
1工程測(cè)量中的參數(shù)平差
參數(shù)平差通常選取待定點(diǎn)的坐標(biāo)平差值為未知數(shù),平差后直接求得待定點(diǎn)的坐標(biāo)平差值,不必再進(jìn)行其他換算,這種平差方法方便快捷,被廣泛應(yīng)用于工程平差計(jì)算中。參加平差的量可以是網(wǎng)中的直接觀測(cè)量,如方向、邊長(zhǎng),也可以是它們函數(shù)。參數(shù)平差的函數(shù)模型是誤差方程,它是表達(dá)未知數(shù)與觀測(cè)量之間關(guān)系的方程式。一般工程測(cè)量平面控制網(wǎng)的觀測(cè)對(duì)象主要是方向和相臨點(diǎn)之間的距離。因此坐標(biāo)平差時(shí)主要列立各觀測(cè)方向和觀測(cè)邊長(zhǎng)的誤差方程,再按照間接平差法的原理和步驟,由誤差方程和觀測(cè)值的權(quán)組成未知數(shù)法方程去解算待定點(diǎn)坐標(biāo)平差值,并進(jìn)行精度評(píng)定。
參數(shù)平差函數(shù)模型誤差方程可概括為 , 而對(duì)于非線性函數(shù),亦可以通過“泰勒公式”轉(zhuǎn)化為線性式并最終化為以上形式。當(dāng)以坐標(biāo)為參數(shù)時(shí),邊與角的誤差方程可歸納下:
將 式按照最小二乘原理推導(dǎo),
(誤差方程)=0(法方程)
轉(zhuǎn)置后 .令 ,則 為法方程系數(shù)陣。
平面控制網(wǎng)按參數(shù)平差時(shí),網(wǎng)中每一觀測(cè)值都應(yīng)該列立一個(gè)誤差方程式。為便于計(jì)算,通常總是將觀測(cè)值改正數(shù)表示為帶定點(diǎn)坐標(biāo)近似值改正數(shù)的線性函數(shù)式。坐標(biāo)平差的第一步是列立誤差方程式。對(duì)于方向網(wǎng)而言,參與平差的觀測(cè)值是未定向的方向值,選定的未知數(shù)是待定點(diǎn)的橫縱坐標(biāo)值。按照消去定向角未知數(shù)法則(史賴伯法則),消去定向角未知數(shù)的步驟為:1,按每個(gè)測(cè)站列出該測(cè)站的全部方向誤差方程式,不必列出定向角未知數(shù),各誤差方程式的權(quán)均為1:2,在每個(gè)測(cè)站的誤差方程之后,增加一個(gè)該測(cè)站的和方程,此和方程的權(quán)為該站觀測(cè)方向的負(fù)倒數(shù)。
無論是何種網(wǎng)型,我們都可以將其解析為各種基本的幾何元素,其中至少包含一個(gè)測(cè)站,在一個(gè)測(cè)站上已知兩點(diǎn)求照準(zhǔn)點(diǎn)時(shí)均可以格式化為公式: , 。
2測(cè)量平差程序的數(shù)據(jù)結(jié)構(gòu)與算法
采用附有限制條件的平差模型,程序以概算后的方向,邊長(zhǎng)觀測(cè)值,近似坐標(biāo),固定方位角和基線為平差元素,函數(shù)模型和算法適合于各種控制網(wǎng)(三角網(wǎng)、測(cè)邊網(wǎng)、邊角網(wǎng)導(dǎo)線網(wǎng)、混合網(wǎng)、水準(zhǔn)網(wǎng))的平差計(jì)算和精度評(píng)定工作,平差結(jié)果包括點(diǎn)位中誤差以及一些衍生的結(jié)果數(shù)據(jù)。
為了能適應(yīng)不同網(wǎng)型的求解需要,將所有數(shù)據(jù)按點(diǎn)屬性展開處理。并在點(diǎn)的基礎(chǔ)上用邊進(jìn)行傳輸求解。無論在何種網(wǎng)型中,邊數(shù)據(jù)始終貫穿其內(nèi),這就給我們構(gòu)件數(shù)據(jù)結(jié)構(gòu)提供了可靠的依據(jù)。
2.1近似坐標(biāo)與近似高程的推算
通過廣度遍歷以測(cè)站為節(jié)點(diǎn)逐點(diǎn)推算近似坐標(biāo)同樣也可以采用深度遍歷算法,下面給出了深度遍歷有向圖的方法
Public Function depthsearch(j As Integer, i As Integer)
For k = 1 To points(i).irr_num '傳入的 參數(shù)測(cè)站 方向循環(huán)
For jj = 1 To points(points(i).irr_ate(k).target).irr_num ' '照準(zhǔn)站方向循環(huán)
If points(points(i).irr_ate(k).target).irr_ate(jj).target = i Then ' 照準(zhǔn)點(diǎn)回照本站求方向標(biāo)號(hào),如果是I則證明是以知站點(diǎn),(默認(rèn)當(dāng)前點(diǎn)已知,同時(shí)照準(zhǔn)點(diǎn)已推算)
stazimuth=azimuth(points(i).x,points(i).y,points(points(i).irr_ate(k).target).x,
points(points(i).irr_ate(k).target).y) '提取本站其始方向角值
angle = getl(points(i).irr_ate(k).l) '提取本站方向
Exit For ' hheight = point(mesite).Height
End If
Next jj
points(i).irr_ate(k).l = getl(points(i).irr_ate(k).l) - angle + stazimuth
points(points(i).irr_ate(k).target).x=points(i).x+svale(i,k)*Cos(getl(points(i).irr_ate(k).l)) '計(jì)算照準(zhǔn)點(diǎn)是測(cè)站點(diǎn)的坐標(biāo)
points(points(i).irr_ate(k).target).y=points(i).y+svale(i,k)*Sin(getl(points(i).irr_ate(k).l))
If points(i).issite <> 0 And points(points(i).irr_ate(k).target).do = False Then
points(i).do = True '標(biāo)記'本點(diǎn)是測(cè)站而且照準(zhǔn)點(diǎn)沒有計(jì)算過則計(jì)算
depthsearch (points(i).irr_ate(k).target) '深度遍歷
End If '計(jì)算照準(zhǔn)點(diǎn)非測(cè)站點(diǎn)的坐標(biāo)
Next k
End Function
c
近似坐標(biāo)模塊首先假設(shè)起始點(diǎn)坐標(biāo),該起始點(diǎn)必須是測(cè)站點(diǎn),如該測(cè)站某方向上存在邊數(shù)據(jù)且存在方向觀測(cè)值,或者該數(shù)據(jù)能鎖定整個(gè)圖形,則以該方向?yàn)榧僭O(shè)零方向,并根據(jù)邊長(zhǎng)推算該方向照準(zhǔn)點(diǎn)的假設(shè)坐標(biāo)。而對(duì)于沒有任何邊長(zhǎng)的數(shù)據(jù),可以假設(shè)邊長(zhǎng),推算出所有近似坐標(biāo)后通過平移、旋轉(zhuǎn)、放縮等變換轉(zhuǎn)化到實(shí)際坐標(biāo)。通過以上處理后即有了兩個(gè)起算點(diǎn),將這兩個(gè)點(diǎn)代入以下函數(shù),進(jìn)行各種網(wǎng)型近似坐標(biāo)的推算。
2.2法方程的組成、求逆與解算
列出誤差方程后,就可以根據(jù)誤差方程列出法方程,方程可以采用一維或者二維的數(shù)組形式。
法方程求逆過程如下
Call inversion(nx(), nb()) '將約化后的法方程系數(shù)陣送入通用過程inversion()求逆
ReDim nb(zds) '工作數(shù)組清零
For i = 1 To zds '按點(diǎn)號(hào)循環(huán),求點(diǎn)位中誤差
If points(i).isknow = 0 Then
n1 = 2 * (i - yzd - 1) + 1 '計(jì)算i點(diǎn)x坐標(biāo)未知數(shù)在未知數(shù)點(diǎn)集中的序號(hào)
n2 = n1 * (n1 + 1) / 2 'i點(diǎn)x坐標(biāo)未知數(shù)協(xié)因數(shù)在協(xié)因數(shù)陣中序號(hào)
n3 = (n1 + 1) * (n1 + 2) / 2 'i點(diǎn)y坐標(biāo)未知數(shù)協(xié)因數(shù)在協(xié)因數(shù)陣中序號(hào)
nb(i) = ma * Sqr(nx(n2) + nx(n3))
End If
Next i
如圖,示例數(shù)據(jù)的計(jì)算
3結(jié)束語
本文詳細(xì)討論了工程測(cè)量平差程序的算法,使用最小二乘原理解決工程測(cè)量中的參數(shù)平差問題。設(shè)計(jì)了有向圖和完全有向圖的深度遍歷優(yōu)先的廣度遍歷算法,并實(shí)現(xiàn)了三角網(wǎng)導(dǎo)線網(wǎng)和高程水準(zhǔn)網(wǎng)的平差解算問題。經(jīng)數(shù)據(jù)檢驗(yàn)其可靠性較高并且解決了多種網(wǎng)型的混合計(jì)算問題。
參考文獻(xiàn):
[1] 李玉寶編.測(cè)量平差基礎(chǔ).四川:西南科技大學(xué)
[2] 孔詳元 梅是義編.控制測(cè)量學(xué).武漢:武漢大學(xué)出版社
注:文章內(nèi)所有公式及圖表請(qǐng)用PDF形式查看。