鄭其華
(福建省建甌市水利局, 福建 建甌 353100)
福建省建甌市三斗水庫電站為赤溪流域梯級開發的一期工程。水庫設計總庫容530×104m3,電站設計裝機2×1 250 kW,三斗水庫電站由攔河壩、引水系統、發電廠房和升壓站等建筑物組成。
三斗雙曲拱壩壩高56.2 m,最大弧長153.531 m。拱壩于1998年3月開工,1999年5月竣工。1999年9月15日開始正常運行至今。
C++是一門高效實用的程序設計語言,它既可進行過程化程序設計,也可進行面向對象程序設計。C++語言強調對高級抽象的支持。C++實現了類的封裝、數據隱藏、繼承及多態,使得其代碼容易維護及高度可重用。
隨著C++漸漸成為ANSI標準,幾乎在所有計算機研究和應用領域,都能看到C++的影子。
縱觀當前,C++的發展引領了程序設計語言的潮流。所以在水利工程測量放樣,尤其是雙曲拱壩測量放樣工作中,能時常用C++語言編寫一些特定程序,對工作極有幫助。
操作系統是Windows 2000或以上版本,在TURBO C++或Borland C++或Visual C++編程環境下編譯。
雙曲拱壩基本尺寸見表1,拱冠剖面圖見圖1,拱圈平切示意圖見圖2。

表1 雙曲拱壩基本尺寸表
注:拱端曲率半徑等于拱端拱軸(即中心軸)半徑。

圖1 拱冠剖面圖

圖2 拱圈平切示意圖
1) 由z值每遞增量(增1),按拱冠上下游面曲線方程:
y=-4.16-0.1694z+0.0050728z2-0.0000053212z3
y=8.84-0.32516z+0.0014999z2+0.0000584077z3
求出各特征高程731.0,…,744.0,…783.0的上下游面上的坐標(y,z)值:
上(-4.6,0),下(8.84,0),…上(-5.516,13),下(4.995,13),…上(0,52),下(4.2,52);
進而求出各高程拱冠剖面對應的水平拱中心線拋物線的原點坐標和對應的拱冠厚度t0。
2) 由z值每遞增量(增1),按拱冠左右側曲率中心曲線方程:
y=40+0.38462z
y=40+0.0926z+0.004266z2+0.000027098z3
求出各特征高程731.0,…744.0,…783.0的拱冠左右側曲率中心線與各高程的交點坐標(y,z)值:
左右(40,0),…,左(45,13),右(41.974,13),…,左(60,52);
進而由y值與上步驟1)求出的原點坐標導出左右岸Rc值(某一高程左右Rc=拱冠中點到拱冠左右側曲率中心線上的距離)。
3) 由表1中,已知各截面高程對應的左右岸拱端厚度ta、拱端中心角度?a,求出任意高程的左右岸拱端厚度ta、拱端曲率半徑Ra、拱端中心角度?a。
注:任意高程的左右岸拱端厚度ta是按線性插值來計算,即按表1上一給定截面高程與下一截面給定高程的拱端厚度放大倍數(Δta/Δto)線性插值,計算該高程的拱端厚度放大倍數,再乘上拱冠梁厚度即可得到該高程拱端厚度。
tai=ta1+(toi-to1)*(ta2-ta1)/(to2-to1),(toi由步驟1)已求出)
Rai=Ra1+(Rci-Rc1)*(Ra2-Ra1)/(Rc2-Rc1)
?ai= ?a1+(toi-to1)*( ?a2-?a1)/(to2-to1)
4) 求出任意高程水平拱中心線拋物線上的任意點的角度:
?=atan(x/Rc)其中,x由x值每遞增量(增1)來取定,Rc為該高程拱冠曲率半徑。求出該高程水平拱中心線拋物線方程y=x*x/2Rc中的y值,即得到任意高程水平拱中心線上某點坐標值(x中,y中)。
5) 求出任意高程任意點拱厚方程t′=to+(ta-to)*(1-cos?)/(1-cos?a),其中to已由步驟1)中求出,ta已由步驟3)中求出,?a已由步驟3)中求出,?已由步驟4)中求出。
6) 運用已求的(x中,y中)與 ?=atan(x/Rc),t′=to+(ta-to)*(1-cos?)/(1-cos?a)推出對應的上下游坐標值:左(x上,y上),左(x下,y下)即左,x上=x中+(t′/2)sin?,左,y上=y中-(t′/2)cos?,左,x下=x中-(t′/2)sin?,左,y下=y中+(t′/2)cos?;右(x上,y上),右(x下,y下)即右,x上=x中-(t′/2)sin?,右,y上=y中-(t′/2)cos?,右,x下=x中+(t′/2)sin?,右,y下=y中+(t′/2)cos?。
7) 求出徑向倒懸度:兩相鄰的切平面上,取同一x值的兩點間距:
L=±((Xj-xi)∧2+(yj-yi)∧2)∧(1/2)=正,(yj>yi);負,(yj≤yi);或x,y坐標的差值。
8) 把步驟1)中求出的水平拱中心線拋物線的原點坐標值加到步驟6)中求出的相應的坐標值中去。
9) 在工程坐標系下輸出步驟8)得出的坐標值(左右岸,上下游面x,y值)與步驟7)求出的倒懸度值,以及各高程拱端坐標值。
10) 把步驟8)中求出的結果轉化為大地坐標(XOY為工程坐標系,xoy為大地坐標系):
x=Xcos?-Ysin?,y=Xsin?+Ycos?
11) 把步驟10)求出的結果輸出左右岸,上下游面x,y值與步驟7)中求出的倒懸度值以及各高程拱端坐標值。
結合上述大壩坐標計算思路,繪制坐標放樣系統編程流程框圖,見圖3。

