水文预报课程设计.docx
《水文预报课程设计.docx》由会员分享,可在线阅读,更多相关《水文预报课程设计.docx(15页珍藏版)》请在冰点文库上搜索。
水文预报课程设计
水文预报课程设计
学院:
水利土木工程学院
专业:
水文与水资源管理
班级:
水文一班
学号:
********
姓名:
***
指导老师:
程**
时间:
2013年12月17日
目录
第一章课程设计内容及要求
1.1课程设计内容................................................3
1.2基本要求....................................................3
1.3设计题目....................................................3
第2章设计资料
.........................................3
第3章蒸发计算
3.1蒸散发计算..................................................4
3.2流域三层蒸散发模式计算图框..................................4
3.3流域蒸散发程序设计..........................................5
第4章产流计算
4.1产流计算原理...............................................9
4.2蓄满产流模型计算图框........................................9
4.3蓄满产流计算程序设计.......................................10
第一章设计内容及要求
1.1课程设计内容
三水源新安江模型包括产流、汇流两个主要内容。
三水源新安江模型计算程序的编制主要涉及以下几个子模块:
1、用三层蒸散发模型计算蒸散发量;
2、用蓄满产流模型计算产流量。
1.2基本要求
1、提交的报告成果以打印版形式上交。
凡成果中涉及到需要编程计算的,均要有程序中所用到基本变量的说明,编程思路,以及程序代码。
2、完成时间为一周。
1.3设计题目
流域产流汇流的编程计算方法
第二章设计资料
已知资料:
流域的降水(过程)、蒸发器实测值(过程)见下表。
时序
降水量mm
器测值Emm
时序
降水量mm
器测值Emm
1
0
5.6
9
15.1
6.0
2
0
7.2
10
0
6.2
3
0
6.8
11
63.2
3.0
4
0
8.2
12
56.8
2.7
5
0
7.6
13
23.5
3.4
6
3.0
7.4
14
1.2
4.2
7
4.2
6.8
15
0
5.8
8
10.3
6.4
16
0
7.4
土壤含水量初值Wu=0,WL=2.2,Wd=20;蓄水容量Wum=15,WLm=85,Wdm=20,Wm=120,(单位均为mm)。
B=0.3,蒸发折算系数K=0.95。
第三章蒸散发计算
3.1蒸散发计算
在新安江模型中,流域蒸散发计算没有考虑流域内土壤含水量在面上分布的不均匀性,而是按土壤垂向分布的不均匀性将土层分为三层,用三层蒸散发模型计算蒸散发量。
参数有流域平均张力水容量WM,上层张力水容量UM,下土层张力水容量LM,深层张力水容量DM,蒸散发折算系数KC和深层蒸散发折算系数C,计算公式如下:
WM=UM+LM+DM
W=WU+WL+WD
E=EU+EL+ED
EP=KC*EM
式中:
W为总的张力水蓄量,mm;WU为上层张力水蓄量,mm;WL为下层张力水蓄量,mm;WD为深层张力水蓄量,mm;E为总的蒸发量,mm;EU为上层蒸散发量,mm;EL为下层蒸散发量,mm;ED为深层蒸散发量,mm;EP为蒸散发能力,mm。
具体计算为:
若P+WU>=EP,则EU=EP,EL=0,ED=0
若P+WU若WL>C*LM,则WL=(EP-EU)WL/LM,ED=0
若WL=C*(EP-EU),则EL=C*(EP-EU),ED=0
若WL3.2流域三层蒸散发模式计算图框
变量说明:
时段蒸散发能力EmΔt;流域上层土壤蒸散发量EuΔt;流域下层土壤蒸散发量ELΔt;流域深层土壤蒸散发量EdΔt;时段降水量PΔt;与深层蒸散发有关的系数C;时段初流域上层土壤量Wu,t-1;时段初流域下层土壤量WL,t-1;时段初流域深层土壤量Wd,t-1。
3.3流域蒸散发程序设计
注:
因为处理的数据较多,用记事本存、取数据。
'三层蒸发模型
PrivateSubForm_Load()
'逐日降水过程P(t),(t=1,2,...,n)
'逐日蒸发能力Ep(t),(t=1,2,...,n)
'逐日蒸发量E(t),(t=1,2,...,n)
'时段初的蓄水量Wu(t-1),WL(t-1),Wd(t-1)
'时段末的蓄水量Wu(t),WL(t),Wd(t)
'深层蒸散发系数C
'蒸散发折算系数k
DimnAsInteger,P(30)AsSingle,EI(100)AsSingle
DimEu(100)AsSingle,EL(100)AsSingle,Ed(100)AsSingle,E(30)AsSingle
DimCAsSingle
DimUAsSingle,LAsSingle,DAsSingle
DimWu(100)AsSingle,WL(100)AsSingle,Wd(100)AsSingle,W(100)AsSingle,Ep(100)AsSingle
DimWumAsSingle,WLmAsSingle,WdmAsSingle
'输入已知数据
Open"C:
\Users\郗鸿峰\Desktop\水文预报\水文预报ppt\p-E.txt"ForInputAs#1
Input#1,n
Fort=1Ton
Input#1,P(t)
Nextt
Fort=1Ton
Input#1,EI(t)
Nextt
Input#1,k,Wum,WLm,Wdm,C,Wu(0),WL(0),Wd(0)
Close#1
Fort=1Ton
'计算雨后初始土壤含水量
U=Wu(t-1)+P(t)
IfU>=WumThen
Wu(t-1)=Wum
L=WL(t-1)+(U-Wum)
IfL>=WLmThen
WL(t-1)=WLm
D=Wd(t-1)+(L-WLm)
IfD>=WdmThen
Wd(t-1)=Wdm
Else
Wd(t-1)=D
EndIf
Else
WL(t-1)=L
EndIf
Else
Wu(t-1)=U
EndIf
'计算时段蒸发量及时段末土壤含水量
Ep(t)=k*EI(t)
IfWu(t-1)>=Ep(t)Then
Eu(t)=Ep(t)
EL(t)=0
Ed(t)=0
Else
Eu(t)=Wu(t-1)
EL(t)=(Ep(t)-Eu(t))*WL(t-1)/WLm
IfEL(t)IfWL(t-1)EL(t)=WL(t-1)
Ed(t)=C*(Ep(t)-Eu(t))-EL(t)
Else
EL(t)=C*(Ep(t)-Eu(t))
Ed(t)=0
EndIf
Else
Ed(t)=0
EndIf
EndIf
E(t)=Eu(t)+EL(t)+Ed(t)
'计算雨后时段末土壤含水量
Wu(t)=Wu(t-1)-Eu(t)
WL(t)=WL(t-1)-EL(t)
Wd(t)=Wd(t-1)-Ed(t)
Nextt
'输出计算结果
Open"C:
\Users\郗鸿峰\Desktop\水文预报\水文预报ppt\p-E-out.txt"ForOutputAs#2
Print#2,
Print#2,Tab(30);"三层模型计算结果",
Print#2,
Print#2,
Print#2,Tab(3);"t";Tab(8);"P(t)";Tab(16);"Ep(t)";
Print#2,Tab(25);"Eu(t)";Tab(35);"EL(t)";Tab(45);"Ed(t)";
Print#2,Tab(55);"Wu(t)";Tab(65);"WL(t)";Tab(75);"Wd(t)";
Print#2,
Print#2,Tab(3);Format(0,"0");Tab(55);Format(Wu(0),"0.0");
Print#2,Tab(65);Format(WL(0),"0.0");Tab(75);Format(Wd(0),"0.0");
Fort=1Ton
Print#2,Tab(3);Format(t,"0");Tab(8);Format(P(t),"0.0");
Print#2,Tab(16);Format(Ep(t),"0.00");Tab(25);Format(Eu(t),"0.00");
Print#2,Tab(35);Format(EL(t),"0.00");Tab(45);Format(Ed(t),"0.00");
Print#2,Tab(55);Format(Wu(t),"0.00");Tab(65);Format(WL(t),"0.00");
Print#2,Tab(75);Format(Wd(t),"0.00");
Print#2,
Nextt
Close#2
EndSub
数据读取:
C:
\Users\郗鸿峰\Desktop\水文预报\水文预报ppt\p-E.txt
16
000003.04.210.315.10
63.256.823.51.200
5.67.26.88.27.67.46.86.46.06.2
3.02.73.44.25.87.4
0.95
1585200.3
02.220.0
输出计算结果:
Open"C:
\Users\郗鸿峰\Desktop\水文预报\水文预报ppt\p-E-out.txt
三层模型计算结果
tP(t)Ep(t)Eu(t)EL(t)Ed(t)Wu(t)WL(t)Wd(t)
00.02.220.0
10.05.320.001.600.000.000.6020.00
20.06.840.000.601.450.000.0018.55
30.06.460.000.001.940.000.0016.61
40.07.790.000.002.340.000.0014.28
50.07.220.000.002.173.000.0012.11
63.07.033.000.001.214.200.0010.90
74.26.464.200.000.6810.300.0010.22
810.36.086.080.000.0015.004.3210.22
915.15.705.700.000.009.304.3210.22
100.05.895.890.000.0015.0055.9310.22
1163.22.852.850.000.0015.0085.0020.00
1256.82.572.570.000.0015.0085.0020.00
1323.53.233.230.000.0012.9785.0020.00
141.23.993.990.000.008.9885.0020.00
150.05.515.510.000.003.4785.0020.00
160.07.033.473.560.000.0081.4420.00
第四章产流量计算
4.1产流计算原理
产流计算中采用蓄满产流模型。
按照蓄满产流的概念,采用蓄水容量—面积分配曲线来考虑土壤缺水量分布不均匀的问题。
因流域面较大,各处自由水蓄水容量不同,其分布规律可用自由水蓄水容量分布曲线描述。
仿照流域(张力水)蓄水容量分布曲线,流域自由水蓄水容量分布曲线的方程:
f/F=1-(1-W’/WMM)
若PE+AR=PE-WM[(1-(A/WMM)1+B)-(1-((PE+A)/WMM)1+B]
即:
R=PE-(WM-W0)+WM(1-(PE+A)/WMM)1+B
若PE+A>=WMM,即全流域产流时:
R=PE-(WM-W0)
式中:
W0为流域初始土壤蓄水量,mm;MM为流域平均最大蓄水容量,mm;R为总径流量,mm;其余符号意义相同。
4.2蓄满产流模型计算图框
变量说明:
PE=PΔt-EΔt;流域土壤平均蓄水容量Wm;流域上层土壤平均蓄水容量Wum;流域下层土壤平均蓄水容量WLm;流域深层土壤平均蓄水容量Wdm;蓄水容量曲线指数B;时段初(末)流域土壤平均蓄水量Wt-1;时段末流域土壤平均蓄水量Wt;时段末流域上层土壤平均蓄水量Wt;时段末流域下层土壤平均蓄水量WLt;时段末流域深层土壤平均蓄水量Wdt;
4.3蓄满产流计算程序设计
注:
因为处理的数据较多,用记事本存、取数据。
'蓄满产流模型-1
PrivateSubForm_Load()
'逐日降水过程P(t),(t=1,2,...,n)
'逐日器测蒸发值EI(t),(t=1,2,...,n)
'逐日蒸发能力Ep(t),(t=1,2,...,n)
'逐日蒸发量E(t),(t=1,2,...,n)
'逐日产流量R(t),(t=1,2,...,n)
'时段初蓄水量Wu(t-1),WL(t-1),Wd(t-1)
'时段末蓄水量Wu(t),WL(t),Wd(t)
'流域单点最大蓄水容量Wmm
'流域平均蓄水容量Wm
'蒸散发折算系数k
'蓄水容量曲线的指数b
'深层蒸散发系数C
DimnAsInteger,P(50)AsSingle,EI(100)AsSingle,Ep(100)AsSingle,PE(50)AsSingle
DimEu(100)AsSingle,EL(100)AsSingle,Ed(100)AsSingle,E(50)AsSingle
DimAAsSingle,bAsSingle,CAsSingle,R(50)AsSingle
DimUAsSingle,LAsSingle,DAsSingle,kAsSingle
DimWu(100)AsSingle,WL(100)AsSingle,Wd(100)AsSingle,W(100)AsSingle
DimWumAsSingle,WLmAsSingle,WdmAsSingle,WmAsSingle,WmmAsSingle
'输入已知数据
Open"c:
\备课\水文预报\水文预报PPT\xu-man.txt"ForInputAs#1
Input#1,n
Fort=1Ton
Input#1,P(t)
Nextt
Fort=1Ton
Input#1,EI(t)
Nextt
Input#1,k,Wum,WLm,Wdm,b,C,Wu(0),WL(0),Wd(0)
Close#1
Wm=Wum+WLm+Wdm
Wmm=Wm*(1+b)
W(0)=Wu(0)+WL(0)+Wd(0)
Fort=1Ton
'蓄满产流模型计算产流量
Ep(t)=k*EI(t)
IfP(t)>Ep(t)Then
A=Wmm*(1-(1-W(t-1)/Wm)^(1/(1+b)))
If(A+P(t)-Ep(t))R(t)=P(t)-Ep(t)+W(t-1)-Wm+Wm*(1-(A+P(t)-Ep(t))/Wmm)^(1+b)
Else
R(t)=P(t)-Ep(t)+W(t-1)-Wm
EndIf
Else
R(t)=0
EndIf
'计算雨后初始土壤含水量
U=Wu(t-1)+P(t)-R(t)
IfU>=WumThen
Wu(t-1)=Wum
L=WL(t-1)+(U-Wum)
IfL>=WLmThen
WL(t-1)=WLm
D=Wd(t-1)+(L-WLm)
IfD>=WdmThen
Wd(t-1)=Wdm
Else
Wd(t-1)=D
EndIf
Else
WL(t-1)=L
EndIf
Else
Wu(t-1)=U
EndIf
'根据雨后初始土壤含水量计算时段蒸发量
IfWu(t-1)>=Ep(t)Then
Eu(t)=Ep(t)
EL(t)=0
Ed(t)=0
Else
Eu(t)=Wu(t-1)
EL(t)=(Ep(t)-Eu(t))*WL(t-1)/WLm
IfEL(t)IfWL(t-1)EL(t)=WL(t-1)
Ed(t)=C*(Ep(t)-Eu(t))-EL(t)
Else
EL(t)=C*(Ep(t)-Eu(t))
Ed(t)=0
EndIf
Else
Ed(t)=0
EndIf
EndIf
E(t)=Eu(t)+EL(t)+Ed(t)
'计算雨后时段末土壤含水量
Wu(t)=Wu(t-1)-Eu(t)
WL(t)=WL(t-1)-EL(t)
Wd(t)=Wd(t-1)-Ed(t)
W(t)=Wu(t)+WL(t)+Wd(t)
Nextt
'输出计算结果
Open"c:
\备课\水文预报\水文预报PPT\xu-man-out.txt"ForOutputAs#2
Print#2,Tab(30);"蓄满产流模型计算结果",
Print#2,
Print#2,
Print#2,Tab(3);"t";Tab(8);"P(t)";Tab(16);"Ep(t)";
Print#2,Tab(25);"Eu(t)";Tab(35);"EL(t)";Tab(45);"Ed(t)";
Print#2,Tab(55);"Wu(t)";Tab(65);"WL(t)";Tab(75);"Wd(t)";
Print#2,Tab(85);"R(t)",
Print#2,
Print#2,
Print#2,Tab(3);Format(0,"0");Tab(55);Format(Wu(0),"0.00");
Print#2,Tab(65);Format(WL(0),"0.00");Tab(75);Format(Wd(0),"0.00");
Fort=1Ton
Print#2,Tab(3);Format(t,"0");Tab(8);Format(P(t),"0.0");
Print#2,Tab(16);Format(Ep(t),"0.00");Tab(25);Format(Eu(t),"0.00");
Print#2,Tab(35);Format(EL(t),"0.00");Tab(45);Format(Ed(t),"0.00");
Print#2,Tab(55);Format(Wu(t),"0.00");Tab(65);Format(WL(t),"0.00");
Print#2,Tab(75);Format(Wd(t),"0.00");Tab(85);Format(R(t),"0.00");
Print#2,
Nextt
Close#2
EndSub
输入的数据:
E:
\备课\水文预报\水文预报PPT\xu-man.txt
16
0000034.210.315.10
63.256.823.51.200
5.67.26.88.27.67.46.86.466.2
32.73.44.25.87.4
0.95
158520
0.30.14
02.220
输出计算结果:
Open"E:
\备课\水文预报\水文预报PPT\xu-man-out.txt
蓄满产流模型计算结果
tP(t)Ep(t)Eu(t)EL(t)Ed(t)Wu(t)WL(t)Wd(t)R(t)
00.002.2020.00
10.05.320.000.740.000.001.4620.000.00
20.06.840.000.960.000.000.5020.000.00
30.06.460.000.500.410.000.