Casiofx-5800P計(jì)算器三個(gè)公路基本測(cè)量程序編寫與應(yīng)用

 

引論:casiofx-5800P計(jì)算器測(cè)量程序在計(jì)算機(jī)網(wǎng)絡(luò)上多有流傳,但有的測(cè)量主程序算法復(fù)雜,編程繁瑣;有的程序內(nèi)容表達(dá)錯(cuò)誤,有的不能進(jìn)行綜合線形的測(cè)設(shè)、能應(yīng)用于工程實(shí)際的廖廖無(wú)幾。本文通過(guò)對(duì)公路測(cè)量三個(gè)基本程序(公路路線任意樁號(hào)坐標(biāo)正反算、公路任意樁號(hào)高程計(jì)算、高邊坡邊坡放樣)的介紹,提出了casiofx-5800P標(biāo)準(zhǔn)程序,聊供同行參考。

一、三個(gè)主程序的簡(jiǎn)介:

1、公路路線任意樁號(hào)坐標(biāo)正反算

正算是根據(jù)測(cè)量者輸入的樁號(hào)和距中樁距離計(jì)算出所求點(diǎn)的坐標(biāo)和測(cè)站點(diǎn)到該點(diǎn)的方位角、水平距離。反算是根據(jù)使用者輸入的實(shí)測(cè)坐標(biāo)計(jì)算出該點(diǎn)的樁號(hào)和距中樁距離?捎糜谟(jì)算公路綜合線形,在計(jì)算器內(nèi)存許可的條件下,不受“斷鏈”的影響,也沒有計(jì)算里程的限制。

2、公路任意樁號(hào)高程計(jì)算

在輸入所求點(diǎn)距離路面的厚度、所求點(diǎn)樁號(hào)、路面橫坡值、路面某點(diǎn)至中樁距離后顯示該點(diǎn)高程。

3、高邊坡邊坡放樣

根據(jù)現(xiàn)場(chǎng)測(cè)量得的坐標(biāo)和高程數(shù)據(jù),利用程序求出立鏡點(diǎn)與邊坡點(diǎn)的距離,逐步漸近求得邊坡坡腳線位置。

二、程序編寫

各測(cè)量程序分為二個(gè)部分:數(shù)據(jù)庫(kù)程序和主程序。數(shù)據(jù)庫(kù)為線路對(duì)應(yīng)的設(shè)計(jì)參數(shù),隨工程而定。主程序?yàn)樗惴ǎ话愎潭ú蛔儭?/p>

1、公路路線坐標(biāo)算法

宜采用緩和曲線在坐標(biāo)系下任意位置的通用積分公式,它完全適應(yīng)緩和曲線左偏、右偏、Rs >Re 、Rs <Re等各種情況,不必先湊成完整緩和曲線,降低了算法的復(fù)雜程度。在直線與圓曲線情況下,通過(guò)對(duì)Rs,Re進(jìn)行設(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:緩和曲線起點(diǎn)半徑

Re:緩和曲線止點(diǎn)半徑

Rs,Re (NE坐標(biāo)系下,右偏為正,左偏為負(fù))

Ta:緩和曲線起點(diǎn)的真北方位角

Ls:不完整緩和曲線長(zhǎng)度。

QXJS-000(程序名可自定) 主程序

Lbl 4:“1.SZ=>NE”:“2.NE=>SZ”:?Q:?S:Prog“QXJS-SUB0”↙ 提示輸入“1”,“2”,調(diào)用數(shù)據(jù)庫(kù)子程序;

Lbl 0:Q=1 => Goto1:Q=2 => Goto2: 選擇進(jìn)入正算或反算程序;

Lbl 1:?Z:Prog“QXJS-SUB1”:“N=”:N◢“E=”:E◢“F=”:F DMS◢: Goto3↙ 輸出正算坐標(biāo);

Lbl 2: “N=”:?B: “E=”:?C:B→N: C→E:Prog“QXJS-SUB2”: “S=”:S◢“Z=”:Z◢Goto4↙ 輸出反算中樁號(hào)及距中樁距離;

Lbl 3:I=Pol(N-Z[1],E-Z[2]):J<0=>J=J+360:“DIST=”:I◢

“FW=”:J DMS◢ Goto4↙ 輸出與測(cè)站點(diǎn)的距離和方位角;返回主程序提示輸入界面;

(Z[1]為測(cè)站點(diǎn)X坐標(biāo),Z[2]為測(cè)站點(diǎn)Y坐標(biāo))

2、數(shù)據(jù)庫(kù)子程序

QXJS-SUB0 數(shù)據(jù)庫(kù)子程序

Goto1同時(shí)保存多個(gè)曲線時(shí)的指針

Lbl 1

IF S<***(線元終點(diǎn)里程):Then***→A(線元起點(diǎn)方位角):***→O(線元起點(diǎn)里程):***→U(線元起點(diǎn)X):***→V(線元起點(diǎn)Y):*** →P(線元起點(diǎn)曲率半徑):***→R(線元終點(diǎn)曲率半徑): ***→L(線元起點(diǎn)至終點(diǎn)長(zhǎng)度): Return:IfEnd

IF S<***:Then***→A:***→O:***→U:***→V:***→P:***→R: ***→L: Return:IfEnd↙

………………………..為了便于解讀,每增加一個(gè)線元增加一行語(yǔ)句,每增加一條曲線增加一個(gè)Lbl,每增加一個(gè)工程增加一個(gè)文件。

注意:Goto n—Lbl n為轉(zhuǎn)移命令,其中n為從0到9之間的整數(shù),或從A到Z之間的變量名稱,如果線路曲線較多,轉(zhuǎn)移命令超過(guò)十個(gè),可在第十個(gè)(Lbl 9)中加入第二層子程序,以解決轉(zhuǎn)移命令超過(guò)十個(gè)的情況。

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、使用說(shuō)明

1)規(guī)定

