SWMM水文卷手册解读:连续模拟参数、下渗与排查

发布时间:2026/11/2 3:13:42
SWMM水文卷手册解读:连续模拟参数、下渗与排查

简介:《SWMM用户参考手册-水文学》面向环境工程、给排水、城市规划及雨水管理领域的学习者与工程技术人员,聚焦SWMMH水文模型的原理与使用,帮助读者理解城市降雨—径流模拟、子汇水面积产流与污染物负荷等核心问题。资源包为1个PDF文档,约2.93MB,内容对应EPA SWMM汉化版参考手册第I卷,由同济大学李树平翻译,涵盖概览、气象学、对象模型与过程模型等章节,并保留了译者声明、原著声明和致谢信息。已有301人学习下载,适合作为SWMM入门查阅、课程教学和项目建模的案头资料。读者可从中系统梳理水文模块的术语、模拟流程与参数含义,也可据此核对建模思路、理解模型边界与实验性软件的使用限制,提升城市雨水径流与水质分析的规范性。

1. 从一份水文卷手册说起:SWMM 连续模拟真正容易出错的地方

暴雨强度公式算得再准,只要地表径流参数与实测洪峰对不上,后面管网调蓄、溢流控制基本都是空谈。这份 SWMM 用户参考手册第 I 卷(水文学)解决的正是这一段:它把降雨输入、地表径流控制方程、下渗四种方法、地下水两区模型、融雪和降雨致入渗入流(RDII)的方程形式、数值解法和参数取值范围一次性展开说明。汉化版去掉了英文原始术语造成的阅读障碍,对照着 SWMM 界面填参数的人很友好。适合两类人:一类是能把管网画完、能跑通模型,但排水口流量过程线始终对不上的从业者;另一类是刚接手城市雨水项目,需要为每个参数找到出处的新手。目录里能看到的六七章内容,几乎每一节最后都落到参数估计,这是它最值得反复翻阅的价值。

2. 手册的骨架:三卷分工与第 I 卷的水文拼图

拿到一份几百页的参考手册,最怕从头读到尾。这份手册的组织方式是按模型的过程块分卷:第 I 卷讲水文,第 II 卷讲水力,第 III 卷讲水质与低影响开发。三卷共用一套对象模型,所以先把对象和过程的关系理清,后面翻到哪一节都不会迷路。

2.1 对象模型与过程模型:先分清 SWMM 在算什么

SWMM 的对象模型是“容器式”的:雨量计、子汇水面积、节点、管段、含水层、雪堆、单位流量过程线、时间序列、曲线、控制规则,每一类对象对应输入文件的一个段落。很多人建模到中途卡住,本质原因是没想清楚某个物理量该挂在哪个对象上——比如把洼地蓄水填在节点上,或者把融雪的雪堆参数挂在管段上。

过程模型则是另一条线。手册把它拆成几块:大气过程(降雨、蒸发、气温、风速)、地表过程(产流、漫流、洼地蓄水)、下渗过程、地下水过程、输送过程(管渠演算)和水质过程。第 I 卷覆盖的是前四块加上融雪和 RDII,输送过程留给第 II 卷。

提示:读手册时把“对象模型”当作数据结构的图纸,把“过程模型”当作计算顺序的图纸,两者对照着看,第 1 章的概览一节就不至于读得没有头绪。

一个常被忽略的细节是:子汇水面积不是“一个面”,而是可以内部再分成不渗透区、有洼蓄的不渗透区、渗透区三块,各自有独立的曼宁 n 和洼地蓄水,再按一定比例路由到一起。这个内部结构决定了后面很多参数为什么填两套值。

2.2 六章内容与工程问题的对应关系

手册目录里每一章基本对应一类工程追问,这张对照表可以直接当作检索索引来用:

