郭慶坤,王忠,來彥明,魏輝,朱君
(濟南市勘察測繪研究院,山東 濟南 250101)
當前,計算機技術飛速發展,為測量工作和數據計算帶來了極大的便利,通過計算機編程,把測量工作方法或數據處理方法程序化,使計算機按照測量人員的思路進行工作,大大提高了測量數據計算的效率,降低了人工計算的出錯概率[1]。陀螺定向測量方位角的計算通常采用人工計算,計算過程煩瑣、困難,效率較低,且容易出現計算錯誤,利用Visual Basic程序語言設計編寫的算法,可有效解決上述弊端,快速準確地計算出子午線收斂角、儀器常數、坐標方位角等待求量。
經過地面任意一點均存在坐標北方向、真北方向、陀螺北方向三個基本方向,坐標北方向為坐標系X軸所指的方向,真北方向為過地球表面某點的真子午線的切線方向,陀螺北方向為陀螺儀敏感地球角動量而實際測得的北方向[2]。由真北方向起算的方位角為真方位角,用A表示,由坐標北方向起算的方位角為坐標方位角,用α表示[3],由陀螺北方向起算的方位角為陀螺方位角。坐標北方向與真北方向之間的夾角為子午線收斂角,用γ表示[4],陀螺北方向與真北方向之間的夾角為陀螺儀的儀器常數,用△表示[5]。陀螺定向測量原理關系圖如圖1所示。

圖1 陀螺定向測量原理關系圖
在高斯投影下的坐標系中,任一方向的真北方位角與坐標方位角存在以下關系:
A=α+γ=△+αT
(1)
在地上已知點C架設儀器,根據地上已知測站點坐標方位角α0、子午線收斂角γ0和測得的地上已知邊陀螺方位角αT,利用式(1),求得儀器常數:
△=α0+γ0-αT
(2)

(3)
根據地下定向邊陀螺方位角測量“地面已知邊-地下待定邊-地面已知邊”的測量程序[6],地上已知邊和地下待定邊分別有多次測量成果,相同測線的多次測量成果在原始記錄手簿中即可計算出互差和平均值,為使用戶界面輸入盡量少的數據,故界面中只設計了地上陀螺方位角平均值和地下陀螺方位角平均值的輸入文本框。
本著用戶界面設計簡潔清晰,無須多媒體效果的原則,根據地下待定邊坐標方位角計算所需要的數據,用戶界面主要包含了地上數據輸入、地下數據輸入、數據計算成果三個部分,整個界面使用了VB 6.0的Frame控件、Label控件、Text控件、Command控件和Statusbar控件進行設計,可以直觀明了地顯示輸入數據和計算成果數據,同時可以看到數據計算的實時時間。數據輸入完成,點擊“計算”按鈕即可進行數據計算,點擊“退出”按鈕即可退出程序。用戶界面如圖2所示。

圖2 用戶界面
代碼的設計應簡捷有效,并能保證有效運行,經反復調試的代碼應盡量簡化,增加代碼的可維護性和可讀性。程序流程如圖3所示。

