HEC-RAS 从入门到精通
美国陆军工程兵团 · 官方开源软件

HEC-RAS 从入门到精通
河流水力学建模完整教程

以美国陆军工程兵团水文工程中心(HEC)官方文档与教程为蓝本,系统讲解一维恒定流、一维/二维非恒定流、泥沙输移与水质模拟,带你从零完成第一个可运行的河流模型。

1995首个版本发布
4大分析组件
100%免费开源
1D + 2D全维度水动力
01 · Overview

认识 HEC-RAS

HEC-RAS(Hydrologic Engineering Center – River Analysis System)是美国陆军工程兵团水文工程中心开发的河流分析系统,是全球应用最广的开源免费水力学建模软件之一。

HEC-RAS 允许你执行一维恒定流、一维与二维非恒定流水力学计算、泥沙输移/动床模拟、水温与水质模拟。它是一个集成系统:图形界面(GUI)、独立的水力分析计算内核、数据存储与管理、图形与报告输出共同组成一个整体,四大分析组件共享同一套几何数据表示和计算例程。

软件由美国陆军工程兵团(US Army Corps of Engineers)水文工程中心(HEC,隶属于水资源研究所 IWR)在加州戴维斯开发,完全免费,可从官方网站下载,无 License 限制。自 1995 年 1.0 版发布以来,它逐步从单一的一维恒定流计算工具,发展为覆盖 1D/2D 非恒定流、溃坝分析、泥沙、水质乃至泥石流模拟的综合性水动力学平台,也是 FEMA 洪泛区制图、水利工程设计、防洪调度研究中最常被引用的标准工具。

版本沿革
1995

HEC-RAS 1.0 发布

7 月发布首个版本,具备一维恒定流(steady flow)水面线计算能力,取代了此前的 HEC-2。

1997

2.x 引入非恒定流

加入一维非恒定流模拟(求解器改编自 UNET 模型),可模拟洪水波的传播。

2008

4.0 泥沙与水质

加入准非恒定流泥沙输移/动床计算与水质模拟组件,功能覆盖显著扩展。

2016

5.0 二维时代

正式加入二维非恒定流求解器与 RAS Mapper 空间数据环境,支持 1D/2D 耦合建模与淹没制图。

2020

6.0 全面增强

加入空间降水/入渗、2D 内桥梁水力学、2D 泥沙、非牛顿流体(泥石流)、新的显式浅水求解器等。

2023–24

6.4 / 6.6 迭代

6.4(2023-06)加入 1D/2D 侵占(encroachment)分析、流量优化;6.6(2024-09)加入 HEC-RAS 2025 网格导入、粗糙度标定区等。

2025+

HEC-RAS 2025 新一代平台

HEC 正在开发全新架构的 HEC-RAS 2025(Beta),重构界面与网格系统、引入 GPU 求解器与实时渲染;传统 6.x 系列与 7.0 继续并行维护。

典型应用场景

洪泛区管理与洪水保险研究

计算不同频率洪水的水面线,划定行洪区与洪泛区边界,支持 FEMA 洪水保险研究(Flood Insurance Study)中的洪泛区侵占(floodway encroachment)分析。

恒定流为主

溃坝与堤防溃决分析

模拟大坝溃决、堤防漫顶与溃口发展,生成下游洪水演进过程线与淹没范围,支撑应急预案与风险图编制。

非恒定流 / 2D

河道整治与桥梁设计

评估桥梁、涵洞、堰等水工建筑物对水位的影响,进行河道糙率、束窄、清淤等设计方案比选与敏感性分析。

恒定流 / 非恒定流

泥沙与河道演变研究

模拟长时间尺度上的冲刷与淤积、水库淤积、河道疏浚影响、河床粗化(armoring),评估取水与输沙工程效果。

泥沙输移

城市雨洪与排水模拟

与水文模型(如 HEC-HMS)耦合,模拟城市河道、管网出口、蓄滞洪区的洪水演进过程,评估内涝风险。

1D/2D 耦合

水温与水质模拟

模拟河流水温沿程变化与营养盐、溶解氧等水质组分的迁移转化,评估排污口与取水工程影响。

水质分析
02 · Capabilities

四大分析组件与特色能力

HEC-RAS 的核心是四个河流分析组件,外加一个空间数据处理环境 RAS Mapper。所有组件共享同一套几何数据与计算例程。

恒定流 · 水面线计算

计算恒定渐变流的水面线,可处理完整河网、树枝状水系或单一河段;支持亚临界、超临界与混合流态。基本算法求解一维能量方程,摩阻损失用曼宁公式,收缩/扩张损失用流速水头变化乘系数;急变流(水跃、桥梁、汇流口)改用动量方程。

子/超/混合临界流

非恒定流 · 1D/2D 水动力

模拟一维、二维或一维+二维耦合的非恒定流,覆盖完整开放河道网络、洪泛区与冲积扇。支持溃坝分析、堤防溃决与漫顶、泵站、通航闸运行、有压管道、自动率定、用户自定义规则等。1D 求解器改编自 UNET,以亚临界为主;2D 提供多种浅水方程求解器。

洪水演进 / 溃坝

泥沙输移 · 动床计算

模拟一维与二维的泥沙输移/动床冲刷淤积(准非恒定流或全非恒定流),按粒径分级计算输沙能力,可模拟水力分选与河床粗化。支持全河网、河道疏浚、堤防与侵占方案、多种输沙公式,以及 SIAM 泥沙影响分析和 BSTEM 岸坡稳定性。

冲刷 / 淤积 / 粗化

水质与水温模拟

进行详细的河流水温分析(完整热平衡)和有限水质组分的迁移转化模拟:藻类、溶解氧(DO)、碳质生化需氧量(CBOD)、溶解态正磷酸盐与有机磷、溶解态氨氮/亚硝氮/硝氮与有机氮,采用一维对流-扩散方程(QUICKEST-ULTIMATE 格式)。

水温 / 营养盐 / DO
RAS Mapper 空间环境
RAS Mapper 不是单独的"第五组件",而是空间数据工作台。它用于:建立水平坐标系统、创建 HEC-RAS 地形模型(Terrain)、布置几何数据模型并提取地形数据、生成 2D 计算网格、以地图/绘图/表格形式可视化结果,还能从 USGS 与 GRiD 服务在线下载地形数据。
主要模块与产出对比
四大组件速览
组件核心输入核心输出典型应用
恒定流几何 + 各断面流量 + 下游边界条件各方案(Profile)水面线、流速、断面水力要素表洪水水面线、行洪区、桥梁壅水
非恒定流几何 + 上下游水文过程线/水位过程线 + 初始条件随时间变化的水位、流量、淹没范围(可做动画)洪水演进、溃坝、调度运行
泥沙输移几何 + 准非恒定/非恒定水流 + 床沙级配 + 泥沙边界冲淤厚度、床沙级配变化、输沙率随时间变化水库淤积、河床演变、疏浚方案
水质/水温几何 + 水流 + 初始/边界浓度 + 气象(温度)水温与各水质组分时空分布热污染、富营养化、排污影响
学习路径建议:先掌握 1D 恒定流(官方教程实战 · 01)建立"河网—断面—流量—方案"的完整心智模型,再进入 1D 非恒定流(实战 · 02),最后学习 2D 建模(实战 · 03)与 RAS Mapper 制图(实战 · 04)。泥沙与水质等进阶专题需要以前面的水动力结果为基础。
03 · Installation

下载、安装与界面初识

HEC-RAS 免费开源,官方下载地址与全量文档均在 HEC 官网;安装流程与 Windows 常规软件一致。

下载与系统要求
https://www.hec.usace.army.mil/software/hec-ras/
官方建议的安装环境(HEC-RAS 6.x / 7.x)
操作系统仅 64 位 Windows(6.0 及以上支持 Windows 7/8/8.1/10/11 64 位;7.x 官网标注 Windows 10/11 64 位)。安装前请更新全部系统补丁。6.1 起提供 Linux 计算内核,7.0.1 安装包内含 Linux 编译版计算引擎(配合 WSL 使用)。
内存最低 8 GB(大模型建议 16 GB 或以上)。2D 网格与地形数据非常吃内存。
磁盘安装包约 171 MB(7.0.1);建议为项目与地形数据预留数十 GB 空间。
其他建议将项目与数据放在非 OneDrive 等云同步目录下,大型模型在云同步中极易损坏或备份缓慢。
安装步骤
  1. 下载安装包

    进入官网下载页,选择最新稳定版安装包(Setup Package)。若用于生产研究,优先选择最新正式版(如 6.6 / 7.0.x);如需体验新界面可下载 HEC-RAS 2025 Beta。

  2. 运行安装程序

    解压后运行安装程序,按向导完成安装。HEC-RAS 会同时安装主程序与计算内核(computational engine)。安装目录建议避开用户配置文件路径(如 C:\Users),以获得更好的兼容性与杀毒软件兼容性。

  3. 首次启动

    首次启动会出现设置界面,可调整默认项目目录、单位制等。确认默认项目目录不在企业托管的 OneDrive 目录下。

  4. 验证安装

    启动后通过 Help | About 查看版本号;用随附示例工程或新建空项目测试保存与计算是否正常。

主界面快速认识
HEC-RAS 主窗口功能分布示意
File Edit Run View Options GIS Tools Help 项目 几何 水流数据 模拟计算 RAS Mapper 结果查看 项目浏览器 / 河网示意图工作区 下游 上游 断面 信息栏
工具栏从左到右依次为:项目(新建/打开/保存工程)→ 几何数据编辑 → 恒定流/非恒定流/泥沙/水质数据编辑 → 各组件计算 → RAS Mapper 地图环境 → 结果(断面、纵剖面、水位过程线、3D 视图等)。
04 · Key Concepts

建模前必须理解的核心概念

HEC-RAS 的术语体系贯穿所有组件。先建立"几何(Geometry)— 水流(Flow)— 方案(Plan)"三段式数据模型,再掌握河网与断面要素。

三段式数据模型

几何数据 Geometry

描述河道系统的物理形状:河网结构、断面坐标与高程、桥梁涵洞等建筑物、蓄水区、2D 流场网格、糙率等。文件扩展名 .g01。

水流数据 Flow

描述水的作用:恒定流的各方案流量、非恒定流的水文过程线与边界条件、泥沙级配与输沙边界、水质初始浓度等。

方案 Plan

把"某套几何 + 某套水流"组合起来运行一次的配置,含计算选项(流态、求解器、时间步长等)。每次计算对应一个 Plan,结果可多方案对比。

