数据建模步骤文档_二维溃坝洪水模拟(五)二维模型建模_weixin_39811478的博客-程序员秘密

技术标签: 数据建模步骤文档  

168577eff62b4ccf101434b6d61a6d80.png

1 前言

本文主要说明案例中水库下游区域HEC-RAS二维建模的过程。文章首先给出建模的基本原则与建模的注意事项,确定了大致的研究区域。其次,整个下游洪水演进区域由单一二维模型模拟,下游存在一条较大的城市内河,沿河堤线对网格调整加密重生成。HEC-RAS2D建模功能较为丰富,本文远未穷尽全部功能,仅供参考

2 建模原则

建模的原则其实很简单,首先是针对研究区域分析,确认所有需水动力模拟的现实对象。之后抽象成概念模型,建构模拟对象间的水动力关系。最后基于模型能力对概念模型作技术化表达,落实到具体的水动力模型上。

2.1 模拟区域

研究区域是指单个二维网格区域覆盖的范围,本案例只设置单个二维网格区域,不讨论多二维网格区域的情况,当然原则类似。RAS把二维网格称为二维模型,以下如是。

二维模型研究区域的确定其实是求多个原则规定的区域的交集,以下为各原则说明:

  1. 水流可能运动区域。溃坝洪水也算明渠水流的一种,当然没那么“天然”。溃坝洪水体量大,演进极快,除了河道外会显著淹没两岸平原地带,还可能向上游回水。因此二维模型需要覆盖所有可能的洪水运动区域,包括左右两岸,上下游,支流和湖泊等。
  2. 研究目的区域。由于溃坝洪水演进范围极广(往往在市级及以上),实际项目中无论是原始数据还是研究需要往往都针对特定研究目的区域。比如我做的项目往往只关注一个市级行政区,洪水离开该市便无需考虑。又或者原始数据只包含演进过程中特定的区域。那么更大的区域也是无力模拟的。
  3. 实际下边界布置在边界误差扰动不会传播到研究区域下边界的足够远处。边界条件,尤其是河床底坡的边界条件,均会存在一定误差,进而向上游传播影响模拟结果。因此,应当将实际模型的下边界扩展至足够远处,保证误差传播至上游时对研究区域下边界不会存在明显影响。为确定扩展距离,可以设置多个不同扩展距离下边界的模型作不确定性分析,查看研究区域边界计算结果直至实际边界距离变化不再影响计算结果即可确定[1]

上述3个原则只是基本性的原则,具体建模上还会因各种因素发生变化,但这些原则仍是重要的必要条件。

2.2 空间步长

空间步长即单个网格尺度。RAS网格虽然为非结构化网格,但可自定义的只有正交网格部分,作为整个二维模型的默认设置。RAS二维模型中不与边界接触的网格采用正交网格(正方形),与边界接触的网格为自动生成的不规则多边形(外围那一圈),最大8条边。有趣的是RAS验证文档中的溃坝模拟案例使用的正八边形网格[2],但正交网格效率最高,因此目前只开放正交网格自定义。

MIKE等模型中需要给二维模型作边界平滑,保证三角形计算网格生成的更均匀。但HEC-RAS的FVM方法对网格结构依赖度底,对复杂边界有很好的适应性,会根据定义的边界线自动生成不规则多边形,因此也无需作边界平滑。

空间步长是计算中主要的敏感性因素之一。空间步长的选取直接关系到对地形的采样精度,是对地形的第二次拟合。空间步长的选取与地形数据的精度直接相关,原则上要求空间步长的选取能够保证捕捉到地形中地势变化和各种影响水流的细节[3],比如堤,公路,高地,建筑物等。尽管RAS使用“子网格”技术改进对地形的提取精度,但如果你的单个网格尺度显著大于地形细节,就会出现地形拟合失真,水流碎片化和流动与实际地形不匹配[4],如下图对比。建议对空间步长作不确定性分析,设置不同尺度的二维网格,在水流运动路径上提取计算结果,观察直至计算结果无明显变化为止。

5773b8d021c5e11e2b7812fbb1083ca0.png

52555e9398d9b6cb24d048ff55b0dca7.png

HEC-RAS同样支持局部网格加密或稀疏[5]。这种功能和一些CFD模型中的自适应网格是有区别的,那些模型的自适应网格可以由模型控制,并在计算中自动调整。但HEC0RAS中只能自定义网格重置区域和密度,且在计算中保持不变。这一功能主要是为多样地形条件下提高计算效率和精度准备的,对于地势平缓的区域可以放大空间步长。

