AtomVision_TrajectoryPINN:基于物理信息神经网络的小球轨迹预测与参数识别项目

已归档

可用于从稀疏带噪声观测数据重建抛体轨迹、推断重力加速度和空气阻力系数等物理参数。项目实现完整PINN框架,具备外推预测和不确定性量化能力,采用SIREN网络架构,支持多场景训练与评估。【此简介由AI生成】

分支1Tags0
文件最后提交记录最后更新时间
26 天前
28 天前
26 天前
28 天前
28 天前
28 天前
28 天前
28 天前
28 天前
28 天前
26 天前
26 天前
28 天前

AtomVision_TrajectoryPINN

🏆 AtomGit & 天津商业大学 — 第一届 AtomVision 开物观理·物理视觉挑战赛

赛道一:BPT-Norm 纯数值物理推理赛

物理信息神经网络 (Physics-Informed Neural Networks, PINNs) 用于小球轨迹预测与物理参数识别


📋 项目概述

本项目实现了一个完整的 PINN 框架,用于解决抛体运动的轨迹预测和物理参数识别问题:

能力 描述
轨迹预测 从稀疏、带噪声的观测数据重建完整抛体轨迹
物理参数识别 自动推断重力加速度 (g)、空气阻力系数 (k) 等物理参数
外推预测 基于物理约束,从部分观测外推未来轨迹
不确定性量化 多模型集成提供预测置信区间

物理模型

控制方程(含二次空气阻力 + 风):

dx/dt  = vx
dy/dt  = vy
dvx/dt = -(k/m) · (vx − wx) · |v − w|
dvy/dt = −g − (k/m) · (vy − wy) · |v − w|

PINN 架构

  • 网络: SIREN (Sinusoidal Representation Network) — 适合高阶自动微分
  • 输入: 时间 t
  • 输出: 位置 (x(t), y(t))
  • 约束: 数据拟合 + ODE 残差 + 初始条件 + 参数先验

🚀 快速开始

环境配置

# 克隆仓库 (在 GitCode 组织内创建后)
git clone <your-repo-url>
cd AtomVision_TrajectoryPINN

# 安装依赖
pip install -r requirements.txt

# 昇腾 NPU 用户 (可选)
pip install torch-npu

训练

# 标准训练 (轨迹预测 + 参数识别)
python main.py

# 快速测试 (200 epochs)
python main.py --mode quick

# 外推能力测试 (仅用前半段数据训练)
python main.py --mode extrapolate

# 参数识别专项测试
python main.py --mode identify

# 加载已有模型评估
python main.py --mode eval --checkpoint outputs/checkpoints/best_model.pt

Jupyter Notebook

jupyter notebook notebooks/demo.ipynb

📁 项目结构

AtomVision_TrajectoryPINN/
├── README.md                    # 本文件
├── requirements.txt             # Python 依赖
├── main.py                      # 主入口脚本
├── config/
│   └── config.yaml              # 配置文件 (物理参数、模型、训练)
├── physics/                     # 物理引擎
│   ├── equations.py             # ODE 定义、RK4 求解器、解析解
│   └── parameters.py            # 物理参数与初始条件数据类
├── models/                      # 神经网络模型
│   ├── layers.py                # SIREN 层、激活函数
│   └── pinn.py                  # TrajectoryPINN 网络 + 可训练物理参数
├── data/                        # 数据处理
│   └── generate_data.py         # 合成数据生成、数据集分割、DataLoader
├── training/                    # 训练管线
│   ├── losses.py                # 多任务损失函数 (数据 + 物理 + 初始条件)
│   └── train.py                 # 训练器 (早停、检查点、TensorBoard)
├── evaluation/                  # 评估与可视化
│   ├── metrics.py               # 轨迹误差、参数误差、飞行特征误差
│   └── visualize.py             # 轨迹图、损失曲线、参数收敛图
├── utils/                       # 工具函数
│   └── helpers.py               # 随机种子、设备选择、配置加载
├── notebooks/
│   └── demo.ipynb               # 交互式演示 Notebook
└── outputs/                     # 输出目录 (自动生成)
    ├── checkpoints/             # 模型检查点
    ├── logs/                    # TensorBoard 日志
    └── figures/                 # 可视化图表

⚙️ 配置说明

编辑 config/config.yaml 调整参数:

# 物理参数真值 (数据生成)
physics:
  gravity: 9.8           # 重力加速度
  drag_coefficient: 0.1  # 空气阻力系数
  mass: 1.0              # 质量

# 模型架构
model:
  hidden_layers: [64, 128, 128, 64, 32]
  activation: "sin"      # SIREN 激活函数
  omega_0: 30.0          # 频率缩放

# 训练
training:
  epochs: 5000
  learning_rate: 1.0e-3
  loss_weights:
    data: 1.0            # 数据拟合
    physics: 0.1         # 物理残差
    initial: 10.0        # 初始条件

📊 评估指标

指标 说明
MSE(x), MSE(y) 位置预测均方误差
RMSE(position) 位置总均方根误差
轨迹余弦相似度 预测轨迹与真值的方向一致性
射程误差 落地位置预测误差 (米)
最高点误差 轨迹最高点预测误差 (米)
参数相对误差 g, k 的推断相对误差

🔬 实验结果示例

场景 RMSE(pos) 射程误差 g 误差 k 误差
标准 (30 观测点, σ=0.05) ~0.05 m ~0.10 m <1% <5%
外推 (前50%训练) ~0.15 m ~0.30 m <2% <10%
稀疏 (15 观测点) ~0.08 m ~0.15 m <1.5% <7%

🛠️ 技术栈

  • 深度学习: PyTorch 2.x
  • 科学计算: NumPy, SciPy
  • 可视化: Matplotlib, TensorBoard
  • 配置管理: PyYAML, OmegaConf
  • 硬件加速: CUDA (NVIDIA GPU) / NPU (华为昇腾)

👥 团队

  • 队伍成员: 1-3 人
  • 研究方向: 计算机视觉 (CV) + 物理信息神经网络 (PINNs)

📚 参考资料

  1. Raissi, M., Perdikaris, P., & Karniadakis, G. E. (2019). Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations. Journal of Computational Physics.
  2. Sitzmann, V., et al. (2020). Implicit Neural Representations with Periodic Activation Functions. NeurIPS.
  3. Karniadakis, G. E., et al. (2021). Physics-informed machine learning. Nature Reviews Physics.

📄 License

本项目仅供 AtomVision 开物观理·物理视觉挑战赛参赛使用。

项目介绍

可用于从稀疏带噪声观测数据重建抛体轨迹、推断重力加速度和空气阻力系数等物理参数。项目实现完整PINN框架,具备外推预测和不确定性量化能力,采用SIREN网络架构,支持多场景训练与评估。【此简介由AI生成】

定制我的领域