8000 GitHub - yuanzhongqiao/PyBaMM: Python 中快速灵活的基于物理的电池模型
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

yuanzhongqiao/PyBaMM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyBaMM_标志

由 NumFOCUS 提供支持 预定 阅读文档 代码科夫 在 Colab 中打开 DOI 发布 代码风格

所有贡献者

皮巴MM

PyBaMM(Python电池数学建模)是一个用Python编写的开源电池模拟包。我们的使命是通过提供用于多机构、跨学科协作的开源工具来加速电池建模研究。概括地说,PyBaMM 包含 (i) 用于编写和求解微分方程组的框架,(ii) 电池模型和参数库,以及 (iii) 用于模拟电池特定实验和可视化结果的专用工具。这些共同实现了灵活的模型定义和快速的电池模拟,使用户能够探索不同电池设计和建模假设在各种操作场景下的效果。

PyBaMM 使用开放的治理模型,并由NumFOCUS 提供财政赞助。考虑进行免税捐赠,以帮助项目支付开发人员的时间、专业服务、旅行、研讨会和各种其他需求。


💻 使用 PyBaMM

使用 PyBaMM 最简单的方法是使用您选择的模型和所有默认设置运行 1C 恒流放电:

import pybamm

model = pybamm.lithium_ion.DFN() # Doyle-Fuller-Newman model sim = pybamm.Simulation(model) sim.solve([0, 3600]) # solve for 1 hour sim.plot()

<clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" value="import pybamm

model = pybamm.lithium_ion.DFN() # Doyle-Fuller-Newman model sim = pybamm.Simulation(model) sim.solve([0, 3600]) # solve for 1 hour sim.plot()" tabindex="0" role="button">

或者模拟恒流放电、恒流恒压充电等实验:

import pybamm

experiment = pybamm.Experiment( [ ( "Discharge at C/10 for 10 hours or until 3.3 V", "Rest for 1 hour", "Charge at 1 A until 4.1 V", "Hold at 4.1 V until 50 mA", "Rest for 1 hour", ) ] * 3, ) model = pybamm.lithium_ion.DFN() sim = pybamm.Simulation(model, experiment=experiment, solver=pybamm.CasadiSolver()) sim.solve() sim.plot()

<clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" value="import pybamm

experiment = pybamm.Experiment( [ ( "Discharge at C/10 for 10 hours or until 3.3 V", "Rest for 1 hour", "Charge at 1 A until 4.1 V", "Hold at 4.1 V until 50 mA", "Rest for 1 hour", ) ] * 3, ) model = pybamm.lithium_ion.DFN() sim = pybamm.Simulation(model, experiment=experiment, solver=pybamm.CasadiSolver()) sim.solve() sim.plot()" tabindex="0" role="button">

然而,还可以进行更多的定制。可以更改物理场、参数值、几何形状、子网格类型、子网格点数、空间离散化方法和积分求解器(请参阅 DFN脚本笔记本)。

对于新用户,我们推荐入门指南。这些旨在成为非常简单的分步指南,以展示 PyBaMM 的基本功能,并且可以在本地下载和使用,也可以通过Google Colab在线使用。

更多详细信息可以在 github 上托管的许多详细示例中找到。此外,还有完整的 API 文档,托管在Read The Docs上。可以在此处找到其他支持材料 。

请注意,默认分支上的示例develop是在最新develop提交上进行测试的。在同步到分支的 pybamm pip 包上运行示例时,这有时可能会导致错误main。您可以切换到maingithub 上的分支来查看与最新 pip 版本兼容的示例版本。

版本控制

PyBaMM 每四个月发布一次版本,我们使用CalVer,这意味着版本号是YY.MM.发布时间大约在一月底、五月和九月。增加年份的版本和增加月份的版本之间没有区别;特别是,增加月份的版本可能会带来重大变化。每个版本的重大更改都通过CHANGELOG传达,并附带弃用警告或错误,这些警告或错误至少保留一年(3 个版本)。如果您发现未记录的重大更改,或者认为应该撤消该更改,请在GitHub上提出问题。

🚀 安装 PyBaMM

PyBaMM 可在 GNU/Linux、MacOS 和 Windows 上使用。我们强烈建议在 python 虚拟环境中安装 PyBaMM,以免更改任何分发 python 文件。有关如何为 PyBaMM 创建虚拟环境的说明,请参阅文档

