def test_write_results_to_case(case, ppc): ppc['bus'][0][idx_bus.VM] = 0.5 ppc['bus'][0][idx_bus.VA] = 0.3 ppc['bus'][1][idx_bus.PD] = 3.4 ppc['bus'][1][idx_bus.QD] = 4.2 ppc['gen'][0][idx_gen.PG] = 2.3 ppc['gen'][0][idx_gen.QG] = 1.7 ppc['branch'][0][idx_brch.PF] = 1.1 ppc['branch'][0][idx_brch.QF] = 1.2 ppc['branch'][0][idx_brch.PT] = 1.3 ppc['branch'][0][idx_brch.QT] = 1.4 ext_pypower.write_results_to_case(ppc, case) assert case.buses[0].vm == 0.5 assert case.buses[0].va == 0.3 assert case.buses[0].pd == 1 assert case.buses[0].qd == 2 assert case.buses[1].vm == 15 assert case.buses[1].va == 16 assert case.buses[1].pd == 3.4 assert case.buses[1].qd == 4.2 assert case.generators[0].pg == 2.3 assert case.generators[0].qg == 1.7 assert case.branches[0].p_from == 1.1 assert case.branches[0].q_from == 1.2 assert case.branches[0].p_to == 1.3 assert case.branches[0].q_to == 1.4
def run_pypower(case): """ Executes a PYPOWER power flow for *case* and writes its results back to *case*. If *case* is a string, :func:`transform` will be called first to create a bus/branch model from the CIM file. """ basestring = (str,bytes) from pypower.api import ppoption, runpf from cim2busbranch import ext_pypower if isinstance(case, basestring): case = transform(case) ppc = ext_pypower.create(case) ppo = ppoption(OUT_ALL=0, VERBOSE=0) res = runpf(ppc, ppo) if not res[1]: raise RuntimeError('PYPOWER power flow failed.') ext_pypower.write_results_to_case(res[0], case)
def main(): import sys case = sys.argv[1] if len(sys.argv) == 2 else 'a' cases = { 'a': test_case_a, 'b': test_case_b, } case = cases[case]() ppc = ext_pypower.create(case) ppo = ppoption(OUT_ALL=0, VERBOSE=0) res = runpf(ppc, ppo) ext_pypower.write_results_to_case(res[0], case) print(case)