数学、数学软件与水文水利计算(2)
wanglixin6181
2013年07月23日 11:27:12
只看楼主

本帖最后由 wanglixin6181 于 2013-7-23 11:26 编辑 今天说说水库工程调洪演算方面的的一些想法(并附实例)。 水库调洪演算的实质,是求解如下的微分方程初值问题: 式中的z、Q、q、F分别为水库水位(m)、入库流量(m3/s)、下泄流量(m3/s)和水面面积(m2)。该方程两边都具有速度量纲,单位为m/s,其意义是表示水库水位的变化率,而方程的解曲线即为水库水位随时间的变化曲线。

本帖最后由 wanglixin6181 于 2013-7-23 11:26 编辑

今天说说水库工程调洪演算方面的的一些想法(并附实例)。
水库调洪演算的实质,是求解如下的微分方程初值问题:
001.png
式中的z、Q、q、F分别为水库水位(m)、入库流量(m3/s)、下泄流量(m3/s)和水面面积(m2)。该方程两边都具有速度量纲,单位为m/s,其意义是表示水库水位的变化率,而方程的解曲线即为水库水位随时间的变化曲线。
一般情况下,入库流量Q(t)不具有标准的解析式,而是离散值。因此,求解上述微分方程初值问题多采用数值解法,常用的方法有改进欧拉法和四阶龙格—库塔公式。采用四阶龙格—库塔公式精度较高,相应求解式如下:
007.png
具体计算时采用Mathcad编程进行计算,速度较快。调洪演算成果如表2(只列出一种情况);洪水过程线、下泄流量过程线及水库水位变化过程线分别见图1~2。(图片用Mathcad绘制)
008.png006.png003.png
图1 XX水库P=3.33%设计洪水过程线与下泄流量过程线

004.png
图2 XX水库P=3.33%水库水位变化过程线
由于用上述方法计算时,洪水过程是离散的,需要逐个读取。我曾考虑将设计洪水过程线拟合为某种曲线,即在调洪演算微分方程中使各个变量均有方程表达式,这样可直接调用相关软件中的内置函数进行求解,并直接输出解函数曲线。从洪水过程线分析,想借用瞬时单位线,但在Γ函数的处理上难度很大。后来搞了一个多函数组合,用了常数、指数函数、三角函数等,勉强凑合,经计算,误差在5~10cm,自己感觉不是很满意,目前尚在进一步摸索之中。但我认为用数学软件求解有关水文水利计算问题是可行的,也是有效果的;一旦建立了可供实际应用的计算模型,在以后的设计计算中便可大大提高工作效率,这就是所谓的“先苦后甜”。
以上思路是否可行,还请朋友们指正。

001.png


004.png


006.png


003.png


007.png


008.png

闲逛的猪
2013年07月24日 22:03:44
2楼
本猪认为,做一些这样的探索是可以的,只是实用性和必要性不是很强。水文大多属于统计范畴,统计的结果总归不是精确的解答,只要尽可能逼近于真实解就可以了。在低精度的领域采用高精度的分析方法和分析工具,往往并不能实际提高解答的精度。从调洪计算上来说,光是库容曲线、洪水过程线的精度就不够高,泄流曲线的精度也十分牵强,个人认为完全没必要进行这种虚假精度的追求,只要计算的结果不致产生有实质性影响的误差就可以了。要从你的计算结果上看,虽然采用了精度较高的四阶龙格—库塔公式,但由于时长选择了1小时,其绘制的曲线仍然是显然不符合水位最高点时泄流量最大且等于来水流量的特点的,算法的优势也无法充分体现。
回复
wanglixin6181
2013年07月24日 22:50:15
3楼
闲逛的猪 发表于 2013-7-24 22:03 本猪认为,做一些这样的探索是可以的,只是实用性和必要性不是很强。水文大多属于统计范畴,统计的结果总归 …老猪言之有物,言之有理,在低精度的领域采用高精度的分析方法和分析工具,往往并不能实际提高解答的精度,此话的确在理。由于时长选择了1小时,不能体现高精度算法的优势,此是硬伤,但是否值得改进呢?我之所以考虑将设计洪水过程线拟合为某种曲线,也是想提高计算精度。不过这只是基于个人爱好的一种尝试,在实际工作中还是采用常规方法为主。谢谢指教!
回复
lxidin
2013年07月29日 21:22:38
4楼
一、因为洪水计算出来的洪水过程线本来就是人工修匀的,所以我建议你采用MathCAD的linterp函数将所有数据(水位~库容、水位~下泄、洪水过程线)进行线性拟合成一个函数。当然,如果你觉得有必要的话也可以用cspline、pslpline采用三次样条、抛物线进行拟合。
二、另外,完全没必要用龙格—库塔法进行微分方程计算,MathCAD中可以直接使用Odesolve求解微分方程。
回复
lxidin
2013年07月29日 21:32:50
5楼
建构好曲线后,有:
given
v'=Q(t)-q(Z(v(t))) '利用t查库容,再由库容查建构好的水位~库容曲线函数Z(v),再由水位查水位~下泄流量函数q(Z);
v(0)=v(Z0) ‘给点初始解;
V:=Odesolve(t,总时长,时段长) '解微分方程;

这样就可以直接得出时间~库容曲线,不知这样做你明白了吗?
回复
lxidin
2013年07月29日 21:43:43
6楼
ps.你将水位~面积拟合成一个函数的作法是从excel中得出的吗?个人觉得,水位~面积本身即有内插的成份在内,用excel拟合也较难完全符合已知点据,倒不如直接用interp进行线性插值,只要点据不是过少,得出的线条也不会相差到哪里去。
ps2.另外,将水位~下泄流量如您用这样一个函数进行表示,是否准确?因上游水位不同,相应的流态、流量系数、侧收缩、淹没系数是不一样的。简单一点的,还不如以小间隔,用excel算出各水位流量关系,再用interp进行线性拟合。复杂一点的,就干脆构造一个复杂的函数。
ps3.即使您要使用龙格—库塔法,MathCAD中也有rkfixed函数(采用 四阶 Runge-Kutta 法)。不过这个我没用过,你可以试试。
ps4.不知道您有没有采用MathCAD进行水面线计算?
回复
wanglixin6181
2013年07月29日 23:18:29
7楼
lxidin 发表于 2013-7-29 21:43 ps.你将水位~面积拟合成一个函数的作法是从excel中得出的吗?个人觉得,水位~面积本身即有内插的成份在内, …建议非常好,谢谢指教!我会继续努力。:P
回复

相关推荐

APP内打开