使用点

皮皮 下载

pip install pybamm

使用康达

PyBaMM 可通过 conda-forge 通道作为 conda 包使用。

康达锻造 下载

conda install -c conda-forge pybamm

可选求解器

以下 GNU/Linux 和 macOS 求解器可供选择:

📖 引用 PyBaMM

如果您在工作中使用 PyBaMM,请引用我们的论文

Sulzer, V.、Marquis, SG、Timms, R.、Robinson, M. 和 Chapman, SJ (2021)。 Python 电池数学建模 (PyBaMM)。开放研究软件杂志,9(1)

您可以使用 BibTeX

@article{Sulzer2021,
  title = {{Python Battery Mathematical Modelling (PyBaMM)}},
  author = {Sulzer, Valentin and Marquis, Scott G. and Timms, Robert and Robinson, Martin and Chapman, S. Jon},
  doi = {10.5334/jors.309},
  journal = {Journal of Open Research Software},
  publisher = {Software Sustainability Institute},
  volume = {9},
  number = {1},
  pages = {14},
  year = {2021}
}

如果您也能引用相关论文,我们将不胜感激。这些将根据您使用的模型和求解器而变化。要找出您应该引用哪些论文,请添加以下行

pybamm.print_citations()

到脚本的末尾。这会将 BibTeX 信息打印到终端;传递文件名会将print_citationsBibTeX 信息打印到指定文件。所有引文的列表也可以在引文文件中找到。特别是,PyBaMM 严重依赖CasADi。有关如何在贡献时添加自己的引用的信息,请参阅CONTRIBUTING.md 。

🛠️ 为 PyBaMM 做出贡献

如果您想通过添加新方法、编写文档或修复令人尴尬的错误来帮助我们开发 PyBaMM,请先查看这些指南

📫 联系我们

如有任何问题、意见、建议或错误报告,请参阅联系页面

📃 许可证

PyBaMM 是完全开源的。有关其许可证的更多信息,请参阅许可证

✨ 贡献者

感谢这些优秀的人(表情符号键):

瓦伦丁·苏尔泽
瓦伦丁·苏尔泽

🐛 💻 📖 💡 🤔 🚧 👀 ⚠️ ✅📝 _
罗伯特·蒂姆斯
罗伯特
·蒂姆斯
🐛💻📖💡🤔🚧👀 _ _ _ _ ⚠️
斯科特·马奎斯
斯科特
·马奎斯
🐛💻📖💡🤔🚧👀 _ ___ ⚠️
马丁·罗宾逊
马丁
·罗宾逊
🐛💻📖💡🤔👀 _ __ ⚠️
费兰·布罗萨·普拉内拉
费兰·布罗萨·普拉内拉

👀 🐛 💻 📖 💡 🤔 🚧 ⚠️ ✅📝 _
汤姆·特兰特
汤姆
·特兰特
🐛💻📖💡🤔👀 _ _ _ ⚠️
蒂博·莱唐
蒂博
·莱斯坦
🐛💻📖💡🤔👀 _ _ _ ⚠️ 🚇
迭戈
迭戈

🐛👀💻🚇 _ _ _
费利佩-萨利纳斯
费利佩-萨利纳斯

💻 ⚠️
苏哈克利
苏哈克利

💻 ⚠️
维维安特兰27
维维安特兰

27💻 ⚠️
吉奥霍克

🐛💻 ⚠️
雅尼克·库恩
雅尼克·库恩

💻 ⚠️
杰奎琳·埃奇
杰奎琳
·埃奇
🤔📋🔍
弗格斯·库珀
弗格斯·库珀

💻 ⚠️
乔查普曼1
查普曼
1🤔🔍📖 _
科林请
科林拜托

🤔🔍 _
西门罗
西门

🤔🔍
格雷格
格雷格

🤔🔍 _
法拉第研究所
法拉第研究所

💵
亚历山大·贝斯曼
亚历山大·
贝斯曼
🐛💡
达尔巴蒙
达尔巴蒙

💻
阿南德·莫汉·亚达夫
阿南德·莫汉·亚达夫

