C++语言开发三斗双曲拱坝坐标放样系统

2020-04-04 07:47郑其华
水利科技与经济 2020年2期
关键词:拱坝双曲坐标值

郑其华

(福建省建瓯市水利局, 福建 建瓯 353100)

1 工程概况

福建省建瓯市三斗水库电站为赤溪流域梯级开发的一期工程。水库设计总库容530×104m3,电站设计装机2×1 250 kW,三斗水库电站由拦河坝、引水系统、发电厂房和升压站等建筑物组成。

三斗双曲拱坝坝高56.2 m,最大弧长153.531 m。拱坝于1998年3月开工,1999年5月竣工。1999年9月15日开始正常运行至今。

2 C++语言编程的优点

C++是一门高效实用的程序设计语言,它既可进行过程化程序设计,也可进行面向对象程序设计。C++语言强调对高级抽象的支持。C++实现了类的封装、数据隐藏、继承及多态,使得其代码容易维护及高度可重用。

随着C++渐渐成为ANSI标准,几乎在所有计算机研究和应用领域,都能看到C++的影子。

纵观当前,C++的发展引领了程序设计语言的潮流。所以在水利工程测量放样,尤其是双曲拱坝测量放样工作中,能时常用C++语言编写一些特定程序,对工作极有帮助。

3 C++语言开发拱坝坐标放样系统运行环境

操作系统是Windows 2000或以上版本,在TURBO C++或Borland C++或Visual C++编程环境下编译。

4 双曲拱坝基本尺寸数据表及图示

双曲拱坝基本尺寸见表1,拱冠剖面图见图1,拱圈平切示意图见图2。

表1 双曲拱坝基本尺寸表

注:拱端曲率半径等于拱端拱轴(即中心轴)半径。

图1 拱冠剖面图

图2 拱圈平切示意图

5 大坝坐标计算思路与坐标放样系统编程流程框图

5.1 大坝坐标计算思路

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)中求出的倒悬度值以及各高程拱端坐标值。

5.2 坐标放样系统编程流程框图

结合上述大坝坐标计算思路,绘制坐标放样系统编程流程框图,见图3。

图3 拱坝坐标放样系统编程流程框图

6 坐标放样系统运行界面

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数值,满足了三斗双曲拱坝坐标放样所需数据的要求。

7 结 语

随着计算机技术的飞速发展,给人们的生活和工作带来了极大的方便,解决了人们在工作中遇到的许多计算难或繁杂的问题。利用C++语言开发的三斗双曲拱坝坐标放样系统运行界面可视性好,满足了三斗双曲拱坝坐标放样所需数据的要求,提高了工作效率,也为今后的双曲拱坝坐标放样计算或其他的类似计算繁杂问题提供了很好的借鉴。

猜你喜欢
拱坝双曲坐标值
整体最小二乘法坐标转换在河道测量中的应用
Phytochemicals targeting NF-κB signaling:Potential anti-cancer interventions
中国科学技术馆之“双曲隧道”
高双曲拱坝碾压混凝土夏季施工实践探究
高阶双曲型Kac-Moody 代数的极小虚根
双曲型交换四元数的极表示
探讨Excel2007与ArcGis10.0结合提取小班四至界限的坐标值
物理坐标图像的应用赏析