河网与断面要素
河网示意:River / Reach / 断面 / 汇流节点示意
上游端(最先绘制点) XS 1 XS 2 XS 3 XS 4 XS 5 下游端 汇流节点 Junction 河名 River:一条水系(如 Merced River) 河段 Reach:某条河内的子段(如 Yosemite Valley),有唯一名称 断面 XS:垂直于流向的横截面,用河道桩号 River Station 定位 ← 流向:上游 → 下游
绘制河段中心线时,先画上游点、后画下游点,双击结束。汇流点(Junction)自动连接各支流,并在节点处用动量方程计算能量损失。
一维断面要素:河道、滩地与岸滩位置示意
左岸滩地 Left Overbank 主槽 Channel(两 Bank Station 之间) 右岸滩地 Right Overbank 左岸位置 右岸位置 水面线 WS(各 Profile) 每个断面需输入:断面线坐标、左右岸位置、主槽/滩地曼宁 n 值、上下游相邻断面距离(Reach Lengths)
HEC-RAS 把断面分为主槽与左右滩地三个子断面分别计算流量分配;岸滩位置(Bank Stations)与河道桩号(River Station)共同定义几何。无效流动区(Ineffective Flow Area)等概念在洪水研究中经常用到。
边界条件类型(恒定流)
恒定流分析常用边界条件
类型含义适用位置
正常水深 Normal Depth用能量坡度(通常取河道纵坡)计算下游均匀流水深下游边界(最常用、最简单)
临界水深 Critical Depth按临界水深确定边界水位上/下游边界(陡坡、控制断面)
已知水位 Known WS直接给定断面水位(如实测水位)上/下游边界
水位-流量关系 Rating Curve用 Q–H 关系曲线(如堰、水文站率定曲线)定义边界下游边界
关于正常水深坡度的选择:官方教程中的问答提示——边界处应取河道实际纵坡(可用 RAS Mapper 测量工具量取)。边界条件只会影响其上游一小段,但选错坡度会导致边界附近水位明显偏差,因此下游断面通常要延伸出研究区足够远。
05 · Workflow

一次建模的完整流程

无论 1D 还是 2D,HEC-RAS 建模都遵循"建项目 → 建几何 → 输入水流 → 组方案 → 计算 → 看结果 → 校准"的闭环。流程图数据为示意,展示标准建模路径。

HEC-RAS 标准建模工作流流程示意
流程走向:新建项目 → RAS Mapper 设置投影并准备地形 → 创建几何(中心线/断面/网格/建筑物)→ 输入水流与边界 → 创建方案 → 计算 → 结果查看与淹没制图 → 对照实测数据校准 → 回到几何/水流迭代细化。校准不满足即循环迭代。
返回教程目录
Practical Tutorials

官方教程实战

照 HEC 官方分步教程动手做,每个教程都配官方示例数据集与步骤截图:先做 1D 恒定流建立基础,再进入非恒定流与 2D。

01 · Tutorial 1 · 1D Steady Flow

官方教程一:1D 恒定流建模(Merced 河)

本节改编自 HEC 官方 Guides & Tutorials 的《Steady Flow Modeling with HEC-RAS》,案例为美国加州约塞米蒂(Yosemite)的 Merced River 河段:以实测地形为基础,从零创建 1D 模型、输入 6 个流量方案、运行计算,并用地物覆盖数据与实测高水位标记进行模型细化与校准。

本教程能回答的问题:水会流向哪里、洪泛区范围多大?河道流速多大?哪里流动发生急变?是什么在控制水的流向、是否存在明显阻水物?——先用"粗糙模型"回答这些问题,再逐步细化。
官方示例数据集:Steady Flow Modeling with HEC-RAS.zip约塞米蒂 Merced River 教程的完整工程数据(GIS_Data 投影与河流 shapefile、Terrain 地形、NLCD 地物覆盖、Channel_Polygon 等)。官方原包直链,需联网下载。
下载数据包
阶段 A · 项目与地形准备
  1. 创建新项目并设置投影

    启动 HEC-RAS,选择 File | New Project…,进入工作目录,填写 Title 与 File Name 后保存。

    启动 RAS Mapper,选择 Project | Set Projection,加载提供的投影文件(如 River.prj)。投影定义了整个项目所有空间数据的坐标系统,后续地形、几何、结果全部以它为准。

    把河流 shapefile(river.shp)拖入 RAS Mapper 地图窗口,右键图层选择 Zoom to Layer 定位研究区。

    设置投影(RAS Mapper Options)官方截图
    设置投影(RAS Mapper Options)
    在 Project | Set Projection 中加载 River.prj 投影文件,定义整个项目的坐标系统。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  2. 下载地形数据(可选在线获取)

    选择 Project | Download Data | USGS Terrain,数据范围选 Current View,点击 Query Products 查询 USGS 服务;在数据筛选中勾选 Original(原始分辨率)并 Apply;用图形选择工具选中覆盖河谷洪泛区的瓦片,点 Add Selected 加入下载列表,再点 Start Download。无网络时可直接使用教程附带的 Terrain\USGS_Data 地形数据。

    下载 USGS 地形菜单官方截图
    下载 USGS 地形菜单 选择地形瓦片
    Project 菜单下的 Download Data | USGS Terrain 入口。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  3. 创建地形模型(Terrain)

    选择 Project | Create New RAS Terrain,点 Add Files 选中下载的所有地形文件(Ctrl+A 全选);勾选 Merge Inputs to Single Raster 合并为单一栅格;点 Create 开始处理。处理完成后关闭窗口并打开 Terrain 图层。

    为什么先建地形?地形(Terrain)是 1D 断面提取高程、2D 网格生成与淹没制图的共同底图。它把多幅 DEM 合并、重投影、统一精度为一份 .hdf 地形文件。
    创建地形(New Terrain Layer)官方截图
    创建地形(New Terrain Layer) 地形建成后的样子与边界位置
    勾选 Merge Inputs to Single Raster 把多幅瓦片合并为单一栅格,点 Create 生成 Terrain.hdf。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
阶段 B · 创建 1D 几何
  1. 新建几何并绘制河中心线

    选择 Project | Create New Geometry,命名 Base。选中几何图层点 Edit 进入编辑。将 River shapefile 的河流中心线复制粘贴到 River 图层(也可用 shapefile 导入器或手工绘制)。

    用编辑工具右键河流线,选择 Rename River Reach,将河段命名为 Merced River / Yosemite Valley。

    重命名河段(Provide River and Reach Name)官方截图
    重命名河段(Provide River and Reach Name)
    River Name 填 Merced River,Reach Name 填 Yosemite Valley。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  2. 布置断面(Cross Sections)

    选择 Cross Sections 图层,沿河道布置断面,注意断面应垂直于流向、充分覆盖洪泛区、在地形与流态变化处加密。布置完成后 Stop Editing 并关闭 RAS Mapper。

    打开主界面的 几何示意图(Geometric Schematic),打开刚创建的几何文件 Base,确认断面与中心线正确后 Stop Editing 保存。

  3. 输入曼宁 n 值

    选择 Tables | Manning's n or k values(横向变化),先统一把全部 n 值设为 0.04 作为初值。

    再打开 Tables | Reach Lengths 查看左/主槽/右三段河段长度。

    官方教程思考题:为什么 Left、Channel、Right 三段长度相同?因为当前还没布置流径线(Flowpaths)——HEC-RAS 默认按几何中心线距离近似三段长度相等。若要精确区分主槽与滩地的实际流动路径,需要在 RAS Mapper 中创建 Flowpaths 图层(见阶段 D)。
阶段 C · 输入水流数据并运行
  1. 输入恒定流数据

    打开 Steady Flow Data Editor:输入 6 个方案(Profiles),流量分别为 100、500、1000、2000、5000、10000 cfs(立方英尺/秒)。

    选择 Options | Edit Profile Names 为每个流量命名(如 100cfs、500cfs、1k、2k、5k、10k,最多 16 字符)。

    在下游边界处选择 Normal Depth 边界条件。思考:坡度应取多少?影响大吗?——取河道实际纵坡,边界只影响其上游一段。

    保存恒定流数据,命名 Steady Flows。

    编辑方案名称(Edit Profile Names)官方截图
    编辑方案名称(Edit Profile Names)
    为 6 个流量方案命名:100cfs、500cfs、1k、2k、5k、10k(最多 16 字符)。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  2. 创建方案并计算

    打开 Steady Flow Analysis 窗口:Plan 命名 Base,几何选 Base,水流文件选 Steady Flows,保存方案。

    点击 Compute 运行计算。完成后在 RAS Mapper 查看淹没结果,用 XS Plot 绘制单个断面。

    创建方案(Steady Flow Analysis)官方截图
    创建方案(Steady Flow Analysis)
    Plan 命名为 Base,几何选 Base、水流文件选 Steady Flows。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
阶段 D · 基础运行后处理
  1. 利用基础运行设置岸滩位置(Bank Stations)

    先观察各断面(XS Plot)判断哪个流量方案的水面刚好在岸滩附近(如本案例选 100cfs 或 500cfs)。打开 Geometric Data Editor,选择 Tools | Channel Bank Station Locations,选择你判断的 Profile,再选择岸滩位置的插入方式(建议"在水面处插入站点/高程")。HEC-RAS 会按该水位的岸边位置自动调整所有断面的 Bank Stations。

    设置岸滩位置插入方式官方截图
    设置岸滩位置插入方式
    官方推荐选择"Insert station/elevation at the water surface"(在水面处插入站点/高程)。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  2. 建立流径线 Flowpaths(可选)

    在 RAS Mapper 中编辑 Base 几何,选择 Flowpaths 图层,在左右滩地各创建一条流径线,用于精确计算主槽与滩地的实际流动距离。完成后 Stop Editing。

  3. 重新运行并评估结果

    重新 Compute Base 方案,对比设置岸滩前后水面线的变化。

    为何要保留旧几何?细化前先把 Base 几何另存为副本(RAS Mapper 中右键几何 → Save Geometry As,命名 Refined)。你永远不知道什么时候要回退对比——但一定会需要对比前后方案的进步。
阶段 E · 模型细化:空间变化糙率
  1. 创建土地覆盖(Land Cover)图层

    选择 Project | Create New RAS Layer | Land Cover Layer,导入 2019 NLCD 栅格(NLCD_2019.tif),按 NLCD 分类建立 RAS 分类表,点 Create 生成 LandCover 图层。HEC-RAS 会弹出图层关联对话框,把 LandCover 关联到几何的 Manning's n 属性上。

    创建土地覆盖图层(Create a New Land Cover Layer)官方截图
    创建土地覆盖图层(Create a New Land Cover Layer) 图层关联对话框
    导入 NLCD_2019.tif,按 NLCD 分类建立 RAS 分类表后点 Create。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  2. 为各地类设置曼宁 n 值

    右键 LandCover 图层选择 Edit Land Cover Data Table,在分类参数表中为每种地类填入曼宁 n 值。官方教程给出的示例值:

    NLCD 地类 → 曼宁 n 值(官方教程示例)
    ID地类名称Manning's n备注
    11Open Water(水面)0.035水面糙率小
    21Developed, Open Space(开发空地)0.04
    22Developed, Low Intensity(低密度开发)0.08
    23Developed, Medium Intensity(中密度开发)0.12
    24Developed, High Intensity(高密度开发)0.16不透水/建筑
    31Barren Land(裸地)0.026
    41Deciduous Forest(落叶林)0.15
    42Evergreen Forest(常绿林)0.12
    43Mixed Forest(混交林)0.14
    52Shrub-Scrub(灌木)0.12
    71Grassland-Herbaceous(草地)0.04
    官方教程的 Classification Parameters 窗口官方截图
    官方教程的 Classification Parameters 窗口
    在 ID/Name 分类表上为每种地类填入 Manning's n;截图即官方教程给出的示例值。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》

    表中数值仅用于跟随官方教程练习;实际项目应根据植被、河道条件与文献经验选取并做敏感性分析。

  3. 更新断面糙率并运行细化方案

    在 RAS Mapper 中编辑 Refined 几何:选中 Cross Sections 图层 → Update Cross Sections | Manning's n Values,把地类 n 值写入全部 104 个断面。打开 Layer Plot Option | Manning's n Values 可检查是否生效。Stop Editing 保存。

    在 Steady Flow Analysis 中用 File | Save Plan As 创建新方案 RefinedXS(几何选 Refined XS),Compute 运行。

    更新断面属性(Update Cross Sections 右键菜单)官方截图
    更新断面属性(Update Cross Sections 右键菜单)
    右键 Cross Sections 图层 → Update Cross Sections | Manning's n Values,把地类糙率写入全部断面。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  4. 对比两个方案的结果

    方法一(Profile Plot):打开纵剖面图,Options | Plans 同时勾选 Base 与 RefinedXS 两个方案对比。官方案例结论:细化方案的水面线总体略高(因空间变化糙率更贴近实际)。

    方法二(RAS Mapper):右键河流中心线 Save as Profile Line 保存为剖面线;打开两个方案的 WSE(水面高程)图层并开启动画,在 Profile Lines 标签页右键河流线 → Mapping Results | Profile | Fast | WSE 生成沿程水面线对比。

    官方教程的纵剖面对比图(Profile Plot)官方截图
    官方教程的纵剖面对比图(Profile Plot)
    同时勾选 Base 与 RefinedXS 两个方案:细化方案(RefinedXS)的水面线总体略高于 Base——空间变化糙率更贴近实际。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
