新安江模型程序核心源代码.docx

上传人:啊飒飒 文档编号:11061958 上传时间:2021-06-24 格式:DOCX 页数:10 大小:14.77KB
返回 下载 相关 举报
新安江模型程序核心源代码.docx_第1页
第1页 / 共10页
新安江模型程序核心源代码.docx_第2页
第2页 / 共10页
新安江模型程序核心源代码.docx_第3页
第3页 / 共10页
新安江模型程序核心源代码.docx_第4页
第4页 / 共10页
新安江模型程序核心源代码.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《新安江模型程序核心源代码.docx》由会员分享,可在线阅读,更多相关《新安江模型程序核心源代码.docx(10页珍藏版)》请在三一文库上搜索。

1、%新安江模型程序核心源代码function Qr=XAJ_JUN(DAREA,DT,EM,WwU,WwL,WwD,P,S0, FR0, Qrs0, Qrss0, Qrg0,parameter,Qm)% XAJ是新安江的运行程序,用于单纯形和遗传算法调用,也用于新安江模型的预报 Imp1=parameter.IMP ; %流域不透水面积比: 次洪 Kc= parameter.Kc ; %流域蒸散发折算系数:多年总径流量决定 WMU=parameter.WMU ; %流域上层蓄水容量 WML=parameter.WML ; %流域中层蓄水容量 WMD = parameter.WMD ; %流域下层

2、蓄水容量 B = parameter.B ; %流域蓄水容量分布曲线指数 C = parameter.C ; %流域深层蒸发系数 Ex = parameter.Ex; %流域自由水分布曲线指数 SM = parameter.SM ; %流域自由水平均蓄水容量 Ki = parameter.Ki ; %自由水箱壤中流出流系数 Kg = parameter.Kg ; %自由水箱地下水出流系数 Cs = parameter.Cs ; %地面水线性水库汇流系数 Ci = parameter.Ci ; %壤中流线性水库汇流系数 Cg = parameter.Cg ; %地下水线性水库汇流系数 Ke =

3、parameter.Ke ; %马斯京根法河段传播时间 Xe = parameter.Xe ; %马斯京根法流量比重系数 L = parameter.L ; %滞后演算法参数 %次洪决定:WM,B,Imp %WwU(0)=WwU;WwL(0)=WwL;WwD(0)=WwD; %由于日模型与次洪模型的计算时段长不同,参数值不能全部通用,但K、WM、WUM、WLM、B、IMP、EX、C与时段长无关,可以直接引用, %Kc SM、KG、KSS、CS、CI、CG与时段长相关,不能直接引用,需要另外率定 %junjunzhu-XAJ-MODEL U=DAREA/(DT*3.6); %单位转换D=24/D

