資源描述:
《Excel豎曲線計算》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、利用Excel表格進行全線線路豎曲線的統(tǒng)一計算高速公路縱斷面線型比較復雜,豎曲線數量比較多。由于相當多的豎曲線分段造成了設計高程計算的相對困難,為了方便直接根據里程樁號計算設計高程,遂編制此計算程序。程序原理:1、根據設計圖建立豎曲線參數庫;2、根據輸入里程智能判斷該里程位于何段豎曲線上;3、根據得到的豎曲線分段標志調取該分段的曲線參數到計算表格中;4、把各曲線參數帶入公式進行豎曲線高程的計算;5、對程序進行優(yōu)化和簡化,去掉中間環(huán)節(jié),進行直接計算;6、防止計算過程中的誤操作,對計算表進行相應的保護。豎曲線的高程計算原理
2、公式:H=G+B*A+(-1)^J*X2÷(2R)H:計算里程的設計高程K:計算點里程D:豎曲線交點里程G:豎曲線交點的高程R:豎曲線半徑T:切線長M:前坡度I1P:后坡度I2A:A=Abs(K-D)X:A>T=>X=0;AX=T-AJ:M-P<0=>J=0;M-P>=0=>J=1B:K<=D=>B=-M;K>D=>B=P程序特色:1、可以無限添加豎曲線,豎曲線數據庫不限制豎曲線條數;2、直接輸入里程就可以計算設計高程,不需考慮該里程所處的豎曲線分段;3、對計算公式進行保護,表格中不顯示公式,不會導致公式被錯誤
3、修改或惡意編輯。程序的具體編制步驟:1、新建Excel工作薄,對第一第二工作表重新命名為“參數庫”和“計算程序”,根據設計圖建立本標段線路豎曲線的參數庫,需要以下條目:(1)、豎曲線編號;(2)、豎曲線的前后坡度(I1、I2)不需要把坡度轉換為小數;(3)、豎曲線半徑、切線長(不需要考慮是凸型或凹型);(4)、豎曲線交點里程、交點高程;(5)、豎曲線起點里程、終點里程(終點里程不是必要參數,只作為復核檢測用);如圖1所示:圖12、進行計算準備:(1)、根據輸入里程判斷該里程所處的曲線編號:需要使用lookup函數,函數
4、公式為“LOOKUP(A2,參數庫!H3:H25,參數庫!A3:A25)”。如圖2所示:里程為K15+631的樁號位于第11個編號的豎曲線處,可以參照圖1進行對照(2)、在工作表“程序計算”中對應“參數庫”相應的格式建立表格根據判斷得出的豎曲線編號,把相應編號的各參數調入工作表“程序計算”,需要使用vlookup函數,例如:第四列調取坡度I1函數公式為“VLOOKUP(C2,參數庫!A1:I25,2)”調取交點高程的函數公式為“VLOOKUP(C2,參數庫!A1:I25,7)”結果出來可以參照圖1進行對照。如圖3所示:
5、(3)、現在計算該里程設計高程所需要的參數已經具備,可以編制公式進行計算了,根據豎曲線高程計算的原理公式,把單元格數據套入公式:公式為:H=G+B*A+(-1)^J*X2÷(2R)其中B的函數公式為:IF(K<=D,-M,P)轉化為表格編號就是IF(A2<=H2,-1*D2/100,E2/100)A的函數公式為ABS(A2-H2)X的函數公式位IF(ABS(A2-H2)>G2,0,(G2-ABS(A2-H2)))圖2圖3J的函數公式為IF(D2/100-E2/100<0,0,1)H=G+B*A+(-1)^J*X2÷(2
6、R)=I2+IF(A2<=H2,-1*D2/100,E2/100)*ABS(A2-H2)+POWER((-1),IF(D2/100-E2/100<0,0,1))*POWER(IF(ABS(A2-H2)>G2,0,(G2-ABS(A2-H2))),2)/2/F2現在把H的計算函數輸入B2單元格,看看結果是不是出來了,這時候可以把這個結果和計算器計算出來的結果進行對照。如圖4所示:圖4萬事俱備,現在開始計算,下拉B2單元格,竟然出錯,如圖5圖5解決辦法就是同時選擇B2直到后面的K2,然后再下拉,下拉前一定要把引用的“參數庫
7、”中的單元格進行鎖定,如圖6、7。這樣就顯得復雜了點,現在開始簡化計算程序,C2到K2單元格都是其中間作用的,可以直接套用到高程的計算公式中,分別把C2到K2單元格所對應的公式替換到單元格B2,得到最終公式:=VLOOKUP(C2,參數庫!$A$1:$I$25,7)+IF(A2<=VLOOKUP(C2,參數庫!$A$1:$I$25,6),-1*VLOOKUP(C2,參數庫!$A$1:$I$25,2)/100,VLOOKUP(C2,參數庫!$A$1:$I$25,3)/100)*ABS(A2-VLOOKUP(C2,參數庫!
8、$A$1:$I$25,6))+POWER((-1),IF(VLOOKUP(C2,參數庫!$A$1:$I$25,2)/100-VLOOKUP(C2,參數庫!$A$1:$I$25,3)/100<0,0,1))*POWER(IF(ABS(A2-VLOOKUP(C2,參數庫!$A$1:$I$25,6))>VLOOKUP(C2,參數庫!$A