目录
摘要
通过阅读文献,了解到PINN在重现二维湍流中的作用,文献中提出了使用滤波的方式对PINN进行分类,命名为PINN-2在实际运用中与DNS进行对照,取得的结果符合度较高,关于水文模型的构建,通过重新计算流量、绘制断面等操作,获得了合理的结果,但任有部分不足。
文献阅读
Physics-informed data based neural networks for two-dimensional turbulence
文献摘要
由于研究湍流时需要巨量的资源来进行模拟、存储及分析相关数据,文中提出使用PINN来利用具有周期边界的矩形域中的稀疏数据来预测二维湍流的流量和特征。PINN可以在大尺度上再现所有统计数据,但不能正确捕获小尺度的特征属性。文章以该方面为切入点,通过使用一种新型的PINN模型。
目前面对的问题
- 基于湍流的标准PINN方法很难再现DNS解,特别是当雷诺数很高时。主要的困难来自大型训练点和神经网络架构的必要性,这要求模型只能在多gpu资源上运行。
- PINN是否能够捕捉到湍流的全局状态,即PINN能否捕捉多空间、时间尺度上的波动的可能性未知。
提出方法
- 与标准CFD方法相结合,提高计算效率;并开发一种名为PINN—1的新神经网络,可通过稀疏的训练数据来重现湍流特征,其边界条件、初始值以直接数值模拟(DNS)的方式取得。
- 引入另一种使用训练数据的频谱分解来训练神经网络的方法,称为PINN—2。
方程介绍
N—S方程
描述流动物理的一般Navier-Stokes方程有如下结构,用X域内的速度变量u表示:
其中:N是非线性算子,M是线性算子。
考虑的是不可压缩流体的NS方程,其压力分布满足泊松方程,压力场取N(u),以u(X,0)为初始条件,其边界条件表示为BC,利用神经网络自动微分的特性,对两种算子进行计算。
标准PINN框架
输入、输出层定义
输入数据为时空坐标(X,T),其输出层的定义如下所示:
其中l为层数,W为权值,b为偏置,σl为激活函数。对权重和偏置进行了优化,使总损失最小。使用基于梯度的优化器25进行优化,即第一组迭代使用Adam优化器26,其余迭代使用L-BFGS-B27,直到达到设置的容差值。
损失函数定义
为了能够最小化损失函数,在模拟高雷诺数流动的前提下,从控制体的X域中取些数据进行模拟。
损失函数定义为:
边界和初始条件损失函数为:
除此之外,还需要添加一个函数,用于描述所施加边界条件的偏差度量,对于任何的速度场,只取正实数。对于当前问题,定义一个名为G的函数,如下所示:
其中:L为X、Y域的长度,^e为单位矢量。
最终的损失函数Ldate定义为:
其中并行点ue(X,T)的数值从DNS中的精确解取得(exact solution),总损失为上述损失函数乘上权重后进行相加取得:
并且定义了一个误差度量,表示为RMSE(均方根误差),如下所示:
其余相关方程定义
为了描述不可压湍流的平面运动,引出一个描绘流场的标量函数,研究双周期域上的强迫耗散湍流,通常采用带有空间强迫、粘性耗散和大尺度阻尼项来研究二维湍流所使用的流函数定义如下:
使用描述速度场和涡度场。
均方根速度如下所示:
对于大尺度摩擦参数α,我们可以定义大尺度雷诺数为:
二维湍流表现为能量的逆级联和熵的正级联,需要解决强迫尺度以上的尺度和强迫尺度以下的尺度,将从全局量和局部量两方面来研究湍流的统计性质。
PINN-1简介
在标准PINN的基础下,以一定的时间间隔使用域(x, y)内部的一些训练数据我们将第一个神经网络称为PINN-1,输出是预测的随时间变化的流函数和压力场,自动满足不可压缩条件。布局如下所示:
PINN-2简介
对于PINN-2,我们基于对湍流能谱的理解来构建神经网络。我们知道,能谱由能量在不同长度尺度上的连续分布组成。然后,我们为低波数和高波数部分构建神经网络,其中分别来自低波数和高波数分量的训练数据被馈送到网络中,在训练数据的谱域分解为低波数和高波数分量,简单的基于坐标的点选择可以很好地预测低波数的行为,而高波数的模式却无法捕捉到我们期望这种神经网络结构能够更好地捕获流的高波数部分,这种神经网络结构是针对低波数和高波数分量的单独网络。
一对低波数和高波数神经网络的输入是同一组采样点(x, y, t)。每个神经网络的输出是对应于低波数和高波数部分的预测流函数和压力场。这些输出进一步组合成总流函数和压力场。
然后使用这些组合字段对方程和边界条件进行训练。但是,对于低波数和高波数,分别计算初始和数据损失,并将其加在一起得到最终的Lini和Ldata。输入到两个神经网络(低和高)的数据和初始场在频谱空间中没有任何重叠,但由于神经网络的非线性,这些神经网络的输出在频谱空间中有重叠。PINN-2模型的截止波数kc是一个参数,用来区分流场的低波数部分和高波数部分。低波数和高波数网络模型的总损失表达式与式7相同。
两者的不同
两个PINN网络(PINN-1和PINN-2)的Loss函数的定义是不同的,因为对于PINN-2,损失初始值Lini和损失数据Ldata计算了两次。需要注意的是,PINN-2中神经网络的结构可以支持不同数量的神经元,对于低波数和高波数的网络层数。由于权重参数和偏置的数量取决于神经元和层的数量,因此可以独立地控制低波数和高波数网络的这些参数的数量。
结果展示
将f0=1,波数kf×L=8Π,经过初始瞬态后进入统计平稳状态,得到雷诺数Re 约等于4.2 ×103和大尺度雷诺数Rh= 2.1,作为整个研究的数据库。将把注意力集中在这种统计平稳的湍流状态上,以发展我们基于PINN的模型。该模型的目的是捕捉湍流在固定时间间隔内不同时空尺度的统计特性。
最后一层使用线性激活函数外,我们对所有层使用tanh激活函数,然后使用L-BFGS-B优化器使用多达20万次epoch,直到公差达到机器精度(双精度)。对于Adams迭代,我们使用1:0:001的学习率,训练了20万次。
最佳层数和神经元数
首先,我们对表1中列出的PINN-1和PINN-2模型的神经元列表进行扫描。
表一:超参数
如图4(a)所示,我们观察到在PINN-1模型中,400个神经元的总损失值是所有模型中最低的,在图5(a)中显示了表1所示的层集的损失函数。我们看到,第五层网络几乎做到了和七层网络一样好的效果。
对于图4(b)所示的PINN-2模型,分别在低波数和高波数网络中组合(250,250)个神经元导致的总损失值最小,且图5(b)同PINN-1相似,也是五层占优。
尽管在这种情况下,可训练的权重参数比最好的PINN-2模型高出25%以上,但我们会发现,PINN-2模型比PINN-1模型表现得更好。
不同百分比的训练数据的损失函数
训练数据是从现有DNS解决方案的模拟域内部获取的,可从下图看出:
当增加训练数据的百分比时,看到总损失增加了,因为Ldata增加了,故文中将继续使用0.1%的百分比,因为它与其他训练数据集具有可比较的总损失值,并且在计算上更便宜。
与直接数值模拟(DNS)的对比
通过观察能谱E(k),它给出了不同长度尺度上的能量含量,发现PINN-1模型的λ4=150和PINN-2模型的λ4=75表现最好,在对偏离控制方程的非物理解进行惩罚后,我们对权重进行了一次再训练,我们观察到能量谱和能量时间序列与DNS的相关性更好。特别是,对于PINN-1模型的选择值λ4-150和PINN-2模型的选择值λ4=75,再训练一次将Ek分别降低到79.91和47.2。训练情况见下表:
使用RMSE来进行与DNS之间的对比,清楚地发现,对于选择来研究PINN-1和PINN-2的参数,与PINN-1相比,PINN-2具有更低的误差措施,并且具有更高的R2分数。压力场也是PINN模型的输出,对于PINN-2模型,发现压力的RMSE为0.09。
在图8(a)中,我们比较了DNS和PINN模型的总能量E(t)的时间序列。与PINN-1模型相比,PINN-2模型较好地捕捉了总能量随时间的波动。在图8(b)中,我们比较了DNS和PINN模型之间的熵值时间序列。相比之下,PINN-1模式预测的熵值更高。
分别关注图10和图11中测试时间为t=0.45和t=0.98的DNS和PINN-2模型的速度场快照。从这些图中可以看出,尽管只使用了0:1%的可用DNS数据进行训练,但PINN-2模型的速度场中存在的大尺度流结构与DNS的实际湍流解是相同的。
结论
- 本研究中使用两个PINN模型来预测二维湍流,第一种方法(PINN-1)包括一个标准的PINN模型以及来自域内部的解决方案数据的训练。第二种方法(PINN-2)类似,但涉及两个神经网络(低波数和高波数),其中这些网络的初始和数据损失分别最小化。观察到PINN-2优于PINN-1, RMSE值更低,R2评分更高。
- 对方程损失进行了补偿,得到了物理上可接受的解,能够更准确地捕获能谱。
- 与测试时的DNS结果相比,PINN-2模型预测的速度具有合理的精度,而标准DNS模拟面临存储问题,本文研究的PINN-2模式具有很好的捕获大尺度模态波动的能力。
- 原则上可以将这种网络用于流体动力学以外的多尺度物理问题,可以为不同的损失函数引入自适应权值,原则上可以提高预测精度由于PINN-2模型能够捕获几十年的能谱密度。
水文模型
在S7到S4之间添加一些断面,以更细致地捕捉水流的变化,从而更好地控制水位。
- 通过加深S7到S4断面的河床,增加河道的容积。这可以通过调整断面的深度参数来实现,使得河道能够容纳更多的水量,从而减少溢水的情况。
- 通过加宽S7到S4段的河道,使其能够容纳更多的水量。例如,如果某个断面容易发生溢水,可以适当增加该处的河道宽度。宽度的增加幅度可以根据具体溢水量的计算进行调整。
(加深S7、S6的河床深度)修改后的数据见表格,使用原先的流量进行计算获得结果,其余计算条件同上一次。
断面编号 | 到坝址距离 (km) | 断面间距 (km) | 左岸曼宁系数 | 主河道曼宁系数 | 右岸曼宁系数 | 河道宽度(m) | 河道深度(m) | 河底最低点高程(m) | 断面宽度(m) |
S7 | 20 | 4.56 | 0.0372 | 0.034 | 0.036 | 12.3 | 10.5 | 127.02 | 15.42 |
S6 | 15.44 | 4.21 | 0.037 | 0.0335 | 0.0358 | 12 | 10.2 | 121.021 | 18.87 |
S5 | 11.23 | 3.84 | 0.0369 | 0.0332 | 0.0356 | 11.62 | 9.91 | 126.83 | 20.92 |
S4 | 7.39 | 3.57 | 0.0365 | 0.0317 | 0.036 | 10.92 | 9.48 | 126.45 | 21.69 |
S3 | 3.82 | 2.28 | 0.0361 | 0.0271 | 0.0358 | 10.35 | 8.68 | 125.87 | 22.65 |
S2 | 2.28 | 1.28 | 0.0357 | 0.0284 | 0.0362 | 9.45 | 7.93 | 125 | 23 |
S1 | 1 | 1 | 0.0353 | 0.0268 | 0.0364 | 8.48 | 7.43 | 124 | 24 |
计算结果如下:可见最3号断面出现了负流量的情况,且观察相对应断面的水位位于正常情况:
但是6,5号断面出现了涌水现象:
从总的河道断面中观察其水面线的情况,发现水多淤积在6号断面的高程减少处:
这可能有如下三种情况:
- 边界条件:如果下游边界条件设置不当,比如下游水位太高或者流量太低,可能会导致水流方向反向。
- 结构物:如果在河道中有诸如水坝、闸门等结构物,并且这些结构物的操作方式(如开启或关闭状态)设置不当,也可能造成局部区域的水流方向变化。
- 网格或几何形状错误:如果河床几何形状被错误地输入到模型中,例如河段连接错误或节点位置不对,那么这可能会导致模拟的结果不准确,包括流量变为负值。
- 数值方法的限制:非恒定流计算通常采用有限差分法或有限元法等数值方法求解圣维南方程组(Saint-Venant equations)。如果数值方法选择不当或者离散化过程中出现了问题,也可能导致计算结果异常
根据上述条件,先进行更新过的流量进行计算发现情况相同,故通过加多断面数量进行再一次调整,修改后的断面条件如下:
断面编号 | 到坝址距离 (km) | 断面间距 (km) | 左岸曼宁系数 | 主河道曼宁系数 | 右岸曼宁系数 | 河底最低点高程(m) | ||
S13 | 20 | 1.67 | 0.0353 | 0.0268 | 0.0364 | 1670 | 127.02 | 15.42 |
S12 | 18.33 | 1.66 | 0.0357 | 0.0274 | 0.0362 | 1660 | 120.02 | 16 |
S11 | 16.67 | 1.67 | 0.0361 | 0.0271 | 0.0358 | 1670 | 126.93 | 18 |
S10 | 15 | 1.67 | 0.0365 | 0.0267 | 0.036 | 1670 | 126.86 | 18.54 |
S9 | 13.33 | 1.66 | 0.0369 | 0.0269 | 0.0356 | 1660 | 126.78 | 18.87 |
S8 | 11.67 | 1.67 | 0.0373 | 0.0267 | 0.0366 | 1670 | 124.21 | 20.92 |
S7 | 10 | 1.67 | 0.0377 | 0.0271 | 0.0354 | 1670 | 126.02 | 21.69 |
S6 | 8.33 | 1.66 | 0.0369 | 0.0269 | 0.0356 | 1660 | 123.01 | 22.65 |
S5 | 6.67 | 1.67 | 0.0373 | 0.0267 | 0.0366 | 1670 | 122.89 | 23.42 |
S4 | 5 | 1.67 | 0.0377 | 0.0271 | 0.0354 | 1670 | 122.61 | 24.32 |
S3 | 3.33 | 1.66 | 0.0361 | 0.0271 | 0.0358 | 1660 | 118.98 | 24.32 |
S2 | 1.67 | 1.67 | 0.0365 | 0.0267 | 0.036 | 1670 | 117.77 | 24.32 |
S1 | 0 | 0 | 0.0369 | 0.0269 | 0.0356 | 0 | 116.51 | 24.32 |
将断面加多,断面间距均匀变化,修改河道更加平滑,加深和加宽河道,使用经过计算的流量数据带入HEC ras中进行计算模拟,得出结果良好,无出现负值,较符合实际水位,若需求更多数据,可通过添加断面或修改流量数据进行调整:
除了12号断面处,左右两岸出出现了溢水现象,但要控制情况,将下游断面调整可储水的形态即可:
总结
水文模型部分算是得到了良好的结果,发现添加断面让软件识别到变化轨迹即可获得较合理的结果,接下来的方向是向真实地形靠拢和添加支流等情况来进行进一步的模拟