北太天元深度学习工具箱:把物理方程写入损失函数

2026-10-28
北太天元深度学习工具箱覆盖神经网络的设计、训练与预测全流程。网络构建提供 43 个网络层组件,训练环节提供 6 种优化器与 15 种损失函数;内置 31 个预训练模型,可直接调用执行预测,亦可通过迁移学习适配至特定领域。2026 版本在此基础上作出两处扩展。
  1. 其一面向数据不足的情形。工程与科研中存在大量此类问题:方程形式、参数的物理含义与边界上的换热条件均可事先给定,可用于训练的数据却十分有限——传感器通常仅能布置于表面,测点数量受限,内部温度、地层介质参数与材料等效属性无法直接测量。纯数据驱动的网络在此条件下难以收敛至物理上可用的解。PINNs(物理信息神经网络)将偏微分方程、边界条件与初始条件一并写入损失函数,使网络在拟合少量观测的同时满足物理约束;求解不依赖网格划分,配点在计算域内随机生成。

  2. 其二面向算力。物理约束损失需在每一轮迭代中对大量配点求偏导,计算量随配点规模增长,CPU 上的训练时间随之成为瓶颈。CUDA GPU 加速将训练与预测调度至 NVIDIA GPU,改动的仅为设备配置一处,网络结构与脚本保持原样。

一、PINNs:物理约束如何进入训练

1.1 问题定义:以点集描述物理工况

PINNs 求解的第一步为问题定义,而非网络搭建。框架以点集形式接收问题描述:计算域内的配点、初始时刻的点、各段边界上的点及其类型,以及反问题中的观测点。每一类点在 pointsInfo 中各占一个字段,字段取值对应该点的坐标或已知物理量。边界条件的类型在点集层面区分:Dirichlet 条件给定函数值,Neumann 条件给定法向导数,Robin 条件给定 αu + ∂u/∂n = γ 的系数与右端项。同一算例的不同边界段可分别指定类型——泊松方程示例中,boundary_mode 取 'DN' 时,x = −1 一侧按 Dirichlet 处理,其余边按 Neumann 处理;取 'R' 时全部边界切换为 Robin。变更范围仅为该参数一项,求解流程不变。

1.2 求解模式:正问题与反问题

两类问题的求解流程一致,目标不同。方程、系数、边界与初值均已知时,求解对象为物理场分布,属正问题;方程形式已知、另有部分观测数据时,反演对象为未知的系数、源项、边界参数或初始场,属反问题。两类问题的区分落在训练参数中:反问题将 inverse 置为 true,并给定待反演参数的迭代初值。初值参数随方程类型而异——热传导与泊松方程使用 init_diffusion_coeff,波动方程使用 init_wave_speed,Burgers 方程使用 init_nu。训练结束后,predictPINNs 的第二个返回值即所学参数,可与真值直接比对。

1.3 方程类型:四类经典偏微分方程

框架内置泊松方程、热传导方程、波动方程与 Burgers 方程。

  • 泊松方程对应稳态椭圆型问题;

  • 热传导方程与波动方程对应时间相关问题,可分别设置扩散系数与波速;

  • Burgers 方程为非线性对流扩散方程,可设置或反演黏性系数。

方程类型由 equation_type 指定。示例目录按方程各提供正、反两个脚本,八个算例均可直接运行。

1.4 调用接口:训练与预测

trainPINNs 接收点集、网络结构与训练参数,返回训练后的模型与逐轮损失;损失可绘为收敛曲线,训练日志按 log_interval 间隔输出。传入已有模型可继续训练,用于延长训练轮次。predictPINNs 在给定坐标处输出预测值,反问题下同时返回反演结果。配点由 generateRandomPoints 在矩形或长方体域内随机生成,包含内部点、边界点与外法向量,三维问题同样适用。两个接口的完整参数说明收录于产品帮助文档「深度学习工具箱 · 物理信息神经网络(PINNs)」。

二、CUDA GPU:设备切换与加速基准

设备切换由 DeviceManager 完成。脚本起始处写 DeviceManager CUDA,训练与预测即在 NVIDIA GPU 上执行;写 DeviceManager CPU 则回到 CPU 执行。网络结构、损失函数与训练参数均无需改动。覆盖范围为两条流程:通用神经网络的训练与预测,以及 PINNs 框架的训练与预测。加速效果以 GoogLeNet 迁移学习为基准测量,10 个 Epoch:GPU 训练耗时约 2.02 秒,CPU 为 10.82 秒,加速比约 5.4,训练时间缩短约 81%。

案例脚本:随安装包发布,位于 examples/toolbox/DeepLearning/test_device_performance.m 。注意,GPU版本需要安装深度学习GPU拓展包,下载链接见官网。

三、案例:5 个测点反演电芯热扩散率

案例取自储能电池的热管理问题。电芯在充放电或热失控初期由内部产热,外表面隔热,工程上仅能于外表面或极柱布置少量热电偶,需据此反演电芯的等效热扩散率 α = k/(ρc),并预测内部热点温度。计算域取单位正方形,四边绝热,内部设一中心高斯热点,产热率随时间渐升。训练所用观测为 5 个测点的温度时程,每测点 40 个时刻,合计 200 个数据。待反演参数 α 的真值为 0.1,迭代初值取 0.15,与真值相差 50%,训练需自该初值收敛至真值附近。训练采用 LBFGS,2000 轮后损失于 5.70×10⁻³ 附近趋于平稳。反演结果如下:

指标结果
反演 α0.099664
真值 α0.1
α 相对误差0.34%
温度场相对 L2 误差1.87×10⁻²
温度场最大绝对误差0.40 ℃

同一框架另验证两种工况,用以说明其对激励方式的适应范围。航空航天热防护材料的地面热试验,热量由表面已知热流注入、向背面单向扩散,属边界驱动,α 反演误差 3.67%;该工况下背面温度信号较弱,末温仅为表面的 1.7%,精度上限受物理设置约束。电力接地网的稳态势场,边界电势已知、内部存在注入源,属泊松型介质参数反演,k 反演误差 2.34%。边界驱动与体源驱动、瞬态与稳态,均在同一框架内完成。

案例脚本:随安装包发布,位于 examples/toolbox/DeepLearning/PINNs 目录。任一脚本可直接运行,完成真值场生成、配点组装、训练、预测,直至绘制对比图与误差统计。

下载与试用

北太天元 2026 版本已正式发布,深度学习工具箱的 PINNs 求解框架与 CUDA GPU 加速随版本同步上线。

下载试用链接:https://www.baltamatica.com/download

(点击"上方链接"即可进入)