利用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进行电力系统仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7系统安装打印机驱动报错:Wind
- 下一篇: Spark机器学习-LDA算法09