圖3 程序流程圖
根據計算的程序流程,首先判斷輸入數據是否為空或有非數值型數據,滿足要求后,通過定義的Function[7]過程,把輸入的度分秒轉化為小數度,然后計算地上、地下設站點子午線收斂角、地上坐標方位角,最后計算儀器常數和地下待定邊坐標方位角。
(1)判斷輸入數據是否為空或有非數值型數據
為防止輸入數據有遺漏或輸入數據中有非數值型數據,特設計此判斷過程,在判斷輸入數據是否有遺漏時,利用if text1.text=””語句進行判斷,利用msgbox函數進行信息提示;判斷是否有非數值型數據時,利用isnumeric函數進行判斷,利用msgbox函數進行信息提示,具體代碼此處不再展示。
(2)度分秒轉化為小數度
因輸入的陀螺方位角為度分秒模式,如83.35083表示83°35′08.3″,為方便計算,需要將度分秒轉化為小數度,故定義了度分秒轉化小數度的Function過程,主要代碼如下:
Private Function xsd(jd As Single) As Single ′度分秒轉換成小數度
Dim d As Integer,f As Single,m As Single
d=Int(jd)
f=Int((jd-d) * 100) / 60
m=(jd * 100-Int(jd * 100)) * 100 / 3600
xsd=d+f+m
End Function
此過程將輸入的度分秒轉化為便于計算的小數度,如89.35083表示的89°35′8.3″,轉化為89.58564度。
(3)計算地上坐標方位角
根據地上已知點的平面坐標,計算已知邊坐標方位角,定義了計算坐標方位角的Function過程,主要代碼如下:
Private Function zbfwj(x1 As Double,y1 As Double,x2 As Double,y2 As Double) As Double ′根據坐標計算坐標方位角
Dim dx As Single,dy As Double,a As Single
Const PI As Single=3.14159265357
dx=x2-x1:dy=y2-y1
a=Atn(Abs(dy) / Abs(dx)) * 180 / PI
If dy>0 And dx>0 Then
zbfwj=a
ElseIfdy>0 And dx<0 Then
zbfwj=180-a
ElseIfdy<0 And dx>0 Then
zbfwj=360-a
ElseIfdy<0 And dx<0 Then
zbfwj=180+a
End If
End Function
(4)計算子午線收斂角
子午線收斂角的計算有兩種方法,一種是通過經緯度計算,計算公式為:
γ=sinB*△L[8]
式中B為設站點緯度,△L為設站點經度與中央子午線經度之差。
另一種是通過子午線收斂角系數k值表計算,計算公式為:
γ=ky[9]
式中,k為系數,根據設站點縱坐標X由表查出,y是該點的橫坐標,γ的單位為分。
本設計采用的是k值表計算法,定義了子午線收斂角計算的Function過程,此過程代碼較長,此處只體現部分代碼如下:
Private Function zwxslj(ByVal x1 As Double,ByVal y1 As Double) As Double ′根據K值法計算子午線收斂角
Dim K As Double,x2 As Double,x3 As Double,y2 As Double
x2=Int(Left(x1,4) / 100) * 100
x3=(x1-(x2 * 1000)) / 1000
y2=y1 / 1000
Select Case x2
Case 100
K=0.0085+0.0085 * x3 / 100
Case 200
K=0.017+0.0085 * x3 / 100
……
Case 6000
K=0.7437+0.0248 * x3 / 100
End Select
zwxslj=(K * (y2-500)) / 60
End Function
通過以上幾步過程,可以求得地上已知邊的坐標方位角、地上設站點的子午線收斂角、地下設站點的子午線收斂角,從而求得儀器常數,最終求得地下待定邊的坐標方位角,并在用戶界面中顯示。
本文以濟南市軌道交通R2線一期工程和R3線一期工程共7條定向邊的陀螺定向測量數據為例進行程序的分析驗證。濟南市軌道交通R2線全長 36.4 km,其中地下線 34.8 km、高架線 1.6 km,共設置19座車站,其中地下站18座、高架站1座,大致呈東西走向;濟南市軌道交通R3線全長 21.57 km,共設置車站13座,全部為地下站,大致呈南北走向。在R2線選取了4個區間的4條定向邊,在R3線選取了3個區間的3條定向邊,共7條定向邊的陀螺定向測量數據,通過人工Excel計算和程序計算結果的對比,對程序的可行性和準確性進行驗證,人工Excel計算過程中,子午線收斂角的計算采用經緯度的方法,利用公式γ=sinB*△L計算。程序計算與Excel計算成果對比如表1所示。

程序計算與Excel計算成果差值表 表1
通過表1中Excel計算與程序計算成果的對比分析,得用程序計算的地下待定邊的坐標方位角與人工用Excel計算的坐標方位角之差均在±0.5″以內。經過分析,程序計算與Excel計算成果的差值,為用經緯度計算子午線收斂角和用k值表計算子午線收斂角兩種不同計算方法所致,這也驗證了程序中所定義的子午線收斂角計算Function過程的正確性??烧J為程序計算的地下待定邊的坐標方位角與Excel計算的坐標方位角是一致的,所計算的成果是可靠的,可用于對隧道內導線邊方位角進行校核,以提高貫通精度。
本文根據陀螺定向測量方位角計算的方法,使用Visual Basic語言對陀螺定向測量方位角計算程序進行了設計與實現,并通過濟南市軌道交通R2線和R3線共7個區間的7條陀螺定向邊實際測量數據,驗證了程序的計算成果可靠。通過程序的應用,可以有效地提高陀螺定向測量方位角計算的效率,降低人工計算的出錯概率,可為地下隧道測量相關從業者提供借鑒和參考。