d97aea5ee030bcc4cf508ab5b05b43aa.png

HEC-RAS也支持网格对齐[6]。即针对明显的地形“硬线”,比如堤防,公路,建筑物等,设置轮廓线令网格对齐轮廓线生成,轮廓线周围的网格也支持局部加密。诚如上述,如果网格没有对齐这类硬线生成,网格往往会穿过建筑物,细节捕捉就会失真。而且此类地形处往往水流湍急,需要更小的空间步长保证计算精度。

8bee83f978039edaeb9a37ffdb51dfa5.png

2.3 模型内部要素

如果研究区域内存在一系列水工建筑物,如堰,堤,涵管,闸门等,是可以在二维模型内部独立建模模拟的[7]。但目前坝(显著高于地面且不能坝顶溢流)是不能设置在二维模型内部的,桥梁和泵站也是不支持的(一维模型支持)。

7663ed4fba20c8e6af53cc7d24b5a4b7.png

此外,不同于一维模型,二维模型内部所有的模型要素均通过SA/2D Conn要素设置。当然对于堤防(不含闸门),建筑物等可以通过地形改进嵌入地形中,无需独立建模。堰(不能过高,且堰顶过流)可以使用堰流方程和二维浅水两种方法计算过堰水流。这类水工建筑物模拟功能还在持续迭代中,应该会达到一维模型同等水平,可以关注后续改进。

对模型内部水工建筑物的考量有时是很重要的,尤其在一小段河道和漫滩模拟时,往往是不可忽略的。但对溃坝洪水这个量级以及粗糙的原始数据,暂且忽略。

3 二维模型建模

本案例二维模型是比较简单的,即针对水库洪水下游演进范围建立单个二维模型,不设内部水工建筑物,不作局部网格密度重置。为简化模拟,充分展示子网格技术,二维网格的空间步长选定为100m。

案例水库位于下游干流的支流之上,溃坝洪水经支流进入干流造成水位壅高,干流穿过城市内部,修筑有完好的堤防。因此,模拟区域应为支流及干流两岸,网格沿干流堤防对齐(不模拟堤防,没有数据),网格尺度加密为30m。

3.1 模型建模

建模很简单,主要就是作一个矢量面图层作为模拟区域,设置空间步长,RAS便会自动生成网格。最艰难的工作网格生成已由前处理工具完成。网格对齐只要作矢量线图层,沿堤顶绘制即可,之后仍然是RAS自动前处理工具的事。在此之前需准备好两个图层,一个二维网格区域面图层,一个河堤两岸线图层。生成方法与水库和大坝相同。

具体步骤如下:

  1. 在RAS Mapper中勾选Terrain,在RAS地形上准备绘制二维模型边界
  2. 在2Dmodel(以及2Dmodel_2)图层中,右键2D Flow Area图层进入编辑模式,选中Perimeters子图层,开始绘制二维模型边界。绘制完成后重命名为Mesh。此图层为二维模型合集,可以绘制多个二维模型,我们这次只绘制一个
  3. 在2D Flow Area图层上右键选择2D Flow Area Editor,Points Spacing(m)输入30(输入一个就行了,正交网格另一个是相等的,不相等是没用的)。选中Genenrate Computation Points,等进度条走完即可生成网格
  4. 在GIS应用中加载卫星图,在卫星图上确认堤防位置,沿堤顶绘制矢量线图层(共4条线),保存至硬盘。然后在2D Flow Area子图层Breaklines图层中导入(与之前操作一致)。然后在其上右键Edit Breaklines Properties,在每条线的Near Spacing属性中输入10,保存关闭
  5. 回到第3步中,再度重生成网格。此时往往会在左下角提示网格生成错误信息。可以在Perimeters上右键使用Try to fix mesh工具,自动修复错误,但每次修复后可能产生新的错误,可多次迭代直至不再报错为止。最后关闭编辑保存
  6. 在2D Flow Area上右键Computer 2D Flow Area Hydraulic Table,即从RAS地形数据提取高程赋值给计算网格
  7. 返回SA/2D Conn窗口,将大坝Dam下游To连接赋给二维模型Mesh
1489918f217494dd88bb23abb51c01a6.png
https://www.zhihu.com/video/1241121604509483008

3.2 重点说明

  • 也可以在GIS应用中参考卫星底图绘制面图层导入RAS作模型边界,为什么在RAS中作图,因为这时主要考虑水流运动,直接在RAS中观察地形地势设置范围更清晰(当然GIS里也可以渲染地形)。至于堤防,DEM基本上不会有明显的这类细节,照着卫星图画最清晰
  • 网格尺度设置是针对全局性的正交网格,边界区域不规则网格自动生成,往往略大一点。不要一开始设置太小的网格尺度。
  • 如果修改边界或Breaklines,左下角会提示网格out of date,可以用编辑栏右侧的update更新网格。如果更新失败,请使用上述第3步中的全局重生成网格,当然这样很费时。有一个Force Mesh Recomputation,但这个功能一直有点问题。
  • 网格生成后可能存在各式各样的问题,可以手动或使用上述自动化工具解决,请参考RAS文档[8]。当自动化工具多次迭代均不能解决问题时,需手动修正。密切注意左下角的错误提示,经常使用Update功能更新网格,勾选2D Flow Area中的Errors查看错误网格的具体位置。
  • 诚如前述,糟糕的DEM上堤防细节其实很差,更不用说还经常缺失河道水面下地形。所以网格对齐功能实际效果不佳,但必要的步骤还是要做的。Breaklines有多个设置选项,请参考RAS文档[9],而Near Spacing是设置Breakline紧沿线(上游至下游)的两侧网格的尺度,其实是沿线加密网格功能,最终生成结果与全局设置有所不同
  • 网格局部加密和稀疏功能在Refinement Regions,请参考文档[10]
  • 第6步其实可以在模拟计算时由模型自动执行,但在此处执行后可以在SA/2D Conn下部可视化窗口中查看新生成的TW Cell Min Elev线,即大坝相接的下游二维网格边界横断面(尾水断面)高程,此时你可以检查溃口底部高程是否大于等于尾水断面的底部高程(但我发现该功能似乎有问题,还是只有模拟计算后才会显示,可能是BUG)。执行过程可能很慢,不能中途关闭,否则几何文件会损坏。
  • 计算用时与空间步长密切相关,越小的空间步长算力要求越高,用时越长。而在二维模型中主要体现为木桶效应,即最小尺度的网格是延长计算用时的主要因素。Refinement Regions和Breaklines的局部加密都是主要影响因素,本案例中即使全局网格尺度30m,但Breakline处10m网格仍会显著延长计算用时(当然不如全局10m慢)

参考

  1. ^Downstream Boundary-Normal Depth? http://hecrasmodel.blogspot.com/2010/01/downstream-boundary-normal-depth.html
  2. ^HEC-RAS Verification and Validation Tests. P119 https://www.hec.usace.army.mil/
  3. ^HEC-RAS, River Analysis System, 2D Modeling User's Manual. C4-3~6 https://www.hec.usace.army.mil/
  4. ^2D Mesh “Leaking” http://hecrasmodel.blogspot.com/2015/03/2d-mesh-leaking.html
  5. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-27~28 https://www.hec.usace.army.mil/
  6. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-25~27 https://www.hec.usace.army.mil/
  7. ^HEC-RAS, River Analysis System, 2D Modeling User's Manual. C3-63~67 https://www.hec.usace.army.mil/
  8. ^HEC-RAS, River Analysis System, 2D Modeling User's Manual. C3-14~20 https://www.hec.usace.army.mil/
  9. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-25~27 https://www.hec.usace.army.mil/
  10. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-27~28 https://www.hec.usace.army.mil/
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39811478/article/details/111389025

智能推荐

HTTP详解(请求方式)_坦思清风的博客-程序员秘密

原文地址:HTTP协议详解(真的很经典) 作者:308938969   HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)

centos系统下搭建NFS_sunshine-dss的博客-程序员秘密

Linux下NFS服务器的搭建与配置一、NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的。 它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案 (share files)。所以,你也可以简单的将他看做是一个文件服务器 (file server) 呢!这个 NFS 服务器可以让你的 PC 来将...

【目标检测算法系列】一、R-CNN算法_9完美并不美的博客-程序员秘密

R-CNN 是第一个成功将深度学习应用到目标检测上的算法,也是后续Fast R-CNN , Faster R-CNN等系列算法的鼻祖一、R-CNN整体架构R-CNN的全貌如下图所示它主要分为4个模块候选区域(region proposal)提取 一个大型的CNN网络用来特征提取 使用SVM分类模型进行类别分类 使用回归(Regression)模型进行具体定位具体R...

c语言 gb2312转utf8,嵌入式utf-8转码gb2312的c语言实现,附源码_哈全文的博客-程序员秘密

部分参考:www.360doc.com/content/12/0926/12/1072296_238242301.shtmlhttps://blog.csdn.net/wyingquan/article/details/3882432涉及到的文件unicode_to_gb2312_table.bin,请前往我的csdn资源下载中寻找源码如下:(使用方法直接拷贝进去一个.c文件,用vc编译一下就ok...

打造前端瑞士军刀,为你开发路上披荆斩棘_石燕平_Leo的博客-程序员秘密

每个工具都可以点击查看打开链接,因为微信内部不能查看外链,所以大家可以点击查看原文打开外链后进行查看主要是为了帮助大家搜集一下前端开发中要用到的一些东西,打造一个前端开发...

php openssl扩展升级,OpenSSL升级和php加扩展模板openssl_weixin_39924584的博客-程序员秘密

升级openssl版本,以版本1.0.2l为例子方法如下:1.下载最新版本的openssl源码包wget ftp://ftp.openssl.org/source/openssl-1.0.2l.tar.gzhttps://www.openssl.org/source/2. 安装openssl1)tar �Cxzvf openssl-1.0.2l.tar.gz2)cd openssl-1.0.2...

随便推点

小组成员个人简介——钱珺_HereComesTheProblem的博客-程序员秘密

本人名叫钱珺(第四声),渣渣程序猿一只,强迫症患者。性格有点内向,平时生活有点懒散,但是做事还是很认真的。标准的理工男,但是平时却喜欢看历史方面的书籍。喜欢玩游戏,偏爱策略向游戏和minecraft。    在这次的大作业中,我担任的是团队管理的工作。主要负责团队任务计划和进度监督工作。当然,工程的开发工作也必不可少。这还是我第一次担任领导性的角色,对我来说挑战挺大的。作为管理者,不仅要把握团

Java Mock测试maven 依赖_ShuaiLewis的博客-程序员秘密_mock依赖

需要添加的依赖为:<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.19.1</version> <scope>te

Windows无法安装到这个磁盘,选中的磁盘具有MBR分区表的解决方法_VickHUC的博客-程序员秘密_选中的磁盘具有mbr分区无法安装

因为GHOST系统会捆绑大量软件,主页被强制修改,并且系统还可能存在删减的可能性,所以越来越多的用户考虑安装官方MSDN原版系统,但是呢,近期总是有用户称自己在安装Win10原版系统的时候,在选择磁盘分区的时候,提示了“Windows无法安装到这个磁盘,选中的磁盘具有MBR分区表,在EFI系统上,windows只能安装到GPT磁盘。”,然后无法进行下一步操作,导致了无法安装Windows10系统。那么如果遇到这个问题,我们要如何解决呢?下面装机之家分享一下Win10安装系统提示Windows无法安装到这个磁

真正搞懂均值模糊、中值模糊、高斯模糊、双边模糊_Vici__的博客-程序员秘密_均值模糊

对于卷积概念和计算不熟悉的建议先看下这篇博客:直观理解深度学习卷积部分滤波器有高通滤波器(HPF)和低通滤波器(LPF)两种。高通滤波器:根据像素与周围的像素的亮度差值来提升改像素的亮度。 主要作用是锐化。 低通滤波器:在像素与周围像素的亮度差值小于一个特定值时,平滑改像素的亮度。 主要作用是去噪和模糊化。下面要说的均值模糊、中值模糊、高斯模糊都属于低通滤波器。...

python面试题及解析_a188440714的博客-程序员秘密

1.python基础1.Python和Java、PHP、C、C#、C++等其他语言的对比?答:2.简述解释型和编译型编程语言?答:解释型语言,在运行时才进行翻译,每条语句都是执行时才进行翻译,效率比较低;  编译型语言,执行前需将高级语言编译成机器语言,翻译只做一次,执行效率较高;3.位和字节的关系?答:位,数据传输单位;字节,数据存储单位;4.b、B、K...

STM32中printf函数重定向_奶盖红茶的博客-程序员秘密

标准库函数的默认输出设备是显示器,要实现在串口或LCD上的输出,必须重定义标准库函数中与输出设备相关的函数.如printf()之类的函数,使用了半主机模式。使用标准库会导致程序无法运行,解决方法如下:方法1:使用微库,因为使用微库的话,不会使用半主机模式.如果使用的是MDK,首先请在工程属性的“Target“->”Code Generation“中勾选”Use MicroL...

推荐文章

热门文章

相关标签