📖
威龙艾
卫龙
💻💡 ⚠️
隆博恩
隆博恩

💻 ⚠️ 💡
普里扬舒·阿加瓦尔
普里扬舒·阿加瓦尔

⚠️ 💻🐛👀🚧✅ _ _ _ _
索坎博士
索卡恩
博士
💻💡📖 _ ⚠️ ✅👀 _
萨兰什乔普拉
萨兰什·乔普拉

💻 ⚠️ 📖✅👀🚧 _ _ _
大卫·斯特劳布
大卫·
斯特劳布
🐛💻
毛罗斯格罗伊
毛罗斯格罗伊

🤔
阿玛吉特·辛格·加巴
阿玛吉特·辛格·加巴

💻
肯尼思·恩瓦诺罗
肯尼思·恩瓦诺罗

💻 ⚠️
阿里·侯赛因·乌马尔·巴蒂
阿里·侯赛因·乌马尔·巴蒂

💻 ⚠️
莱辛卡·莫莱尔
莱辛卡·
莫勒尔
💻🤔
托比柯克
托比柯克

🤔💻 _ ⚠️
刘查克
刘查

🐛💻
帕特本
帕本

📖
加文·维金斯
加文·
维金斯
🐛💻
迪昂·王尔德
迪翁·
王尔德
🐛💻
埃利亚斯·霍尔
埃利亚斯·霍尔

💻
卡斯查德
卡斯查德

🐛
瓦伊巴夫-乔普拉-GT
Vaibhav-乔普拉-GT< 6DB6 /sub>

💻
巴兹利普特
巴兹利普特

🐛💻 _
恩德鲁旺
恩德鲁
🐛💻
米夏·菲利普
米夏菲利普

🐛
亚历克·比尔斯
亚历克·比尔

💻
阿格里亚·凯塔帕尔
阿格里亚
·赫塔帕尔
🚇💻📖👀 _
亚历克斯·瓦德尔
亚历克斯·瓦德尔

💻 ⚠️ 📖
亚扎克
亚扎克

📖🐛💻 _ _
安吉特·库马尔
安基特·库马尔

💻
阿尼凯特·辛格·拉瓦特
阿尼凯特·辛格·
拉瓦特
💻📖
杰罗姆·帕利马托姆·汤姆
杰罗姆·帕利马顿·汤姆

📖 💻 ⚠️
布雷迪·普兰登
布雷迪·普兰登

💡
杰斯布里坦
jsbrittain

💻 ⚠️
阿琼
阿琼

🚇💻📖👀 _ _ _
陈钊
陈钊

🐛
达里尔广告
darryl 广告

💻 🐛 🤔
朱利安-埃弗斯
朱利安·埃弗斯

💻
贾森·西格尔
杰森·
西格尔
💻🤔
汤姆·莫尔
汤姆·摩尔

💻 ⚠️
埃杰夫迪金森
埃杰夫迪金森
🤔🐛
博博尼采
波博尼斯

🐛💻 _
埃里克·G·克拉茨
埃里克·G·克拉茨
📖🚇🐛💻 ⚠️
安德烈斯·伊格纳西奥·托雷斯
安德烈斯·伊格纳西奥·托雷斯

🚇
阿格尼克·巴克希
阿格尼克·巴克什

📖
李瑞和
李瑞和

💻 ⚠️
奇马鲍尔
奇马鲍尔

🐛💻 _
阿布舍克·乔杜里
阿布舍克·
乔杜里
📖💻
舒巴姆·巴德瓦吉
舒巴姆·巴德瓦吉

🚇
乔纳森·劳伯
乔纳森·劳伯

🚇
巴迪约特·兰詹
普拉迪奥特·
兰詹
🚇💻 ⚠️
谷旭波
博古
💻🐛
安基特·梅达
安基特·梅达

💻
阿莱西奥·布盖蒂
阿莱西奥
·布盖蒂
🚇💻📖 ⚠️
川万美
川万

🐛💻
阿克希尔·夏尔马
阿克希尔·夏尔马

📖
哈什维尔·桑杜
哈什维尔桑杜

💻

该项目遵循所有贡献者规范。欢迎任何形式的贡献!

About

Python 中快速灵活的基于物理的电池模型

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.4%
  • C++ 2.1%
  • Other 0.5%
0