Skip to content

v0.0.1: PyPGLib: A Python Package for Easy Access to PGLib Power Grid Lib Benchmark

Latest

Choose a tag to compare

@yasirroni yasirroni released this 03 Apr 17:05
· 19 commits to main since this release

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")