4、T;KSSD = (1 - (1 - (Ki + Kg) (1 / D) / (1 + Kg / Ki); % KSSD,ki出流系数KGD消退系数KGD = KSSD * Kg / Ki;%A_WM=A_WUM+A_WLM+A_WDM;%WMM=(1+B).*WM/(1-IMP); Epp=Kc*EM; % PE=P-K.*EM;for T=1:size(EM,1) % T以时段为单位计算% %三层蒸散发计算 if (WwU + P(T) = Epp(T) EU(T) = Epp(T); %上层蒸发 %Epp为EM EL(T) = 0; %中层 ED(T) = 0; %下层 else EU(

5、T) = WwU + P(T) ; %Ww(1) + P为EU EL(T) = (Epp(T) - EU(T) * WwL / WML; %要求计算的下层蒸发量与剩余蒸散发能力之比不小于深层蒸散发系数c ED(T) = 0; if WwL = C * (Epp(T) - EU(T) %要求计算的下层蒸发量与剩余蒸散发能力之比小于深层蒸散发系数c EL(T) = C * (Epp(T) - EU(T) ; ED(T) = 0; else EL(T) = WwL; ED(T) = C * (Epp(T) - EU(T) - EL(T) ; end end end PE(T) = P(T) - EU

6、(T) - EL(T) - ED(T);%= %产流计算部分%= Wm0 = WMU + WML + WMD; % 平均蓄水容量 W0 = WwU + WwL + WwD; %初始含水量 R = 0; Rimp = 0; Wmm = (1 + B) * Wm0 / (1 - Imp1) ; % Imp1不透水面积比,Wmm为蓄水容量 极值 if PE(T) 0 %Then GoTo 1000 降雨小于蒸发,B为蓄水容量曲线的指数 if abs(Wm0 - W0) = 0.0001 % Wmm为蓄水容量极值 A = Wmm; else A = Wmm * (1 - (1 - W0 / Wm0)

7、(1 / (1 + B); %A为与W0对应的在蓄水容量曲线的纵坐标 end if (PE(T) + A) Wmm % 部分产流 R = PE(T) - Wm0 + W0 + Wm0 * (1 - (PE(T) + A) / Wmm) (1 + B); else R = PE(T) - (Wm0 - W0) ; % 全部产流 end if abs(R - PE(T) WMU % 由Ww(1) = Ww(1) + P - RE(1):E(1)两断Epp和Ww1 WwL = WwL + WwU - WMU; % 由Ww(2) = Ww(2) + Ww(1) - WM(1)检查是否超标 WwU =

8、WMU; % 纠正 if WwL WML WwD = WwD + WwL - WML; WwL = WML; end end if WwU 0 WwU = 0; end%汇流计算部分%水源划分 X = FR0 ; % FR0产流面积 if PE(T) = 0 %认为单是地下自由水在产流面积上的深为 Rs(T) = 0; Rss(T) = S0 * KSSD * FR0 ; %KSSD,ki,KGD(KG地下水出流)出流系数 Rg(T) = S0 * KGD * FR0; S0 = S0 - (Rss(T) + Rg(T) / FR0 ; % s表示自由水在产流面积上的平均蓄水深 else FR

9、0 = R / PE(T); % 用流量除以单位面积上的净雨(可以理解为产流深)即得产流面积 S0 = X * S0 / FR0 ; % 产流面积变化的影响 SS = S0; Q = R / FR0 ; % 为产流面积上的平均值 NN = fix(Q / 5) + 1 ; % 每次入流按5毫米分成并取整数NN为了消除前向差分误差 Q = Q / NN; % 一天分为CSng(NN)个时段 Kssdd = (1 - (1 - (KGD + KSSD) (1 / NN) / (1 + KGD / KSSD); Kgdd = Kssdd * KGD / KSSD; Rs(T) = 0; Rss(T)

10、 = 0; Rg(T) = 0; % SM流域的平均自由水容量 Smm = (1 + Ex) * SM ; % Smm全流域最大的自由水蓄水容量 if Ex Smf %s 表示自由水在产流面积上的平均蓄水深 S0 = Smf; end AU = Smmf * (1 - (1 - S0 / Smf) (1 / (1 + Ex); if Q + AU = Smmf % 当径流与此时刻的平均蓄水深之和大于最大平均蓄水深全面产壤中流 Rsd(T) = (Q + S0 - Smf) * FR0 ; % Rsd中d为分段的地面流 Rssd(T) = Smf * Kssdd * FR0 ; % Rsd中d为

11、分段的壤中流 Rgd(T) = Smf * Kgdd * FR0 ; % Rsd中d为分段的地下径流 S0 = Smf - (Rssd(T) + Rgd(T) / FR0; % s表示自由水在产流面积上的平均蓄水深 else if Q + AU Smmf % 当径流与此时刻的平均蓄水深之和大于最大平均蓄水深部分产壤中流 Rsd(T) = (Q - Smf + S0 + Smf * (1 - (Q + AU) / Smmf) (1 + Ex) * FR0; Rssd(T) = (S0+ Q - Rsd(T) / FR0) * Kssdd * FR0; Rgd(T) = (S0 + Q - Rsd

12、(T) / FR0) * Kgdd * FR0; S0 = S0 + Q - (Rsd(T) + Rssd(T) + Rgd(T) / FR0; end end end Rs(T) = Rs(T) + Rsd(T) ; % 累计三流 Rss(T) = Rss(T) + Rssd(T) ; % 累计 Rg(T) = Rg(T) + Rgd(T); clear Rsd Rssd Rgd end end OUT=Rs;Rss;Rg; %Rs=OUT(:,1); Rss=OUT(:,2);Rg=OUT(:,3); Rs(T) = Rs(T) * (1 - Imp1) ; % 扣除不透水面积 Rss(T

13、) = Rss(T) * (1 - Imp1); Rg(T) = Rg(T) * (1 - Imp1);%Qrs = (Rs + Rimp) * U%Qrss = Rss * U * (1 - Ci) + Qrss0 * Ci%Qrg = Rg * U * (1 - Cg) + Qrg0 * Cg% 坡面汇流汇流%!¥ Qrs(T) = (Rs(T) + Rimp) * U * (1 - Cs) + Qrs0 * Cs; % 地面水线性水库汇流系数CS Qrss(T) = Rss(T) * U * (1 - Ci) + Qrss0 * Ci ; % 壤中流线性水库汇流系数CI Qrg(T) =

14、 Rg(T) * U * (1 - Cg) + Qrg0 * Cg ; % 地下水线性水库汇流系数Cg Qtr(T) = Qrs(T) + Qrss(T) + Qrg(T); QsN(T) = (Rs(T) + Rimp) * U ; %地面径流总和 QIIGG(T) = Qrss(T) + Qrg(T) ; % 地下和壤中总和 Qm(T) = Qtr(T); %马斯金根 Qfm = Qtr(T); %非马斯金根 Qrs0 = Qrs(T); Qrss0 = Qrss(T); Qrg0 = Qrg(T); Rs0 = Rs(T); Qr=Qtr ; clear Qrs Qrss Qrg Rs R Rimp Rs Rss Rg end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1