标题：水库调洪计算
水库调洪作用
有蓄洪与滞洪两种。蓄洪一般指水库设有专用的防洪库容或通过预泄，预留部分库容，用来拦蓄洪水，削减洪峰流量，满足下游防洪要求。滞洪指仅仅利用大坝抬高水位，增大库区调蓄能力，当入库洪水流量超过水库泄流设备下泄能力时，将部分洪水暂时拦蓄在水库内，削减洪峰，待洪峰过后，所拦蓄的洪水，再逐渐泄入河道。对防洪与兴利相结合的综合利用水库来说，当入库洪水为中小洪水时，一般以蓄洪为主，以便为兴利之用；而在大洪水年份，则兼有蓄洪滞洪的作用。入库洪水经水库调蓄后，其泄流量的变化情况与水库的容积特性，泄洪建筑物形式，尺寸以及下游防洪标准，水库运行方式等有关。
水库调洪方式
基本有三种：①自由泄流（敞开泄流）。指水库不承担下游防洪任务，水库调洪只需解决水库遭遇设计标准及校核标准洪水，在水库水位超过防洪限制水位时为确保大坝安全时的泄洪。当水库承担下游防洪任务而入库洪水超过下游防洪标准设计洪水时的泄流，也是自由泄流。②固定泄流。即采用闸门控制措施，使水库下泄流量按固定值泄放（一级或多级固定），各级控制下泄流量值视入库洪水和控制点的防洪能力而定。对于调洪能力较小的水库，可按入库流量来判别属于何级下泄值，对调洪能力大的水库洪量起主要作用，宜采用库水位涨率与入库流量相结合方法判定宜选泄量数值。③泄洪方式为补偿调节方式。理想的补偿调节方式是根据区间洪水预报逐时段确定水库相应下泄流量，使其与区间洪水流量组合结果不超过下游控制点的安全允许泄流量。考虑错峰要求的水库泄流即属于此种方式。但这种方式只适合于水库泄流至下游防洪控制点的传播时间小于区间洪水的预见期和预报精度较高的情况。如果某些水库泄流传播到下游防洪控制点的时间较长，而区间洪水集流却很快，预见期短，水库接到区间水情预报时已来不及关闸错峰，那么，需采用经验性或统计性的补偿调节洪水方式。如把区间地区的某些暴雨因素和防洪控制点涨率等作为关闸错峰的指标。当上游水库群共同承担下游防洪任务时，一般需要考虑补偿问题，当水库群洪水具有同步性时，选调洪能力大的，控制洪水比重大的水库作为防洪补偿调节水库，其余为被补偿水库。反之，洪水同步性差的水库群，采用补偿方式时，应将各库泄流最大值与区间洪峰错开，避免出现组合更不利情况。
调洪计算的原理和方法
洪水入库后，其运动是属于不稳定流。水库沿程的水位、流速和过水断面等均随时变化，可用圣维南方程组表示。由于圣维南方程组一般很难求得精确的解析解，实用中多采用瞬态法，直接差分法及特征线法等近似解法。水库调洪计算的实用方法可分为静库容法及动库容法。静库容法假定库内流速趋近于零，库水面为水平的，即库容与坝前水位成单值函数关系，忽略动力方程对调洪的影响，将连续方程写成有限差的水量平衡方程并建立水库下泄流量与水库蓄水量之间的关系。动库容法指水库尾部地形开阔或回水尾端库水面曲线上翘显著，动库容（实际库水面与水平库面间的库容）不容忽视时，按不稳定流计算方法逐段进行洪水演算。这种方法的工作量很大。实际应用采用回水曲线法和近似法。
AutoCAD BA调洪计算
衣秀勇 
（天津勘测设计研究院，天津300222） 
1使用AutoCAD BA进行水库调洪计算 
BA（isual Basic for Application）是Microsoft公司集成在Microsoft office系列软件中的超级开发工具，AutoCAD在R14及以上版本中也集成了BA作为自己的一个二次开发工具。AutoCAD BA与Office BA是同一工具同一环境，不同的是AutoCAD BA集成于AutoCAD中。
在手工进行水库调洪计算的时代，人们使用试算法和图解法进行计算，其中图解法因其比较直观精确而且不需多次试算而受到青睐。后来在PC-1500机、微机和Basic语言普及的时代，因试算法较适合编程进行迭代计算，试算法又得到了广泛使用。
现在随AutoCAD的逐渐普及和AutoCAD二次开发工具的日益丰富，尤其是从R14开始增加的BA开发工具为图解法的发展应用提供了可能。
使用AutoCAD BA进行水库调洪计算有以下优点：
⑴AutoCAD是专业的工程绘图软件，因此用它绘制图解法的图形就十分简单方便，使得计算具有了图解法精确的优点。
⑵BA是Microsoft isual Basic的一个子集，而B又是从Basic升级而来的，因此不需要花太多的精力去另外学习一门编程语言。
⑶AutoCAD BA与Office BA是同一环境，这又方便了AutoCAD与Office的通讯，例如程序的输入和输出文件都可以是Excel文件。
⑷AutoCAD 与BA结合使用，可以轻松输出精确的图形结果，例如调洪计算可以输出实际入库和泄流过程线。
本文将具体介绍使用AutoCAD BA进行水库调洪计算的方法。
2水库调洪计算图解法的原理[1]?? 
⒉1水库调洪计算的实用公式 
水库调洪计算的实用公式如下：? 
⒉2水库调洪计算图解法的原理 
式⑴比较适合使用试算法进行水库的调洪计算，要使用图解法进行水库调洪计算需要将式⑴改写为以下形式：? 
式中，、q、/Δt-q/2和/Δt+q/2均可与水库水位Z建立函数关系。因此，可根据选定的计算时段Δt、已知的水库水位容积关系曲线以及根据水力学公式算出的水位下泄流量关系曲线，事先计算并绘制以下4条曲线：? 
其中，C是水位下泄流量关系曲线，D是水库水位～容积关系曲线，A、B是图解法中的两根辅助曲线。绘制示例图形如图1所示。
参照图1，调洪计算的步骤是：
⑴根据已知的入库洪水流量过程线及选定的计算时段Δt算出各时段的平均入库流量并定出初始的Z1、q1、1值。
⑵在图1的水位坐标轴上量取第一时段的Z1得a点，从a点做水平线ab交曲线A于b点，从b点延长ab至c点并使bc=因曲线A是（/Δt-q/2）=f1(Z），a点代表Z1，因此ac就应等于+（1/Δt-q1/2），按图解法的公式ac也等于（2/Δt+q2/2）。
⑶从C点做垂线交曲线B于d点，过d点做水平线de交水位坐标轴于e点，显然de=ac=（2/Δt+q2/2）。因曲线B是（/Δt+q/2）=f2(Z），d点在曲线B上，e点就应代表Z2。
⑷de交曲线C于f点，过f点做垂线交q坐标轴于g点。因曲线C是q=f3(Z），e点代表Z2，于是ef应是q2，即从g点可以读出q2的值。
⑸过d点做de的延长线dh交曲线D于h点，过h点做垂线交坐标轴于i点。因曲线D是= f4(Z），e点代表Z2，于是eh应是2，即从i点可以读出2的值。
⑹将e点代表的Z2值、g点代表的q2值和i点代表的2值分别作为第二时段Z1、q1、1，按上述同样方法进行图解计算，又可求出第二时段的Z2、q2、2等值，依次循环就可完成全部计算。
3在AutoCAD中调洪计算的方法和步骤 
在AutoCAD中进行调洪计算遵循上述图解法的原理，其具体的实现方法如下（见图2）：
⒊1创建一个AutoCAD BA工程 
进入AutoCAD2000，在“工具”菜单的“宏”子菜单中单击“isual Basic编辑器”进入BA的编程环境。在“isual Basic编辑器”中单击“插入”菜单中的“添加模块”菜单项，BA将为您添加一个新的模块，接着您要为模块添加一个过程，如：? 
⒊2 在BA中编写调洪程序 
在过程的Sub和End Sub之间编写调洪程序。
⒊2.1定义程序中使用的主要变量 
⑴定义库容曲线和水位泄流曲线的点数以及入库洪水过程的点数。入库洪水过程线各点之间要保证时间间隔相同。在使用该程序时，首先都要根据实际情况对这两个变量进行赋值。程序如下：
⑵将如图1中的四条曲线即水位库容、水位泄流、双辅助线分别定义为AutoCAD中的多段线，同时定义4条曲线的顶点坐标数组，这些坐标数组所含数值将作为在AutoCAD中画4条曲线的依据。
⑶定义计算过程中临时使用的辅助线及其坐标数组。临时使用的辅助线即图1中的ab、bc、de等线，在这里将它们定义为构造线。
⑺根据库容曲线和水位泄流曲线的点数以及入库洪水过程的点数重新定义各数组的维数 
⑻定义存放调洪计算原始数据的Excel文件并打开它，在程序执行过程中将从该文件中读取原始数据，并将计算的结果写到该文件中。在这里我们假设Excel文件为“g:\th\”文件夹中的th001.xls。
⒊2.2从Excel文件取得调洪计算的原始数据 
在这里我们假设th001.xls含有名字分别为1、2、3共3个工作表，且1工作表中从第2行开始分别在A、B、C、D、E列中存放了水位及该水位对应的库容、下泄流量以及（/Δt-q/2）和（/Δt+q/2）的数值；2工作表中从第3行开始在第D列中存放了该时段的平均入库流量；3工作表的第2行的C、D、E列中存放了调洪计算初始的Z1、q1、1，其他行将用来存放调洪计算的结果。
⒊2.3在Autocad中画出图解法调洪计算的曲线 
⒊2.4调洪计算 
以Z1为两个y坐标做构造线，以该构造线与/Δt-q/2（t1）交点的x坐标加上该时段的平均入库流量为两个x坐标做第二条构造线，第二条构造线与/Δt+q/2（t2）交点的y坐标即为Z2。
以Z2为两个y坐标做构造线，该构造线与泄流曲线的交点的x坐标即为q2，与库容曲线的交点的x坐标即为2。
4结语 
本文仅介绍了使用AutoCAD BA进行最简单的调洪计算的方法和程序实现，而且程序也缺少图形界面；但是有了本文介绍的框架，您可以很容易为它添加或修改一些功能，如：增加限泄功能、增加求实际最大下泄流量及其对应的时间、水位、库容的功能、增加绘制实际入库和泄流过程曲线及坐标系统的功能、将水位泄流曲线修改为泄流公式以及修改程序的界面等等，有兴趣的读者不妨自己去完善它。