当前位置: 首页 > ai >正文

PINNs案例——多介质分区温度场

基于物理信息的神经网络是一种解决偏微分方程计算问题的全新方法…

有关PINN基础详见:PINNs案例——中心热源温度场预测问题的torch代码

多介质PINN

传统PINNs在多介质问题上由于不同介质参数不同,对应PDE方程参数不同,求解困难。

本文采用多个神经网络分区求解方法,给出了多介质传热问题的求解案例。

该案例参考学习论文:陈豪龙, 唐欣越, 王润华, 周焕林, 柳占立. 基于物理信息神经网络的多介质非线性瞬态热传导问题研究. 力学学报, 2024, 56(12): 1-14. DOI: 10.6052/0459-1879-24-337

多介质PINNs示意图

分区求解结果

问题场景

  • 求解域:案例选取边长为 1 的正方形区域作为研究对象,定义域为
    Ω = [ 0 , 1 ] × [ 0 , 1 ] \Omega = [0,1] \times [0,1] Ω=[01]×[01]。区域内水平方向等距离分为三种介质

区域模型

  • 参数设定 从左至右三种介质热导率分别设置为 λ 1 = 0.1 , λ 2 = 0.3 , λ 3 = 0.5 \lambda_1 = 0.1 ,\lambda_2 = 0.3,\lambda_3 = 0.5 λ1=0.1,λ2=0.3,λ3=0.5
  • 边界条件:区域左边界温度为10,右边界温度为30
  • 求解量:区域内二维稳态温度场分布

PINNs理论求解

在该正方形区域内,温度场 $ T(x, y) $ 满足二维稳态导热方程,数学表达为:
− κ ( ∂ 2 T ∂ x 2 + ∂ 2 T ∂ y 2 ) = q -\kappa \left( \frac{\partial^2 T}{\partial x^2} + \frac{\partial^2 T}{\partial y^2} \right) = q κ(x22T+y22T)=q

其中:

  • κ \kappa κ 为材料的热导率(thermal conductivity),表示材料传导热量的能力;
  • q q q 为内热源(heat source),表示单位体积内热量的产生率;
  • T ( x , y ) T(x, y) T(x,y) 为温度分布函数。

相比 PINNs案例——中心热源温度场预测问题的torch代码,本次案例中,求解区域PDE方程中的$ \kappa $ 值不同,可以通过神经网络分区进行求解,设计多个神经网络控制不同区域,再添加每个介质边界条件的损失函数,以确保整个求解域的连续性。对所有损失函数进行累加后,反向传播,使用一个优化器优化每个神经网络的所有参数。

损失函数可以表示为:

  1. **PDE 残差项:**区域不含热源,且不同区域热导率不同, κ \kappa κ 为关于 x y xy xy 的函数.故控制方程如下:
    Loss PDE = 1 N c ∑ i = 1 N c ∣ f ( x c i , y c i ) ∣ 2 \text{Loss}_{\text{PDE}} = \frac{1}{N_c} \sum_{i=1}^{N_c} \left| f\left( x_c^i, y_c^i \right) \right|^2 LossPDE=Nc1i=1Nc f(xci,yci) 2
    f ( x c i , y c i ) = κ ( x , y ) ( ∂ 2 T ∂ x 2 + ∂ 2 T ∂ y 2 ) f\left( x_c^i, y_c^i \right) = \kappa (x,y) \left( \frac{\partial^2 T}{\partial x^2} + \frac{\partial^2 T}{\partial y^2} \right) f(xci,yci)=κ(x,y)(x22T+y22T)
  2. 边界条件项:在多介质问题中,边界条件除热边界固定温度,绝热边界等,还要添加不同介质交界面的连续性边界条件
  • 固定温度边界:
    Loss BC = 1 N b ∑ i = 1 N b ∣ T ( x b i , y b i ) − T f i x e d ∣ 2 \text{Loss}_{\text{BC}} = \frac{1}{N_b} \sum_{i=1}^{N_b} \left| T\left( x_b^i, y_b^i \right) - T_{fixed} \right|^2 LossBC=Nb1i=1Nb T(xbi,ybi)Tfixed 2

  • 介质交界面:
    不同热导率介质的边界条件包含第一类边界条件和第二类边界条件:

