发明内容
为了解决上述技术问题,本发明提供一种基于SPH算法的洪水溃坝过程仿真方法与仿真系统,将SPH方法引用到地学过程模拟中,有效提高仿真结果的真实性。
为了达到上述目的,本发明提供一种基于SPH算法的洪水溃坝过程仿真方法,包括:
步骤A、获取实地地理空间信息数据;
步骤B、基于步骤A获取的所述地理空间信息数据建立洪水溃坝过程的动力学模型;从地理实体的建筑结构,材质,尺寸规格,空间分布状况,及影像图、数字线画图能反映地理实体的动力学影响范围的地理信息数据中,获取洪水溃坝过程的动力因素;根据地理空间分析方法洪水主要流向和洪水主要流域范围;根据地物分类方法分析流域范围的地物类型,确定流域范围的阻力形式、大小与分布,得到系统的洪水溃坝过程的动力学模型;
步骤C、基于步骤A获取的所述地理空间信息数据建立地理实体模型;
步骤D、将步骤B得到的所述动力学模型解析为SPH计算式;
步骤E、将步骤C得到的所述地理实体模型初始化为SPH计算中流体粒子与边界粒子;构建空间体素数据集;通过与流域地形的三维模型和大坝三维模型进行交集检测,标记出与流域地形的三维模型和大坝三维模型空间的相交的体素,以此作为SPH计算中边界粒子;通过与水的三维模型进行交集检测,得到水的外壳边界;求出位于水的三维模型内部的体素,以此作为SPH计算中流体粒子;
步骤F、基于SPH算法的循环计算;
步骤G、对步骤F所得的计算数值结果进行时空过程建模,得到洪水溃坝过程三维时空模型与数据库;
步骤H、对步骤G所得的洪水溃坝过程三维时空模型及数据库进行动态可视化。
优选地,所述步骤B包括:
从地理实体的建筑结构,材质,尺寸规格,空间分布状况,及影像图、数字线画图能反映地理实体的动力学影响范围的地理信息数据中,获取洪水溃坝过程的动力因素;
根据洪水溃坝水利分析方法分析溃坝形式和溃口特征,确定动力学分析尺度以及水的可压缩比;
根据地理空间分析洪水主要流向和洪水主要流域范围;
根据地物分类方法分析流域范围的地物类型,确定流域范围的阻力形式、大小与分布,得到系统的洪水溃坝过程的动力学模型。
优选地,所述步骤E包括:
构建空间体素数据集;
通过与流域地形的三维模型和大坝三维模型进行交集检测,标记出与流域地形的三维模型和大坝三维模型空间相交的体素,以此作为SPH计算中边界粒子;
通过与水的三维模型进行交集检测,得到水的外壳边界;
求出位于水的三维模型内部的体素,以此作为SPH计算中流体粒子。
优选地,所述步骤F包括:
读入流体粒子于边界粒子,计算粒子初始位置;
计算各个粒子的初始密度、初始速度、初始压强、初始质量和初始间距;
计算SPH循环计算的时间变化率;
根据时间变化率,逐步循环计算每一步每个粒子的密度、压强,计算该时刻每个粒子的由粒子间压力和粘度所造成的应力加速度、由重力加速度和边界碰撞所造成的外力加速度;
以上述步骤所得加速度计算粒子的速度与位移量,更新粒子坐标位置,完成该时段的计算进入下一时刻的计算;
按照一定的时间间隔依次输出所以粒子同一时刻下的速度与坐标值,得到按一定时序排布的SPH计算数值结果。
优选地,所述步骤G包括:
对SPH计算输出结果的解译,识别数据文档中的数据时间、粒子序号、粒子位置坐标值及各方向上的速度值;
根据解译得到的粒子坐标值构建三维表面格网;
对格网进行几何光滑;
以不同的压缩率指数对表面格网进行多级数据压缩;
根据解译得到的数据时间,对以上三维格网数据进行时间排序,得到洪水溃坝过程的三维时空模型与数据库。
本发明还提供一种基于SPH算法的洪水溃坝过程仿真系统,包括:
地理空间信息数据预处理模块,用于地理空间信息数据坐标整合,根据地理空间信息的空间特征构建洪水溃坝过程的动力学模型,根据数字高程模型数据构建地形三维建模,以及水、大坝的地理实体三维模型的构建;
SPH计算模块,用于利用SPH算法解析与粒子初始化,SPH算法的循环计算的实现,SPH计算结果的输出;
时空过程建模模块,用于对SPH计算结果进行解译,三维表面格网生成、压缩与光滑,以及洪水溃坝过程时空建模;
动态可视化模块,用于对洪水溃坝过程时空模型进行动态数据调度,三维动态可视化。
优选地,所述SPH计算模块包括:
SPH算法解析单元,用于将洪水溃坝过程的动力学模型解析为SPH计算式,并将地理实体模型初始化为SPH计算中的流体粒子与边界粒子;
粒子初始位置计算单元,用于根据流体粒子与边界粒子实体模型计算粒子初始位置;
粒子初始状态计算单元,根据动力学模型解析得到的SPH计算式计算各个粒子的粒子初始状态;
时间变化率计算单元,用于计算循环计算的时间变化率;
循环计算单元,用于根据时间变化率逐步循环计算;
计算结果输出单元,用于按照一定的时间间隔依次输出所以粒子同一时刻下的速度与坐标值,得到按一定时序排布的SPH计算数值结果。
优选地,所述时空过程建模模块包括:
SPH计算数值结果解译单元,用于对SPH计算输出结果的解译,识别数据文档中的数据时间、粒子序号、粒子位置坐标值及各方向上的速度值;
三维构网单元,用于根据解译得到的粒子坐标值构建三维表面格网;
格网光滑单元,用于对格网进行几何光滑;
格网压缩单元,用于以不同的压缩率指数对表面格网进行多级数据压缩;
三维时空模型建模单元,根据解译得到的数据时间,对以上三维格网数据进行时间排序,得到洪水溃坝过程的三维时空模型与数据库。
由上述技术方案可知,本发明的实施例具有如下有益效果:基于SPH算法的洪水溃坝过程仿真方法与仿真系统,能够针对洪水溃坝这一常见灾害的地理过程,利用现有的地理空间信息数据资源,基于SPH算法,进行高精度高仿真的洪水溃坝过程模拟,为洪水溃坝过程模拟的进一步分析与应用提供精度更高、效果更逼真的模拟结果,弥补了利用现有的地学模型与空间分析算法进行洪水溃坝过程模拟在精度和效果上的不足。
具体实施方式
为了使本发明的目的、技术方案和优点更加清晰明白,下面结合实施例和附图,对本发明实施例做进一步的详细说明。在此,本发明的示意性实施例及说明用于解释本发明,但并不作为本发明的限定。
<实施例一>
如图1所示,为本发明实施中基于SPH算法的洪水溃坝过程仿真方法的流程图,具体步骤如下:
步骤S101、获取实地地理空间信息数据。
在本实施例中,该实地地理空间信息数据包括:地理实体的卫星影像图,航空影像图,数据高程模型数据,数字线画图等地理信息数据,以及地理实体的建筑结构、材质、尺寸规格、空间分布状况等动力学相关信息数据。
步骤S102、基于步骤S101获取的地理空间信息数据建立洪水溃坝过程的动力学模型。
具体的实施过程如图2所示:
1)从地理实体的建筑结构,材质,尺寸规格,空间分布状况等动力学相关信息数据,及影像图、数字线画图等能反映地理实体的动力学影响范围的地理信息数据中,获取洪水溃坝过程的动力因素;
2)根据洪水溃坝水利分析方法分析溃坝形式,溃口特征,确定动力学分析尺度,水的可压缩比;
3)根据地理空间分析方法洪水主要流向,洪水主要流域范围;
4)根据地物分类方法分析流域范围的地物类型,确定流域范围的阻力形式、大小与分布等动力学信息,最终得到系统的洪水溃坝过程的动力学模型。
步骤S103、基于步骤S101获取的地理空间信息数据建立地理实体模型。
例如根据地理实体的卫星影像图,航空影像图,数据高程模型数据,数字线画图等地理信息数据,及地理实体的建筑结构,尺寸规格等能反映地理实体外观的动力学相关信息数据,建立水、大坝、流域地形等地理实体的三维模型。
更具体的说,在步骤S103中,构建流域地形的三维模型的方法如图3A所示:
1)根据流域范围提取流域范围内的数字高程模型数据;
2)解译流域范围内所有空间位置的高程信息,得到三维坐标点;
3)根据三维坐标点构建三维不规则三角网,组成流域地形三维模型。
在步骤S103中,构建大坝的三维模型的方法,具体步骤如图3B所示:
1)从数字线画图数据中提取大坝的水平投影形状及坐标;
2)从其它数据中提取大坝的建筑结构、材质和尺寸规格;
3)根据以上两个步骤所得参数,在商用三维建模软件中建立大坝三维模型。
在步骤S103中,构建水的三维模型的方法,具体步骤如图3C所示:
1)通过卫星影像、航空影像等数据获取水体所在空间位置与范围;
2)在该空间范围内建立水体最小外包长方体三维几何模型;
3)然后将该长方体三维模型与流域地形三维模型、大坝三维模型进行空间几何求交,得到水的三维模型。
步骤S104、将步骤S102得到的动力学模型解析为SPH计算式。
更具体的说,在步骤S104中,用SPH算法将步骤S102得到的动力学模型解析为SPH计算式的方法,具体步骤如图4所示:
1)通过数学积分推导,将动力学模型的物理公式近似为积分表达式;
2)然后将积分表达式近似为积分域中离散化的求和表达式,在求和表达式中,每一个离散点即是一个粒子;
3)由此推导出基于离散粒子求和的SPH算法计算式。
步骤S105、将步骤S103得到的地理实体模型初始化为SPH计算中流体粒子与边界粒子。
更具体的说,步骤S105的方法如图5所示:
1)首先构建空间体素数据集;
2)通过与流域地形的三维模型和大坝三维模型进行交集检测,标记出与流域地形的三维模型和大坝三维模型空间相交的体素,以此作为SPH计算中边界粒子;
3)以同样方法通过与水的三维模型进行交集检测,得到水的外壳边界;
4)然后求出位于水的三维模型内部的体素,以此作为SPH计算中流体粒子。
步骤S106、基于SPH算法的循环计算。
以步骤S105所得的流体粒子与边界粒子为计算数据源,以步骤S104所得的SPH算法计算式为计算公式,进行循环计算,得出计算结果。
具体的,基于SPH算法的迭代计算流程,具体步骤如图6所示:
1)首先,读入流体粒子与边界粒子,计算粒子初始位置;
2)计算各个粒子的初始密度、初始速度、初始压强、初始质量、初始间距等粒子初始状态;
3)计算SPH循环计算的时间变化率;
4)根据时间变化率,逐步循环计算每一步每个粒子的密度、压强,计算该时刻每个粒子的由粒子间压力和粘度所造成的应力加速度、由重力加速度和边界碰撞所造成的外力加速度;
5)最后,以上述步骤所得加速度计算粒子的速度与位移量,更新粒子坐标位置,完成该时段的计算进入下一时刻的计算;
6)同时,按照一定的时间间隔依次输出所以粒子同一时刻下的速度与坐标值,得到按一定时序排布的SPH计算数值结果。
步骤S107、计算结果输出;
步骤S108、对步骤S106所得的计算数值结果进行时空过程建模。
具体的,对计算数值结果进行时空过程建模流程的具体步骤如图7所示:
1)首先,对SPH计算输出结果的解译,识别数据文档中的数据时间、粒子序号、粒子位置坐标值及各方向上的速度值;
2)根据解译得到的粒子坐标值构建三维表面格网;
3)然后,对格网进行几何光滑;
4)并以不同的压缩率指数对表面格网进行多级数据压缩;
5)最后,根据解译得到的数据时间,对以上三维格网数据进行时间排序,得到洪水溃坝过程的三维时空模型与数据库。
步骤S109、对步骤S108所得的洪水溃坝过程三维时空模型及数据库进行动态可视化。
例如:对洪水溃坝过程时空数据库进行动态数据调度,然后在计算机虚拟的三维环境,中实现按照洪水溃坝地理过程的时间发展顺序的动态可视化。
更具体的说,在步骤S109中,针对时空过程模型进行动态数据调度的方法,包括计算机三维界面与时空过程模型数据库的通信,对时空过程模型进行基于时间与空间的筛选,以及带有时间与空间缓存的数据调度。
在步骤S109中,针对洪水溃坝地理过程的三维动态可视化技术,包括数据有效时间与计算机操作时间、计算机三维界面指示时间的时间映射,三维动态渲染,以及三维动态显示。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是应该清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
<实施例二>
如图8所示,为本发明实施中基于SPH算法的洪水溃坝过程仿真系统的结构框图,该仿真系统包括:
1)地理空间信息数据预处理模块,用于地理空间信息数据坐标整合,根据地理空间信息的空间特征构建洪水溃坝过程的动力学模型,根据数字高程模型数据构建地形三维建模,以及水、大坝等地理实体三维模型的构建;
2)SPH计算模块,用于利用SPH算法解析与粒子初始化,SPH算法的循环计算的实现,SPH计算结果的输出;
3)时空过程建模模块,用于对SPH计算结果进行解译,三维表面格网生成、压缩与光滑,洪水溃坝过程时空建模;
4)动态可视化模块,用于对洪水溃坝过程时空模型进行动态数据调度,三维动态可视化。
更具体的说,在基于SPH算法的洪水溃坝过程仿真系统中所述的SPH计算模块,进一步包括以下功能单元:
1)SPH算法解析单元,用于将洪水溃坝过程的动力学模型解析为SPH计算式,并将地理实体模型初始化为SPH计算中的流体粒子与边界粒子;
2)粒子初始位置计算单元,用于根据流体粒子与边界粒子实体模型计算粒子初始位置;
3)粒子初始状态计算单元,根据动力学模型解析得到的SPH计算式计算各个粒子的初始密度、初始速度、初始压强、初始质量、初始间距等粒子初始状态;
4)时间变化率计算单元,用于计算循环计算的时间变化率;
5)循环计算单元,用于根据时间变化率逐步循环计算;
6)计算结果输出单元,用于按照一定的时间间隔依次输出所以粒子同一时刻下的速度与坐标值,得到按一定时序排布的SPH计算数值结果。
在基于SPH算法的洪水溃坝过程仿真系统中所述的时空过程建模模块,进一步包括以下功能单元:
1)SPH计算数值结果解译单元,用于对SPH计算输出结果的解译,识别数据文档中的数据时间、粒子序号、粒子位置坐标值及各方向上的速度值;
2)三维构网单元,用于根据解译得到的粒子坐标值构建三维表面格网;
3)格网光滑单元,用于对格网进行几何光滑;
4)格网压缩单元,用于以不同的压缩率指数对表面格网进行多级数据压缩;
5)三维时空模型建模单元,根据解译得到的数据时间,对以上三维格网数据进行时间排序,得到洪水溃坝过程的三维时空模型和数据库。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。