劉書元
(哈爾濱市龍濱公路勘察設(shè)計有限責(zé)任公司,黑龍江 哈爾濱 150010)
如圖1所示路線由于障礙所限,中線t1與t2實交點及轉(zhuǎn)角無法測定,因此在t1開始轉(zhuǎn)彎處A點和t2轉(zhuǎn)彎結(jié)束處B點中間布設(shè)N個輔助交點,輔助交點相鄰兩點互相通視。兩中線通過輔助交點1、2、…i、…n連線相互連接,形成多點虛交。實測得各虛交邊轉(zhuǎn)角(偏角)分別為I1、I2、…、Ii…、In,實測相鄰兩虛交點間距分別為L1、L2、…、Li…、Ln-1。
圖1 多點虛交曲線示意圖
為了建立虛交點與實交點間的幾何關(guān)系,將路線中線t1、t2向前方延長,其延長線OA、OB在點O處相交得JD(O)。由A點向B點作輔助線,則OA、AB、OB構(gòu)成以JD(O)為頂點的三角形△OAB。再由虛交點A點向其余虛交點分別作輔助線S1、S2、…Sn,構(gòu)成若干三角形并共用鄰邊。同時△AiB與△OAB又共有底邊,因此可以根據(jù)三角函數(shù)關(guān)系求得實交點位置和轉(zhuǎn)角。具體步驟為:
(1)由已知虛交邊L1、L2及I1,求未知邊S1及未知底角α1、β1
(2)再由S1、L2和角I2±β1推算S2、α2、β2;
(3)如此順序推算直至求得Sn、αn、βn;
(4)在△OAB中,由底邊Sn、底角∠A、∠B求得實交點至起訖虛交點距離La、Lb;
(5)計算實交點樁號Kjd及總轉(zhuǎn)角I0。
最后根據(jù)路線等級要求和地形、地物條件等控制因素擬定曲線半徑R和緩和曲線長度Ls后就可以進行虛交曲線的主點元素計算和曲線測設(shè)。從上述解析過程可以看出,虛交點數(shù)量增加,計算工作量將大幅增長,計算過程也更加繁瑣。因此編制計算機軟件,使這一計算過程程序化,就會減掉繁瑣的計算工作量,提高野外勘測設(shè)計的工作效率。
設(shè)ξ為虛交點轉(zhuǎn)角方向系數(shù),當(dāng)Ii-1轉(zhuǎn)向與總轉(zhuǎn)角I0一致時ξ=1,否則ξ=-1。根據(jù)正弦定理及余弦定理,在△i-1Ai中
(1)
(2)
(3)
(4)
(5)
(6)
在△OAB中
(7)
∠B=In+ξβn
(8)
Io=∠A+∠B
(9)
(10)
(11)
(12)
(13)
交點樁號Kjd=KJa+La
(14)
本程序以式(2)、(4)、(6)、(7)、(8)、(9)、(11)、(13)、(14)為數(shù)學(xué)計算模型進行編制。
程序采用在Windows環(huán)境下運行的Visual Basic編程語言編寫,Visual Basic是新型的計算機程序設(shè)計語言,具有可視化的直觀的操作界面,使用方便等特點。
程序設(shè)計流程見圖2。
圖2 程序設(shè)計流程圖
(1)主要變量
程序中定義的的主要變量有:
字符串變量(String);交點點號JDx、datI、datL等。
整數(shù)型變量(Integer):虛交點個數(shù)N、系數(shù)ξ。
單精度實數(shù)變量(Single):虛交元素Li、Ii、Io等。
雙精度實數(shù)變量(Double)La、Lb、Si、αi、βi等。
(2)自定義常量
定義圓周率π常量:Public Const π=3.141 592 6。
(3)自定義函數(shù)
①角度轉(zhuǎn)化弧度函數(shù):
Public Function RAD(D)
RAD=R* π /180
End Function
②弧度轉(zhuǎn)化角度函數(shù):
Public Function DEG(R)
DEG=R*180/π
End Function
(4)主要程序代碼
Private Sub Command1_Click()
n=Text1.Text
datI=Text2.Text
datL=Text3.Text
n=Val(n)
Kjda=Val(Text4.Text)
For i=1 To n-2
If I<2 Then
m=InStr(datI,",")
dat1=Left(datI,m-1)
Ii=Val(dat1)
Ii=ANG(Ii)
datI=Mid(datI,m+1)
m=InStr(datL,",")
If m=0 Then
Li=Val(datL)
Text5.Text=Text5.Text & "L" & I & "=" & Li & " m" & vbCrLf
Si=Li
Si_1=Si
Ii_1=Ii
∠A=Ii_1
I=I+1
Ii=Val(datI)
Ii=ANG(Ii)
Text5.Text=Text5.Text & "I" & I & "=" & DMS(Ii)& vbCrLf
∠B=Ii
Io=Ii+Ii_1
GoTo 1000
End If
dat2=Left(datL,m-1)
Li=Val(dat2)
datL=Mid(datL,m+1)
Ii_1=Ii
Li_1=Li
Si_1=Li_1
βi_1=0
Io=Ii_1
∠A=Ii_1
End If
m=InStr(datI,",")
dat1=Left(datI,m-1)
Ii=Val(dat1)
If Ii<0 Then
ξ=-1
Ii=Abs(Ii)
Else
ξ=1
End If
Ii=ANG(Ii)
Io=Io+ξ*Ii
datI=Mid(datI,m+1)
m=InStr(datL,",")
If m=0 Then
Li=Val(datL)
Else
dat2=Left(datL,m-1)
Li=Val(dat2)
datL=Mid(datL,m+1)
End If
Si=Sqr(Si_1 ^ 2+Li ^ 2+2*Si_1*Li*Cos(RAD(Ii+ξ*βi_1)))
αi=ASN(Li/Si*Sin(RAD(Ii+ξ*βi_1)))
αi=DEG(αi)
∠A=∠A+ξ*αi
βi=ASN(Si_1 /Si*Sin(RAD(Ii+ξ*βi_1)))
βi=DEG(βi)
βi_1=βi
Si_1=Si
If I=n-1 Then
Ii=Val(datI)
Ii=ANG(Ii)
Io=Io+Ii
∠B=Ii+ξ*βi
End If
Next i
1000
La=Si_1*Sin(RAD(∠B))/Sin(RAD(Io))
Lb=Si_1*Sin(RAD(∠A))/Sin(RAD(Io))
Kjd=Kjda+La
End Sub
利用文本框控件TextBox輸入基本參數(shù)虛交點數(shù)N、相鄰虛交點間距離Li和轉(zhuǎn)向角Ii,實交點點號。數(shù)據(jù)之間以逗號分隔。Ii以小數(shù)形式輸入,如15°30′45″輸為15.304 5,與總轉(zhuǎn)角方向一致為正,否則為負(fù)。
點擊確認(rèn)計算按鈕程序進入Command1_Click()
主過程,提取上述文本框內(nèi)數(shù)據(jù),通過Val(String)進行轉(zhuǎn)換給Li、Ii等變量賦值,通過For Next循環(huán)語句執(zhí)行函數(shù)運算,計算中間變量Si、αi值,循環(huán)結(jié)束后,計算實交點至虛交點距離La、Lb及實交點樁號Kjd,最后計算成果在文本框Text5內(nèi)顯示。點擊退出按鈕后程序彈出文件管理器,選擇存儲路徑和文件名存儲數(shù)據(jù)并退出程序。
某四點虛交曲線,虛交點A樁號為K1+122.38,I1=46°56′43″,I2=29°12′12″,I3=48°02′46″,I4=2°38′59″L1=131.464 m,L2=161.924 m,L3=191.500 m,擬定R=200 m,計算曲線要素及主點樁號。
程序操作:在上部組合框中輸入已知數(shù)據(jù),點擊“確認(rèn)計算”,在窗體右方顯示虛交計算結(jié)果。在下部組合框內(nèi)按要求輸入R、Ls,點擊確定。
道路曲線測設(shè)時會經(jīng)常遇到多點虛交測設(shè)狀況,現(xiàn)場手工計算費時費力,很容易出現(xiàn)錯誤。而本程序可以一次性輸入數(shù)據(jù),直接計算出各虛交點要素和曲線元素及主點樁號。程序用戶界面可視,操作簡便,實用性強,大大提高了野外勘測設(shè)計的工作效率。