由于現在計算機普及,計算機功能日益強大,宜采用較簡單的積分公式,便于計算機處理。
單線元通用積分公式如下
- 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: 不完整緩和曲線長度。
此公式為緩和曲線在坐標系下任意位置的通用積分公式,能完全適應緩和曲線左偏、右偏、 Rs >Re 、 Rs <Re 等各種情況,不必先湊成完整緩和曲線,降低算法的復雜程度。雖然此公式是由緩和曲線推導出來,也可和于直線與圓曲線,可降低計算機編程的復雜程度。
Fx-5800 計算機程序
QXJS-000 主程序
- Lbl 4:“1.SZ=>NE”:“2.NE=>SZ”:?Q:?S:Prog“QXJS-SUB0”↙
- Lbl 0:Q=1 => Goto1:Q=2 => Goto2:↙
- Lbl 1:?Z:Prog“QXJS-SUB1”:“N=”:N◢:“E=”:E◢:“F=”:F◢: Goto4↙
- Lbl 2: “N=”:?B: “E=”:?C:B→N: C→E:Prog“QXJS-SUB2”: “S=”:S◢: “Z=”:Z◢: Goto4↙
- QXJS-SUB0 數據庫子程序
- 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 ,每增加一個工程增加一個文件。
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
使用說明
1 、規定
- 以道路中線的前進方向(即里程增大的方向)區分左右;當曲線半徑在左時, P 、 R 取負值,當曲線半徑在右時, P 、 R 取正值,當曲線半徑為無窮大(即直線)時, P 、 R 以 10 的 45 次代替。
- 當所求點位于中線時, Z=0 ;當位于中線左鍘時, Z 取負值;當位于中線中線右側時, Z 取正值。
- 當線元為圓曲線時,無論其起點、止點與什么線元相接,其曲率半徑均等于圓弧的半徑。
- 當線元為完整緩和曲線時,起點與直線相接時,曲率半徑為無窮大,以 10 的 45 次方代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半徑為無窮大,以 10 的 45 次代替;與圓曲線相接時,曲率半徑等于圓曲線的半徑。
- 當線元為非完整緩和曲線時,起點與直線相接時,曲率半徑等于設計規定的值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。止點與直線相接時,曲率半徑等于設計規定的值;與圓曲線相接時,曲率半徑等于圓曲線的半徑。
2 、輸入與顯示說明
輸入部分:
- SZ => XY
- XY = > SZQ ? 選擇計算方式,輸入 1 表示進行由里程、邊距計算坐標 ;輸入 2 表示由坐標反算里程和邊距。