阶段 F · 用实测数据校准模型
  1. 加入实测高水位(Observed WS)

    打开 Steady Flow Data Editor → Options | Observed WS,选择河道桩号 2.88(约在桥位附近),点 Add an Obs. WS Location,为 10000cfs 方案输入实测水位 3966 ft。保存并重新运行。

    添加实测水位位置(Add an Obs. WS Location)官方截图
    添加实测水位位置(Add an Obs. WS Location)
    River Sta. 2.88(约在桥位附近),为 10000cfs 方案输入 3966 ft。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
    官方案例结论:对比 XS Plot 可见,模拟水面比实测高水位约低 2 英尺。可能原因有三类:几何不准确、边界条件不合理、曼宁 n 值不正确——逐一复查。改善糙率通常最有希望。
    官方案例:模拟水面比实测低约 2 英尺(XS Plot)官方截图
    官方案例:模拟水面比实测低约 2 英尺(XS Plot)
    红色 OWS 10k 为实测高水位点,蓝色 WS 10k 为模拟水面——两者相差约 2 英尺,说明模型仍需改进。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  2. 改进曼宁数据:叠加主槽多边形

    选择 LandCover 的 Classification Polygons 图层 → Start Editing → 右键 Import Features from Shapefile,导入 Channel_Polygon.shp(主槽范围);右键新导入的主槽多边形 → Edit Classification Value,新增分类 Channel 并设 Manning's n = 0.04。Stop Editing 保存。

    重新 Update Cross Sections | Manning's n Values,重跑并对比结果。官方案例结论:结果有所改善,但仍不理想——研究区还存在未建模的高地(实际应起堤防作用)和一座未入模的桥梁,这些都会抬高水位。

    为主槽新增分类并设糙率(Classifications)官方截图
    为主槽新增分类并设糙率(Classifications)
    新增 Channel 分类,Manning's n 设为 0.04,用于改进主槽糙率。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  3. 敏感性分析(Bonus)

    回答两个问题:① 模型对下游边界条件有多敏感?② 增大/减小曼宁 n 值会如何改变水面线?——用对照方案定量回答,理解模型对各参数的响应是校准的基础。

1D 恒定流教程 · 纵剖面结果示意示意图数据
示意曲线(非真实计算结果):Ground 为河道纵坡地面线,WS 10k(Base)与 WS 10k(RefinedXS)为 10000 cfs 方案水面线;细化后糙率更贴近实际,水面线整体略高。真实项目中请以 HEC-RAS 输出的 Profile Plot 为准。
02 · Tutorial 2 · 1D Unsteady Flow

官方教程二:1D 非恒定流建模

非恒定流模拟的是"流量和水位随时间变化"的过程:给模型一个入流过程线(hydrograph),观察洪水波如何沿河道演进、水位如何涨落。官方 Guides & Tutorials 的《Creating a Combined 1D/2D Model》给出了从 1D 恒定流升级到非恒定流的完整路径,本节按官方流程整理为五个阶段。

阶段 A · 从恒定流升级到非恒定流
恒定流 vs 非恒定流
维度恒定流 Steady非恒定流 Unsteady
流量输入各断面固定流量(每个 Profile 一个值)随时间变化的流量过程线/水位过程线
方程一维能量方程(标准步进法)圣维南方程组(连续 + 动量),有限差分/有限体积求解
初始条件不需要(由边界向上游/下游递推)需要(初始流量分布、蓄水区初始水位)
结果各 Profile 的水面线各断面的水位/流量过程线、最大淹没
适用设计洪水、恒定工况洪水演进、溃坝、调度、感潮河段
非恒定流模型三件套:几何(与恒定流共用)+ 边界过程线(入流/出流)+ 初始条件。官方惯例是先用 1D 恒定流模型打底,再在同一套几何上升级——文件后缀上,几何为 .g01、恒定流数据为 .f01、非恒定流数据为 .u01、对应方案为 .p02。
  1. 先建 1D 恒定流模型打底

    官方 Combined 1D/2D 教程建议:任何非恒定流建模前,先创建稳态 1D 模型理解水系行为——用低流量(如 2 年一遇)确认主槽与岸滩位置,用高流量确认洪泛区与断面范围。

  2. 量取下游坡降并延伸一维河段

    为下游延伸足够长的强一维河段(远离关注区),并在 RAS Mapper 用 Measure Tool 沿河数字化一段河道量取纵坡,作为 Normal Depth 下游边界的坡度。官方提示:正常水深(Normal Depth)是快速设置下游边界的最简方式。

阶段 B · 边界条件与入流过程线
非恒定流常用边界条件
类型含义典型位置
流量过程线 Flow Hydrograph输入 Q–t 序列(可手工录入、从 HEC-DSS 读取或来自 HEC-HMS),最常见的上游边界上游边界 / 支流
水位过程线 Stage Hydrograph输入 Z–t 序列,用于有实测水位的边界或感潮河口(潮位过程)上/下游边界
水位-流量关系 Rating Curve用 Q–H 曲线定义边界,适合有稳定率定关系的下游下游边界
正常水深 Normal Depth给定能量坡度,快速设定下游边界下游边界
侧向入流 Lateral Inflow沿程分布式入流过程线(支流、区间汇流)河道内部(Internal)
均匀侧向入流 Uniform Lateral Inflow沿整段河道均匀分配的入流河道内部(Internal)
典型入流过程线示意示意图数据
洪水过程线示意:从基流起涨 → 陡涨 → 峰值 → 退水。官方建议过程线覆盖"起涨前基流 → 洪峰 → 回落至基流"的完整时段(至少 2 倍洪水历时)。水文模型(HEC-HMS)可导出 DSS 格式直接供 HEC-RAS 读取。
  1. 输入非恒定流边界条件

    打开 Unsteady Flow Data Editor:在边界条件表中为最上游断面选 Flow Hydrograph(录入过程线或读取 DSS),为最下游断面选 Normal Depth / Stage Hydrograph / Rating Curve。需要时在内部断面"Add Boundary Condition Location"加侧向入流。

    录入后务必点 Plot Data 检查过程线形状是否正确。过程线支持 Min Flow(最小流量下限)与 Multiplier(整体缩放系数)两个便捷选项。

阶段 C · 初始条件与断面水力表
  1. 设置初始条件

    在 Initial Conditions 页输入初始流量分布(常用方式:输入最上游初始流量,程序自动做一次恒定流计算得到各断面初始水位);也可用上一次运行的 Restart File 续算。蓄水区需给初始水位。

    稳定性经验:以低基流(baseflow)启动并设置足够的预热期(warm-up),让模型自动达到稳定初态;过程线变化过陡容易导致振荡,可用"Critical Boundary Condition"选项在流量突增时自动减半时间步长。
  2. 设置断面水力表参数(常见遗漏!)

    官方特别强调:从恒定流升级到非恒定流时最常犯的错误是忘记设置断面水力表参数(Hydraulic Table Parameters)——若不设置,模拟一开始 HEC-RAS 就会报数据缺失。在 Geometric Data Editor 中点击 Hydraulic Table Parameters:把渠底高程(invert)复制到 Starting Elevation 列,再加一个增量(官方默认 0.5 ft);设置足够的计算点数,使其覆盖全部预期流量产生的水位范围——可逐个断面看右侧竖向切片确认水位范围。

阶段 D · 计算设置:时间窗与步长
$$C_n = \frac{V\,\Delta t}{\Delta x} \le 1$$
Courant 条件:时间步长 Δt 应满足一个时间步内水流移动不超过一个断面间距——步长选择取决于断面间距与流速。官方做法:先设短时间窗试算,评估时间步长满足 Courant 条件后再跑长模拟。
  1. 设置模拟时间窗与计算步长并运行

    创建非恒定流方案:设定 Simulation Time Window(起止日期时间)、Computational Time Step(如 1–5 分钟起步,2D 单元通常需要更小步长)。先用短时间窗试算,评估一个时间步(见学习参考 · 常见问题)后再跑长模拟。

  2. 计算选项与公差(Computation Options and Tolerances)

    关键计算选项
    Advanced Time Step Control让 HEC-RAS 按 Courant 准则自动计算时间步长,免去手工试算。
    Time Slices 时间分片当 2D 域需要比 1D 更小的时间步时使用:基步长保持不变,2D 域内部按分片再细分,平衡稳定性与运行时间。
    Theta 隐式权重因子默认 1.0 最稳定(动量方程压差项只用当前步信息);调到 0.6 更精确但牺牲稳定性。
    Lateral Structure Flow Stability Factor抑制侧向结构(堰/路堤)流量突变:1.0 最准确,3.0 明显提高稳定性(模型稳定后可调回)。
    Output Interval 输出间隔结果输出的时间间隔,影响过程线分辨率与结果文件大小。
阶段 E · 运行、结果与稳定性调试
  1. 运行并查看结果

    结果包括:各断面 水位/流量过程线(Stage/Flow Hydrograph Plot)、最大淹没范围(RAS Mapper)、溃坝过程线(Breach Hydrograph)、沿程水面纵剖面动画等。

  2. 稳定性排查(官方经验清单)

    一开始就不稳定(计算输出显示迭代到最大次数 / NaN / 振荡)→ 多半是初始条件或边界条件问题,先复查这两项。

    支流汇入主河处持续振荡→ 常见于"较陡支流 + 主河计算出的很低初始水位"的组合,本质是交汇处几何数据不一致。官方对策:junction 处默认强制各断面同一水面,可改用能量平衡法求解交汇水面以稳定模型。

    减小时间步长→ 若结果显著改变,说明步长过大,应采用更小步长重跑。

    Volume Accounting 误差大→ 检查堰流设置(Weir Flow Submergence Decay Exponent 等)、减小时间步长;确认高地是否真的起堤防作用。

    敏感性对比:把方案另存为新名重跑,逐个评估时间步长、Theta、糙率等参数对水面线/流速的影响。

