v0.0.1: PyPGLib: A Python Package for Easy Access to PGLib Power Grid Lib Benchmark
Simple runpf use:
from matpower import start_instance
from pypglib import pglib_opf_case14_ieee
m = start_instance()
m.runpf(pglib_opf_case14_ieee)Run opf use:
from matpower import start_instance
from pypglib import pglib_opf_case5_pjm
def runopf(mpc, m):
m.push('_mpc', mpc, verbose=False)
m.eval("_r1 = runopf(_mpc);", verbose=True)
mpc['baseMVA'] = m.eval('_r1.baseMVA;', verbose=False)
mpc['version'] = m.eval('_r1.version;', verbose=False)
mpc['bus'] = m.eval('_r1.bus;', verbose=False)
mpc['gen'] = m.eval('_r1.gen;', verbose=False)
mpc['branch'] = m.eval('_r1.branch;', verbose=False)
mpc['gencost'] = m.eval('_r1.gencost;', verbose=False)
mpc['f'] = m.eval('_r1.f;', verbose=False)
return mpc
m = start_instance() # runpf require oct2py / matlab
mpc = m.loadcase(pglib_opf_case5_pjm, verbose=False)
mpc = runopf(mpc, m)
print(f"Final objective function value: {mpc['f']} $/hr")