(1) 以道路中線的前進(jìn)方向(即里程增大的方向)區(qū)分左右;當(dāng)曲線半徑在左時(shí),P、R取負(fù)值,當(dāng)曲線半徑在右時(shí),P、R取正值,當(dāng)曲線半徑為無(wú)窮大(即直線)時(shí),P、R以10的45次代替。

(2) 當(dāng)所求點(diǎn)位于中線時(shí),Z=0;當(dāng)位于中線左鍘時(shí),Z取負(fù)值;當(dāng)位于中線中線右側(cè)時(shí),Z取正值。

(3) 當(dāng)線元為圓曲線時(shí),無(wú)論其起點(diǎn)、止點(diǎn)與什么線元相接,其曲率半徑均等于圓弧的半徑。

(4) 當(dāng)線元為完整緩和曲線時(shí),起點(diǎn)與直線相接時(shí),曲率半徑為無(wú)窮大,以10的45次方代替;與圓曲線相接時(shí),曲率半徑等于圓曲線的半徑。止點(diǎn)與直線相接時(shí),曲率半徑為無(wú)窮大,以10的45次代替;與圓曲線相接時(shí),曲率半徑等于圓曲線的半徑。

(5) 當(dāng)線元為非完整緩和曲線時(shí),起點(diǎn)與直線相接時(shí),曲率半徑等于設(shè)計(jì)規(guī)定的值;與圓曲線相接時(shí),曲率半徑等于圓曲線的半徑。止點(diǎn)與直線相接時(shí),曲率半徑等于設(shè)計(jì)規(guī)定的值;與圓曲線相接時(shí),曲率半徑等于圓曲線的半徑。

2)輸入與顯示說(shuō)明

輸入部分:

1. SZ => XY

2. XY = > SZ

Q ? 選擇計(jì)算方式,輸入1表示進(jìn)行由里程、邊距計(jì)算坐標(biāo) ;輸入2表示由坐標(biāo)反算里程和邊距。

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 判斷輸入點(diǎn)是否位于曲線的小里程樁號(hào)直線段;

If L>D-T:Then C-MT+(M+(L-D+T)S÷2÷R)×(L-D+T)→H:Ifend 判斷輸入點(diǎn)是否進(jìn)入曲線段;

If L≥D+T:Then C+(L-D)N→H:Ifend 判斷輸入點(diǎn)是否位于曲線的前進(jìn)里程樁號(hào)直線段;

H-E-KI→H:“H=”:H

5、公路縱斷面數(shù)據(jù)程序

每個(gè)縱斷面由縱坡和豎曲線組成,程序中每一個(gè)變坡點(diǎn)計(jì)算范圍是從豎曲線前的縱坡任意樁號(hào)開始到豎曲線后縱坡上的任一樁號(hào)結(jié)束。

Filename:******(自定子程序名)

Lbl 0: “Dh”? :E”L=”?L:”I=”?I:”K=”?K

