新安江模型程序C++代码

新安江模型程序C++代码
新安江模型程序C++代码

新安江模型程序C++代码以下是类的声明:

class XinanjiangModel

{

private:

// FORCING

double *m_pP; // 降水数据

double *m_pEm; // 水面蒸发数据

//

long m_nSteps; // 模型要运行的步长(一共m_nSteps步) long steps;

// OUTPUT

double *m_pR; // 流域内每一步长的产流量(径流深度) double *m_pRs; // 每一步长的地表径流深(毫米)

double *m_pRi; // 每一步长的壤中流深(毫米)

double *m_pRg; // 每一步长的地下径流深(毫米)

double *m_pE; // 每一步长的蒸发(毫米)

double *m_pQrs; // 流域出口地表径流量

double *m_pQri;// 流域出口壤中流径流流量

double *m_pQrg;// 流域出口地下径流量

double *m_pQ; // 流域出口的总流量

double m_U; // for 24h. U=A(km^2)/3.6/delta_t

// SOIL

double *m_pW; // 流域内土壤湿度

double *m_pWu; // 流域内上层土壤湿度

double *m_pWl; // 流域内下层土壤适度

double *m_pWd; // 流域内深层土壤湿度

double m_Wum; // 流域内上层土壤蓄水容量

double m_Wlm; // 流域内下层土壤蓄水容量

double m_Wdm; // 流域内深层土壤蓄水容量,WDM=WM-WUM-WLM // EVAPORATION

double *m_pEu; // 上层土壤蒸发量(毫米)

double *m_pEl; // 下层土壤蒸发量(毫米)

double *m_pEd; // 深层土壤蒸发量(毫米)

//runoff

double *RF;

// PARAMETER

double m_Kc; // 流域蒸散发能力与实测蒸散发值的比

double m_IM; // 不透水面积占全流域面积之比

double m_B; // 蓄水容量曲线的方次,小流域(几平方公里)B0.1左右// 中等面积(平方公里以内).2~0.3,较大面积.3~0.4

double m_WM; // 流域平均蓄水容量(毫米)(WM=WUM+WLM+WDM) double m_C; // 流域内深层土壤蒸发系数,江南湿润地区:0.15-0.2,

//华北半湿润地区:.09-0.12

double m_SM; //自由水蓄水容量

double m_EX; //自由水蓄水容量~面积分布曲线指数

double m_KG; //地下水日出流系数

double m_KI; //壤中流日出流系数

double m_CG; //地下水消退系数

double m_CI; //壤中流消退系数

double *m_UH; // 单元流域上地面径流的单位线

double m_WMM; // 流域内最大蓄水容量

double m_Area; // 流域面积

int m_DeltaT; // 每一步长的小时数

int m_PD; // 给定数据,用以判断是否时行河道汇流计算

public:

XinanjiangModel(void);

~XinanjiangModel(void);

// 初始化模型

void InitModel(long nSteps, double Area,int DeltaT, int PD, char *ForcingFile);

// 设置模型参数

void SetParameters(double *Params);

// 运行新安江模型

void RunModel(void);

// 保存模拟结果到文件

void SaveResults(char *FileName);

// 记录出流数据,用以作图分析

void Runoff(char *runoff);

private:

// 进行汇流计算,将径流深度转换为流域出口的流量

void Routing(void);

};

以下是类的定义

#include"stdafx.h"

#include"xinanjiangmodel.h"

#include

#include

#include

usingnamespace std;

#include"math.h"

#include"stdio.h"

#include"conio.h"

XinanjiangModel::XinanjiangModel(void)

{

this->m_pP = NULL;

this->m_pEm = NULL;

this->m_pE = NULL;

this->m_pEd = NULL;

this->m_pEl = NULL;

this->m_pEu = NULL;

this->m_pW = NULL;

this->m_pWd = NULL;

this->m_pWl = NULL;

this->m_pWu = NULL;

this->m_pR = NULL;

this->m_pRg = NULL;

this->m_pRi = NULL;

this->m_pRs = NULL;

this->m_pQ = NULL;

this->m_pQrg = NULL;

this->m_pQri = NULL;

this->m_pQrs = NULL;

}

XinanjiangModel::~XinanjiangModel(void) {

delete[] this->m_pP;

delete[] this->m_pEm;

delete[] this->m_pE;

delete[] this->m_pEd;

delete[] this->m_pEl;

delete[] this->m_pEu;

delete[] this->m_pW;

delete[] this->m_pWd;

delete[] this->m_pWl;

delete[] this->m_pWu;

delete[] this->m_pR;

delete[] this->m_pRg;

delete[] this->m_pRi;

delete[] this->m_pRs;

delete[] this->m_pQ;

delete[] this->m_pQrg;

delete[] this->m_pQrs;

delete[] this->m_pQri;

}

// 初始化模型

void XinanjiangModel::InitModel(long nSteps, double Area, int DeltaT,int PD, char * ForcingFile)

{

FILE * fp;

int i;

this->m_nSteps = nSteps;

this->steps = this->m_nSteps + 18;

// 驱动数据

this->m_pP = newdouble[this->steps];

this->m_pEm = newdouble[this->steps];

// 模型输出,蒸散发项

this->m_pE = newdouble[this->steps];

this->m_pEd = newdouble[this->steps];

this->m_pEl = newdouble[this->steps];

this->m_pEu = newdouble[this->steps];

// 模型输出,出流项,经过汇流的产流

this->m_pQrg = newdouble[this->steps];

this->m_pQrs = newdouble[this->steps];

this->m_pQri = newdouble[this->steps];

this->m_pQ = newdouble[this->steps];

// 模型输出,产流项

this->m_pR = newdouble[this->steps];

this->m_pRg= newdouble[this->steps];

this->m_pRi= newdouble[this->steps];

this->m_pRs= newdouble[this->steps];

// 模型状态量,土壤湿度

this->m_pW = newdouble[this->steps];

this->m_pWd = newdouble[this->steps];

this->m_pWl = newdouble[this->steps];

this->m_pWu = newdouble[this->steps];

//runoff值

this->RF = newdouble[this->steps];

for(i = 0;isteps;i++ )

{

// 驱动数据

this->m_pP [i] = 0.00;

this->m_pEm [i] = 0.00;

// 模型输出,蒸散发项

this->m_pE [i] = 0.00;

this->m_pEd [i] = 0.00;

this->m_pEl [i] = 0.00;

this->m_pEu [i] = 0.00;

// 模型输出,出流项,经过汇流的产流this->m_pQrg[i] = 0.00;

this->m_pQrs[i] = 0.00;

this->m_pQri[i] = 0.00;

this->m_pQ[i] = 0.00;

// 模型输出,产流项

this->m_pR [i] = 0.00;

this->m_pRg [i] = 0.00;

this->m_pRi [i] = 0.00;

this->m_pRs [i] = 0.00;

// 模型状态量,土壤湿度

this->m_pW [i] = 0.00;

this->m_pWd[i] = 0.00;

this->m_pWl[i] = 0.00;

this->m_pWu[i] = 0.00;

}

this->m_Area = Area;

this->m_DeltaT = DeltaT;

this->m_PD = PD;

this->m_U = this->m_Area/(3.6 * this->m_DeltaT);

// Forcing文件格式:第一列:降水(单位毫米)空格第二列水面蒸发(毫米)if((fp = fopen(ForcingFile,"r")) == NULL)

{printf("Can not open forcing file!\n");return; }

for(i = 0;im_nSteps;i++ )

{fscanf(fp,"%lf%lf",&(this->m_pP[i]),&(this->m_pEm[i])); }

fclose(fp);

}

// 设置模型参数

void XinanjiangModel::SetParameters(double* Params)

