利用python调用PSS/E进行电力系统仿真
利用python调用PSS/E进行电力系统仿真
PSS/E是西门子公司(PTI)开发的电力系统仿真软件,可以实现潮流计算、短路计算、机电暂态等功能,但是在科研或者项目研究时可能需要将仿真数据导出,在MATLAB、python等平台上进行进一步处理,进行更进一步的研究,换句话说,仿真计算只是项目研究的一个部分,仿真计算仅仅是数据来源。对于**“如何将仿真数据导出”**这一问题,PSS/E开发了psspy模块,实现了PSS/E与python2.7的交互,可以通过在python编辑器上调用psspy等模块实现对PSS/E的控制,进行仿真计算。
写在前面
psspy模块是32位的,因此要调用psspy必须使用python2.7-bit32位,64位的python是无法实现的。如果不确定python版本,可以通过cmd输入python查看:
为了简便起见,小编安装了anaconda-2.1.0-x86安装包
环境配置
首先将psspy导入,psspy的地址一般在PSSE安装地址中的PSSEBIN文件夹中。然后配置环境变量,所谓环境变量就是python可执行文件所在的位置。配置时把psspy模块所在文件夹添加到sys.environ[‘PATH’]中即可。最后导入psspy包
import os, sys
PYTHONPATH = r'C:\Program Files (x86)\PTI\PSSE33\PSSBIN'
sys.path.append(PYTHONPATH)
os.environ['PATH'] += ';' + PYTHONPATH
import psspy
调用PSS/E
导入psspy后就可以通过调用psspy模块进行潮流计算等仿真工作了,像在PSS/E图像界面操作一样,首先打开PSS/E进行初始化,打开文件,进行潮流计算……对应的代码如下:
if __name__ == '__main__':CASE = r"C:\Program Files (x86)\PTI\PSSE33\EXAMPLE\savnw.sav"psspy.psseinit(buses=2000) psspy.case(CASE) b=psspy.fnsl()
以PSS/E自带的savnw.sav为例,CASE保存了该算例的绝对地址。
因为导入的是整个模块,所以调用模块里的函数时要添加模块名。
psseinit(buses)函数用于初始化PSS/E,buses参数是PSS/E母线数目的最大值;
case(CASE)函数用于打开算例文件,参数是算例所在路径;
fnsl()为牛拉法潮流计算函数,共有8个参数,具体可以参考PSS/E的API手册。不给参数是按照缺省值运行。
运行结果:
如图,自上而下一次是打开PSS/E,读取文件,潮流计算结果。经过6次迭代,计算结果收敛,
全部代码
# Set environment
import os, sys
PYTHONPATH = r'C:\Program Files (x86)\PTI\PSSE33\PSSBIN'#
sys.path.append(PYTHONPATH)#告诉python模块导入的位置
os.environ['PATH'] += ';' + PYTHONPATH #增加环境变量 import psspyif __name__ == '__main__':CASE = r"C:\Program Files (x86)\PTI\PSSE33\EXAMPLE\savnw.sav"psspy.psseinit(buses=2000) #初始化PSSE,buses是母线数量psspy.case(CASE) #打开文件b=psspy.fnsl()
参考资料
Run PSSE from Python and not the other way around - Python for Power Systems
利用python调用PSS/E进行电力系统仿真相关推荐
- Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统
Py经典案例:利用Python调用数据库历史记录文件,实现BTC.LTC等Encrypted currency找出最佳出仓价.收益比的加密币模拟交易系统 目录 实现结果 设计思路 实现代码 实现结果 ...
- 利用Python调用ECMWF欧洲中心API批量下载数据
前段时间由于需要下载ECMWF(欧洲中期天气预报中心)的再分析数据,学习了如何利用Python调用ECMWF欧洲中心API进行批量下载.这种下载ECMWF数据的方法在官网上有非常详细的介绍.我只是对这 ...
- python powerbi知乎_利用Python调用Power BI REST API
本文是D-BI之Power BI REST API系列第三篇,讲解如何利用一段简单的Python脚本实现Power BI REST API的调用,将使用与上文完全不同的方法 前述 上文<Powe ...
- 利用Python调用outlook自动发送邮件
↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 使用Python发送邮件有两种方式,一种是使用smtp调用邮箱的smtp服务器,另一种是直接调用程序直接发送邮件.而在outlo ...
- (超详细)0基础利用python调用Hadoop,云计算
第一章配置Hadoop 前言 本次我们python+大数据的作业我选择附加一 利用hadoop+python实现,最近考完试有时间来完成. 这次我们用到的是Hadoop,利用python进行操作首先我 ...
- python调用摄像头转向_教你如何利用python调用摄像头
这篇文章主要介绍了python调用摄像头的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 一.打开摄像头 import cv2 import numpy as np def v ...
- 【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)
扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制10个= =. 美剧党随手挤了很多单词准备导入的时候,还有从有道单词本导入的时候,都很尴尬..查了一下,还没有人写过 ...
- python电脑怎么打开任务管理器_利用Python调用Windows API,实现任务管理器功能
任务管理器具体功能有: 1. 列出系统当前所有进程. 2. 列出隶属于该进程的所有线程. 3. 如果进程有窗口,可以显示和隐藏窗口. 4. 强行结束指定进程. 通过Python调用Windows AP ...
- 扇贝python_【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)
扇贝还是很不错的背单词系统,但是我一直不理解为什么官方提供的批量添加单词页面每次限制10个= =. 美剧党随手挤了很多单词准备导入的时候,还有从有道单词本导入的时候,都很尴尬..查了一下,还没有人写过 ...
- 课程设计python调用摄像头_教你如何利用python调用摄像头
导读 这篇文章主要介绍了python调用摄像头的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 一.打开摄像头 import cv2 import numpy as np de ...
最新文章
- 计算机三级四级机考,2017年全国计算机等级考试四级上机编程试题一
- Python自学起飞——005
- ajax工具、框架和库
- bzoj2154 Crash的数字表格
- 【沟通的艺术】故事大王
- vysor原理以及Android同屏方案
- 安卓代码迁移:Make.exe: *** [libs/armabi-v7a/gdbserver] Error 1
- 如何才能优雅地书写JS代码
- 【转】ABP源码分析九:后台工作任务
- sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库
- 开源开放 | 开源立体化漏洞情报知识图谱(四维创智)
- JAVA MD5加密用户信息
- mssql sqlserver 验证整型函数分享
- 不用找,你想要的建筑 华丽 豪华3d材质贴图素材都在这里
- 如何搭建一个前端脚手架
- 古代一些练外丹的资料
- 陈龙杰计算机专业,第四届学生职业技能大赛获奖名单
- 利用freemarker实现word导出
- 快速画出哈夫曼树/霍夫曼树/最优树
- 【DB笔试面试622】在Oracle中,说说COUNT(*)计算行数有哪些优化手段?