PyPSA 代表“用于电力系统分析的 Python”。发音为“pipes-ah”。
PyPSA 是一个开源工具箱,用于模拟和优化现代电力和能源系统,包括具有单位承诺的传统发电机、可变风力和太阳能发电、存储单元、与其他能源部门的耦合以及混合交流和直流网络等功能。PyPSA 旨在适应大型网络和长时间序列的良好扩展。
该项目由柏林工业大学能源系统数字化转型系维护。以前的版本是由亥姆霍兹协会资助的 卡尔斯鲁厄理工学院自动化和应用信息学研究所的能源系统建模小组和FIAS 的可再生能源小组开发的,用于对CoNDyNet 项目进行模拟 ,该项目由德国联邦教育和研究部 (BMBF) 作为Stromnetze 研究计划的一部分。
PyPSA 可以计算:
- 静态功率流(使用完整的非线性网络方程和线性化网络方程)
- 线性最优潮流(使用线性网络方程,在多个快照上对网络约束内的发电厂和存储调度进行最低成本优化)
- 安全约束线性最优潮流
- 总电力/能源系统最低成本投资优化(使用线性网络方程,同时在多个快照和投资周期内优化发电和存储调度以及发电、存储、传输和其他基础设施容量的投资)
它有以下型号:
- 网状多重连接的交流和直流网络,交流和直流网络之间具有可控转换器
- pandapower实施后的线路和变压器的标准类型
- 传统的可调度发电机和与单位承诺的联系
- 电力可用性随时间变化的发电机,例如风力发电机和太阳能发电机
- 存在效率损失的存储单元
- 具有流入和溢出的简单水力发电
- 与其他能源载体耦合(例如电阻式电转热(P2H)、电转气(P2G)、纯电动汽车(BEV)、费托合成、直接空气捕获(DAC))
- 可以构建更复杂资产的基本组件,例如热电联产 (CHP) 装置和热泵。
点:
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用于存储有关组件和时间序列的数据
- numpy和scipy用于计算,例如线性代数和稀疏矩阵计算
- networkx用于一些网络计算
- matplotlib用于静态绘图
- linpy用于准备优化问题(目前仅线性和混合整数线性优化)
- cartopy用于绘制底层地图
- pytest用于单元测试
- 用于管理消息的日志记录
优化使用linopy
独立于首选求解器的接口库。例如,您可以使用免费求解器GLPK和
CLP/CBC之一或提供免费学术许可证的商业求解器
Gurobi 。
请检查文档。
我们强烈欢迎任何有兴趣为该项目做出贡献的人。如果您有任何想法、建议或遇到问题,欢迎在 GitHub 上提交问题或提出拉取请求。
- 如果有与代码相关的问题,请在堆栈溢出上发帖。
- 对于非编程相关和更一般的问题,请参阅邮件列表。
- 要与其他 PyPSA 用户讨论、组织项目、分享新闻以及与社区取得联系,您可以使用不和谐服务器。
- 对于错误和功能请求,请使用PyPSA Github 问题页面。
- 有关故障排除,请查看文档中的故障排除。
请尊重我们的行为准则。
如果您使用 PyPSA 进行研究,如果您引用以下论文,我们将不胜感激:
- T. Brown、J. Hörsch、D. Schlachtberger,PyPSA:用于电力系统分析的 Python,2018 年,开放研究软件杂志,6(1), arXiv:1707.09913, DOI:10.5334/jors.188
请使用以下 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 许可证获得许可。