{

this->m_Kc = Params[0]; // (1) 流域蒸散发能力与实测水面蒸发之比

this->m_IM = Params[1]; // (2) 流域不透水面积占全流域面积之比

this->m_B = Params[2]; // (3) 蓄水容量曲线的方次

this->m_Wum = Params[3]; // (4) 上层蓄水容量

this->m_Wlm = Params[4]; // (5) 下层蓄水容量

this->m_Wdm = Params[5]; // (6) 深层蓄水容量

this->m_C = Params[6]; // (7) 深层蒸散发系数

this->m_SM = Params[7]; // (8)自由水蓄水容量

this->m_EX = Params[8]; // (9)自由水蓄水容量~面积分布曲线指数

this->m_KG = Params[9]; // (10)地下水日出流系数

this->m_KI = Params[10]; // (11)壤中流日出流系数

this->m_CG = Params[11]; // (12)地下水消退系数

this->m_CI = Params[12]; // (13)壤中流消退系数

this->m_WM = this->m_Wum + this->m_Wlm + this->m_Wdm;

this->m_WMM = this->m_WM * (1.0 + this->m_B)/(1.0 - this->m_IM); }

// 运行新安江模型

void XinanjiangModel::RunModel(void)

{

long i;

// 模型的状态变量

double PE; // > 0 时为净雨量;< 0 为蒸发不足量(mm)

double Ep; //m_Kc * m_pEm[i]

double P;

double R; // 产流深度,包括地表径流、壤中流和地下径流(mm)double RB; // 不透水面上产生的径流深度(mm)

double RG; // 地下径流深度(mm)

double RI; // 壤中流深度(mm)

double RS; // 地表径流深(mm)

double A; //土壤湿度为W时土壤含水量折算成的径流深度(mm)double E = 0.0; // 蒸散发(mm)

double EU = 0.0; // 上层土壤蒸散发量(mm)

double EL = 0.0; // 下层土壤蒸散发量(mm)

double ED =0.0; // 深层土壤蒸散发量(mm)

double S;

double FRo;

double FR;

double MS;

double AU;

double WU = 5.0; // 流域内上层土壤湿度

double WL = 55.0; // 流域内下层土壤适度

double WD = 40.0; // 流域内深层土壤湿度

double W = 100.0;

double So = 5.0;

MS = m_SM * (1 + m_EX);

FRo = 1 - pow((1 - So/MS),m_EX);

for(i = 0;im_nSteps;i++ )

{

// ——————蒸散发计算————————————//

RB = m_pP[i] * m_IM; // RB是降在不透水面的降雨量

P = m_pP[i] * (1 - m_IM);

Ep = m_Kc * m_pEm[i];

if ((WU + P)>= Ep)

{EU = Ep; EL = 0; ED = 0; }

elseif((WU + P)

{

EU = WU + P;

if(WL>= (m_C * m_Wlm))

{EL = (Ep - EU) * WL/m_Wlm; ED = 0; }

elseif ((m_C * (Ep - EU))<= WL&&WL<(m_C * m_Wlm))

{EL = m_C * (Ep - EU); ED = 0; }

elseif (WL

{EL = WL; ED = m_C * (Ep - EU) - EL; }

}

E = EU + EL + ED;

PE = P - E;

/* ———————蒸散发计算结束——————————— */ //——————子流域产流量计算————————————// if(PE<= 0)

{R = 0.00;W = W + PE; }

else

{

A = m_WMM * (1 - pow( (1.0 - W/m_WM), 1.0/(1 + m_B) ) );

// 土壤湿度折算净雨量+降水后蒸发剩余雨量<流域内最大含水容量if((A + PE)m_WMM)

{

// 流域内的产流深度计算

R = PE /* 降水蒸发后的剩余量*/

+ W /* 流域内土壤湿度*/

+ m_WM * pow((1 - (PE + A)/m_WMM),(1 + m_B))

- m_WM /* 减去流域平均蓄水容量(m_WM:参数)*/

+ RB; /* 不透水面上产生的径流*/

}

// 土壤湿度折算净雨量+降水后蒸发剩余雨量<流域内最大含水容量else

{

// 流域内的产流深度计算

R = PE /* 降水蒸发后的剩余量+ W /* 流域内土壤湿度*/

- m_WM /* 减去流域平均蓄水容量*/

+ RB; /* 不透水面上产生的径流*/

}

}

//三层蓄水量的计算: WU, WL, WD

if(WU + P - EU - R <= m_Wum)

{WU = WU + P - EU - R;WL = WL - EL; WD = WD – ED; }

else

{

WU = m_Wum;

if(WL - EL + ( WU + P - EU - R - m_Wum ) <= m_Wlm )

{

WL = WL – EL + ( WU + P - EU - R - m_Wum );

WD = WD - ED;

}

else

{

WL = m_Wlm;

if(WD - ED + WL - EL + ( WU + P - EU - R - m_Wum )

- m_Wlm <= m_Wdm )

WD = WD - ED + WL - EL

+ (WU + P - EU - R - m_Wum ) - m_Wlm;

else

WD = m_Wdm;

}

}

W = WU + WL + WD;

////三水源划分汇流计算

if(PE>0)

{

FR = (R - RB) / PE;

AU = MS * (1 - pow((1 - So * FRo/FR/m_SM),1/(1 + m_EX)));

if(PE + AU

RS = FR * (PE + So * FRo/FR - m_SM + m_SM * pow((1 - (PE + AU) / MS),m_EX + 1));

elseif(PE + AU>= MS)

RS = FR * ( PE + So * Fro / FR - m_SM );

S = So * Fro / FR + ( R – RS ) / FR;

RI = m_KI * S * FR;

RG = m_KG * S * FR;

RS += RB;

R = RS + RI + RG;

So = S * ( 1 - m_KI - m_KG );

FRo = FR;

}

else

{

S = So;

FR = 1 - pow((1 – S / MS) , m_EX );

RI = 0.00;

RG = 0.00;

So = S * ( 1 - m_KI - m_KG );

RS = RB;

R = RS + RI + RG;

FRo = FR;

}

////三水源划分计算结束

/* 以下部分是状态量:总蒸发量、上、下和深层土壤的蒸发的保存*/ /* 1 */this->m_pE[i] = E; // 当前步长的蒸发(模型重要输出)/* 2 */this->m_pEu[i] = EU; // 当前步长上层土壤蒸发

/* 3 */this->m_pEl[i] = EL; // 当前步长下层土壤蒸发

/* 4 */this->m_pEd[i] = ED; // 当前步长深层土壤蒸发

/* 5 */this->m_pW[i] = W; // 当前步长流域平均土壤含水量

/* 6 */this->m_pWu[i] = WU; // 当前步长流域上层土壤含水量

/* 7 */this->m_pWl[i] = WL; // 当前步长流域下层土壤含水量

/* 8 */this->m_pWd[i] = WD; // 当前步长流域深层土壤含水量

/* 9 */this->m_pRg[i] = RG; // 当前步长流域地下径流深度

/* 10 */this->m_pRi[i] = RI; // 当前步长流域壤中流深度

/* 11 */this->m_pRs[i] = RS; // 当前步长流域地表径流径流深度

/* 12 */this->m_pR[i] = R; // 当前步长的总产流径流深度}

this->Routing();

}

// 保存模拟结果到文件

void XinanjiangModel::SaveResults(char* FileName)

{

int i;

FILE * fp;

if((fp = fopen(FileName,"w")) == NULL)

{

printf("Can not create output file!\n");

return;

}

fprintf(fp," - -- -- ---- - - -- -- ---- - ------ --- -- ------ - - -- ---- ----- -- - - ------- -- -- - \n");

fprintf(fp," E(mm) EU(mm) EL(mm) ED(mm) W(mm) WU(mm) WL(mm) WD(mm) R(mm) RS(mm) RI(mm) RG(mm) Q(m3/d) QS(m3/d)

QI(m3/d) QG(m3/d)\n");

fprintf(fp," - -- -- -- - - --- -- -- - - -- ----- -- - - -- -- -- - - -- -- --------- - - --

--------- -- -\n");

for(i = 0;isteps;i++ )

{

fprintf(fp,"%9.3lf%9.3lf%9.3lf%9.3lf%9.3lf%9.3lf%9.3lf%9.3lf%9.3lf%9.3lf%

9.3lf%9.3lf%9.3lf%9.3lf%9.3lf%9.3lf\n",

this->m_pE[i],this->m_pEu[i],this->m_pEl[i],this->m_pEd[i],

this->m_pW[i],this->m_pWu[i],this->m_pWl[i],this->m_pWd[i],

this->m_pR[i],this->m_pRs[i],this->m_pRi[i],this->m_pRg[i],

this->m_pQ[i],this->m_pQrs[i],this->m_pQri[i],this->m_pQrg[i]);

}

fclose(fp);

}

// 进行汇流计算,将径流深度转换为流域出口的流量

void XinanjiangModel::Routing(void)

{

///////////// 地面径流汇流计算:单位线法///////////////////////

int i,j;

double B[10000] = {0.00};

if (this->m_PD == 1)

{

double UH[] ={3.71,12.99,38.96,94.63,131.74,154.00,166.99,176.27,178.12,

172.55,146.58, 90.91,53.80, 31.54,18.55, 9.27, 3.71,0.00};

for(i = 0;im_nSteps;i++ )

{

for(j = 0;j<18;j++ )

{B[i + j] += this->m_pRs[i] * UH[j]/10.0;}

}

}

else

{

double UH[] ={7.18,23.38,63.20,143.10,221.75,365.18,447.40,491.29,

506.93,504.82,468.46,388.56,309.91,166.49,84.26,40.37,17.56,3.46};

for(i = 0;im_nSteps;i++ )

{

for(j = 0;j<18;j++ )

{B[i + j] += this->m_pRs[i] * UH[j]/10.0; }

}

}

for(i = 0;isteps;i++ )

this->m_pQrs[i] = B[i];

/////壤中流汇流计算:线性水库

for(i = 1;isteps;i++ ) {this->m_pQri[i] = this->m_CI * this->m_pQri[i - 1]

+ (1.0 - this->m_CI) * this->m_pRi[i] * this->m_U;} /////地下径流汇流计算:线性水库

for(i = 1;isteps;i++ ) {this->m_pQrg[i] = this->m_pQrg[i - 1] *

this->m_CG

+ this->m_pRg[i] * (1.0 - this->m_CG) * this->m_U; } //////单元面积总入流计算

for(i = 0;isteps;i++ )

{this->m_pQ[i] = this->m_pQrs[i] + this->m_pQri[i] + this->m_pQrg[i]; }

}

void XinanjiangModel::Runoff(char* runoff)

{

int i;

ofstream outfile;

outfile.open(runoff);

if(outfile.is_open())

{

for(i = 0;isteps;i++ )

{outfile<m_pQ[i]<

outfile.close();

}

以下是main()函数语句

int _tmain(int argc, _TCHAR * argv[])

{ long nSteps = 942;

int DeltaT = 24;

double Area1 = 1603;

XinanjiangModel Model1;

Model1.InitModel(nSteps, Area1,DeltaT,1,"LFForcingfile.txt");

//模型参数/*Kc,IM,B,m_Wum,Wlm,Wdm,C,SM,EX,KG,KI,CG,CI

double Params1[] = {0.50,0.01,0.30,10,60,40,0.18,32,1.2,0.075,0.072,0.94,0.7}; Model1.SetParameters(Params1);

Model1.RunModel();

Model1.SaveResults("来凤站日模型计算结果.txt");

Model1.Runoff("LF_Q.txt");

Model1.~XinanjiangModel();

double Area2 = 2991;

XinanjiangModel Model2;

Model2.InitModel(nSteps, Area2,DeltaT,0,"YCForcingfile.txt");

//模型参数/*Kc,IM,B,m_Wum,Wlm,Wdm,C,SM,EX,KG,KI,CG,CI

double Params2[] = {0.75,0.01,0.32,10,60,40,0.18,27,1.2,0.065,0.067,0.96,0.8}; Model2.SetParameters(Params2);

Model2.RunModel();

Model2.SaveResults("file.txt");

Model2.Runoff("YC_Q.txt");

Model2.~XinanjiangModel();

FILE *fp1,*fp2;

double Q1[1000],Q2[1000],Q[1000]={0.00};

ofstream outfile;

outfile.open("Q.txt");

if((fp1=fopen("LF_Q.txt","r"))==NULL)

{printf("Can not open the file!\n");return 0;}

if((fp2=fopen("YC_Q.txt","r"))==NULL)

{printf("Can not open the file!\n");return 0; }

if(outfile.is_open())

{

for(int i=0;i<960;i++)

{

fscanf(fp1,"%lf",&Q1[i]);

fscanf(fp2,"%lf",&Q2[i]);

Q[i]=Q1[i]+Q2[i];

outfile<

}

fclose(fp1);

fclose(fp2);

}

outfile.close() ;

return 0;

}

基于的和分布式水文模型的应用比较

基金项目 作者简介山西运城人教授 主要从事水文预报研究 基于的和分布式水文模型的应用比较 李致家 水资源环境学院江苏南京 摘要本文采用 对 建了基于 并将个模型应用 于黄河支流洛河卢氏以上流域的水文模型的参数率定和模拟比较 以探讨 个模型都能很好地进行水文过程模拟 其中基于 更好的效果 新安江模型 自世纪后半叶许多水文模型被提出并应用于实际 利用地理信息和遥感技术考虑流域空间变异性的分布式水 赵人俊 改进作者曾在产流机制基础上提出了一个基于 栅格和地形的分布式物理模型 模型 本文将 最后将 模型 如图所示将流域划分成栅格图中流域有模型以 基础提取水系划分子流域 进行单个栅格产流计算再以流向为基础生成河网采用 产流计算 将单元汇流带内的栅格通过土壤缺水量建立联模型的部分产流理论

单元汇流带示意 式中是单元栅格的地 形指数 关系 黏 壤 式中 和 指在沙 植被及根系截留计算 认为同类土地覆盖参数 在单元栅格上时段的降水量 植物截留 蒸散发计算 在 植被及根系截留层蒸散 蒸散发先发生在植被及根系截留层当植被及根系截留层的水分蒸发完毕 式中上上时段的植被及根系截 是单元栅格上的植被及根系截留层最大截流量 式中上 上 土壤水流计算 式中?

图 ? 汇流计算 由 格演算次序矩阵 采用 如图 栅格水流都流入 由 得 则 出流量 为 之及自身产流量 其中 基于子流域的模型和基于子流域的新安江模型 图? 新安江模型计算流程模型结构 将模型和新安江 模型与构建了两个分布式水文模 型 分别采用 入流进行河网演算得到流域出口断面的流量 图 基于子流域的等流时线汇流法基于子 的面积 或面积 设时刻子流域出口断面的流 量为 时刻子流域的平均产流量为 的水流才对出口断面的 时刻流量 由于至时刻的产流量对出口断面 时刻流量 从而通过积分可以得到将子流域根据平均水流路径划分成个汇流区第个汇流区累计以上汇流区的面积和占流域总 面积百分比为 个汇流区距离出口的平均水流路径为 个汇流区的平均水流速度为

新安江流域水文模型

2新安江流域水文模型 60年代初,河海大学(原华东水利学院)水文系赵人俊等开始研究蓄满产流模型,配合一定的汇流计算,将模型应用于水文预报和水文设计。1973年,他们在对新安江水库做入库流量预报的工作中,把他们的经验归纳成一个完整的降雨径流流域模型——新安江模型。模型可用于湿润地区和半湿润地区的湿润季节径流模拟和计算。 最初的新安江模型为两水源模型,只能模拟地表径流和地下径流。80年代初期,模型研制者将萨克拉门托模型与水箱模型中,用线性水库函数划分水源的概念引入新安江模型,提出了三水源新安江模型,模型可以模拟地面径流、壤中流、地下径流。1984至1986年,又提出了四水源新安江模型,可以模拟地面径流、壤中流、快速地下径流和慢速地下径流。三水源新安江模型一般应用效果较好,但模拟地下水丰富地区的日径流过程精度不够理想。在新安江三模型中增加慢速地下水结构就成为四水源新安江模型。 当流域面积较小时,新安江模型采用集总模型,当面积较大时,采用分块模型。分块模型把流域分成许多块单元流域,对每个单元流域做产、汇计算,得到单元流域的出口流量过程。再进行出口以下的河道洪水演算,求得流域出口的流量过程。把每个单元流域的出流过程相加,就求得了流域出口的总出流过程。 划分单元流域的主要目的是处理降雨分布的不均匀性,因此单元流域应当大小适当,使得每块面积上的降雨分布比较均匀。并有一定数目的雨量站。其次尽可能使单元流域与自然流域相一致,以便于分析与处理问题,并便于利用已有的小流域水文资料。如果流域内有大中型水库,则水库以上的集水面积即应作为一个单元流域。因为各单元流域的产汇、流计算方法基本相同,以下只讨论一个单元流域的情况。 新安江模型包括4个计算环节:蒸散发计算;流域产流计算;径流划分;汇流计算。4个计算环节分别概化了流域降雨径流的主要产、汇流物理过程。 2.1流域蒸散发计算 各种水源的蒸散发计算模型均可采用两层蒸发模型或两层蒸发模型,一般根据实际情况选用。原则是在模拟径流精度相同的情况下,尽量采用参数少的两层蒸散发模型。蒸散发模型不考虑面上分布的不均匀性,但可考虑土湿垂向分布的不均匀性。 两层蒸散发模型将土层分为上、下两层,各层蓄水容量分别为WUM、WLM

新安江模型 陕北模型

东南大学交通学院 桥涵水文资料整理 指导老师:许崇法 姓名:郭赵元 学号:21710131

目录 第一章新安江模型 (3) 1.1 新安江模型简介 (3) 1.2 新安江模型的基本原理 (3) 1.3 新安江模型结构 (4) 第二章陕北模型 (6) 2.1陕北模型简介 (6) 2.2 陕北模型结构 ............... .. (7) 2.3 模型评述 (8)

第一章新安江模型 1.1新安江模型简介 新安江模型始建于 1973 年,采用蓄满产流的概念,以土壤含水量达到田间持水量后才产流,是个分布式的概念性模型,30 多年来在我国湿润与半湿润地区有广泛应用,并发展改进为三水源的以及其他多水源的模型。 原华东水利学院的赵人俊教授于1963年初次提出湿润地区以蓄满产流为主的观点,主要根据是次洪的降雨径流关系与雨强无关,而只有用蓄满产流概念才能解释这一现象。上个世纪70年代国外对产流问题展开了理论研究,最有代表性的著作是1978年出版的《山坡水文学》,它的结论与赵人俊先生的观点基本一致:传统的超渗产流概念只适用于干旱地区,而在湿润地区,地面径流的机制是饱和坡面流,壤中流的作用很明显。20世纪70年代初建立的新安江模型采用蓄满概念是正确的。但对于湿润地区,由于没有划出壤中流,导致汇流的非线性程度偏高,效果不好。80年代初引进吸收了山坡水文学的概念,提出三水源的新安江模型。 1.2新安江模型的基本原理 新安江模型是分散性模型,可用于湿润地区与半湿润地区的湿润季节。当流域面积较小时,新安江模型采用集总模型,当面积较大时,采用分块模型。它把全流域分为许多块单元流域,对每个单元流域作产汇流计算,得出单元流域的出口流量过程。再进行出口以下的河道洪水演算,求得流域出口的流量过程。把每个单元流域的出流过程相加,就求得了流域的总出流过程。 该模型按照三层蒸散发模式计算流域蒸散发,按蓄满产流概念计算降雨产生的总径流量,采用流域蓄水曲线考虑下垫面不均匀对产流面积变化的影响。在径流成分划分方面,对三水源情况,按“山坡水文学”产流理论用一个具有有限容积和测孔、底孔的自由水蓄水库把总径流划分成饱和地面径流、壤中水径流和地下水径流。在汇流计算方面,单元面积的地面径流汇流一般采用单位线法,壤中水径流和地下水径流的汇流则采用线性水库法。河网汇流一般采用分段连续演算的Muskingum法或滞时-演算法,但它一般不作为新安江模型的主体。 新安江模型按泰森多边形法分块,以一个雨量站为中心划一块。这种分法便于考虑降雨分布不均,不考虑其它的分布不均。 新安江模型的流程图见图。图中输入为实测降雨P和实测蒸散发能力EM,输出为流域出口断面流量Q和流域蒸散发量E。方框内是状态变量,方框外是常数常量。模型主要由四部分组成,即蒸散发计算、产流量计算、水源划分和汇流计算。

论文实例-新安江模型评述

新安江模型评述 宫兴龙1 (1.东北农业大学水利学院、黑龙江、哈尔滨 150030) 摘要: 针对目前对新安江模型构建的机理和使用条件不是十分清楚的情况 (目的), 本文从新安江模型的面雨量算法的适用性、蓄水容量曲线的选取、产流机制、产流方法、汇流机理和汇流方法等六方面对新安江模型进行深入的分析。 (方法) 对目前新安江模型使用情况进行汇总和归纳出新安江使用情况。 (方法) 文章介绍了近年来新安江模型在结构、理论方法及应用等方面取得的进展,认为新安江模型是一个不断发展的模型理论体系。 (结论) 本文可以为应用新安江模型给提供参考,也为评述水文模型提供了方法。 (意义) 关键词:新安江模型;产流;汇流;模型应用 英文名称 GONG xinglong1 (1.School of Water Conservancy and Construction Northeast Agricultural University,Haerbin,150030)Abstract: Key words: 1.引言 1973年,河海大学赵人俊教授领导的研究组在编制新安江入库 1作者简介(小5黑):姓名(出生年份-),性别,××省××市(县)人,职务,学历。主要从事××××方面研究。E-mail:

洪水预报方案时,汇集了当时在产汇流理论方面的研究成果,并结合大流域洪水预报的特点,设计了国内第一个完整的流域水文模型—新安江流域水文模型,以下简称新安江模型。最初研制的是二水源新安江模型,80年代中期,借鉴山坡水文学的概念和国内外产汇流理论的研究成果,提出了三水源新安江模型。 (简要叙述一下模型的构建过程) 新安江被水文学家和学者广泛的应用和改进[1]。 (说明模型应用比较广泛、模型非常重 要或模型对学科有指导意义等) 虽然新安江模型被广泛的使用,但很多学者在应用时新安江模型时,对该模型构建的机理和使用条件认识不是十分清楚,在应用常常出现效果不好情况,针对这种情况本文对新安江模型构建和使用情况进行了一个深入的分析。 (发现模型构建上问题或使用问题, 本文采用什么方法进行处理, 得到的结果是什么样子) 2.蒸散发 新安江模型计算蒸散发是通过由水面蒸发推求流域蒸散发。 常用的水面蒸发有热量平衡法、空气动力学法、混合法、水量平衡法和经验公式法。 由于一个流域的水面蒸发应用公式法计算蒸发比较困难,传统的求水面蒸发是利用仪器进行观测,举例(), 站点设置要求 3.面雨量计算 由点雨量推求面雨量传统方法,泰森多边形法、算术平均、等雨量线法、距离倒数法等,雨量站设定的要求。 现代方法——降雨空间分布的测定——雷达测雨, 一般新安江模型采用泰森多边形,泰森多边形对雨量站要求? 如果选取算术平均对雨量站要求? 4.产流 产流机制有蓄满产流和超渗产流等两类。传统的新安江模型使用蓄

用中国洪水预报系统率定丰良河洪水参数

用中国洪水预报系统率定丰良河洪水参数 摘要:利用水利部“948”项目“交互式洪水预报系统”(也称“中国洪水预报系统”)平台,使用三水源新安江模型,对丰良河的棠荆水文站小流域洪水进行参数率定,并对率定结果进行分析,确定适合该小流域洪水特征的参数,增加模型洪水计算的拟合度。得到较好的洪水预报方案。 关键词:小流域,中国洪水预报系统,丰良河,棠荆,参数 引言 应用新安江三水源模型对洪水预报方案进行参数率定,是目前使用较多的一种洪水预报方案制作方法。但对小流域的洪水预报方案往往结果不太理想。主要原因是小流域洪水特征是陡涨陡落,汇流时间快,预见期短,而且一般小流域水文站点稀少,雨量站点也相对不足,从而导致小流域的洪水预报能力相对薄弱。笔者使用“948”项目的“中国洪水预报系统”软件,率定丰良河棠荆站的洪水预报方案,并对率定的参数进行分析、修改和评价。 丰良河是韩江一级支流,发源于兴宁市铁牛牯,于青溪流入丰顺境内,于黄金望楼汇白溪,于高园汇龙溪,流经广洋,在站口汇入韩江。流域集水面积899km2,河长75km,平均坡降0.286%。流域内的白溪和龙溪两条支流的集水面积超过100km2,流域内水力资源丰富,理论蕴藏量4.96万kw。在下游广洋、站口河段两岸,土地低洼、加上受韩江顶托影响,常遭洪涝灾害威胁。建国后经裁弯取顺,在黄金万亩洪泛区兴建了防洪治涝工程,大大改善了农业生产和人们生活条件。 棠荆站地处丰良河中段,位于丰顺县丰良镇,东经116°12′48″,北纬23°58′18″(该站位置见图1)。集水面积267km2,河流全长75km,源头至棠荆站测验断面长33km。是韩江中下游产汇流分析研究的代表站,用于研究粤东莲花山以南高山降水和丰良河各水文要素的特征关系,为二类精度水文站。 图1 棠荆站在流域中的位置示意图 丰良河源头至棠荆站测验断面的汇流时间约4小时,棠荆站至丰良河出口传播时间约6

新安江模型程序C 代码

新安江模型程序C++代码 以下是类的声明: class XinanjiangModel { private: // FORCING double *m_pP; // 降水数据 double *m_pEm; // 水面蒸发数据 // long m_nSteps; // 模型要运行的步长(一共m_nSteps步) long steps; // OUTPUT double *m_pR; // 流域内每一步长的产流量(径流深度) double *m_pRs; // 每一步长的地表径流深(毫米) double *m_pRi; // 每一步长的壤中流深(毫米) double *m_pRg; // 每一步长的地下径流深(毫米) double *m_pE; // 每一步长的蒸发(毫米) double *m_pQrs; // 流域出口地表径流量 double *m_pQri; // 流域出口壤中流径流流量 double *m_pQrg; // 流域出口地下径流量 double *m_pQ; // 流域出口的总流量 double m_U; // for 24h. U=A(km^2)/3.6/delta_t // SOIL double *m_pW; // 流域内土壤湿度 double *m_pWu; // 流域内上层土壤湿度 double *m_pWl; // 流域内下层土壤适度 double *m_pWd; // 流域内深层土壤湿度 double m_Wum; // 流域内上层土壤蓄水容量 double m_Wlm; // 流域内下层土壤蓄水容量

double m_Wdm; // 流域内深层土壤蓄水容量,WDM=WM-WUM-WLM // EVAPORATION double *m_pEu; // 上层土壤蒸发量(毫米) double *m_pEl; // 下层土壤蒸发量(毫米) double *m_pEd; // 深层土壤蒸发量(毫米) //runoff double *RF; // PARAMETER double m_Kc; // 流域蒸散发能力与实测蒸散发值的比 double m_IM; // 不透水面积占全流域面积之比 double m_B; // 蓄水容量曲线的方次,小流域(几平方公里)B0.1左右 // 中等面积(平方公里以内).2~0.3,较大面积.3~0.4 double m_WM; // 流域平均蓄水容量(毫米)(WM=WUM+WLM+WDM) double m_C; // 流域内深层土壤蒸发系数,江南湿润地区:0.15-0.2, //华北半湿润地区:.09-0.12 double m_SM; //自由水蓄水容量 double m_EX; //自由水蓄水容量~面积分布曲线指数 double m_KG; //地下水日出流系数 double m_KI; //壤中流日出流系数 double m_CG; //地下水消退系数 double m_CI; //壤中流消退系数 double *m_UH; // 单元流域上地面径流的单位线 double m_WMM; // 流域内最大蓄水容量 double m_Area; // 流域面积 int m_DeltaT; // 每一步长的小时数 int m_PD; // 给定数据,用以判断是否时行河道汇流计算 public: XinanjiangModel(void); ~XinanjiangModel(void); // 初始化模型

新安江模型介绍

新安江模型介绍: 三水源新安江模型蒸散发计算采用三层模型;产流计算采用蓄满产流模型;用自由水蓄水库结构将总径流划分为地表径流、壤中流和地下径流三种;流域汇流计算采用线性水库。模型结构: 模型计算: 在新安江模型中,流域蒸散发计算没有考虑流域内土壤含水量在面上分布的不均匀性,而是按土壤垂向分布的不均匀性将土层分为三层,用三层蒸散发模型计算蒸散发量。参数有流域平均张力水容量WM(mm),上层张力水容量UM(mm),下层张力水容量LM(mm),深层张力水容量DM(mm),蒸散发折算系数KC和深层蒸散发扩散系数C。 具体计算为 若P+WU>=EP,则EU=EP,EL=0,ED=0; 若P+WUC*LM,则WL=(EP-EU)WL/LM,ED=0; 若WL=C*(EP-EU),则EL=C*(EP-EU),ED=0; 若WL

水文预报课程设计心得体会

水文预报课程设计心得体会 篇一:水文预报课程设计报告 河海大学文天学院 水文预报课程设计报告 指导老师:专业班级:学号姓名: 年月日 目录 第一章基本任务............................................ 3 第二章基本资料.. (4) 1、流域概况............................................ 4 2、基本资料............................................ 5 3、计算参数............................................ 5 第三章计算公式.. (6) 1、蒸散发计算.......................................... 6 2、产流量计算.......................................... 6 3、水源

划分............................................ 7 4、汇流计算............................................ 7 第四章基本数据............................................ 8 第五章结果评定及分析..................................... 11 第六章计算程序及说明..................................... 13 第七章总结和心得.. (23) 任务一: 编写新安江模型,包括两种时间尺度:日模型(24h)、次洪模型(1h);(1)进行日模型产流量计算;(2)比较计算年径流与实测年径流;(3)通过误差分析,优选蒸发折算系数Kc; (4)89~94年的历时数据作为率定参数,95~96年的数据作为模型检验。任务二: 根据已给的呈村流域资料,利用编制的新安江模型进行日径流模拟与次洪过程模拟,率定新安江模型参数。任务三: 分析日模型与次洪模型模拟结果,

新安江模型VB代码

Dim P(25), EI(25), PE(25), A(25), AU(25), FR(25), W(25), WU(25), WL(25), WD(25), E(25), EU(25), EL(25), ED(25), R2(25), R3(25), RS(25), RG(25), RSS(25), RIMP(25), QR(25), QRG(25), QRSS(25), QRSP(25), S(25), UH(3), q(3) As Single Dim N, m, K, B, C, D, EX, SM, SSM, MP, KG, KSS, KKSS, KGD, KSSD, KKGD, KKG, WM, WWMM, WUM, WLM, WDM, DT, UN, QRSS0, QRG0, F, i, j As Single Private Sub Command1_Click() Static ik As Integer ik = ik + 1 Command1.Caption = "您还需计算" & 7 - ik & " 次" If ik = 7 Then Command1.Enabled = False Set xlbook = GetObject(App.Path & "\" & "xaj.xls") xlbook.application.Visible = True: xlbook.windows(1).Visible = True Set xlsheet1 = xlbook.worksheets("sheet1") Set xlsheet2 = xlbook.worksheets("sheet2") K = xlsheet1.Cells(3, 1) C = xlsheet1.Cells(3, 2) B = xlsheet1.Cells(3, 3) SM = xlsheet1.Cells(3, 5) WUM = xlsheet1.Cells(3, 6) WLM = xlsheet1.Cells(3, 7) WDM = xlsheet1.Cells(3, 8) EX = xlsheet1.Cells(3, 9) KG = xlsheet1.Cells(3, 10) KSS = xlsheet1.Cells(3, 11) KKG = xlsheet1.Cells(3, 12) KKSS = xlsheet1.Cells(3, 13) DT = xlsheet1.Cells(3, 14) UH(1) = xlsheet1.Cells(3, 15) UH(2) = xlsheet1.Cells(3, 16) UH(3) = xlsheet1.Cells(3, 17) WU(0) = xlsheet1.Cells(3, 18) WL(0) = xlsheet1.Cells(3, 19) WD(0) = xlsheet1.Cells(3, 20) FR(0) = xlsheet1.Cells(3, 21) S(0) = xlsheet1.Cells(3, 22) QRSS(0) = xlsheet1.Cells(3, 23) QRG(0) = xlsheet1.Cells(3, 24) F = xlsheet1.Cells(3, 25) MP = 0: RS(0) = 0: W(0) = 150 WM = (WUM + WLM + WDM) WWMM = WM * (1 + B) SSM = SM * (1 + EX) KSSD = (1 - (1 - (KG + KSS)) ^ (DT / 24)) / (1 + KG / KSS)

新安江模型的应用

新安江模型的应用 张利茹 河海大学水文水资源学院,南京(210098) 摘要:新安江降雨径流模型应用在梁辉水库上,采用2002年至2006年五年的降雨和蒸发资料对该流域进行日模和次模的模拟,得出的结果还比较满意。为了找出新安江模型的敏感性参数,本文在其他研究人员的基础上,选出公认的比较敏感的参数,把它们的值分别变成初始值的80%、90%和110%(CG除外)后进行模拟计算,得出的结果证实了学者们的说法。 关键词:新安江模型,梁辉水库,敏感性分析 1. 新安江模型简介 新安江模型始建于1973年,采用蓄满产流的概念,以土壤含水量达到田间持水量后才产流,是个分布式的概念性模型,30多年来在我国湿润与半湿润地区有广泛应用,并发展改进为三水源的以及其他多水源的模型【1】。几十年来,很多专家和学者都致力于新安江模型的应用和发展上,发表了数以百计篇文章(像赵仁俊,1992;程等人,2002),但很少有用一个实际例子来研究新安江模型参数的敏感性问题的,实际上,新安江模型参数的命感性分析会有助于该模型的更广泛的应用,例如,对于无资料的地区或是资料不全的地区,参数的敏感性分析将显得更加有用。 2. 新安江模型结构 新安江模型是分散性的模型,常按泰森多边形法把全流域分成许多单元流域,产流部分采用蓄满产流模型,另增加了流域不透水面积占全流域面积之比的参数IMP。蒸发部分采用三水源蒸散发模式。河道洪水演算采用马斯京根法。地面径流的汇流采用经验单位线,并假定每个单元流域上的无因次单位线相同,简化结构。地下径流的汇流采用线性水库。对每一个单元流域作汇流计算,求得单元流域出口流量过程。再进行出口以下的河道洪水演算,得出流域出口的流量过程。把每个单元流域的出流过程相加,就求得了流域出口的总出流过程[2]。新安江模型流程图如图1。 基于概念型降雨径流蓄满产流的新安江模型,其参数可大致划分为四种类型,如下述:(1)蒸散发。此部分的参数包括K、C、WUM、WLM。 K:流域蒸散发能力与实测水面蒸发值之比。它反映蒸发皿蒸发量与流域蒸发能力的差别,也反映蒸发皿蒸发量对全流域(高程差)的代表性问题,对具体流域来说,以优选为宜,即选模拟径流误差最小时的K值。夏天其值一般取1.3~1.5,冬天一般取1.0。 C:深层蒸散发系数。它决定于深根植物占流域面积的比值,同时也与WUM+WLM

新安江模型原理

新安江模型基本原理 1.1 新安江模型原理 原华东水利学院(现为河海大学)的赵人俊教授于 1963 年初次提出湿润地区以 蓄满产流为主的观点, 主要根据是次洪的降雨径流关系与雨强无关, 而只有用蓄满产 流概念才能解释这一现象。上个世纪 70 年代国外对产流问题展开了理论研究,最有 代表性的著作是 1978 年出版的《山坡水文学》,它的结论与赵人俊教授的观点基本一 致:传统的超渗流概念只适用于干旱地区, 而在湿润地区, 地面径流的机制是饱和坡 面流、壤中流的作用很明显。 20世纪 70 年代初建立的新安江模型采用蓄满概念是正 确的。但对于湿润地区,由于没有划出壤中流,导致汇流的非线性程度偏高,效果不 好。 80 年代初引进了山坡水文学的概念,提出三水源的新安江模型。新安江三水源 模型流程图见下图 1.1。 图 1.1 三水源新安江模型流程图 新安江水文模型按照三层蒸散发模式计算流域蒸散发, 按蓄满产流概念计算降雨 产生的总径流量, 采用流域蓄水曲线考虑下垫面不均匀对产流面积变化的影响。 在径 流成分划分方面,对三水源情况,按“山坡水文学”产流理论用一个具有有限容积和 测孔、孔底的自由水蓄水库把总径流划分为饱和地面径流、 壤中水径流和地下水径流。 在汇流计算方面, 单元面积的地面径流汇流一般采用单位线法, 壤中水径流和地下水 径流的汇流则采用线性水库法。河网汇流一般采用分段连续演算的 Muskingum 法或 UH 或L , CS 单元 面积 出流 KE XE IM WM B UM S KG LM C 不透水面积产流 RB 壤中总 入流QI CG 地下流 RG SM EX

新安江模型原理

一新安江模型基本原理 1.1新安江模型原理 原华东水利学院(现为河海大学)的赵人俊教授于1963年初次提出湿润地区以蓄满产流为主的观点,主要根据是次洪的降雨径流关系与雨强无关,而只有用蓄满产流概念才能解释这一现象。上个世纪70年代国外对产流问题展开了理论研究,最有代表性的著作是1978年出版的《山坡水文学》,它的结论与赵人俊教授的观点基本一致:传统的超渗流概念只适用于干旱地区,而在湿润地区,地面径流的机制是饱和坡面流、壤中流的作用很明显。20世纪70年代初建立的新安江模型采用蓄满概念是正确的。但对于湿润地区,由于没有划出壤中流,导致汇流的非线性程度偏高,效果不好。80年代初引进了山坡水文学的概念,提出三水源的新安江模型。新安江三水源模型流程图见下图1.1。 图1.1 三水源新安江模型流程图 新安江水文模型按照三层蒸散发模式计算流域蒸散发,按蓄满产流概念计算降雨产生的总径流量,采用流域蓄水曲线考虑下垫面不均匀对产流面积变化的影响。在径流成分划分方面,对三水源情况,按“山坡水文学”产流理论用一个具有有限容积和测孔、孔底的自由水蓄水库把总径流划分为饱和地面径流、壤中水径流和地下水径流。在汇流计算方面,单元面积的地面径流汇流一般采用单位线法,壤中水径流和地下水径流的汇流则采用线性水库法。河网汇流一般采用分段连续演算的Muskingum法或

滞时演算法,但它一般不作为新安江模型的主体。模型中主要参数如表1.1所示。 表1.1 新安江(三水源)模型参数的定义 参数含义 K蒸散发能力折算系数 WM流域蓄水容量 UM上层蓄水容量 LM下层蓄水容量 C深层蒸散发系数 IM不透水面积占全流域面积之比 B蓄水容量曲线指数 SM流域自由水蓄水容量 EX自由水蓄水容量曲线指数 KI壤中水径流出流系数 KG地下水径流出流系数 CS地面径流消退系数 CI壤中水径流消退系数 CG地下水径流消退系数 N子河段数 KE子河段洪水波传播时间 XE子河段流量比重因子概念性模型的结构反应客观水文规律,参数应该代表流域的水文特征,把模型设计为分散性的,主要是为了考虑降雨分布不均的影响,其次也便于考虑下垫面条件的

新安江模型研究(完整资料).doc

新安江模型 新安江模型的流程图 图中输入为实测降雨P和实测蒸散发能力EM,输出为流域出口断面流量Q和流域蒸散发量E 。方框内是状态变量,方框外是常数常量。模型主要由四部分组成,即蒸散发计算、产流计算、水源划分和汇流计算。 变量符号说明: P,实测降雨(已知) E,流域蒸散发量(第一步计算已知) PE,降雨减去蒸发量(产流计算的输入) R,流域产流量(产流计算的输出) W,流域时段末土壤平均蓄水量,产流计算的输出 KC,蒸发折算系数 C,深层蒸散发折算系数 WM,流域总蓄水容量 B,抛物线指数 1蒸发量计算 各层蒸散发的计算原则是,上层按蒸散发能力蒸发,上层含水量蒸发量不够蒸发时,剩余蒸散发能力从下层蒸发,下层蒸发与蒸散发能力及下层含水量成正比,与下层蓄水容量成反比。要求计算的下层蒸发量与剩余蒸散发能力之比不小于深层蒸散发系数C。否则,不足部分由下层含水量补给,当下层水量不够补给时,用深层含水量补。

输入: (1)KC ,蒸发折算系数 (2)上、下、深三层的蓄水容量WUM 、WLM 和WDM (WM=WUM+WLM+WDM ) (3)C ,深层蒸散发折算系数 输出: (1)上、下、深各层的流域蒸散发量EU 、EL 和ED (E=EU+EL+ED ) -- 时段值 (2)上、下、深三层的含水量WU 、WL 和WD (W=WU+WL+WD ) -- 时段值 注:以上的WM 、E 、W 分别表示总的流域蓄水容量、蒸散发量、土壤含水量。 计算公式: EP=K×E 0(E 0,实测水面蒸发量,划分为时段值),WU 0日模拟合而来。 一阶段:当 P+WU ≧EP 时,EU=EP 、EL=0、ED=0,此时WU(t+1)=P(t)+WU(t)-EU(t) 二阶段:当 P+WUC×WLM 则 EL=(EP -EU)×WL/WLM 、ED=0 若WL

水文模型参数多目标率定及最优非劣解优选

第37卷第2期 2017年4月 水文 JOURNAL OF CHINA HYDROLOGY Vol.37 No.2 Apr., 2017水文模型参数多目标率定及最优非劣解优选周建中\卢韦伟\孙娜\叶磊2袁张海荣\陈璐1 (1.华中科技大学水电与数字化工程学院,湖北武汉430074;2.大连理工大学水利工程学院,辽宁大连116024) 摘要:针对概念性水文模型参数众多、相互制约,且多目标参数优化率定最优参数求解困难、易受决策者 主观因素影响的问题,采用多目标优化算法对水文模型参数进行率定,得到模型参数最优非劣解集,在此基 础上,引入最小最大后悔值决策理论,并结合Pareto支配基本理论,提出了一种多目标最优非劣解选取准 则。以柘溪流域为研究对象,采用三目标MOSCDE优化率定新安江模型的参数,并与单目标SCE-UA优化 结果进行对比分析。结果表明,提出的非劣解选取方法可以有效从大规模非劣解集中筛选出最优非劣解,大大缩短参数率定耗时。 关键词:水文模型参数率定;多目标优化;参数最优非劣解优选;最小最大后悔值决策 中图分类号:P333 文献标识码:A文章编号=1000-0852(2017)02-0001-07 1引言 如何提高水文模型预报精度一直是水文领域的重 难点问题之一。水文模型参数优化率定通过最大程度 降低水文模型参数不确定性,从而达到提高水文模型预 报精度的目的。水文模型参数优化率定对提升水文模型 整体预报性能和水文预报精度有着极大的推动作用。 早期水文模型参数优化率定采用遗传算法[1-2]、粒 子群算法[3'SCE-UA[5-6]等单目标算法来分别确定水 文模型的各参数。然而,大量水文模型参数率定的理 论研究和实践应用表明:单目标函数仅反映了水文过 程的某一特性,无法全面刻画水文过程的动力特性和 参数间的相互作用关系,且单目标算法易陷入局部最 优[7]。因此,水文学者将多目标优化理论引入水文模型 参数率定中,并围绕水文模型参数多目标优化率定 开展了大量研究工作。Yapo等[8]提出多目标优化算法 MOCOM-UA,并通过实例分析检验了 MOCOM-UA算 法的正确性和可靠性;Vrugt等[9]在单目标SCE-UA算 法的基础上,提出了多目标优化算法MOSCEM-UA,并成功验证了该算法的有效性;Tang等网将SPEA2、着-NSGAII和MOSCEM-UA等常用的多目标优化算法 应用于水文模型参数优化率定中,并比较其计算性能,研究结果表明SPEA2和着-NSGA-II算法的性能优于MOSCEM-UA算法;张文明等[11]将存档群体和拥挤距 离机制引入粒子群算法,从而建立了基于粒子群算法 的多目标算法,通过与单目标优化结果的对比,检验 了该算法的优越性;郭俊等[12]运用经典多目标优化算 法NSGA-II对水文模型参数多目标优化率定,并提出 目标组合优化结果比较方法,研究结果表明该方法可 有效分析不同目标组合对优化结果的影响。 上述研究工作主要集中于多目标优化算法本身 的设计和改进。然而,水文模型多目标参数优化率定 不仅要解决多目标建模及其模型求解的难题,如何针 对生成的参数非劣解集优选最优参数是水文模型参 数多目标优化普适性应用的技术瓶颈。针对这一问 题,本文在水文模型参数多目标优化应用研究的基础 上,基于Pareto支配以及最小最大后悔值决策理论,提出一种最优非劣解准则,用以确定非劣解集的最优 非劣解,该方法可显著缩短问题求解时间,对多目标 参数优化率定的推广应用具有主要价值。以柘溪流域 新安江模型多目标参数率定为例,旨在快速、准确的 优选最优非劣解,为柘溪流域水文预报提出更为全面 的决策参考依据。 2水文模型参数多目标优化率定 水文模型参数多目标优化率定是选取多个目标 收稿日期:2016-07-09 基金项目:国家自然科学基金重大研究计划重点支持项目(91547208);国家自然科学基金项目(51579017);水利部公益性行业科研专项经费 项目(201401014-2) 作者简介:周建中(1959-),男,湖北武汉人,教授,博导,研究方向为水电能源及其复杂系统分析的先进理论与方法。E-mail:jz.zhou@https://www.360docs.net/doc/d22703992.html, 通讯作者:卢韦伟(1991-),女,湖北仙桃人,硕士研究生,研究方向为水文预报与水文分析计算。E-mail:luweiwei@https://www.360docs.net/doc/d22703992.html,en---------------------------

新安江流域水文模型.

第二章新安江流域水文模型 60年代初,河海大学(原华东水利学院)水文系赵人授等开始研究蓄满产流模型,配合一定的汇流计算,将模型应用于水文预报和水文设计。1973年,他们在对新安江水库做人库流量预报的工作中,把他们的经验归纳成一个完整的降雨径流流域模型——新安江模型。模型可用于湿润地区和半湿润地区的湿润季节径流模拟和计算。 最初的新安江模型为两水源模型,只能模拟地表径流和地下径流。80年代初期,模型研制者将萨克拉门托模型与水箱模型中,用线性水库函数划分水源的概念引入新安江模型,提出了三水源新安江模型,模型可以模拟地面径流、壤中流、地下径流。1984至1986年,又提出了四水源新安江模型,可以模拟地面径流、壤中流、快速地下径流和慢速地下径流。三水源新安江模型一般应用效果较好,但模拟地下水丰富地区的日径流过程精度不够理想。在新安江三模型中增加慢速地下水结构就成为四水源新安江模型。 当流域面积较小时,新安江模型采用集总模型,当面积较大时,采用分块模型。分块模型把流域分成许多块单元流域,对每个单元流域做产、汇计算,得到单元流域的出口流量过程。再进行出口以下的河道洪水演算,求得流域出口的流量过程。把每个单元流域的出流过程相加,就求得了流域出口的总出流过程。 划分单元流域的主要目的是处理降雨分布的不均匀性,因此单元流域应当大小适当,使得每块面积上的降雨分布比较均匀.并有一定数目的雨量站。其次尽可能使单元流域与自然流域相一致,以便于分析与处理问题,并便于利用已有的小流域水文资料。如果流域内有大中型水库,则水库以上的集水面积即应作为一个单元流域。因为各单元流域的产汇、流计算方法基本相同,以下只讨论一个单元流域的情况。 2.1新安江两水源模型 1.模型结构和参数 新安江两水源模型的产流子模型采用蓄满产流模型,蒸发计算采用三层蒸发计算模型。利用稳定下渗率FC将径流划分为地面径流和地下径流两种水源。地面径流采用单位线汇流,地下径流采用一次线性水库汇流。模型把流域面积划分为透水面积和不透水面积两部分,不透水面积上的降水在满足蒸发后将直接转化为地面径流。透水面积上将发生下渗,下渗的水量一部分存储于土壤层,后期耗于蒸发;满足了流域土壤蓄水容量后的下渗水量才能转化为径流。 不透水面积用参数IMP表示,它是用流域内不透水面积占全流域面积的百分比表示的。新安江模型的输出是流域出流过程t E~, Q~和流域蒸散发过程t 输入则为时段降雨量P、蒸发皿观测蒸发量EI。 新安江两水源模型共有9个参数,一条单位线。 K——流域蒸发折算系数,是流域蒸散发能力与蒸发皿蒸发量之比; C——深层蒸散发系数;

水文预报考试重点

.水文预报:根据已知的信息对未来一定时期内的水文状态做出定性或定量的预测。内容:洪水预报、旱情预报、估计径流预报、融雪径流预报、冰清预报。 .实时洪水预报:指的是对将发生的未来洪水在实际时间进行预报,实际时间就是观测降雨即时进入数据库的时间。 .产流模式:蓄满、超渗产流。区别:超渗产流在一次洪水过程线中没有或者基本没有地下径流,而蓄满产流的地下径流比例大。1超渗产流:干旱和半干旱地区的地下水埋藏很深,包气带可达几十米甚至上百米,降水不易使包气带蓄满,下渗的水量一般不会产生地下径流。只有降水强度超过下渗率时才有地面径流产生,地下径流量RG很少。这种产流方式,称为超渗产流。原理:当PE<=F,RS=0,当PE>=F,RS=PE—F,一般,干旱地区,降雨强度大,历时短,E可忽略,PE可由P代替。2蓄满产流:又称超蓄产流。因降水使土壤包气带和饱水带基本饱和而产生径流的方式,是降雨径流的产流方式之一。原理:任一地点上,土壤含水量达蓄满(即达田间持水量)前,降雨量全部补充土壤含水量,不产流;当土壤蓄满后,其后续降雨量全部产生径流。 .下渗曲线制作:下渗能力随时间的变化过程线。以f(t)~t表示。下渗的水量用累积下渗量F 随时间的增长曲线来表示。 .流域蓄水容量曲线:流域内各点包气带的蓄水容量是不同的,将各点包气带蓄水容量从小到大排列,以包气带达到田间持水量时的土壤含水量WM′为纵坐标,以流域内小于等于该 WM′的面积占全流域的面积比α为横坐标,反映土壤缺水量空间分布的不均匀性。 .地表径流:一部分大气降水落到地面后,沿着斜坡形成漫流,注入河流,汇入海洋的水流。.地下径流:渗入地下成为地下水,并以泉水或渗透水的形式泄入河道的那部分降水。 .地面地下径流流量过程线区别:1地面径流的运动路径短,汇集速度快,受流域的调蓄作用小,流量过程线呈陡涨陡落,对称性好;2地下径流的水流汇集过程运动于土壤空隙中,流速小,受流域的调蓄作用大,流量过程线呈缓涨缓落变化,时间上滞后于地面径流。 .水源划分及形式:二水源划分(直接径流+地下径流);三水源划分(地面径流,壤中流,地下径流) .不对称系数计算要求:1进行过程线转化;2孤立洪水,不适用于复式洪水 .影响土壤蒸发因素:气象、土壤供水条件、土壤结构 .土壤蒸发三阶段特征:1第一阶段:θ>= θc1(田间持水量)蒸发主要发生在土壤表层,表层土壤因蒸发而减少的水量通过毛管作用由下层得到充分补充,主要取决于气象因素,蒸发量等于流域蒸发能力;2第二阶段:(毛管断裂含水量)θc2<θ<θc1 ,E继续,θ减小,上层土壤毛管水开始断裂,随着θ减小,毛管水断裂程度越来越严重,下层对上层供水速率变慢,蒸发受气象因素和土壤含水率影;3第三阶段:θ<=θc2 毛管输送水分完全破坏,只能以膜状水或气态水形式移动,速度慢,数量小,E小而稳定,取决于气象因素和地下水的埋深。 .KC影响:1反应水面与陆面蒸发的差异K1;2水面与陆面所在的地理位置差异K2;3器皿与水面的蒸发差异K3。 .水面蒸发量估计方法:水库水量平衡法,空气动力学法,彭曼公式,经验公式法 .一二三层蒸发模式优缺点:三层蒸发模式计算的额蒸发量最大,二层次之,一层最小。从模式的计算结构和蒸发物理机制看,二层模式简化了深层结构,忽略了植物根系对土壤水分的蒸发作用,导致蒸发量计算值比三层模式的蒸发量小;在久旱之后,当ML很小且持续无雨时,用二层模式计算出的蒸发量常是偏小的。一层蒸发模式中,既没有考虑深层蒸发与植物根系扩散作用,也没有考虑充分供水时应按蒸发能力蒸发,使得计算的蒸发量偏小的更多。.不同水源成分汇流特点:1地面径流:由坡面直接汇入河网,运动速度快,流程短、受到调蓄作用小;形成的流量过程呈陡涨陡落,是涨洪和洪峰附近流量过程的主体部分;2地下

相关文档
最新文档