第一类边界条件(不同介质在边界面上温度连续):
Loss I1 = 1 N I ∑ j = 1 N I ∣ λ p T p ( x I j ) − λ p + 1 T p + 1 ( x I j ) ∣ 2 \text{Loss}_{\text{I1}} = \frac{1}{N_{I}}\sum_{j=1}^{N_{I}}\left|\lambda_{p}\ T_{p}\left(x_{I}^{j}\right)-\lambda_{p+1} T_{p+1}\left(x_{I}^{j}\right)\right|^{2} LossI1=NI1j=1NI λp Tp(xIj)λp+1Tp+1(xIj) 2
第一类边界条件(不同介质在边界面上温度法向导数与热导率的乘积连续):
Loss I2 = 1 N I ∑ j = 1 N I ∣ λ p ∂ T p ( x I j ) ∂ n − λ p + 1 ∂ T p + 1 ( x I j ) ∂ n ∣ 2 \text{Loss}_{\text{I2}} = \frac{1}{N_{I}}\sum_{j=1}^{N_{I}}\left|\lambda_{p}\frac{\partial T_{p}\left(x_{I}^{j}\right)}{\partial n}-\lambda_{p+1}\frac{\partial T_{p+1}\left(x_{I}^{j}\right)}{\partial n}\right|^{2} LossI2=NI1j=1NI λpnTp(xIj)λp+1nTp+1(xIj) 2
其中:

  • N I N_I NI 表示介质边界点的点数
  • T p T_p Tp 表示第P个介质
  • λ p \lambda_ {p} λp 表示第P个介质的热导率

复现结果

分区求解结果

FEM参考结果

采用6000次adam优化与lbfgs优化器进行优化。各项损失收敛过程如下,收敛效果良好:

各项损失曲线

代码请关注:

http://www.xdnf.cn/news/3392.html

相关文章:

  • c++环境和vscode常用的一些有用插件
  • 菲索旋转齿轮法:首次地面光速测量的科学魔术
  • Spring Boot 集成 Elasticsearch 的详细步骤
  • Arduino按键开关编程详解
  • Ubuntu 安装 MySQL8
  • Mybatis学习笔记
  • pytest——参数化
  • btrace1.0使用方法
  • AE模板 300个故障干扰损坏字幕条标题动画视频转场预设
  • mysql--索引
  • VulnHub-DC-2靶机
  • 【数据结构】励志大厂版·初阶(复习+刷题):栈与队列
  • 【Unity 游戏开发】角色控制模块技术要点拆解
  • 详细介绍Python-pandas-DataFrame全部 *功能* 函数
  • 【人工智能】图神经网络(GNN)的推理方法
  • 模型之FIM(Fill-In-the-Middle)补全
  • ADG网络故障恢复演练
  • tiktok web X-Bogus X-Gnarly 分析
  • FreeRTOS任务管理与通信机制详解
  • IPD研学:76页页基于IPD思想-华为需求管理培训方案【附全文阅读】
  • 初学python的我开始Leetcode题8-3
  • 第T10周:数据增强
  • python类私有变量
  • 【LeetCode 热题 100】3.无重复字符的最长子串:详解滑动窗口解法
  • 第3篇:请求参数处理与数据校验
  • [vscode]全局配置nim缩进
  • synchronized与Lock深度对比
  • 新能源行业供应链规划及集成计划报告(95页PPT)(文末有下载方式)
  • 2025五一杯数学建模C题:社交媒体平台用户分析问题;思路分析+模型代码
  • 嵌入式C语言的运算符与输入输出