Сохраните текущие данные короткого замыкания в CSV, используя python в программе PSS / E - PullRequest
0 голосов
/ 11 июля 2019

Я изучаю студентов в энергосистеме и хочу использовать python в программе PSS / E. Я могу использовать python в программе PSS / E для запуска текущих данных короткого замыкания. Но я не знаю, как использовать python для сохранения данных о токе короткого замыкания в CSV. Я могу создать один файл CSV сейчас, но я не знаю, как записать данные в CSV.

Я использую psse ver34 и python 2.7.

У меня есть маленький код:

import os, math, time
sqrt3 = math.sqrt(3.0)
sbase = 100.0     # MVA

str_time = time.strftime("%Y%m%d_%H%M%S_", time.localtime())
fnamout  = str_time + 'short_circuit_in_line_slider.csv'
fnamout  = os.path.join(os.getcwd(),fnamout)
foutobj  = open(fnamout,'w')

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

Вы можете использовать модуль pssarrays, написанный разработчиками PSSE, для выполнения ASCC и считывания результатов в Python, то есть вне GUI. Вы можете просмотреть документацию следующим образом:

import psse34
import pssarrays

help(pssarrays.ascc_currents)

После того, как вы загрузили дело в память Python и определили свою подсистему (например, с помощью psspy.bsys()), для которой нужно применить ошибки, вы можете запустить ASCC следующим образом:

robj = pssarrays.ascc_currents(
    sid=0,    # this could be different for you
    flt3ph=1, # you may wish to apply different faults
)

и обработать результаты следующим образом:

with open('your_file.csv', 'w') as f:
    for bus_number, sc_results in zip(robj.fltbus, robj.flt3ph.values()):
        f.write('{},{}\n'.format(bus_number, sc_results['ia1']))

, который запишет токи прямой последовательности ia1 в файл; Вы можете захотеть иметь разные данные, записанные в файл. Пожалуйста, прочитайте строку документации, т.е. help(pssarrays.ascc_currents), иначе ничего из этого не будет иметь смысла.

0 голосов
/ 11 июля 2019

Вы можете использовать file.write для записи данных в файл

Используйте «a» для добавления к данному файлу. Используйте оператор with, чтобы гарантировать, что файл будет закрыт, когда вы закончите.

with open(fnameout, 'a') as file:
    file.write(DATA + "\n")
...