03 · Tutorial 3 · 2D Modeling

官方教程三:2D 建模入门

2D 建模把洪泛区离散为计算网格,在每个网格单元上求解浅水方程,能真实刻画漫滩水流、回流、堤防绕流等二维现象。官方 2D 教程包括《Creating a Simple 2D Model》与《Mesh Generation and Refinement》等。

官方示例数据集:Creating a Simple 2D Model.zip宾州 Bald Eagle Creek(Lock Haven 附近)教程的完整工程数据:多个地形(BEC_10ft.tif、DEM.tif)、GIS_Data 与 DSS 流量过程线等。官方原包直链,需联网下载。
下载数据包
研究区:Bald Eagle Creek 及支流官方截图
研究区:Bald Eagle Creek 及支流 地形建成后的样子与边界位置
官方 2D 教程研究区(宾州 Lock Haven 附近):从 Sayers Dam 下游到与 West Branch Susquehanna River 汇流口,含 Marsh、Beech、Fishing 三条支流入流。来源:HEC 官方《Creating a Simple 2D Model》
阶段 A · 网格三要素与流场规划

单元中心 Cell Center

每个网格单元的计算中心,水面高程在此求解。单元中心不一定是几何形心。

单元面 Cell Faces

单元之间的边界面,流量跨面交换。面必须沿堤防、路堤等线性阻水物对齐,否则水流会"泄漏"。

面端点 Face Points

单元面端点(FP),外边界上的 FP 用于连接 1D 元素、边界条件线与 2D 流场。

2D 计算网格示意示意
河道方向(加密区) 洪泛区单元(粗网格) 2D Flow Area 边界 Breakline(堤防线) 网格生成要点 DX/DY:单元间距 Breakline:强制面沿 Refinement Region:局部加密 每个单元中心一个计算点
2D 工作流:画 2D Flow Area 多边形 → 在 2D Flow Area Editor 设置 DX/DY 点距 → Generate Computation Points 生成网格 → 检查计算点(每个单元只能有一个点,错误点显示为红色)→ 用 Breaklines 与 Refinement Regions 细化。
阶段 B · 网格生成与检查
  1. 生成计算网格

    在 Edit 2D Area Properties 中输入 DX/DY 点距(官方简单模型示例用 500;官方《Mesh Generation and Refinement》教程用 200 起步、熟悉后再细化到 100),点 Generate Computation Points 生成非结构化网格;设置默认 Manning's n(如 0.04)。关闭编辑器,打开 Computation Points 图层检查网格边界,每个单元只能有一个计算点,出错用编辑工具增删移动点修正。Stop Editing 保存几何。

    2D Flow Area Editor官方截图
    2D Flow Area Editor 网格错误与修正对比
    DX/DY 点距 500 ft(官方简单模型示例)、Generate Computation Points 生成 2222 个单元、默认 Manning's n = 0.04;右图为单元/计算点错误(红色)与修正。来源:HEC 官方《Creating a Simple 2D Model》与《Mesh Generation and Refinement》
  2. 计算水力表并检查单元属性

    右键 2D Flow Areas 图层 → Compute 2D Flow Areas Hydraulic Tables,为网格计算水力特性表(左下角有处理进度)。选中该图层(选中后变为洋红色),用鼠标点选 Cell 或 Cell Face,右键 Plot Property Table 即可查看单元的属性表——检查单元高程、面积、与周边面的连接是否合理。

  3. 复制几何做网格细化对比

    右键几何 → Save Geometry As 复制出一份(如 Initial Mesh → Refined Mesh),编辑副本并把 2D Area 重命名(如 2DArea_2)以区分;在 2D Flow Area Editor 中把点距改小(官方示例 200 → 100 ft)并重新 Generate Computation Points(会提示删除旧点)。对比粗细两套网格的水力结果,判断细化是否改变结论。

阶段 C · 边界条件与计算设置
  1. 绘制边界条件线(BC Lines)

    在 RAS Mapper 中编辑几何,选择 Boundary Condition Lines 图层,在入流、支流、出流位置各画一条边界线(迎向下游时从左到右绘制),并命名。边界线必须画在网格外部。回到主界面打开几何示意图核对。

    边界条件线(Boundary Condition Lines)官方截图
    边界条件线(Boundary Condition Lines)
    在入流(Sayers Dam)、三条支流与下游位置各画一条边界线,标注为 Inflow、Marsh Creek、Beech Creek、Fishing Creek、Downstream。来源:HEC 官方《Creating a Simple 2D Model》
  2. 输入非恒定流边界并运行

    在 Unsteady Flow Data Editor 中为边界线指定边界条件:上游/支流用 Flow Hydrograph(官方示例从 Simple2DModel_Flows.dss 读取),下游用 Normal Depth(Slope = 0.001)。创建非恒定流方案,设置模拟时间窗与时间步长,Compute 运行。

    非恒定流数据编辑器的边界条件表官方截图
    非恒定流数据编辑器的边界条件表 DSS 流量过程线选择
    上游与支流用 Flow Hydrograph,下游用 Normal Depth(Slope = 0.001);流量过程线从 Simple2DModel_Flows.dss 读取。来源:HEC 官方《Creating a Simple 2D Model》
2D 边界线常用边界条件类型
Flow Hydrograph 流量过程线最常用的入流边界:流量随时间变化,可来自实测、水文模型或 DSS。
Stage Hydrograph 水位过程线水位随时间变化,用于感潮河口、有实测水位的出流边界。
Normal Depth 正常水深给定能量坡度,快速设定出流边界(官方简单模型下游用 Slope = 0.001)。
Precipitation 降雨对 2D 域施加降雨(可含入渗),用于城市内涝、分布式降雨场景。
Zero Depth / Outlet自由出流 / 出流口边界,用于出水口与排水场景。
2D 时间步长:2D 单元通常比 1D 断面间距小得多,因此需要更小的时间步长(官方提示:2D 单元小时应减小时间步)。先设短时间窗试算、保证满足 Courant 条件;若 2D 域需要比 1D 更小的步长,用 Time Slices 选项让 2D 域内部按更小步长细分。
阶段 D · 网格细化与求解器选型
  1. 网格细化:Refinement Regions

    用 Refinement Regions 在关键区(主槽、地形突变、建筑物周边)局部加密:复制几何 → 新建 Refinement Region 多边形并设单元间距 → 右键 Enforce Region 强制执行。策略:只对 10–20% 的关键区域加密——全流域单元减半会让单元数增加约 4 倍、计算时间增长约 4 倍。

  2. Breaklines:强制面沿高地

    单元面(Cell Faces)控制单元间的流量交换,必须沿堤防、路堤、高地等线性阻水物对齐,否则水流会"泄漏"。选择 Breaklines 图层沿高地画线,右键 Enforce Breakline 强制执行。

    官方要点:只点 Enforce Breakline 只会在当前已有计算点上生效;正确流程是打开 2D Flow Area Editor,勾选 Generate Computation Points with Enforce Breaklines / Refinement Regions 重新生成计算点,程序会按设定间距重新布点并强制 Breakline 生效。
求解器
2D 求解器选型
扩散波 Diffusion Wave(SWE-EM)忽略对流加速度的简化浅水方程,稳定性好、允许较大时间步,适合大多数漫滩与城市洪涝场景;对动量效应显著的场景(弯道、急流)精度受限。
完整浅水方程 SWE(Full Saint-Venant)完整求解动量守恒,适合需要精确刻画回流、弯道环流、桥墩绕流的场景;对时间步长更敏感。
显式浅水求解器(6.0 新增)动量守恒更好的显式求解器,需要更小时间步长、运行更久,用于对动量精度要求最高的场景。
阶段 E · 结果检查与常见问题
  1. 查看结果图层与动画

    运行后在 RAS Mapper 中勾选 WSE / Depth / Velocity 结果图层查看淹没范围,用动画控制条(Max 按钮)查看最大淹没;Profile Lines 可沿任意剖面提取水面线,Reference Polygon 统计区域水量。完整的制图流程见 官方教程实战 · 04 RAS Mapper。

  2. 常见 2D 错误排查

    计算点错误:每个单元只能有一个计算点,生成后务必打开 Computation Points 图层检查,红色错误点用增删移动修正。

    水流沿线性阻水物"泄漏":单元面未与堤防/路堤对齐——用 Breaklines 强制对齐(见阶段 D)。

    Terrain 空洞:DEM 有 NoData 时地形出现空洞,会影响单元高程提取——先补洞再建地形。

    边界线画在网格内部或方向错误:BC Lines 必须画在网格外部,且按迎流方向从左到右绘制。

04 · RAS Mapper

RAS Mapper 与淹没制图

RAS Mapper 是 HEC-RAS 内置的 GIS 环境:准备地形、绘制河网与断面、生成 2D 网格、映射并动画化计算结果,是 1D/2D 建模与洪水制图的统一工作台。本节按 HEC 官方教程《Developing 1D Geometric Data with RAS Mapper》与《RAS Mapper User's Manual》整理,从界面认识讲到端到端淹没制图。

阶段 A · 认识界面与图层体系
  1. 启动 RAS Mapper

    在主界面通过 GIS Tools | RAS Mapper 菜单,或直接点击工具栏上的 RAS Mapper 按钮启动。RAS Mapper 是独立窗口,顶部为菜单与工具栏(选择、平移、缩放、识别),左侧为图层面板,中间为地图窗口,底部为状态与工具标签页。

    主界面入口(GIS Tools | RAS Mapper)官方截图
    HEC-RAS 主界面与 RAS Mapper 入口
    GIS Tools 菜单与工具栏上的 RAS Mapper 按钮。来源:HEC《RAS Mapper User's Manual》
  2. 认识主界面布局

    左侧 Layers 面板把所有数据按组组织:Geometries(几何)、Results(结果)、Terrains(地形)与 Map Layers(底图/参考)等;右上角显示当前选中图层与渲染模式(如 Max 最大淹没);右下角为水深/高程比例尺;底部 Messages / Views / Profile Lines / Active Features / Layer Values 标签分别提供消息、视图管理、剖面线、交互查询与图层值读取。

    RAS Mapper 界面(显示 Depth 水深图层)官方截图
    RAS Mapper 界面与图层列表面板
    图层按组管理,结果按方案(Plan Short ID)分组显示。来源:HEC《RAS Mapper User's Manual》
  3. 图层体系

    RAS Mapper 的图层按用途分为五组:模拟结果按 Plan Short ID 分组且自包含(事件条件 + 几何 + 结果图)。

    RAS Mapper 主要图层
    图层用途
    Features河流中心线、剖面线、参考点/线/多边形(用于聚合统计区域结果)
    Geometries几何数据:River、Cross Sections、Storage、2D Flow Areas、Bridges、Inline/Lateral Structures、Pump Stations 等
    Event Conditions水流数据、边界条件位置
    Results计算结果图层:水面高程 WSE、水深 Depth、流速 Velocity 等,可做动画播放
    Map Layers地形 Terrain、土地覆盖 Land Cover、入渗、土壤、栅格计算器(RASter Calculator)等
