8000 GitHub - yuanzhongqiao/PyPSA: PyPSA:用于电力系统分析的 Python
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

yuanzhongqiao/PyPSA

8000
 
 

Repository files navigation

PyPSA - 用于电力系统分析的 Python

PyPI版本 康达版本 CI CI 与微曼巴蛇 代码覆盖率 文件状态 执照 泽诺多 使用示例 预提交.ci 状态 代码风格:黑色 不和谐 贡献者契约 堆栈交换问题

PyPSA 代表“用于电力系统分析的 Python”。发音为“pipes-ah”。

PyPSA 是一个开源工具箱,用于模拟和优化现代电力和能源系统,包括具有单位承诺的传统发电机、可变风力和太阳能发电、存储单元、与其他能源部门的耦合以及混合交流和直流网络等功能。PyPSA 旨在适应大型网络和长时间序列的良好扩展。

该项目由柏林工业大学能源系统数字化转型系维护。以前的版本是由亥姆霍兹协会资助的 卡尔斯鲁厄理工学院自动化和应用信息学研究所能源系统建模小组和FIAS可再生能源小组开发的,用于对CoNDyNet 项目进行模拟 ,该项目由德国联邦教育和研究部 (BMBF) 作为Stromnetze 研究计划的一部分。

功能性

PyPSA 可以计算:

  • 静态功率流(使用完整的非线性网络方程和线性化网络方程)
  • 线性最优潮流(使用线性网络方程,在多个快照上对网络约束内的发电厂和存储调度进行最低成本优化)
  • 安全约束线性最优潮流
  • 总电力/能源系统最低成本投资优化(使用线性网络方程,同时在多个快照和投资周期内优化发电和存储调度以及发电、存储、传输和其他基础设施容量的投资)

它有以下型号:

  • 网状多重连接的交流和直流网络,交流和直流网络之间具有可控转换器
  • pandapower实施后的线路和变压器的标准类型
  • 传统的可调度发电机和与单位承诺的联系
  • 电力可用性随时间变化的发电机,例如风力发电机和太阳能发电机
  • 存在效率损失的存储单元
  • 具有流入和溢出的简单水力发电
  • 与其他能源载体耦合(例如电阻式电转热(P2H)、电转气(P2G)、纯电动汽车(BEV)、费托合成、直接空气捕获(DAC))
  • 可以构建更复杂资产的基本组件,例如热电联产 (CHP) 装置和热泵。

文档

文档

快速开始

例子

PyPSA 的已知用户

安装

点:

pip install pypsa

康达/曼巴:

conda install -c conda-forge pypsa

此外,安装求解器。

用法

import pypsa

# create a new network n = pypsa.Network() n.add("Bus", "mybus") n.add("Load", "myload", bus="mybus", p_set=100) n.add("Generator", "mygen", bus="mybus", p_nom=100, marginal_cost=20)

# load an example network n = pypsa.examples.ac_dc_meshed()

# run the optimisation n.optimize()

# plot results n.generators_t.p.plot() n.plot()

# get statistics n.statistics() n.statistics.energy_balance()

还有更广泛的示例可用作Jupyter 笔记本。它们也在 doc/examples.rst中进行了描述,并在example/中作为 Python 脚本提供 。

截图

PyPSA-Eur优化发电、存储和输电线路的容量(允许线路容量扩展 9%),与 1990 年的水平相比,欧洲二氧化碳排放量减少 95%

图像

模拟 2015 年德国电力系统的SciGRID 模型。

图像

图像

依赖关系

PyPSA 经过编写和测试,与 Python 3.7 及更高版本兼容。支持 Python 2.7 的最后一个版本是 PyPSA 0.15.0。

它严重依赖以下 Python 包:

  • pandas用于存储有关组件和时间序列的数据
  • numpyscipy用于计算,例如线性代数和稀疏矩阵计算
  • networkx用于一些网络计算
  • matplotlib用于静态绘图
  • linpy用于准备优化问题(目前仅线性和混合整数线性优化)
  • cartopy用于绘制底层地图
  • pytest用于单元测试
  • 用于管理消息的日志记录

优化使用linopy独立于首选求解器的接口库。例如,您可以使用免费求解器GLPKCLP/CBC之一或提供免费学术许可证的商业求解器 Gurobi 。

文档

请检查文档

贡献和支持

我们强烈欢迎任何有兴趣为该项目做出贡献的人。如果您有任何想法、建议或遇到问题,欢迎在 GitHub 上提交问题或提出拉取请求。

行为守则

请尊重我们的行为准则

引用 PyPSA

如果您使用 PyPSA 进行研究,如果您引用以下论文,我们将不胜感激:

请使用以下 BibTeX:

@article{PyPSA,
   author = {T. Brown and J. H\"orsch and D. Schlachtberger},
   title = {{PyPSA: Python for Power System Analysis}},
   journal = {Journal of Open Research Software},
   volume = {6},
   issue = {1},
   number = {4},
   year = {2018},
   eprint = {1707.09913},
   url = {https://doi.org/10.5334/jors.188},
   doi = {10.5334/jors.188}
}

如果您想引用特定的 PyPSA 版本,PyPSA 的每个版本都存储在Zenodo上,并具有特定于版本的 DOI。特定于版本的 DOI 可以从版本 0.17.1 及更高版本的整体 PyPSA Zenodo DOI 中找到链接:

图像

或来自 0.17.0 及以下版本的整体 PyPSA Zenodo DOI:

图像

执照

版权所有 2015-2024 PyPSA 开发人员

PyPSA 根据开源MIT 许可证获得许可。

About

PyPSA:用于电力系统分析的 Python

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%
0