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
Пример #2
0
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)
Пример #3
0
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)