热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

电力系统分析工具包pypower简易使用教程

文章目录一、pypower简介二、算例分析三、总结四、延申阅读一、pypower简介电力系统分析工具包pypower,可以理解为matpower的python版&#


文章目录

  • 一、pypower简介
  • 二、算例分析
  • 三、总结
  • 四、延申阅读




一、pypower简介

电力系统分析工具包pypower,可以理解为matpower的python版,数据格式与函数与matpower类似,因此使用时也可参考matpower手册。
下载链接:https://github.com/rwl/PYPOWER,或pip install pypower
官方介绍:pypower是电力系统潮流(PF)和最优潮流(OPF)求解器, 目前功能包括交/直流潮流和最优潮流求解(内置牛顿法,快速分解法等)。
官方文档:https://rwl.github.io/PYPOWER/api/


二、算例分析

以求解case30系统OPF为例,首先导包:

from pypower.api import case30, ppoption, runopf

若要保存OPF结果,需定义输出文件名:

filename = 'D:/eeecode/testbypypower/case30result.txt'

导入case30系统数据,包含节点数据bus,发电机数据gen,线路数据branch,opf数据gencost等:

data = case30()

若要看发电机数据,可打印:

print(data['gen'].shape)
print(data['gen'])

结果大小为(6,21),6表示有6台发电机,每一列数据的含义可参考官方文档,如下:
插入图片描述
或者也可以参考matpower的格式说明
在导入数据后,需要进行控制向量的设置,控制向量主要指控制采用什么方法求解(牛顿法,快速分解法,高斯赛德尔法…),迭代收敛条件,输出内容等,不填写则采用缺省值:

ppopt = ppoption()
print(ppopt)

打印结果如下:

{'PF_ALG': 1, 'PF_TOL': 1e-08, 'PF_MAX_IT': 10, 'PF_MAX_IT_FD': 30, 'PF_MAX_IT_GS': 1000, 'ENFORCE_Q_LIMS': False, 'PF_DC': False, 'CPF_PARAMETERIZATION': 3, 'CPF_STOP_AT': 'NOSE', 'CPF_STEP': 0.05, 'CPF_ADAPT_STEP': False, 'CPF_ERROR_TOL': 0.001, 'CPF_STEP_MIN': 0.0001, 'CPF_STEP_MAX': 0.2, 'CPF_PLOT_LEVEL': 0, 'CPF_PLOT_BUS': '', 'CPF_USER_CALLBACK': '', 'CPF_USER_CALLBACK_ARGS': '', 'OPF_ALG': 0, 'OPF_VIOLATION': 5e-06, 'OPF_FLOW_LIM': 0, 'OPF_IGNORE_ANG_LIM': False, 'OPF_ALG_DC': 0, 'VERBOSE': 1, 'OUT_ALL': -1, 'OUT_SYS_SUM': True, 'OUT_AREA_SUM': False, 'OUT_BUS': True, 'OUT_BRANCH': True, 'OUT_GEN': False, 'OUT_ALL_LIM': -1, 'OUT_V_LIM': 1, 'OUT_LINE_LIM': 1, 'OUT_PG_LIM': 1, 'OUT_QG_LIM': 1, 'RETURN_RAW_DER': 0, 'PDIPM_FEASTOL': 0, 'PDIPM_GRADTOL': 1e-06, 'PDIPM_COMPTOL': 1e-06, 'PDIPM_COSTTOL': 1e-06, 'PDIPM_MAX_IT': 150, 'SCPDIPM_RED_IT': 20}

可见OUT_GEN默认值为False,即默认不输出发电机相关结果(实际上发电机出力也包含在Bus里),若想打印发电机结果,则应修改控制向量为:

ppopt = ppoption(OUT_GEN=1)

也可以在原本控制向量基础上覆盖:

ppopt = ppoption(ppopt, OUT_GEN=1)

在导入数据,并设置好控制向量后,即可进行OPF求解,方法如下:

result = runopf(data, ppopt)

此时输出将包含发电机的相关结果,如下图:
在这里插入图片描述
若想将输出保存至指定文件filename中,则只需:

result = runopf(data, ppopt, fname=filename)

若我们想在python中直接调用计算结果,例如想调用支路的潮流信息,则:

print(result['branch'].shape)
print(result['branch'])

结果大小为(41,21),41表示有41条支路,每一列的含义也可以从官方文档获取:
在这里插入图片描述

从文档可知,13-20列在潮流计算后才会生成。


三、总结

pypower使用简便,基本思路为:


  1. 导入系统数据(标准算例可直接导入,非标准算例需要自行修改为和标准算例相同的格式)
  2. 根据需求设定控制向量
  3. 运行OPF
  4. 保存需要的结果(P、Q、V、theta…),用于后续其他分析研究

四、延申阅读

MATPOWER快速上手及应用实例,pypower思路和matpower基本相同,因此也可参考matpower的使用教程


推荐阅读
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
author-avatar
成都迅捷代驾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有