Skip to main content
QUICK REVIEW

[论文解读] Computer-aided modelling of complex physical systems with BondGraphTools

Peter Cudmore, P.J. Gawthrop|arXiv (Cornell University)|Jun 26, 2019
ATP Synthase and ATPases Research参考文献 15被引用 6
一句话总结

BondGraphTools 是一个开源的 Python 库,使用 bond graph 方法论,支持使用符号计算和脚本化方式对复杂多物理场系统进行建模,可无缝集成到科学计算 Python 生态系统中。该库通过自动化、可重复性和对跨领域应用(尤其是系统生物学和工程领域)的支持,加速了系统建模,为模型组合和符号运算提供标准化的能量守恒接口。

ABSTRACT

BondGraphTools is a Python library for scripted modelling of complex multi-physics systems. In contrast to existing modelling solutions, BondGraphTools is based upon the well established bond graph methodology, provides a programming interface for symbolic model composition, and is intended to be used in conjunction with the existing scientific Python toolchain. Here we discuss the design, implementation and use of BondGraphTools, demonstrate how it can be used to accelerate systems modelling with an example from optomechanics, and comment on current and future applications in cross-domain modelling, particularly in systems biology.

研究动机与目标

  • 解决在多个领域中对复杂物理系统建模缺乏可扩展、自动化且互操作的工具的问题。
  • 提供一种符号化、程序化的替代方案,以取代那些僵化且孤立的专有图形化建模工具。
  • 通过开源开发、版本控制以及与现有科学 Python 工作流的集成,支持可持续的协作式系统建模。
  • 实现对具有多时间尺度和非线性动力学的系统,进行自动化建模、简化和分析。
  • 通过测试驱动开发、持续集成以及容器化部署,确保模型的可重复性和长期软件可持续性。

提出的方法

  • 使用 bond graph 方法论作为正式框架,通过努力和流量变量对物理子系统之间的能量流动进行建模,确保能量守恒。
  • 提供基于 Python 的 API,使用标准科学 Python 库(如 SymPy、NumPy)构建、组合和操作符号化 bond graph 模型。
  • 采用符号计算来表示和转换系统方程,实现状态空间模型的自动生成和简化。
  • 通过 PyJulia 与 Julia 集成,实现对推导出的微分代数方程的高性能求解。
  • 采用测试驱动开发(TDD)和持续集成(Travis CI、CodeClimate)以确保代码质量、稳定性和向后兼容性。
  • 通过版本化发布、Git 标记以及 Vagrant 容器确保可重复性,容器封装了完整的软件堆栈和依赖项。

实验结果

研究问题

  • RQ1如何将 bond graph 建模自动化并集成到科学 Python 工作流中,以提高模型开发效率?
  • RQ2哪些关键的软件工程实践能够确保科学建模工具的长期可持续性和可重复性?
  • RQ3能否在开源、可编程的库中有效实现复杂物理系统的符号化模型组合与简化?
  • RQ4将 bond graph 与现代计算堆栈(如 Python、Julia)集成,如何增强系统生物学和工程领域中的跨领域建模能力?
  • RQ5现有图形化建模工具存在哪些局限性,而一种程序化、开源的替代方案能够如何克服这些局限?

主要发现

  • BondGraphTools 通过标准化的能量守恒框架,实现了对复杂物理系统符号化模型的自动化、脚本化构建。
  • 通过测试驱动开发,测试覆盖率达到约 80%,确保了在持续迭代开发过程中的代码质量和稳定性。
  • 通过 PyJulia 与 Julia 的集成,实现了对推导模型的高性能数值模拟,显著提升了计算效率。
  • 使用 Vagrant 容器和版本化发布,确保了模型和软件环境的长期可重复性。
  • 该库支持可扩展的符号化模型降阶,未来有望开发出适用于非线性系统的精确和近似降阶算法。
  • 开源、社区驱动的开发模式,配合公开的源代码(GitHub)和文档(Read the Docs),提升了工具的可访问性和协作性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。