圖3 拱壩坐標放樣系統編程流程框圖
1) 計算并列出拱壩基本尺寸數據中9個特殊截面的基本尺寸數據,見圖4。
2) 光標閃爍提示輸入高程范圍內的任意高程值,輸入后按回車鍵,即可得到該高程對應的水平拱冠厚度t-0、水平拱中心線(拋物線)的原點坐標(x0,y0)、左右岸的拱端厚度ta、拱端曲率半徑Ra、拱端中心角度α數值,同時光標提示輸入該高程水平拱中心線(拋物線)上的距拱冠任意點的X值,按回車鍵后,便可得知該點在左岸或是右岸(正數為左、負數為右),同時得到該高程下的水平拱中心線(拋物線)上X值點處的坐標值(x中,y中),及該點在水平拱中心線(拋物線)上對應的角度α、該點對應的拱厚度t’。最后顯示該高程下X點對應的拱壩上下游面坐標點數值(x上,y上)、(x下,y下)。隨后輸入任意鍵,回車結束計算。
例如,輸入某一高程值如765和水平拱中心線拋物線上的的任意點的X值如8,即可得出拱壩放樣所需坐標值。坐標放樣系統運行界面截圖見圖5、圖6。

圖4 坐標放樣系統運行界面截圖(1/3)

圖5 坐標放樣系統運行界面截圖(2/3)

圖6 坐標放樣系統運行界面截圖(3/3)
總之,坐標放樣系統運行界面直觀、可讀性好。只要輸入壩高范圍內任一高程值及與拱冠的垂直距離值,即可得到拱壩在該高程上下游面坐標點X、Y數值,滿足了三斗雙曲拱壩坐標放樣所需數據的要求。
隨著計算機技術的飛速發展,給人們的生活和工作帶來了極大的方便,解決了人們在工作中遇到的許多計算難或繁雜的問題。利用C++語言開發的三斗雙曲拱壩坐標放樣系統運行界面可視性好,滿足了三斗雙曲拱壩坐標放樣所需數據的要求,提高了工作效率,也為今后的雙曲拱壩坐標放樣計算或其他的類似計算繁雜問題提供了很好的借鑒。