Casiofx-5800P計算器三個公路基本測量程序編寫與應用
引論:casiofx-5800P計算器測量程序在計算機網(wǎng)絡(luò)上多有流傳,但有的測量主程序算法復雜,編程繁瑣;有的程序內(nèi)容表達錯誤,有的不能進行綜合線形的測設(shè)、能應用于工程實際的廖廖無幾。本文通過對公路測量三個基本程序(公路路線任意樁號坐標正反算、公路任意樁號高程計算、高邊坡邊坡放樣)的介紹,提出了casiofx-5800P標準程序,聊供同行參考。
一、三個主程序的簡介:
1、公路路線任意樁號坐標正反算
正算是根據(jù)測量者輸入的樁號和距中樁距離計算出所求點的坐標和測站點到該點的方位角、水平距離。反算是根據(jù)使用者輸入的實測坐標計算出該點的樁號和距中樁距離。可用于計算公路綜合線形,在計算器內(nèi)存許可的條件下,不受“斷鏈”的影響,也沒有計算里程的限制。
2、公路任意樁號高程計算
在輸入所求點距離路面的厚度、所求點樁號、路面橫坡值、路面某點至中樁距離后顯示該點高程。
3、高邊坡邊坡放樣
根據(jù)現(xiàn)場測量得的坐標和高程數(shù)據(jù),利用程序求出立鏡點與邊坡點的距離,逐步漸近求得邊坡坡腳線位置。
二、程序編寫
各測量程序分為二個部分:數(shù)據(jù)庫程序和主程序。數(shù)據(jù)庫為線路對應的設(shè)計參數(shù),隨工程而定。主程序為算法,一般固定不變。
1、公路路線坐標算法
宜采用緩和曲線在坐標系下任意位置的通用積分公式,它完全適應緩和曲線左偏、右偏、Rs >Re 、Rs <Re等各種情況,不必先湊成完整緩和曲線,降低了算法的復雜程度。在直線與圓曲線情況下,通過對Rs,Re進行設(shè)定,即可適用。
單線元通用積分公式如下
M = (1.0/Re-1.0/Rs)/Ls;
x=∫(cos(Ta + L/Rs + 0.5*M *L*L),0,L};
y=∫(sin(Ta +L/Rs + 0.5*M *L*L),0,L};
a(i)= Ta +L/Rs + 0.5*M *L*L
Rs:緩和曲線起點半徑
Re:緩和曲線止點半徑
Rs,Re (NE坐標系下,右偏為正,左偏為負)
Ta:緩和曲線起點的真北方位角
Ls:不完整緩和曲線長度。
QXJS-000(程序名可自定) 主程序
Lbl 4:“1.SZ=>NE”:“2.NE=>SZ”:?Q:?S:Prog“QXJS-SUB0”↙ 提示輸入“1”,“2”,調(diào)用數(shù)據(jù)庫子程序;
Lbl 0:Q=1 => Goto1:Q=2 => Goto2:↙ 選擇進入正算或反算程序;
Lbl 2: “N=”:?B: “E=”:?C:B→N: C→E:Prog“QXJS-SUB2”: “S=”:S◢“Z=”:Z◢Goto4↙ 輸出反算中樁號及距中樁距離;
Lbl 3:I=Pol(N-Z[1],E-Z[2]):J<0=>J=J+360:“DIST=”:I◢
“FW=”:J DMS◢ Goto4↙ 輸出與測站點的距離和方位角;返回主程序提示輸入界面;
(Z[1]為測站點X坐標,Z[2]為測站點Y坐標)
2、數(shù)據(jù)庫子程序
QXJS-SUB0 數(shù)據(jù)庫子程序
Goto1↙ 同時保存多個曲線時的指針
Lbl 1
IF S<***(線元終點里程):Then***→A(線元起點方位角):***→O(線元起點里程):***→U(線元起點X):***→V(線元起點Y):*** →P(線元起點曲率半徑):***→R(線元終點曲率半徑): ***→L(線元起點至終點長度): Return:IfEnd↙
IF S<***:Then***→A:***→O:***→U:***→V:***→P:***→R: ***→L: Return:IfEnd↙
………………………..為了便于解讀,每增加一個線元增加一行語句,每增加一條曲線增加一個Lbl,每增加一個工程增加一個文件。
注意:Goto n—Lbl n為轉(zhuǎn)移命令,其中n為從0到9之間的整數(shù),或從A到Z之間的變量名稱,如果線路曲線較多,轉(zhuǎn)移命令超過十個,可在第十個(Lbl 9)中加入第二層子程序,以解決轉(zhuǎn)移命令超過十個的情況。
QXJS-SUB1 正算子程序
0.5(1÷R-1÷P)÷L→D:S-O→X↙
U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N↙
V+∫(sin(A+(X÷P+DX2)×180÷π,0,X)→E↙
A+(X÷P+DX2)×180÷π→F↙
N+Zcos(F+90) →N:E+Zsin(F+90) →E
QXJS-SUB2 反算子程序
Lbl 1:0→Z:1→Q:Prog“QXJS-SUB0”: Prog“QXJS-SUB1”↙
Pol(N-B+10^(-46), E-C+10^(-46)):Isin(F-90-J) →W:S+W→S↙
Abs(W)>0.0001 => Goto1↙
Lbl 2: 0→Z:Prog“QXJS-SUB1”:(C-E) ÷sin(F+90) →Z
3、使用說明
1)規(guī)定
(1) 以道路中線的前進方向(即里程增大的方向)區(qū)分左右;當曲線半徑在左時,P、R取負值,當曲線半徑在右時,P、R取正值,當曲線半徑為無窮大(即直線)時,P、R以10的45次代替。
(2) 當所求點位于中線時,Z=0;當位于中線左鍘時,Z取負值;當位于中線中線右側(cè)時,Z取正值。
(3) 當線元為圓曲線時,無論其起點、止點與什么線元相接,其曲率半徑均等于圓弧的半徑。
(4) 當線元為完整緩和曲線時,起點與直線相接時,曲率半徑為無窮大,以10的45次方代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半徑為無窮大,以10的45次代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。
(5) 當線元為非完整緩和曲線時,起點與直線相接時,曲率半徑等于設(shè)計規(guī)定的值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半徑等于設(shè)計規(guī)定的值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。
2)輸入與顯示說明
輸入部分:
1. SZ => XY
2. XY = > SZ
Q ? 選擇計算方式,輸入1表示進行由里程、邊距計算坐標 ;輸入2表示由坐標反算里程和邊距。
4、公路縱斷面高程算法
Filename:******(自定主程序名)
N-M→P:Abs(P)÷P→S:Abs(P)×R÷2→T:If L<D-T:Then C+(L-D)M→H:Ifend↙ 判斷輸入點是否位于曲線的小里程樁號直線段;
If L>D-T:Then C-MT+(M+(L-D+T)S÷2÷R)×(L-D+T)→H:Ifend↙ 判斷輸入點是否進入曲線段;
If L≥D+T:Then C+(L-D)N→H:Ifend↙ 判斷輸入點是否位于曲線的前進里程樁號直線段;
H-E-KI→H:“H=”:H◢
5、公路縱斷面數(shù)據(jù)程序
每個縱斷面由縱坡和豎曲線組成,程序中每一個變坡點計算范圍是從豎曲線前的縱坡任意樁號開始到豎曲線后縱坡上的任一樁號結(jié)束。
Filename:******(自定子程序名)
Lbl 0: “Dh”? :E”L=”?L:”I=”?I:”K=”?K↙
If L>****(曲線段小里程樁號之前的直線段任一樁號):Then****(變坡點高程)→C: ****(變坡點樁號)→D: ****(變坡點小里程段縱坡坡度)→M:I****(變坡點小里程段縱坡坡度)→N: ****(豎曲線半徑)→R: ****(變坡點樁號)→C: Ifend:Prog“****(主程序名)”: Goto0↙ 依次輸入各變坡點設(shè)計參數(shù);
6、使用說明
“Dh”提示使用者輸入所求點距離路面的厚度, “L=”,輸入所求點樁號,”I”=表示輸入路面橫坡值,“K=”表示輸入路面某點至中樁距離,均為正值。以上數(shù)據(jù)均在程序運行時輸入。
L>表示豎曲線前縱坡任意里程的樁號,本程序每段豎曲線參數(shù)計算范圍是從豎曲線前的縱坡上任意點到豎曲線后縱坡上任意點的樁號。
7、高邊坡放樣算法
利用程序進行邊坡放樣,工作步驟如下:
1、 司鏡員走到目的地后,先測出一個點的坐標和高程;
2、 利用坐標正反算程序求出該點在線路中的樁號和距中距離,然后利用高程計算程序,計算出該點所在樁號道路邊樁設(shè)計高程,最后根據(jù)本程序計算出立鏡點至距中距離差值△K,指揮司鏡員靠近道路中線或者往外偏移多少米。
3、 重復上述步驟,至△K 小于邊坡寬度控制精度要求為止。
根據(jù)Hc、Hs的高差計算出K2,按照P點的高程,邊坡頂距中樁的理論寬度K理論,具體計算如下:
K理論=K1+h*n1+m+h*n2+m+(Hc-Hs-2h)*n3 (K1為設(shè)計值)
則△K=K- K理論
△K 求出來后,可以指揮司鏡員靠近道路△K米,然后重復以上步驟,直到△K值能滿足邊坡控制精度。填方邊坡的算法原理是同樣的。
8、高邊坡放樣程序
Filename:******(程序名可自定) 主程序
Lbl 0:“Hs=” ?A: “Lc=” ?B: “Hc=” ?C↙ 提示輸入測點所在橫斷面邊樁的設(shè)計高程Hs、距中樁的距離Lc(可由前二個基本程序得出)、測點高程Hc;
A-C→D: If D<0:Then Prog“****-SUB0”:Goto 1:Ifend↙;轉(zhuǎn)入挖方邊坡計算子程序,****-SUB0為挖方邊坡計算子程序名;
If D≥8(挖方邊坡第一階高度,本例取為8):Then*+(D-8)×1.75(*為常數(shù), 1.75為第二階坡比,均根據(jù)設(shè)計參數(shù)定)→E:Ifend↙ 依次按設(shè)計輸入各階放坡參數(shù);
------------------------------
E-B→F: If F>0:Then” <F=”:F◢Ifend↙ <F表示向遠離中樁方向移動;
If F≤0:Then” >F=”:Abs(F)◢Ifend: Goto 0↙ >F表示向中樁方向移動;
Lbl 1↙ 用于控制挖方邊坡計算結(jié)果的顯示
E-B→F: If F>0:Then” >F=”:F◢Ifend↙ >F表示向中樁方向移動;
If F≤0:Then” <F=”:Abs(F)◢Ifend: Goto 0↙ <F表示向遠離中樁方向移動;
挖方邊坡計算子程序
Filename:******-SUB0 子程序名可自定
If D<-0.01:Then*+Abs(D)×0.5(*為常數(shù), 1.75為第二階坡比,均根據(jù)設(shè)計參數(shù)定)→E:Ifend↙
-------------------------------
If D<-24:Then*+Abs(D+24) (*為常數(shù), 1為第四階坡比,均根據(jù)設(shè)計參數(shù)定)→E:Ifend:Return↙ 依次按設(shè)計輸入挖方各階放坡參數(shù),本例至第四階。