阶段 B · 地形与投影准备
  1. 新建项目并设置投影

    选择 File | New Project…,进入工作目录,填写 Title 与 File Name 后保存(官方示例命名 GeometryDevelopment.prj)。

    打开 RAS Mapper,选择 Tools | Set Projection for Project(旧版本位于 Project 菜单),浏览到 GISData 文件夹选择 projection.prj 并确定。投影定义了整个项目所有空间数据(地形、几何、结果)的坐标系统,必须在导入任何空间数据前设置,否则后续图层会错位。

    新建项目(New Project)官方截图
    新建项目对话框
    填写 Title 与 File Name(自动带 .prj 后缀),选择项目文件夹。来源:HEC 官方《Developing 1D Geometric Data with RAS Mapper》
    设置投影(RAS Mapper Options)官方截图
    RAS Mapper Options 投影设置
    加载 projection.prj 后,Definition 区显示完整 PROJCS 坐标系定义。来源:HEC 官方《Developing 1D Geometric Data with RAS Mapper》
  2. 下载地形数据(可选在线获取)

    选择 Project | Download Data | USGS Terrain(或 GRID Terrain),数据范围选 Current View,点击 Query Products 查询 USGS 服务;在数据筛选中勾选 Original(原始分辨率)并 Apply;用图形选择工具选中覆盖河谷洪泛区的瓦片,点 Add Selected 加入下载列表,再点 Start Download。无网络时可直接使用教程附带的 Terrain 文件夹中的地形文件。

  3. 创建地形模型(Terrain)

    选择 Project | Create New RAS Terrain,点 + 添加地形文件(官方示例为 5 个 .flt 瓦片,也可选 .tif/DEM);把 Rounding (Precision) 设为 1/32;按需勾选 Create Stitches(缝合)与 Merge Inputs to Single Raster(合并为单一栅格);点 Create 生成 Terrain.hdf。

    为什么先建地形?地形是所有几何与结果的共同底图:1D 断面提取高程、2D 网格提取单元高程、淹没制图比较水位都依赖它。它把多幅 DEM 合并、重投影、统一精度为一份 .hdf 文件。
    创建地形(New Terrain Layer)官方截图
    New Terrain Layer 对话框
    添加 5 个地形瓦片,Rounding 1/32、勾选 Merge Inputs to Single Raster 后点 Create。来源:HEC 官方《Developing 1D Geometric Data with RAS Mapper》
  4. 检查地形显示

    创建完成后双击 Terrain 图层打开 Layer Properties,按需开启:Update Legend with View(图例随视野更新)、Plot Contour(显示等高线并可调间隔)、Plot Surface(显示地表)、Plot raster file outlines / names(栅格文件边界与名称)。借此检查地形覆盖范围是否完整、是否存在 NoData 空洞——空洞会影响后续断面/网格的高程提取,发现后应补充数据或先做修补再建地形。

