網頁

2011年11月15日 星期二

Civil 3D 地形物件與土方計算之關係 - 數學原理探討(五)

(延續前文 Civil 3D 地形物件與土方計算之關係 - 數學原理探討(四))
本文有許多的小問題如(Why?)、(How?) 等留給有興趣的朋友自行觀察及思考。

依照前文的分析,對於一般非邊界網格情況之下其方格中按 NNI 程序所內插得高程 Z 的數學函數必須分為二類五區作不同表示:
非影響區類:僅一區,Z 值得採鞍面公式表示為 Z = F (x,y,Z1,Z2,Z3,Z4)
受影響區類:共有四區,分為左側、右側、上側、下側影響區,各影響區內的內插高程 Z 值分為作如下表示。
左側影響區內,則 Z = F (x,y,Z1,Z2,Z3,Z4,Z'4,Z'5)
右側影響區內,則 Z = F (x,y,Z1,Z2,Z3,Z4,Z'1,Z'10)
上側影響區內,則 Z = F (x,y,Z1,Z2,Z3,Z4,Z'2,Z'3)
下側影響區內,則 Z = F (x,y,Z1,Z2,Z3,Z4,Z'7,Z'8)

至此可以預見僅要計算完整方格內的體積即會相當繁複,若方格內有部分挖填的情況時,則等零線的數學表示式推導更是繁雜,失去了方格法土方計算中所需要的簡單合理的精神。固然將其交由電腦軟體去計算如此繁瑣的過程是一個方案,但對其計算結果要如何以人工作必要的檢核則會是一個不小的難題,否則必然可能發生 garbage in, garbage out 的情況但卻無從避免錯誤。

若觀察受影響區範圍內受相鄰網格頂點的影響情形 (How?),將四邊相鄰網格的影忽略的話,網格內的內插高程 Z 值則得以簡單地全部以鞍面公式 Z = F (x,y,Z1,Z2,Z3,Z4) 表示,則土方計算的過程、等零線的求算等將會相對地簡易許多。而此簡化結果與考量受影響情形於土方計算所產生的誤差若控制在可接受或受限(bounded)的數量之下,則能同時符合方格法土方計算中所需要的簡單合理的精神。

仿照 Civil 3D 地形物件與土方計算之關係 - 數學原理探討(三) 的說明及推導,但改以 Z3 點位為座標原點,則可推導得通過網格四個頂點的鞍面公式如下(網格邊長為 d):
網格內的總體積則按該鞍面公式推導得計算如下:
若考量網格內有部分挖填的情形,則僅需考量以下兩種情況推導相關的體積計算基本公式即可,其結果適用於鞍面假設之下不同挖填計算情境。(Why?)

情況一、 Z3 正負異於 Z1,Z2,Z4
Z3大於0 Z1, Z2, Z4 小於等於0 (或是 Z3小於0 Z1, Z2, Z4 大於等於0)的情形。由鞍面公式可得知等零線函數式

則以 Z3 為極值的體積(挖方或填方均可)可按積分推導得如下:
情況二、 Z3 與 Z2 正負相同但異於 Z1,Z4
Z3, Z2 大於0 Z1, Z4 小於等於0 (或是 Z3, Z2 小於 0 Z1, Z4 大於等於0)的情形。由鞍面公式可得知等零線函數式

則以 Z3 Z2極值斜線區內體積(挖方或填方均可)可按積分推導得如下:

兩種部分挖填情況下依鞍面公式積分得的體積計算式尚符合簡單易讀的要求,唯兩者均有共同的限制條件: A ≠ 0 ,即必須符合 Z1+Z3–Z2+Z4 ≠ 0 才不致發生分母為零的除式錯誤。萬一發生此檢查式有 Z1+Z3–Z2–Z4=0 的情形,可以採用將 Z3 值加上一個微小比例差異量的方式作調整:Z3' = (1+ε) Z3。因此,若採諸如 ε = 0.0001 的調整值則可以兼具上述計算法的有效性及不影響體積計算結果。