手册章节核心内容对应工程问题
第 2 章 气象学降水表示、降雨数据源、温度、蒸发、风速降雨序列从哪来、时间步长多细、连续模拟的蒸发怎么给
第 3 章 地表径流控制方程组、子汇水面积划分、计算方法、参数估计洪峰偏低或偏高、汇流时间不对、宽度和坡度怎么定
第 4 章 下渗Horton、修正 Horton、Green-Ampt、曲线数长期模拟径流总量偏高、初损不合理
第 5 章 地下水两区模型、六类通量项、土壤湿度限值地下水位波动区、基流贡献、入渗与蒸腾的分配
第 6 章 融雪积雪、融化方程、面积亏损、净径流有稳定积雪期城市的春季融雪径流
第 7 章 降雨致入渗入流RDII 的单位流量过程线法污水管网旱季基流和雨后入流过程

第 3 章的 3.8 节参数估计是整卷里被翻得最勤的部分,它不直接给一个数字,而是给出估算路径和取值范围;第 4 章各方法的“参数估计”小节同理。真要做项目,这两处的工作量远大于读控制方程。

2.3 跟着一次模拟循环读:时间步里到底发生了什么

手册 1.4 节给的模拟过程概览,是把各过程块串起来的关键。按时间步推进时,计算顺序大致是:先从雨量计取当前时段的降雨强度,分配给各子汇水面积;扣除洼地蓄水后,剩余水量下渗或形成地表径流;下渗量进入土壤,超出部分补给地下水,地下水再以出流形式回补管渠;有雪堆时按气温判断降雨还是降雪,走融化方程;最后各子汇水面积的出流作为外部入流进入节点,交给水力模块演算。

理解这个顺序,能解释很多“看起来像玄学”的现象。比如把洼地蓄水填得很大,不但削减洪峰,还会推迟产流起始时刻,进而影响整个过程线的形状;再比如连续模拟里蒸发没开,地下水位的长期回落就出不来,基流会一年比一年高。

手册在概览里还交代了时间步长的层级关系:降雨记录步长、演算步长、报告步长并不相同。演算步长是真正决定数值稳定性的那个,报告步长只影响输出密度。后面第三章讲地表径流时,时间步长考虑那一节会把这层关系再展开一次,两处对着读比较省力。

3. 气象与地表径流:把参数落到输入文件里

从这一章开始进入真正需要实际操作的环节。气象数据决定“给模型什么”,地表径流参数决定“模型怎么把降雨变成流量”,两者一前一后,任何一头出错,后面都很难补救。

3.1 降雨的三层表示与单事件/连续模拟的选择

手册把降雨的表示分成三种:强度、体积、累积量。听起来只是格式差异,实际上决定了时间序列对象怎么填。强度序列适合雷达反演或雨量计整编数据;累积量序列适合人工记录或翻斗式雨量计的原始记录,模型会自己差分;体积形式则多用于设计暴雨,给的是时段总量。

单事件和连续模拟的分岔点也在这里。单事件模拟只需要一场雨的边界条件,前期土壤湿润状况靠初始亏损人为设定;连续模拟要跨月甚至跨年,蒸发、下渗能力恢复、地下水位这些慢变量必须显式给出,否则误差会随时间累积。常见做法是:管网能力校核、内涝风险评估用单事件;年径流总量控制、LID 效果评估、合流制溢流频次统计用连续。

空间变化也不能忽略。手册 2.1.4 节讲了多个雨量计的分配思路,模型里对应的是给每个子汇水面积指定一个雨量计,可以按泰森多边形或就近原则。城市尺度上,一场对流雨在两个相邻雨量计之间差两三倍很常见,这时如果全流域只挂一个雨量计,峰值会被抹平。

注意:从外部文件导入降雨时,时间序列的时间间隔必须与记录步长一致,缺测段要么补零要么显式标记,直接跳过会导致时间轴错位,这种错误在结果里表现得非常隐蔽——过程线整体平移,但形状正常。

3.2 子汇水面积宽度、坡度、曼宁 n、洼地蓄水的取值链

这四类参数在同一节里被反复讨论,因为它们共同决定汇流时间,而汇流时间又直接决定洪峰。手册 3.8 节的处理方式是先给物理含义,再给估算方法,最后给敏感性排序。

宽度是最容易被随意填写的参数。它的物理定义是子汇水面积除以地表漫流长度,量纲上是长度,但不是一个可以量出来的几何宽度。流长通常取 30 到 150 米这个量级,取决于地块尺度和排水方式。宽度填大一倍,汇流时间几乎减半,峰值明显抬高。手册 3.8.4 节给了几种概化方法,我一般按“面积除特征流长”起算,再用实测流量过程做一次反推。

坡度取子汇水面积的平均地面坡度,用百分比表示。平地城市地块常在 0.5% 到 2% 之间,山区可以到 10% 以上。这个参数的不确定性通常比宽度小,除非地形数据粗到把整片街区抹成一个平面。

曼宁 n 分不渗透和渗透两套。不渗透面常见取值 0.011 到 0.015,沥青路面取下限,粗糙混凝土或有大面积铺装的取上限;渗透面跨度大得多,密实砂土约 0.15,壤土 0.2 到 0.3,草地和林地可以到 0.4 以上。手册在这里给了一张按地表覆盖类型查的表,实际项目里对不上号时,按最接近的类型取中值,再在敏感性分析里看它的影响幅度。

洼地蓄水的量级差异更明显。不渗透面典型值约 1.3 毫米,渗透面 2.5 到 7.6 毫米,草地和林地明显更高。这个参数对小雨事件的影响远大于暴雨,做年径流总量控制时它是关键;做管网能力校核时它几乎不影响峰值。

3.3 演算步长与地表漫流重新演算

时间步长的选择在手册里单独占了一节,原因是它同时影响精度和运行时间。演算步长取得太粗,短历时高强度降雨会被平滑掉,峰值偏低;取得太细,长序列连续模拟的运行时间会难以接受。经验做法是:单事件模拟用 1 分钟以内,连续模拟可以放宽到 5 分钟,但降雨记录本身的间隔如果更粗,再细的演算步长也不会带来更多信息。

地表漫流重新演算(re-routing)是另一个容易被跳过的选项。开启后,上游子汇水面积的出流可以作为下游子汇水面积的入流,形成一级一级的串联。这在坡地或梯级开发区域是必要的,平地城市管网区一般不需要,开了反而增加不必要的计算量。手册 3.6 节讲清了它的适用条件和数值处理方式。

3.4 一份可运行的输入片段与参数含义

下面这段是从一个教学案例里截出来的,只保留与本篇相关的段落,单位是升/秒制(公制)。实际项目里段落顺序不重要,但名字必须能对上。

[OPTIONS] FLOW_UNITS LPS INFILTRATION HORTON FLOW_ROUTING KINWAVE WET_STEP 00:01:00 DRY_STEP 00:05:00 REPORT_STEP 00:05:00 [SUBCATCHMENTS] ;;Name RainGage Outlet Area(ha) %Imperv Width(m) %Slope S1 RG1 J1 1.82 45 61 0.8 S2 RG1 J2 2.35 30 78 1.2 [SUBAREAS] ;;Subcatch N-Imperv N-Perv S-Imperv S-Perv %Zero RouteTo %Routed S1 0.013 0.24 1.5 5.0 25 OUTLET 0 S2 0.013 0.30 1.8 6.0 15 OUTLET 0

第一段是全局设置。INFILTRATION选定下渗方法,一旦确定,后面下渗段落的参数个数也跟着确定,改成 GREEN_AMPT 就必须换成三个参数。WET_STEP是降雨时段的演算步长,DRY_STEP是无雨时段的步长,连续模拟里后者放大能省下大量时间,因为无雨期水文过程变化慢。REPORT_STEP只控制输出密度,与稳定性无关。

第二段是子汇水面积主表。Area单位是公顷,Width就是 3.2 节讨论的概化宽度,%Imperv是不渗透面积占比。Outlet可以填节点名,也可以填另一个子汇水面积的名字,后者正是开启漫流重新演算的写法。

第三段是子区域参数。N-Imperv和N-Perv分别是两类地表的曼宁 n,S-Imperv和S-Perv是洼地蓄水深度(毫米),%Zero是不参与洼蓄的不渗透面积比例——这一项在商业区和工业区经常要给到 20% 以上,因为屋面直接接雨水管,地面根本没有蓄水机会。RouteTo决定三块子区域的水量按什么顺序合并,OUTLET表示直接进入出口,PERVIOUS表示先经过渗透区,对削减小峰值有明显作用。

提示:改完任何一个子汇水面积的宽度或洼地蓄水,先把该面积对应的出口流量过程线单独画出来看,不要直接看整网结果。整网会把这些局部变化淹没在管渠调蓄里。

4. 下渗四法与地下水模块:选型、参数与恢复逻辑

下渗是把降雨拆成地表径流和土壤水的分水岭,选错方法或参数错一个量级,长期模拟的径流总量能差出三成以上。手册把四种方法并列讲,但并没有说哪种最好,只说各自适用条件——这恰恰是最需要自己判断的地方。

4.1 四种下渗方法的适用边界

Horton 方法用指数衰减描述下渗能力从初值衰减到稳渗值,参数少、物理图像直观,单事件模拟里用得最多。它的短板是衰减过程只与时间有关,不与累积入渗量挂钩,长历时降雨的后期表现偏理想。

修正 Horton 方法引入了土壤含水量的影响,衰减常数随湿度变化,对连续模拟更友好一些,代价是多一个参数需要标定。

Green-Ampt 方法基于湿润锋推进的物理模型,参数是吸入水头、饱和导水率和初始含水量亏损。它在长历时、大雨量条件下的表现通常比 Horton 稳,土壤类型差异也能通过导水率体现出来。手册给的典型值大致是:砂土导水率上百毫米每小时、吸入水头几十毫米;壤土导水率十毫米每小时量级、吸入水头接近一百毫米;黏土导水率不到一毫米每小时、吸入水头可达两百毫米以上。初始亏损在 0.2 到 0.4 之间取,湿润区取小值。

曲线数方法直接来自径流曲线数概念,把下渗折算成一个随累积降雨增长的蓄水能力,超过部分全部变成径流。它简单、参数少、与土地用途挂钩,缺点是物理机理弱,短历时高强度降雨会低估初损,长历时低强度降雨又容易把蓄水能力耗尽后突然全产流。连续模拟里如果没有正确设置恢复期,雨后下一场雨的初损会明显偏小。

选型上,我的习惯是:单事件管网校核用 Horton,参数容易从一场实测雨洪反推;有土壤资料、要算长历时入渗的用 Green-Ampt;区域规划阶段手上只有土地利用图、没有土壤参数的,用曲线数先搭架子;连续模拟无论用哪种,都要把下渗能力恢复显式设好。

4.2 下渗能力恢复:连续模拟里最容易被忽略的一段

手册在每种方法后面都单独写了一小节“下渗能力的恢复”,这个安排本身就说明了它的分量。原理不复杂:无雨期间土壤排水,下渗能力回升,回升速度与土壤排水特性有关。Horton 系列用指数恢复,曲线数方法用蓄水能力按比例恢复,Green-Ampt 用初始亏损的重新累积来体现。

问题在于很多人只填了主参数,把恢复期参数留成默认值甚至零。结果是一场雨之后紧接着第二场雨,模型认为土壤还是饱和的,第二场几乎全部产流;而实际观测里,中间隔上两三天,前期影响雨量已经掉下去一大截。

注意:恢复期参数的时间单位是小时或天,不同版本界面上的标注不一致,填之前先确认。曾经见过把“7 天”当“7 小时”填进去的模型,跑出来的年径流总量比实测高出一倍还多,查了两天才发现是这一个数。

4.3 地下水模块的六类通量与土壤湿度限值

地下水在手册里用的是两区模型:上层不饱和区、下层饱和区,中间有穿透,下层有深层损失和侧向出流。模型要跟踪的通量包括地表下渗、上下层的蒸发蒸腾、上层到下层的水量穿透、下层的深层穿透,以及地下水出流。

地下水出流是回补管渠的那一项,手册用饱和区水位超过某个阈值深度的部分来描述,配置里体现为两组幂函数系数加一个阈值深度。系数没有直接物理意义,手册给的做法是用一两场实测的基流退水过程反推:先看退水段的时间常数,再定指数,最后调系数幅值。

土壤湿度限值这一组参数反而更容易出错:孔隙率、田间持水量、萎蔫点。三者的关系必须是孔隙率大于田间持水量大于萎蔫点,反过来填模型不一定报错,但算出来的蒸发和穿透会非常离谱。手册 5.5 节按土壤质地给了一张取值范围表,砂土、壤土、黏土的三个值差别很大,跨类取值基本等于重新标定。

4.4 常用参数与取值区间

把关键参数整理成一张表,实际填的时候先查表再决定要不要改:

参数所属方法/模块常见取值范围影响方向
最大下渗率Horton25 至 125 毫米/小时偏大则初期产流少、峰值低
最小下渗率Horton0 至 25 毫米/小时控制长历时降雨的尾段产流
衰减常数Horton2 至 7 每小时偏大则下渗能力衰减快
吸入水头Green-Ampt50 至 250 毫米偏大则入渗总量偏大
饱和导水率Green-Ampt0.5 至 120 毫米/小时与土壤质地强相关
初始亏损Green-Ampt0.2 至 0.4偏小则前期产流偏多
曲线数曲线数法30 至 95与土地利用、前期湿润状况相关
孔隙率地下水0.35 至 0.55决定饱和区储水容量
田间持水量地下水0.15 至 0.35影响重力水与毛管水分配
萎蔫点地下水0.05 至 0.20低于此值不再产生蒸发

表里的区间是手册给出的典型范围,不是允许范围。真做项目时,跨土壤类型取值之前先问自己:有没有一场实测过程可以验证?没有的话,宁可按中值取,然后在下一次有监测数据时回头修。

5. 排查:五类常见失败现象与定位路径

手册本身不会告诉你“跑出来不对怎么办”,但它的参数估计小节和数值示例章节已经把容易出错的位置标出来了。下面五条是从实际项目里攒下来的,按现象、原因、解决的顺序写,对号入座即可。

5.1 连续模拟年径流总量偏高两三成

现象:单场暴雨模拟的峰值和总量都还能对上,切到全年连续模拟后,年径流总量比监测值高出 20% 到 40%,汛期尤其明显。

原因:蒸发没启用或者启用得不完整。手册第 2 章把蒸发数据单列一节,是因为它在单事件里几乎不起作用,在连续模拟里却是最大的水量出口之一。另一个常被漏掉的是下渗能力恢复,雨后土壤一直保持饱和,后续降雨全部变成径流。

解决:按手册给的蒸发选项补齐——有蒸发皿观测就用蒸发皿折算,没有就用温度法或季节性的月平均蒸发序列,注意干期恢复那一项的设置。下渗的恢复期参数按土壤排水特性填,填完做一次全年水量平衡检查,把降雨、蒸发、下渗、径流、地下水出流几项相加,闭合误差控制在几个百分点以内再往下做。

5.2 洪峰流量对不上,但总量对得上

现象:过程线形状差不多,峰值却差 30% 以上,有时高有时低,没有明显规律。

原因:多半出在宽度和汇流路径上。宽度填得随意,或者所有子汇水面积套用同一个流长,会让不同地块的汇流时间趋于一致,峰值被人为放大或抹平。另一种情况是子汇水面积的出水口接错了,接到了下游某个节点而不是最近的节点,路径缩短,峰值提前。

解决:把每个子汇水面积的流长单独估一遍,宽度用面积除流长重算;打开模型输出的子汇水面积结果表,逐个检查出流时刻是否与该地块到出口的距离相称。对不上就改,改完再整体跑一遍,看峰值变化幅度是否在合理区间。

5.3 曲线数方法在长历时小雨下要么不产流要么突然全产流

现象:降雨强度低、持续时间长的场次,模型前期几乎不产流,累积到某个时刻突然出现一个台阶式的跳变。

原因:曲线数方法的蓄水能力是按累积降雨扣减的,一旦扣完,后续降雨全部转化为径流,这个过程本身是分段线性的。前期湿润状况如果没有正确恢复,蓄水能力在连续几场雨之间被反复耗尽,跳变会更加明显。

解决:这类场次本身就超出了曲线数方法的适用边界,换成 Green-Ampt 通常能改善。如果必须保留曲线数,至少把前期湿润状况分级做进去,按前五天累积雨量调整曲线数,并对每场雨之间的恢复期单独设值。

5.4 结果里全是零,但降雨明明有

现象:跑完不报错,报告里流量全为零,或者只有第一个时段有值。

原因:三种可能。一是降雨时间序列的单位与全局单位不一致,比如序列按英寸每小时录入、模型按毫米每小时解读,数值小到可以忽略;二是子汇水面积的出水口填了一个不存在的节点名,模型静默忽略;三是演算步长大于降雨记录间隔,插值后每个时段都是零。

解决:先查单位,把时间序列对象的前几行原始值和全局单位对照;再查出水口,用模型的错误日志或者对象一致性检查过一遍;最后查步长,演算步长应当小于等于降雨记录的最小间隔。三项都过一遍,一般五分钟内能定位。

5.5 融雪模块打开后春季径流反而消失

现象:有稳定积雪期的流域,开融雪模块之前春季有一波明显径流,开了之后这波反而变小甚至没有。

原因:融雪模块需要气温序列、雪深初始值、面积亏损曲线和分区设置四样东西同时到位。气温序列缺失或者单位不对,融化方程算不出正积温;面积亏损曲线填反,雪盖面积随融雪反而增大;分区没设,全部子汇水面积按一个雪堆处理,空间差异被抹掉。

解决:按手册第 6 章的预备知识一节逐项核对,先确认气温序列与降雨序列的时间轴完全对齐,再检查雪深初始值与实际观测是否同一量级,最后单独输出雪堆的融雪量曲线,与实测的春季流量过程对照。这一块调试周期通常比降雨径流长,留足时间。

6. 把参数从“能跑”推到“可信”的一次敏感性扫描

手册给了取值范围,但没告诉你哪个参数对你这个流域最关键。我的做法是在正式成果之前强制走一遍单参数敏感性扫描:每个关键参数取手册区间的低、中、高三档,其余参数保持中值,各跑一次,只记录出口峰值流量和年径流总量两个指标。

判据很简单。峰值变化超过 20% 的参数,属于必须实测校核的关键参数,没有实测数据就要在报告里明确标注不确定性;变化在 5% 到 20% 之间的,属于次要参数,可以用文献值;低于 5% 的,直接取中值,不用再纠结。

这张表是一次实际扫描的结果,流域面积约 40 公顷,城市化率中等:

参数取值下限取值上限峰值变化年径流总量变化
子汇水面积宽度40 米90 米约 28%不到 3%
不渗透面洼地蓄水0.8 毫米2.5 毫米约 9%约 6%
渗透面曼宁 n0.150.40约 7%不到 2%
最小下渗率2 毫米/小时15 毫米/小时约 4%约 18%
蒸发折算系数0.61.0不到 2%约 14%

结论很清楚:做管网能力校核,宽度是命门,必须花时间;做年径流总量控制,最小下渗率和蒸发折算系数才是重点,宽度反而可以粗放一点。同一次扫描还能顺带验证手册数值示例的可复现性——拿第 3 章和第 4 章末尾的数值示例原样跑一遍,输出与手册给出的结果对得上,说明本机配置和单位设置没问题,再去跑自己的流域才踏实。

还有个习惯:每次改完参数,先看连续性误差,再看过程线。误差超过几个百分点,说明时间步长或者演算设置有问题,这时候讨论参数取值是浪费时间。从那以后我每次交付前都强制走一遍“水量平衡—敏感性扫描—数值示例回归”这三步,宁可多花半天,也不要在评审会上被问住。

希望帮到你。

本文还有配套的精品资源,点击获取