阶段 C · 创建几何与图层关联
  1. 新建几何并绘制河网

    在 RAS Mapper 中右键 Geometries 节点,选择 Add New Geometry 并命名(官方示例 Existing);选中几何后点铅笔图标进入编辑。

    点击 Rivers 节点开始绘制河网:河流/河段从上游画到下游(正流向),左键单击加点、双击结束一条线;右键可重新定位地图中心,Shift 拖拽平移、滚轮缩放。画完一条河段会弹出 Provide River and Reach Name 命名窗口(官方示例:Baxter River / Main)。支流画到主流上时,程序会提示创建 junction——依次确认拆分主流、为下游河段命名(如 Main-Lower)、命名 junction 即可。河段名默认显示在河段起点。

    官方教程研究区河网(Baxter 河与 Tule 支流)官方截图
    Baxter 河与 Tule 支流河网
    两支流在 Junction 汇合,主流分 Upper / Lower 两段。来源:HEC 官方《Developing 1D Geometric Data with RAS Mapper》
  2. 布置断面(Cross Sections)

    选择 Tools | Options 可把 XS River Stations 单位改为 Miles(可选)。点击 Cross Sections 节点,沿每条河段布置断面(官方示例每条河段约一打断面),以合理表达 1D 河槽-洪泛区水流。断面必须面向下游从左到右绘制!

    每条断面绘制后自动获得 River Station(按中心线距离计算,默认英尺)。画完点击工具栏的 Plot 按钮可弹出 RASMapper Plot 查看高程剖面:绿线为从地形提取的断面(Terrain),红色为当前断面(Profile),圆点为岸滩点(Bank Points)——新增断面时两者一致;再画下一条,剖面图会自动更新。

  3. 编辑断面与从地形更新

    选中断层面,双击断面进入编辑,拖动端点可加宽断面、改变其跨越洪泛区的方式;观察剖面图变化。注意:已存在的断面被视为"已有断面",程序不会自动用地形覆盖其数据(防止误覆盖人工编辑)。需要重新贴合地形时,右键断面选择 Update Cross Section | Elevation Profile from Terrain,再 Plot 核对剖面与地形线是否一致。

  4. Auto Update Geometry 与图层关联

    编辑状态下右键几何图层选择 Auto Update Geometry,点 Check All Properties 勾选全部属性(River Stations、Bank Stations、Reach Lengths、Elevations – Channel / Overbanks、Ineffective Areas、Blocked Obstructions、Manning's n Values 等)。此后在 RAS Mapper 中移动断面、改动中心线,保存时这些属性会自动从地形与几何重新计算。

    再用 Project | Manage Geometry Associations(或 RAS Geometry Properties 里的 Manage Associations)把 Terrain、Land Cover 等图层关联到几何——这是断面提取高程、按土地覆盖提取糙率的前提。

阶段 D · 结果映射与动画
  1. 添加结果图层

    运行方案后,RAS Mapper 的 Results 组会按 Plan Short ID 列出方案。右键方案节点选择 Add Results Map(或右键 Results 组添加):选择 Map Type(WSE 水面高程、Depth 水深、Velocity 流速等)、Unsteady Profile(非恒定流的某个时刻 / Max / Min)与 Map Output Mode(动态或存储),点 Add Map 生成结果图层。

  2. 动画与最大值查看

    勾选结果图层后,用地图窗口顶部的动画控制条播放/步进非恒定流各时刻;点 Max 按钮切换到最大淹没(Depth (Max)、Velocity (Max) 等),快速定位最不利时刻。

    动态图实时渲染,适合交互浏览;需要批量处理或加速大模型显示时,可右键 Results 组打开 Manage Results Maps 对话框,选中图层点 Compute/Update Stored Maps 预计算存储图(状态变为 Map files up to date),可一次处理多个方案,并支持复制、删除结果图。

  3. 剖面与区域统计

    底部 Profile Lines 标签页可沿任意剖面线提取水面线与河床纵剖面,用于对比沿程水位;Active Features 允许点击单元/断面交互查询属性;Layer Values 显示鼠标位置图层值。添加 Reference Point / Line / Polygon 后可聚合区域内单元结果,计算总水量、平均流速、净冲淤等(对水库蓄量、淹没体积分析很有用)。

阶段 E · 端到端淹没制图与导出
  1. 准备地形

    Project | Create New RAS Terrain:导入 DEM/栅格(可多幅合并),生成 .hdf 地形文件,并用 Tools | Set Projection for Project 设置坐标系统。

  2. 布置几何并关联图层

    创建几何(河网、断面、2D 网格)后,在 Manage Layer Associations 中把 Terrain 与 Land Cover 关联到对应几何,2D 网格会从地形提取单元高程、断面按土地覆盖取糙率。

  3. 运行计算

    在主界面运行恒定流或非恒定流方案,结果自动写入 RAS Mapper 的 Results 图层。

  4. 映射与动画

    勾选 WSE / Depth / Velocity 图层查看淹没范围;选中 Results 组图层,用动画控制条的 Max 按钮显示最大淹没;Profile Lines 标签页可沿任意剖面线提取水面线。

  5. 参考区域统计

    添加 Reference Polygon 后可聚合区域内单元结果,计算总水量、平均流速、净冲淤等(对水库蓄量、淹没体积分析很有用)。

  6. 导出与发布

    右键结果图层可 Export 为 Shapefile / GeoTIFF 等格式,供 GIS 软件继续处理;File | Export Map Image 导出当前视图图片用于报告;需要网页/地图服务展示时可导出 Google Earth KML/KMZ。

    RASter Calculator(栅格计算器,Map Layers 下)可对栅格图层做代数运算:例如 Cut/Fill 挖填方分析、两个方案的淹没深度差(100 年 vs 50 年)、淹没范围布尔提取等,是方案对比与工程分析的有力工具。

在线数据下载:RAS Mapper 可直接从 USGS Terrain 与 GRiD Terrain 服务查询并下载高程瓦片,无需离开软件即可获取建模地形。
返回教程目录
Advanced Topics

进阶专题

面向建模进阶的专题模块:泥沙输移与水质模拟,更多专题持续扩充中。

01 · Tutorial · Sediment Transport

官方教程进阶:泥沙输移与动床模拟

本节照 HEC 官方泥沙文档的界面路径一步步做:先有一套能算稳的水动力模型,再打开 Sediment Data 定义级配与床层、选输沙公式、设准非恒定流与温度,最后跑动床并读冲淤结果。案例思路对齐官方 1D Sediment Modeling Tutorial 与 2D 泥沙经验页。

本教程能回答的问题:河床会冲深还是淤高?粗颗粒会不会在床面富集(粗化)?水库会淤多少?——先把水动力跑稳,再打开动床,按下面各阶段逐步填数据。
官方示例数据:Data / Solution Files(1D Sediment Tutorial).zip官方 1D 泥沙教程页提供完整数据包与解法包,可对照本节步骤跟做。
打开官方教程页
阶段 A · 水动力打底与打开泥沙数据
  1. 确认一维模型已经能算稳

    打开已有工程(或先按「官方教程一」建好 Merced 一类 1D 模型),运行恒定流或非恒定流,确认水面线、流速合理、无大量 negative depth / 无法收敛。

    在 RAS Mapper 或 Profile Plot 里看一眼水面是否贴合地形;滩地曼宁 n 先不要盲目调大(泥沙对 n 极敏感,见阶段 E)。

    为什么先跑水动力?输沙能力对剪力、能坡非常敏感。水面线不对,后面冲淤只会错得更远。官方 2D 泥沙页也强调:先 warmup 湿润并稳定水面,再加泥沙。
  2. 打开 Sediment Data 编辑器

    在主界面选择 Edit | Sediment Data…(或几何编辑器中的泥沙数据入口),新建/打开泥沙数据文件,按项目命名保存(如 Sediment)。

    先浏览左侧树上的 Grain Classes(粒径分组)、Bed(床层)、Options 菜单位置——后面几步都在这里填。

    Sediment Data Editor 总界面官方截图
    Sediment Data Editor 总界面
    进入后先认界面:粒径分组、床层与 Options 菜单都在这个编辑器里。 来源:HEC 官方文档
  3. 认识准非恒定流三层时间步(填时间参数前必懂)

    官方将准非恒定流拆成三层,后面在 Quasi-Unsteady Flow 编辑器里会分别填:

    • Duration 流量档时长:该档内流量近似不变(日流量常取 24 h)。
    • Computational Increment 计算增量:水力+泥沙主时间步,必须 ≤ Duration;床面变化剧烈时不要设太大。
    • Bed Mixing Time Step:增量内再细分,只做级配记账(分选/粗化)。
    怎么填:日尺度多年演变:Duration=24 h,Computational Increment 先取 1–6 h 做敏感性;Bed Mixing 用默认即可。洪水过程冲淤:改用 Fully Unsteady。
阶段 B · 定义粒径分组与初始床沙
  1. 添加粒径分组(Grain Classes)

    在 Sediment Data 中选择 Grain Classes,点 Add 新增分组。河床质取样常拆成 3–6 组,例如:

    0.1 mm(细砂)· 0.5 mm(中砂)· 2 mm(砾)· 8 mm(卵石)

    为每组填写代表粒径;若做分选/粗化,组数不要只设一组全沙。

    定义粒径分组(Grain Classes)官方截图
    粒径分组定义界面
    点 Add 新增分组,填写代表粒径;建议 3–6 组以覆盖砂–卵石。 来源:HEC 官方文档
  2. 设置各粒径组重量百分比

    在级配表中填写各组 百分比,合计 100%。上游来沙与床面级配尽量都按同一套分组给出。

    取样优先:用河床质筛分曲线落到这几组上。没有实测时,可从相邻河段资料或经验级配起步,但率定时必须回头核对。
    粒径组属性与百分比官方截图
    粒径组属性与重量百分比
    各组百分比合计 100%;与河床质筛分曲线对应。 来源:HEC 官方文档
  3. 初始化床层(表层 + 基质)

    选择 Bed / 初始床沙组成,把表层(active/surface layer)配成与河床质一致的级配;需要模拟粗化时再配置下层基质。

    设置初始床面高程来源:通常直接用几何断面河床点;固定床诊断(Capacity Only)也要填级配,用来按粒径拆分输沙能力。

阶段 C · 选输沙公式与床层参数
  1. 打开 Transport Methods 并选主公式

    选择 Options | Transport Methods…。按河床组成选起点公式:

    Transport Methods 对话框官方截图
    输沙方法选择对话框
    在 Options → Transport Methods 中选主公式并检查适用粒径。 来源:HEC 官方文档
    • Engelund-Hansen — 沙质、全沙,常用起点。
    • Meyer-Peter Müller — 卵石/砾石推移质。
    • Yang — 流功率型,沙–砾石适用面较宽。
    • Parker — 卵石河床,常与隐藏暴露一起用。

    不确定时:沙河先 EH,砾石河先 MPM 或 Parker;后面用实测冲淤/输沙率对比再定主公式。

  2. 配置 Bed Mixing:隐藏暴露与活动层

    选择 Options | Bed Mixing Options…:

    勾选 Hiding and Exposure,方法优先 Wu,系数用默认值起步(细颗粒更易被"藏",总输沙会下降、模型更稳)。

    设置 Active Layer 厚度:沙床不要用"1×d90"默认过薄值,加一个最小厚度(约 0.1–0.3 m)或放大 d90 倍数,否则容易振荡。

    Bed Mixing Options(隐藏暴露与活动层)官方截图
    Bed Mixing Options 对话框
    勾选 Hiding and Exposure(Wu 起步),并检查 Active Layer 厚度(沙床加最小厚度)。 来源:HEC 官方 2D Sediment Parameters 文档
  3. (2D 额外)打开 2D Options 并确认浅水方程

    2D 动床必须使用完整 Shallow Water Equations(SWE),不能用扩散波。在 Plan 的 Unsteady Flow Analysis → Options → Computation Options and Tolerances → 2D Flow Options 里把 Equation Set 设为 SWE。

    2D 泥沙相关选项(示例)官方截图
    2D 泥沙选项对话框
    Equation Set 必须为 SWE;暖机步在 2D Flow Options 中设置。 来源:HEC 官方文档

    再回到 Sediment Data → Options → 2D Computational Options:求解器可用 FGMRES-SOR 试算,终算再换 PARADISO;紊动选 Conservative 默认。

    必做 Warmup:在 2D Flow Options → Number of Warmup Time Steps 填入暖机步数(可为 0=用模拟步长),让网格先湿润、水面平衡,再开始计泥沙。
阶段 D · 准非恒定流:流量档、温度与来沙
  1. 创建 Quasi-Unsteady Flow 数据

    打开 Quasi-Unsteady Flow Editor(非恒定流数据中的准非恒定流类型)。按日或更细分辨率输入流量序列,形成一系列流量档(Duration)。

    在编辑器中设置 Computational Increment(≤ Duration)与 Bed Mixing 相关步长;保存为独立的准非恒定流水流文件。

    Quasi-Unsteady / 混合流相关编辑器(示意)官方截图
    准非恒定流相关编辑器
    在此组织流量档与计算增量;温度在下一步单独设置。 来源:HEC 官方文档

  2. 点 Set Temperature… 填温度时间序列(必填)

    在 Quasi-Unsteady Flow 编辑器底部点击 Set Temperature…,打开温度序列编辑器,填写水温(°C 或 °F,与工程单位一致)。

    没有长系列时按官方三种做法选一:

    • 常数温度:Duration 填很长(如 240000 h),粗颗粒体系可先这么做并做敏感性。
    • 年高低温插值:只填每年最高/最低温度,其余留空,点 Interpolate Missing Values。
    • 月平均:每月填一个平均温度,Duration=730.48 h,再复制多年。
    准非恒定流温度序列编辑器官方截图
    准非恒定流温度序列编辑器
    沉速与部分输沙公式依赖粘度→水温,细颗粒体系更敏感。来源:HEC 官方 Quasi-Unsteady Temperature 文档
    温度序列编辑器对话框官方截图
    温度序列编辑器对话框
    不规则时间序列:常数长历时 / 高低温插值 / 月平均重复。来源:HEC 官方文档
  3. 设置上游来沙边界

    在泥沙/准非恒定流边界条件中,给上游断面设置来沙:

    • 给定输沙率过程线:有实测或推求的输沙率时用这个。
    • 平衡来沙(Equilibrium / Capacity-based):按边界水力与床沙自动取输沙能力,需保证上游"虚拟断面"级配合理。

    全非恒定流:温度在 Unsteady Flow Editor → Options | Water Temperature (for Unsteady Sediment) 中设置;不设则按 55 °F。

    泥沙边界条件设置(示意)官方截图
    泥沙边界条件
    上游选给定输沙率或平衡来沙;边界位置要落在主槽过水处。 来源:HEC 官方文档

  4. 在 Plan 中挂接泥沙计算选项

    打开 Unsteady Flow Analysis(Plan):几何选含泥沙的几何,水流选准非恒定流文件。

    选择 Options | Sediment Computation Options and Tolerances…:设泥沙时间相关倍增器(先 <10,并做敏感性)、层厚(初始可取 1–2 m 量级更稳)。

    Plan 保存为有意义的名字,如 Sed-Base。

    Sediment Computation Options(示意)官方截图
    泥沙计算选项
    倍增器先 <10 做敏感性;层厚可取 1–2 m 量级更稳。 来源:HEC 官方文档

阶段 E · 运行、读结果与常见问题
  1. 运行泥沙计算

    在 Plan 窗口点击 Compute(或 Run 中的 Sediment / Unsteady 计算)。长系列可先缩短时段试跑,确认不崩溃再跑全序列。

    若中途崩溃:先减小 Computational Increment,检查温度序列是否缺口,再看边界是否猛冲猛淤。

  2. 查看河床高程与冲淤量

    打开结果中的 Bed Change / Bed Elevation 图层或断面时间序列,对照:

    • 沿程冲刷/淤积位置是否符合直觉(弯道、束窄、回水段)。
    • 分粒径输沙率与表层级配是否出现明显粗化。
  3. 边界猛冲猛淤怎么查

    若模型上、下边界附近出现夸张冲深或淤积,按官方《Common Errors in 2D Sediment Models》顺序排查:

    • 来沙能力与来沙量/级配是否匹配(边界"饿"或"撑")。
    • 平衡来沙边界是否放在反映主槽过水的位置(不要铺满整个数值河槽)。
    • 上游能坡是否过陡形成射流 → 勾选 Tail Water check,让尾水修正边界坡降。
    边界处剧烈冲淤示例官方截图
    模型边界剧烈冲淤
    边界虚假冲刷会连带回淤,看起来像"上游淤了一大片"。来源:HEC 官方 Common Errors in 2D Sediment Models
  4. 滩地曼宁 n 不要乱加(泥沙陷阱)

    水力对滩地 n 不敏感,但输沙对应力极敏感:综合起来输沙可近似随 n 的三次方增长。滩地 n 从 0.06 调到 0.12,水位几乎不动,输沙却可能差一个数量级。

    回到几何数据 Tables | Manning's n,把滩地 n 按植被/阻力重新估计,而不是按"水位不好看"去加糙。

    Manning n 表(横向变化)官方截图
    曼宁 n 值表
    滩地 n 对输沙极其敏感,需按植被/阻力估计。图示为 1D 教程中的 Manning's n 表界面。来源:HEC 官方《Steady Flow Modeling with HEC-RAS》
  5. (可选)Capacity Only / Concentration Only 快速诊断

    要评估"加构筑物后能力是否变大"时,可用固定床简化:

    在 Sediment Data 中把 Simulation Components 设为 Capacity Only(或 Concentration Only),另存泥沙数据与 Plan,运行后在 Mapper 中展开 Sediment Transport → Total-load Transport Capacity 图层对比方案。

    Capacity Only 模式设置官方截图
    Capacity Only 计算模式
    固定床 Capacity Only:只算输沙能力场,仍需级配数据。来源:HEC 官方 Fixed-bed 2D Sediment 文档
    Capacity Only 输沙能力结果官方截图
    输沙能力结果图
    用颜色看能力高低,对比工程前后。来源:HEC 官方 Fixed-bed 2D Sediment 文档
阶段 F · 二维泥沙收尾检查清单
  1. 按优先级核对参数,而不是一次拧完

    官方建议顺序(详见 2D Sediment Transport 文档):

    • Tier 0:SWE 方程 + 水力 warmup。
    • Tier 1:Hiding(Wu)· Adaptation Length≈1–2×平均网格尺寸 · 求解器 · 紊动 Conservative · 沙床活动层厚度。
    • Tier 2:泥沙计算倍增器(<10)· 底坡系数 0.1–0.5 · 层厚。
    • Tier 3:Subgrid 等,模型稳定后再开。
  2. 需要岸坡稳定性或泥石流时

    岸坡:用 BSTEM(趾部冲刷 + 崩塌)基于动床结果评估;方案快速对比可用 SIAM。

    高含沙/泥石流:改用非牛顿流体库(屈服应力、塑性粘度;泥石流再加摩擦),沿沟加密网格,上游给流量+浓度过程线,看堆积范围与厚度。

官方入口:1D Sediment Transport · 2D Sediment Transport · Mud and Debris Flow

02 · Tutorial · Water Quality & Temperature

官方教程进阶:水温与水质组分模拟

本节照 HEC 水质/水温模块的操作顺序一步步做:先有水流场和气象强迫,再在 Water Quality 菜单里建组分集、从库里勾选组分、填边界浓度与反应速率,最后率定水温与 DO/氮磷。方法对齐官方 WTSM / NSM / GCSM 文档。

本教程能回答的问题:夏季水温会不会太高?DO 会不会掉?氨氮/磷是降解还是累积?——先按阶段 A–D 填数据,再用观测率定。
阶段 A · 水动力与气象强迫准备
  1. 确认水流场已经合理

    运行一维/二维水动力,检查流量分配、回水与滞水区。水质组分只在已算好的流场上做输运与反应,流场不对则浓度场无意义。

  2. 准备气象数据(完整能量平衡必填)

    整理逐时(推荐)气象序列,至少包括:

    • 短波太阳辐射 · 气压 · 气温 · 湿度 · 风速 · 云量

    风速要能换算到水面以上 2 m 高度。气温和辐射日变化大,月平均通常不够。

    热平衡在算什么?表层净热通量 \(q_{net}=\beta q_{sw}+q_{atm}-q_b-q_h-q_l-q_{sed}\),再通过水体热容改水温。植被河岸可加遮荫/挡风/保温系数。
    多层水柱热交换源汇示意官方截图
    多层水柱热交换源汇示意图
    本图解释「气象强迫如何进入热平衡」——与本步准备的辐射/气温/风速数据一一对应。短波、长波、潜热、感热与沉积物–水体热交换。来源:HEC 官方 Water Temperature Simulation Module
  3. 打开 Water Quality 数据入口

    在主界面选择 Edit | Water Quality Data…(或 Plan/边界数据中的 Water Quality 入口),新建水质数据文件并保存。

    你将用到三套组分库:Temperature(水温/泥沙温度)、NSM(营养盐–藻类–DO–CBOD)、GCSM(一般组分:示踪、微生物等)。

阶段 B · 创建组分集并勾选组分
  1. 新建 WQ Constituent Set

    打开 WQ Constituent Set Editor,选择 File / 菜单 → Create New WQ Constituent Set,命名(如 WQ_Base)。

    可建多套组分集做情景对比;切换前点 Apply 保存,避免丢参考值。

    WQ Constituent Set Editor 示例官方截图
    水质组分集编辑器
    组分集编辑器:列表里是已启用组分与参考值。来源:HEC 官方 WQ Constituent Set Editor 文档
  2. 点 Edit Set,从库里勾选组分

    点 Edit Set 打开 WQ Constituent Selector。在 Library 下拉中选择库,勾选需要的组分后点 Apply:

    • Temperature:勾 Water Temperature(需要时再加 Sediment Temperature)。
    • NSM:按目标勾 Dissolved Oxygen、Ammonium、Nitrate、Inorganic Phosphorous、Phytoplankton 等。
    • GCSM:保守示踪、大肠杆菌、一般颗粒等,可多套、各带独立速率。

    点 Clear Selections 可清空当前库的勾选;完成后点 OK 回到编辑器。

    WQ Constituent Selector · Temperature 库官方截图
    组分选择器温度库
    Temperature 库:Water Temperature / Sediment Temperature。来源:HEC 官方 WQ Constituent Selector
    WQ Constituent Selector · NSM1 库官方截图
    组分选择器 NSM1 库
    NSM 营养盐库常见组分:DO、NH₄、NO₃、无机磷、浮游植物。来源:HEC 官方 WQ Constituent Selector
  3. 给每个组分填参考值/初始浓度

    回到 WQ Constituent Set Editor 表格,为各组分填写 Reference / 初始浓度(mg/L 或文档规定单位)。GCSM 组分还要填速率参数(见阶段 C)。

阶段 C · 边界浓度与反应动力学
  1. 设置上游与旁侧入流浓度

    在边界条件编辑器中,为各组分指定 浓度过程线(与流量过程线同步)。点源排口用旁侧入流,在排口附近保证网格/断面分辨率足够。

    先用 保守示踪(GCSM 近保守)跑一遍,看输运时间尺度是否合理,再上反应组分。

    边界组分数据源选项官方截图
    Boundary Constituent Set Editor 数据源
    浓度过程线可来自常数、DSS 或环境值;与流量过程线时间对齐。 来源:HEC 官方文档

  2. 填反应速率与温度系数

    按 20 °C 率定值填写 \(k(20)\) 与温度系数 \(\theta\)(常见 1.01–1.10),运行时自动换算 \(k(T_w)=k(20)\,\theta^{T_w-20}\)。

    GCSM 一般组分典型源汇:零级/一级衰减、沉降 \(v_s\)、底泥释放 \(k_{sed}\)。NSM 则涉及藻类生长/呼吸、CBOD 耗氧、硝化、复氧等——优先用文献或本站监测约束,不要全靠默认值。

    和泥沙一起算时:悬沙影响光消光→水温与藻类;温度序列与时间步要与泥沙分析保持同一套,避免两套强迫。
  3. (可选)植被河岸修正

    若河道有浓密岸林,可在水温模块中设 遮荫系数、挡风系数、长波保温系数(0=无植被影响,1=完全遮蔽/挡风)。可按季节变化。

阶段 D · 运行、读结果与率定
  1. 把组分集挂到 Plan 并计算

    在 Unsteady Flow Analysis 中选择对应几何/水流,指定 WQ Constituent Set,保存 Plan(如 WQ-Base)后点 Compute。

    先跑短时段确认稳定,再跑率定期。

  2. 先看水温,再看 DO 与氮磷

    在结果绘图中依次检查:

    • 水温沿程/逐日:是否贴近观测(日最低/最高)。
    • DO:是否出现不合理耗氧谷;与水温、CBOD 对照。
    • NH₄ / NO₃ / PO₄:点源下游是否按预期衰减或累积。
  3. 率定顺序建议

    官方与工程实践的稳妥顺序:

    ① 输运(保守示踪/流场)→ ② 水温(辐射与蒸发强迫)→ ③ DO(复氧与耗氧)→ ④ 营养盐与藻类。

    一次只动一类参数;每改一组速率就保存新的 Plan/组分集,方便回退对比。

官方入口:User's Manual · Documentation Home · Guides & Tutorials

返回教程目录
References

学习参考

理论基础、常见问题排查与官方学习资源——查理论、查报错、找官方入口,随查随用。

01 · Theory

必须知道的理论基础

理解 HEC-RAS 的计算原理,才能正确地布置模型、解释结果、判断异常。以下为官方 Hydraulic Reference Manual 的核心内容摘编。

主题 01 · 水力学基础:三大方程体系

HEC-RAS 的一维水动力计算基于水力学三大方程:连续性方程(质量守恒)、能量方程(伯努利方程的工程扩展)与动量方程(牛顿第二定律)。三者适用于不同场景——渐变流用能量方程,急变流(水跃、桥梁、汇流节点)用动量方程,连续性方程则贯穿始终。

$$Q = A_1 V_1 = A_2 V_2 \qquad F = \rho Q\,(V_2 - V_1)$$
左:恒定流连续性方程,Q 为流量,A 为过水断面面积,V 为断面平均流速;右:动量方程,F 为水流对结构物/控制体的合力,ρ 为水的密度。HEC-RAS 在能量方程不适用处自动切换动量方程。
主题 02 · 恒定流:能量方程(标准步进法)

恒定渐变流的基本计算基于一维能量方程:断面 2 的总水头等于断面 1 的总水头减去两断面间的能量损失:

$$Z_2 + Y_2 + \frac{\alpha_2 V_2^2}{2g} = Z_1 + Y_1 + \frac{\alpha_1 V_1^2}{2g} + h_e$$
其中 Z 为渠底高程,Y 为水深,α 为流速分布系数(动能修正系数),V 为断面平均流速,g 为重力加速度,he 为断面间能量损失。

能量损失由两部分组成:摩阻损失 hf(用曼宁公式计算)与收缩/扩张损失 hc(等于流速水头变化乘以收缩/扩张系数 C):

$$h_e = h_f + h_c, \qquad h_c = C\left|\frac{\alpha_2 V_2^2}{2g} - \frac{\alpha_1 V_1^2}{2g}\right|$$
hf = 两断面间加权平均摩阻坡度 × 断面间距;收缩(converging)与扩张(expanding)系数 C 的取值(如收缩 0.1、扩张 0.3)可在几何数据中设置。

在急变流场景——混合流态(水跃)、桥梁水力、汇流节点——能量方程不适用,改用动量方程求解。

主题 03 · 曼宁公式与糙率选择
$$V = \frac{1}{n} R^{2/3} S_f^{1/2} \quad \text{(SI 单位)}\qquad V = \frac{1.49}{n} R^{2/3} S_f^{1/2} \quad \text{(US 单位)}$$
n 为曼宁糙率系数,R 为水力半径,Sf 为摩阻坡度。HEC-RAS 用它计算断面各子断面(主槽/左右滩地)的流量分配与摩阻损失。

n 值是模型中最敏感的参数之一,参考范围(数值见官方《Hydraulic Reference Manual》):

常见曼宁糙率 n 参考范围
表面类型n 值范围说明
人工顺直渠道(混凝土)0.012 – 0.017光滑、规则,变化小
人工渠道(土质/砌石)0.020 – 0.035视植被与糙度而定
天然河道(清洁)0.030 – 0.050一般山区/平原河流主槽
天然河道(弯曲/多石/杂草)0.050 – 0.080深潭、倒树、大块石
洪泛区(草地/农田)0.035 – 0.070滩地低植被
洪泛区(灌木/树林)0.080 – 0.150高植被阻水显著
主题 04 · 流态判断:弗劳德数与比能

弗劳德数(Froude number)是判断明渠流态的核心无量纲数:Fr < 1 为亚临界(缓流),扰动向上游传播、水流受下游控制;Fr = 1 为临界流;Fr > 1 为超临界(急流),水流受上游控制。HEC-RAS 恒定流计算据此自动选择计算方向。

$$Fr = \frac{V}{\sqrt{g\,y}} \qquad y_c = \sqrt[3]{\frac{q^2}{g}} \qquad E = y + \frac{Q^2}{2g A^2}$$
左:弗劳德数(y 为水深,矩形断面取平均水深);中:矩形断面临界水深 yc(q = Q/b 为单宽流量);右:比能 E = 水深 + 流速水头。临界流时比能最小,水面线计算中的"临界深度控制"即基于此。
主题 05 · 水面线分类(M / S / C / H / A 型)

明渠渐变流水面线按床坡类型(缓坡 M、陡坡 S、临界坡 C、水平 H、逆坡 A)与水深相对正常水深 yn、临界水深 yc 的区域组合分类,共 12 类(如 M1/M2/M3、S1/S2/S3 等)。判断水面线类型可帮助验证计算结果是否物理合理:

常见水面线类型与特征
类型特征与工程含义
M1(回水曲线)缓坡上 y>yn>yc,上游受下游堰坝、水库、干流顶托形成的壅水曲线,向上游渐进趋于正常水深
M2(降水曲线)缓坡上 yn>y>yc,下游跌落(如陡坎、入汇大河),水面线向下游降低
M3(水跃前段)缓坡上 y<yc<yn,急流进入缓流段时先跌后跃
S2陡坡上 yc>y>yn,急流降水曲线
S3陡坡上 y<yn<yc,水跃下游的急流段
H2 / A2 / A3水平坡/逆坡上的降水与壅水曲线,常见于坝下消能段与逆向坡度河段
主题 06 · 动量方程的应用:水跃与桥梁

能量方程假定能量守恒(含损失项),在急变流区域不成立——水跃、桥梁/涵洞上下游、闸堰、汇流节点等场景 HEC-RAS 使用动量方程。水跃的共轭水深关系是判断跃前跃后水位的经典公式:

$$\frac{y_2}{y_1} = \frac{1}{2}\left(\sqrt{1 + 8\,Fr_1^2} - 1\right)$$
y1、Fr1 为跃前水深与弗劳德数,y2 为跃后共轭水深。当 Fr1 > 1 且下游水深介于 y1 与 y2 之间时发生水跃。
主题 07 · 非恒定流:一维圣维南方程组

1D 非恒定流求解器(改编自 UNET)数值求解一维圣维南方程组。连续方程:

$$\frac{\partial A}{\partial t} + \frac{\partial Q}{\partial x} = q_l$$
A 为过水面积,Q 为流量,ql 为单位长度侧向入流。

动量方程:

$$\frac{\partial Q}{\partial t} + \frac{\partial (Q V)}{\partial x} + gA\left(\frac{\partial z}{\partial x} + S_f\right) = 0$$
z 为水面高程,Sf 为摩阻坡度。方程组由程序按有限差分格式离散求解,因此对时间步长与断面布置有稳定性要求。
主题 08 · 数值格式:Preissmann 四点隐式与 Theta 权重

HEC-RAS 一维非恒定流求解器在时空网格上采用Preissmann 四点隐式格式离散圣维南方程组:每个计算时段内,未知量同时以当前时刻与下一时刻的加权平均参与求解,从而允许较大的时间步长而不失稳。时间权重 θ 决定格式性质:

$$\frac{f^{n+1}_i - f^n_i}{\Delta t} = \theta\left(\frac{\partial f}{\partial t}\right)^{n+1} + (1-\theta)\left(\frac{\partial f}{\partial t}\right)^{n}$$
θ = 1.0 为全隐式(无条件稳定、数值耗散较大);θ = 0.5 为 Crank-Nicolson(精度最高但易振荡);HEC-RAS 默认 0.6,为稳定与精度折中。官方稳定性调试时可调整该权重。
主题 09 · 数值稳定性:Courant 条件与时间步

显式数值格式要求信息传播在一个时间步内不越过一个空间步长,即 Courant 条件;隐式格式理论上无条件稳定,但为控制数值耗散与振荡,仍建议满足 Courant 数接近 1:

$$C_n = \frac{V\,\Delta t}{\Delta x} \le 1 \qquad c = \sqrt{\frac{gA}{B}} \approx \sqrt{g\,y}$$
Cn 为 Courant 数(V 流速、Δt 时间步、Δx 空间步);右式为长波波速 c(B 为水面宽度)。经验上 1D 洪水波时间步取 1–5 分钟、2D 单元更小需更短步长;断面/单元越密、流速越快,时间步越要减小。
主题 10 · 二维浅水方程

2D 求解器在非结构化网格上求解二维浅水方程(连续性 + x/y 方向动量,含底坡、摩阻、涡粘、风应力等项),扩散波求解器则忽略对流加速度项以换取更好的稳定性与更大时间步。连续性方程:

$$\frac{\partial H}{\partial t} + \frac{\partial (h u)}{\partial x} + \frac{\partial (h v)}{\partial y} = 0$$
H 为水面高程,h 为水深,u、v 为 x、y 方向流速。

x 方向动量方程(示意,完整含风应力与科氏力项):

$$\frac{\partial u}{\partial t} + u\frac{\partial u}{\partial x} + v\frac{\partial u}{\partial y} = -g\frac{\partial H}{\partial x} + \nu_t\left(\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}\right) - g S_{fx}$$
νt 为涡粘系数(湍流扩散项),Sfx 为 x 方向摩阻坡度(曼宁公式给出)。完整公式(含风应力、科氏力)见官方《Hydraulic Reference Manual》与《2D User's Manual》。
主题 11 · 扩散波近似与有限体积