前述二種情況之體積計算式及計算結果,可以很容易地在試算表工具 (如免費自由辦公室軟體 LibreOffice 的 Calculator)作相關的檢算,並以Civil 3D 的地面物件平滑工具作檢驗。有興趣的朋友不妨先行利用 Civil 3D 地形物件與土方計算之關係 - 數學原理探討(二) 文中的點位資料,以中間方格所在的地形2 作 NNI 平滑補點檢試看看。

其實就筆者所知,一般在處理上述情況一及情況二的體積計算,是分別以錐體公式及楔形公式求算,可以將前列公式的計算結果與之比較檢驗一番:

(未完,待續.....)
*****
本文公式撰寫之貼圖均以 LibreOffice 3.4x(3.3x) 製作,其公式描述內容如下。朋友們可自行貼附在LibreOffice (或是 OpenOffice.org) 的 Writer中,選取後點按"公式"圖例即可完成數學式的編製。
Z(x,y)~=~Axy~+Bx~+Cy~+D newline
A~=~{Z_3+Z_1-Z_2-Z_4} over {alignc d^2} newline
B~=~{Z_4-Z_3} over {alignc d} newline
C~=~{Z_2-Z_3} over {alignc d} newline
D~=~Z_3 newline
Z (X_0,Y_0)=0,~Y_0=~{-BX_0-D} over {alignc AX_0+C}~or X_0=~{-CY_0-D} over {alignc AY_0+B} newline
for X_0=0,~Y_0=-D over {alignc C} newline
V_Z3~=iint Z(x,y) dx dy newline
~~~~~=-C^2 over {alignc 2A} left [ 1 over 2 Ay^2+(2AD over {alignc C}-B)y+1 over {alignc A} (AD over {alignc C} -B)^2 ln (y + B over A) right ]^{y=-D/C}_{y=0} newline
~~~~~=Z_3^2 over {alignc 2A} left [ 3 over 2 - BC over AZ_3 - (1- BC over AZ_3)^2 ln(1 – AZ_3 over BC) right ]
Let ~K= BC over AZ_3 , ~then~ V_3= Z_3^2 over {alignc 2A} left[ 3 over 2-K-(1-K)^2 cdot ln (1-{alignc 1} over k) right] newline
"Let" ~K= BC over AZ_3~newline
"then "~ V_3= Z_3^2 over {alignc 2A} left[3 over 2-K-(1-K)^2 cdot ln (1 - {alignc 1} over K) right] ~newline
"where "~(1-1 over K)~=~1- {alignc {AZ_3 over BC}}~=~{alignc {Z_2 Z_4-Z_1 Z_3} over {(Z_4-Z_3)(Z_2-Z_3)}}~ > ~0 newline
V_Z3~=iint Z(x,y) dx dy newline
~~~~~=-C^2 over {alignc 2A} left [ 1 over 2 Ay^2+(2AD over {alignc C}-B)y+1 over {alignc A} (AD over {alignc C} -B)^2 cdot ln (y + B over A) right ]^{y=d}_{y=0} newline
~~~~~={alignc {-1 over 2A}} left [ {alignc {C^2 d^2} over 2}+(2Z_3 C - {alignc BC^2 over A}) cdot d+ (Z_3- {alignc BC over A})^2 cdot ln(1 + {alignc Ad over B}) right ] newline
"where "~(1+ {alignc Ad over B})~=~{alignc {Z_1-Z_2} over {Z_4-Z_3}}~ > ~0 newline
錐體公式 V'~=~{alignc {Z_3^3 over {(Z_3-Z_2)(Z_3-Z_4)}}} cdot {alignc d^2 over 6} newline
楔形公式 V'~=~({alignc Z_3^2 over {Z_3-Z_4}}+ {alignc Z_2^2 over {Z_2-Z_1}}) cdot {d^2 over 4}

沒有留言: