基于C#语言河流模拟数据处理软件的开发与应用

2021-10-22 01:37苏晓慧曹勇吴海亮
河南水利与南水北调 2021年8期
关键词:滞洪区水深后处理

苏晓慧,曹勇,吴海亮

(1.黄河水利科学研究院,河南 郑州 450003;2.黄河勘测规划设计研究院有限公司,河南 郑州 450003)

1 前言

近年来,随着国内沿河城市社会经济的快速发展,无论是防洪保护区、滩区或蓄滞洪区,防洪保安的任务和需求都与日俱增,对于洪水预报的准确性和实时性,提出了更高的要求。利用一维或二维水力学计算模型进行洪水预报,建立相应的预警机制,是开展洪水风险管理、灾情评估、应急决策的重要手段。

平面二维水流模型能够计算出防洪工程、蓄滞洪区的流速和水深分布,在洪水预报、洪水风险图、防洪影响评价等工作中得到了广泛应用。MIKE21模型是丹麦水力研究所(DHI)开发的平面二维自由表面流模型,可以通过选定不同的模块,进行不同对象的模拟研究,用于水流、水质、波浪等二维水力学现象的研究。目前,Mike21模型已被国内多个水利科研和设计单位购买,广泛应用在生产实践中的防洪影响评价、洪水风险图等项目中。

Mike21模型可以自由灵活地设置多种不同的边界条件,快速解决工作中的实际问题。但该软件的前处理过程相对繁琐,需要将计算范围线和地形点高程的文件从AutoCAD中提取出来,经处理后才能导入模型;后处理导出的形式比较单一,很难将流场、水深图导出至CAD图的原坐标位置,还需要其他软件的辅助,过程比较繁琐。

为了解决Mike21模型在河流洪水模拟中的实际问题,更好地做好前处理和后处理相关工作,基于C#语言开发了河流数值模拟数据处理程序,可以显著提高前处理的工作效率,使得后处理计算成果的展现形式更加丰富。

2 Mike21模型及相关研究工具简介

2.1 Mike21水动力模型简介

Mike21水流模型具体包括水动力、水质、泥沙等功能模块,其中水动力模块处于核心位置,是所有其他模块运行的基础。此次研究的重点就是Mike21的水动力模块。

天然水流的模拟是复杂的,用三维方程来模拟研究是合适的。但对于一般河道来说,由于水深方向比平面上的研究尺寸要小得多,物理量沿水深的分布可以忽略不计,压力分布与静压假定十分接近,故可以采用沿水深方向平均的平面二维水流数学模型模拟计算河道流场,既简化了水流运动基本方程,也能模拟水面的变化。

2.2 Mike21洪水模型构建步骤

与其他洪水模型建立过程相似,Mike21洪水模型构建主要分成三大步:前处理、模型计算、后处理。

前处理过程主要包括:网格剖分、地形高程点提取、高程插值,生成地形文件等;模型计算过程包括:导入地形文件、确定边界及初始条件、糙率的率定、模型的搭建、设定模型输出等;后处理就是依据模型计算的结果,生成流场图、水深图,通过分析计算得出科学的结论。

2.3 DHI Mike.net开发接口

DHI Mike提供了.net开发接口,包含两部分,一为Mike SDK,二为开发接口位于用户计算机Windows文件夹下的Microsoft.net的assembly子文件夹中,在该文件夹下面提供了较多的.net API,包括了DFS.net API、PFS.net API、MHydro.net API、Mike1D.net API等。

其中DFS.net API是一套用于读取、修改和创建DFS文件的接口类,Dfsfilefactory类提供了打开了现有DFS文件的方法,目前支持打开dfs1、dfs2、dfs3、dfsu等类型的文件。

Mike21的计算成果文件为dfsu文件,可以通过引用Dfsfilefactory类打开计算成果文件,从中可以读取到网格节点和单元信息,以及不同计算时段的水深、流速等数据。

2.4 AutoCAD二次开发技术

在我国大多数的测绘成果都是AutoCAD文件,在CAD中数据一般按地形要素分图层保存,高程数据包括了高程散点和等高线。为了生成Mike21模型能够识别的固定格式的地形文件,需要将这些高程散点和等高线的X、Y、Z值都提取出来,尽可能提取更多的地形数据来表征地形地貌的变化。同时,计算范围线的提取也非常重要,需要在CAD中将其描绘出来,提取数据后生成固定格式的文件。

从AutoCAD将这些地形要素批量化快速导出时,需运用CAD二次开发技术。目前,较为常见的AutoCAD二次开发的方式,即AutoLISP、ADS、Object ARX 和ActiveX Automation。其中,ActiveX Automation作为微软公司统一的技术标准,其工作原理的核心是允许不同软件之间通过暴露对象,达到相互控制和操作的目标。ActiveX技术是面向对象,大多数面向对象化编程的语言和应用程序,都能利用ActiveX接口与AutoCAD 进行通信,实现所需的定制功能。本文基于C#编程语言,利用ActiveX技术对AutoCAD进行二次开发。

2.5 Visual Studio C#的开发环境

C#(C Sharpe)是由微软公司开发的一种面向对象、运行于NET Framework框架上的高级编程语言。它具有上手速度快、功能强大、数据类型安全等特点,将 VB 简单的可视化操作和C++的高运行效率整合起来,是进行NET开发的首选语言。本次选用的开发工具是Visual Studio Community 2019,是微软公司针对个人用户而开发的免费版本,其功能和专业版相差不大。

3 河流模拟数据处理软件开发

3.1 开发环境配置

在Visual Studio环境下,新建C#的Windows窗体应用程序,并将其命名为“河流模拟数据处理程序”,如图1所示。

图1 创建新的窗体应用程序图

在编辑器右侧的解决方案资源管理器中,在通过“添加引用”,搜索并添加DHI.Generic.MikeZero.DFS.dll、Interop.AutoCAD.dll和Interop.AXDBLib.dll,在代码编辑页面,写入以下代码:

using AutoCAD;

using AXDBLib;

using DHI.Generic.MikeZero.DFS.dfsu;

以上代码可将程序所需要的模块导入,引入命名空间,完成程序开发环境的配置,继而正式开始应用程序开发。

3.2 前处理功能设计

前处理主要实现4个功能需求:①打开CAD文件,如果已经打开文件,则显示已打开文件的名称;②提取高程散点对象,包括了多行文字、单行文字和块文字等的插入点坐标和高程值;③提取等高线对象,包括多段线、三维多段线上点坐标和标高值;④提取计算范围线节点坐标。

进行前处理模块各个功能代码编写时,需要首先声明全局变量AutoCAD.AcadApplication AcadApp和AutoCAD.AcadDocument AcadDoc,其中AcadApplication是CAD 对象接口,AcadDocument是CAD 文件。

3.3 后处理功能设计

后处理主要实现5个功能需求:①打开Mike21的计算成果文件;②通过输入计算时段,生成水深分布图;③通过输入计算时段,生成流速分布图;④通过输入任意点的坐标,获取该点计算过程中的水深变化过程线;⑤通过输入任意点的坐标,获取该点计算过程中的流速变化过程线。

编写代码时,首先将using DHI.Generic.MikeZero.DFS.dfsu写入,引入命名空间,并新建一个ReadingDfsuFile方法。该软件的界面设计如图2所示。

图2 后处理功能模块界面设计图

4 在北金堤蓄滞洪区影响评价中的应用

4.1 项目背景

濮阳-范县-台前输气管道工程地处濮阳市境内,大部分位于北金堤蓄滞洪区,其总体布置:自濮阳县中开输气管线濮阳分输站起,向东穿越S101省道,穿过金堤河、晋中南铁路、范辉高速后沿东北方向敷设,在范县县城南边进入范县分输站(新建),出站后向东南方向敷设,沿S101省道敷设至台前县城西边的台前末站(新建)。根据《中华人民共和国防洪法》,在洪泛区、蓄滞洪区内建设非防洪建设项目,需编制洪水影响评价报告。为了研究工程修建前后,北金堤蓄滞洪水区的洪水演进的变化情况,利用Mike21模型进行了数值模拟。

4.2 北金堤蓄滞洪区基本情况

北金堤滞洪区是我国较大的滞洪区之一,位于黄河下游高村~陶城铺宽河段,在黄河左岸大堤与北金堤的夹角地带。

北金堤滞洪区的淹没范围涉及河南省新乡市长垣县、安阳市滑县,濮阳市的濮阳县、范县、台前县以及山东省莘县、阳谷县。全区西南至东北,上宽下窄,状如羊角,长171 km,南北最宽处为40 km,最窄处约7 km,滞洪区内地势西高东低,平均比降1/5 000,上游平均高程57.60 m,下游平均高程41.40 m,滞洪区总面积2 918 km2,蓄滞洪水量为20亿m3。

4.3 前处理数据提取

通过已编译好的河流模拟数据处理软件,打开所要提取数据的CAD文件,分别点击提取高程点、提取等高线和提取范围线即可完成数据的提取,操作简便,可直接生成Mike21模型识别格式的文件。将以上生成的两个文件直接导入到Mike21模型中,再进行网格剖分,高程差值,生成的地形文件。

4.4 后处理成果生成

后处理在Mike21模型计算完成以后进行,首先打开计算成果dfsu文件,在程序的对话框中输入任意时刻的计算时段,以及任意点的坐标,例如时段填100,X坐标为20 351 648.05,Y坐标为3 959 719.06。通过点击相应的按钮,即可完成后处理过程,生成的流速分布见图3所示。

图3 北金堤蓄滞洪区流速分布图

输气管道工程末端某阀室处的水深和流速变化曲线见图4、图5,可知洪水约在第58个小时演进至侯庙阀室,水深持续增加并保持在定值,流速先增后减并趋于零。

图4 水深变化过程线图

图5 流速变化过程线图

5 结论

Mike21模型具有简单易用、功能强大等特点,可以自由灵活地设置多种不同的边界条件,快速解决工作中的实际问题。但其前处理功能相对较弱;后处理过程中计算成果的表现形式较为单一。为了更好地做好前处理和后处理相关工作,基于C#语言,研究开发了河流数值模拟数据处理软件,既可以提高前处理的工作效率,也丰富了后处理数据展现形式,简化了工作流程。该软件可以推广到其他河流洪水影响评价或洪水风险模拟等项目中,具有良好的使用效果和实践推广价值。

猜你喜欢
滞洪区水深后处理
河北省大陆泽、宁晋泊蓄滞洪区防洪工程与安全建设项目开工建设
书法静水深流
车身接附点动刚度后处理方法对比
顾及特征水深点距离重分配的反距离加权插值算法
卫河“21·7”洪水蓄滞洪区运用浅谈
大陆泽蓄滞洪区滏阳河老油召桥至老北定桥段工程地质问题概述
果树防冻措施及冻后处理
趣图
基于柴油机排气后处理的排放控制技术应用研究
申店隔堤恢复的必要性浅析