扩散波忽略圣维南方程组中的惯性项(对流加速度与当地加速度),保留压力项与摩阻项,稳定、可大步长,是 HEC-RAS 2D 默认求解器(SWE-EM)的理论基础,适合大多数漫滩与城市洪涝:

$$\frac{\partial h}{\partial t} = \frac{\partial}{\partial x}\left(D \frac{\partial h}{\partial x}\right), \qquad D \approx \frac{h^{5/3}}{n^2\,|\partial H / \partial x|}$$
D 为扩散系数(示意形式),h 为水深,n 为曼宁糙率。忽略惯性项后方程退化为抛物型,数值上更稳定。

2D 求解器采用有限体积法:在每一个网格单元(cell)上积分守恒形式的方程,通过单元面(face)计算相邻单元间的流量通量——这正是实战章节中"单元中心 / 单元面 / 面端点"三个概念的数值理论来源;单元面必须沿堤防等线性阻水物对齐,否则通量会"泄漏"。

主题 12 · 泥沙输移基础:Exner 方程与输沙率

动床模拟把河床变形与水流输沙耦合起来:河床高程变化由输沙量沿程梯度决定(Exner 方程),而输沙率由水动力条件(剪应力)与床沙粒径决定。HEC-RAS 泥沙模块支持多种输沙率公式(Meyer-Peter Müller 推移质、Engelund-Hansen 全沙、Toffaleti 等),按粒径分级计算。