If L>****(曲線段小里程樁號(hào)之前的直線段任一樁號(hào)):Then****(變坡點(diǎn)高程)→C: ****(變坡點(diǎn)樁號(hào))→D: ****(變坡點(diǎn)小里程段縱坡坡度)→M:I****(變坡點(diǎn)小里程段縱坡坡度)→N: ****(豎曲線半徑)→R: ****(變坡點(diǎn)樁號(hào))→C: Ifend:Prog“****(主程序名)”: Goto0 依次輸入各變坡點(diǎn)設(shè)計(jì)參數(shù);

6、使用說(shuō)明

“Dh”提示使用者輸入所求點(diǎn)距離路面的厚度, “L=”,輸入所求點(diǎn)樁號(hào),”I”=表示輸入路面橫坡值,“K=”表示輸入路面某點(diǎn)至中樁距離,均為正值。以上數(shù)據(jù)均在程序運(yùn)行時(shí)輸入。

L>表示豎曲線前縱坡任意里程的樁號(hào),本程序每段豎曲線參數(shù)計(jì)算范圍是從豎曲線前的縱坡上任意點(diǎn)到豎曲線后縱坡上任意點(diǎn)的樁號(hào)。

7、高邊坡放樣算法

利用程序進(jìn)行邊坡放樣,工作步驟如下:

1、 司鏡員走到目的地后,先測(cè)出一個(gè)點(diǎn)的坐標(biāo)和高程;

2、 利用坐標(biāo)正反算程序求出該點(diǎn)在線路中的樁號(hào)和距中距離,然后利用高程計(jì)算程序,計(jì)算出該點(diǎn)所在樁號(hào)道路邊樁設(shè)計(jì)高程,最后根據(jù)本程序計(jì)算出立鏡點(diǎn)至距中距離差值△K,指揮司鏡員靠近道路中線或者往外偏移多少米。

3、 重復(fù)上述步驟,至△K 小于邊坡寬度控制精度要求為止。

 

 

 

 

 

 


 

根據(jù)Hc、Hs的高差計(jì)算出K2,按照P點(diǎn)的高程,邊坡頂距中樁的理論寬度K理論,具體計(jì)算如下:

K理論=K1+h*n1+m+h*n2+m+(Hc-Hs-2h)*n3 (K1為設(shè)計(jì)值)

則△K=K- K理論

△K 求出來(lái)后,可以指揮司鏡員靠近道路△K米,然后重復(fù)以上步驟,直到△K值能滿足邊坡控制精度。填方邊坡的算法原理是同樣的。

8、高邊坡放樣程序

Filename:******(程序名可自定) 主程序

Lbl 0:“Hs=” ?A: “Lc=” ?B: “Hc=” ?C↙ 提示輸入測(cè)點(diǎn)所在橫斷面邊樁的設(shè)計(jì)高程Hs、距中樁的距離Lc(可由前二個(gè)基本程序得出)、測(cè)點(diǎn)高程Hc

A-C→D: If D0:Then Prog“****-SUB0”:Goto 1:Ifend;轉(zhuǎn)入挖方邊坡計(jì)算子程序,****-SUB0為挖方邊坡計(jì)算子程序名;

If D≥8(挖方邊坡第一階高度,本例取為8):Then*+(D-8)×1.75(*為常數(shù), 1.75為第二階坡比,均根據(jù)設(shè)計(jì)參數(shù)定)→E:Ifend 依次按設(shè)計(jì)輸入各階放坡參數(shù);

------------------------------

E-B→F: If F>0:Then” <F=”:F◢Ifend<F表示向遠(yuǎn)離中樁方向移動(dòng);

If F≤0:Then” F=”:Abs(F)Ifend: Goto 0 >F表示向中樁方向移動(dòng);

Lbl 1 用于控制挖方邊坡計(jì)算結(jié)果的顯示

E-B→F: If F>0:Then” F=”:FIfend>F表示向中樁方向移動(dòng);

If F≤0:Then” <F=”:Abs(F)◢Ifend: Goto 0 <F表示向遠(yuǎn)離中樁方向移動(dòng);

挖方邊坡計(jì)算子程序

Filename:******-SUB0 子程序名可自定

If D<-0.01:Then*+Abs(D)×0.5(*為常數(shù), 1.75為第二階坡比,均根據(jù)設(shè)計(jì)參數(shù)定)→E:Ifend

-------------------------------

If D<-24:Then*+Abs(D+24) (*為常數(shù), 1為第四階坡比,均根據(jù)設(shè)計(jì)參數(shù)定)→E:Ifend:Return 依次按設(shè)計(jì)輸入挖方各階放坡參數(shù),本例至第四階。