$$\frac{\partial z_b}{\partial t} = -\frac{1}{1-\lambda_p}\frac{\partial q_b}{\partial x} \qquad \tau_* = \frac{\tau_0}{(\rho_s - \rho)\,g\,d}$$
左:Exner 方程,zb 为河床高程,λp 为床沙孔隙率,qb 为单位宽度输沙率——输沙量沿程增加(∂qb/∂x > 0)则冲刷(河床降低);右:Shields 无量纲剪应力(希尔兹数),τ0 为床面剪应力,ρs 为泥沙密度,d 为粒径——用于判断起动条件。
主题 13 · 水质模拟基础:对流扩散方程

水质组分(温度、溶解氧、藻类、营养盐、CBOD 等)在水体中的迁移由对流与扩散/弥散控制,并叠加反应源汇项。HEC-RAS 一维水质输运采用 QUICKEST-ULTIMATE 格式求解:

$$\frac{\partial C}{\partial t} + u\frac{\partial C}{\partial x} = D_x \frac{\partial^2 C}{\partial x^2} + \sum S$$
C 为组分浓度,u 为流速,Dx 为纵向弥散系数,ΣS 为源汇项(复氧、耗氧、光合/呼吸、水温热交换等)。水温还叠加完整热平衡方程(太阳短波辐射、大气长波、蒸发、对流等)。
02 · Troubleshooting

常见问题与经验技巧

官方手册专设《Troubleshooting With HEC-RAS》章节;以下为教程与工程实践中最高频的问题清单。

Q1模型计算不稳定/发散(振荡、NaN)怎么办?

非恒定流:① 减小计算时间步长(先试 1–5 分钟);② 增加预热期,以低基流启动;③ 检查几何是否有突变断面、负河段长度、重叠断面;④ 过程线过陡时开启 Critical Boundary Condition 或对过程线做平滑;⑤ 使用 Min Flow 保证最低流量;⑥ 检查初始条件是否与边界一致(先用恒定流初始化)。

恒定流:① 检查断面间距是否过大导致水面线剧烈变化;② 检查是否有"无效流动区"未被定义;③ 检查流态设置(亚临界/超临界/混合)是否与实际一致;④ 检查边界条件坡度是否合理。

Q2断面需要多少个?怎么布置?

没有固定数量,原则是:沿程地形与流态变化处加密。在桥梁、涵洞、堰上下游、汇流口、坡度突变处必须加密断面;尽量保证相邻断面间的过流能力过渡平缓,避免流量分配剧烈跳变。低流量断面用于确认主槽与岸滩,高流量断面用于确认洪泛区范围。

Q3Normal Depth 边界的坡度怎么取?

取边界断面附近的河道实际纵坡(床底坡度)。可用 RAS Mapper 的测量工具沿河段量取,或用地形数据计算。选错坡度会使边界附近水位明显偏高或偏低,因此下游断面一般要延伸到研究区下游足够远,让边界条件的影响衰减。

Q42D 网格单元取多大合适?

经验参考:单元尺寸取 DEM 分辨率的 2–5 倍;单元不能小于 DEM 分辨率(更小不会更准,只会更慢)。大面积平缓区用大单元,主槽、堤防、建筑物周边用 Refinement Regions 局部加密。单元数翻倍会带来约 4 倍的单元量与计算时间,因此优先局部加密。

Q5DEM 有 NoData 空洞怎么办?

建模前先用 GIS 工具填补水流路径上的 NoData(水体区域常见)。2D 网格生成与计算在 NoData 单元上会产生数值不稳定甚至报错。RAS Mapper 创建地形后应目视检查研究区是否有空洞。

Q6计算水位与实测水位差很多?

按官方教程的三板斧排查:几何是否准确(断面、建筑物、高地/堤防是否入模)、边界条件是否合理(坡度、水位/流量关系)、曼宁 n 值是否正确。多数情况下先做糙率敏感性分析,再结合实测高水位(Observed WS)逐步校准。

Q7计算时间步长怎么选?

官方指南:先设一个较短的模拟时间窗,运行后用计算日志评估一个时间步(比如观察解是否收敛、Courant 条件)。2D 扩散波求解器允许较大步长(数分钟),显式浅水求解器需要更小步长(秒级)。经验上从 1–5 分钟起步,按稳定性与精度要求调整。

Q81D 和 2D 怎么选?

河道单一、水流近似一维(如深窄河谷)时 1D 高效且足够;河道出槽漫滩、城区复杂下垫面、需要刻画二维流向(回流、绕流、漫滩路径)时用 2D 或 1D/2D 耦合——河道用 1D(效率),滩区/城区用 2D(精度)。官方提供了专门的《Creating an Combined 1D/2D Model》指南。

03 · Resources

官方学习资源

HEC 官网提供免费、完整且持续更新的文档、教程与培训材料——本文所有内容均可在以下资源中找到权威原文。

软件下载页免费下载安装包与 Release Notes,含 6.x、7.0.x 与 HEC-RAS 2025 Beta。hec.usace.army.mil/software/hec-ras/ 文档首页 Documentation Home用户手册、技术参考、应用指南、Release Notes 的总入口,软件内 Help 菜单也指向这里。hec.usace.army.mil/software/hec-ras/documentation.aspx Guides & Tutorials 指南与教程本教程的主要来源:1D 恒定流、1D/2D 非恒定流、泥沙、泥石流、管网等分步教程 + 示例数据集。hec.usace.army.mil/confluence/rasdocs/hgt/latest User's Manual 用户手册从安装、入门到各组件详解与排错,最完整的操作手册。confluence/rasdocs/rasum/latest Hydraulic Reference Manual 技术参考能量/动量方程、曼宁公式、圣维南方程组、数值方法的完整推导与参数选取指南。confluence/rasdocs/ras1dtechref/latest Training 培训视频官方讲座与网络研讨会的视频录像,以及培训班讲义材料。hec.usace.army.mil/software/hec-ras/training.aspx
给中文用户的建议:官方文档目前以英文为主。建议先用本教程建立操作框架,再回到官方原文核对术语与参数细节;将单位制(英制/公制)习惯与官方保持一致(如流量 cfs 或 m³/s),可减少大量单位换算错误。