PYPOWER

The following functions are provided to enable a network data exchange with PYPOWER.

pandapower.converter.from_ppc(ppc, f_hz=50, validate_conversion=False)

This function converts pypower case files to pandapower net structure.

INPUT:

ppc : The pypower case file.

OPTIONAL:

f_hz (float, 50) - The frequency of the network.

validate_conversion (bool, False) - If True, validate_from_ppc is run after conversion.

OUTPUT:

net : pandapower net.

EXAMPLE:

import pandapower.converter as pc

from pypower import case4gs

ppc_net = case4gs.case4gs()

pp_net = cv.from_ppc(ppc_net, f_hz=60)

pandapower.converter.validate_from_ppc(ppc_net, pp_net, max_diff_values={'vm_pu': 1e-06, 'va_degree': 1e-05, 'p_branch_kw': 0.001, 'p_gen_kw': 0.001, 'q_gen_kvar': 0.001, 'q_branch_kvar': 0.001})

This function validates the pypower case files to pandapower net structure conversion via a comparison of loadflow calculations.

INPUT:

ppc_net - The pypower case file which already contains the pypower powerflow results.

pp_net - The pandapower network.

OPTIONAL:

max_diff_values - Dict of maximal allowed difference values. The keys must be ‘vm_pu’, ‘va_degree’, ‘p_branch_kw’, ‘q_branch_kvar’, ‘p_gen_kw’ and ‘q_gen_kvar’ and the values floats.

OUTPUT:

conversion_success - conversion_success is returned as False if pypower or pandapower cannot calculate a powerflow or if the maximum difference values (max_diff_values ) cannot be hold.

EXAMPLE:

import pandapower.converter as pc

pp_net = cv.from_ppc(ppc_net, f_hz=50)

conversion_success = cv.validate_from_ppc(ppc_net, pp_net)

NOTE:

The user has to take care that the loadflow results already are included in the provided ppc_net.
pandapower.converter.to_ppc(net, calculate_voltage_angles=False, trafo_model='t', r_switch=0.0, check_connectivity=True, voltage_depend_loads=True, init='results')
This function converts a pandapower net to a pypower case file.

INPUT:

net - The pandapower net.

OPTIONAL:

calculate_voltage_angles (bool, False) - consider voltage angles in loadflow calculation

If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed networks that are usually found in higher networks.

trafo_model (str, “t”) - transformer equivalent circuit model pandapower provides two equivalent circuit models for the transformer:

  • “t” - transformer is modeled as equivalent with the T-model.
  • “pi” - transformer is modeled as equivalent PI-model. This is not recommended, since it is less exact than the T-model. It is only recommended for validation with other software that uses the pi-model.

r_switch (float, 0.0) - resistance of bus-bus-switches. If impedance is zero, buses connected by a closed bus-bus switch are fused to model an ideal bus. Otherwise, they are modelled as branches with resistance r_switch.

check_connectivity (bool, True) - Perform an extra connectivity test after the conversion from pandapower to PYPOWER

If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc

voltage_depend_loads (bool, True) - consideration of voltage-dependent loads. If False, net.load.const_z_percent and net.load.const_i_percent are not considered, i.e. net.load.p_kw and net.load.q_kvar are considered as constant-power loads.

init (str, “results”) - initialization method of the converter pandapower ppc converter supports two methods for initializing the converter:

  • “flat”- flat start with voltage of 1.0pu and angle of 0° at all PQ-buses and 0° for PV buses as initial solution
  • “results” - voltage vector from net.res_bus is used as initial solution.

OUTPUT:

ppc - The Pypower casefile for usage with pypower

EXAMPLE:

import pandapower.converter as pc

import pandapower.networks as pn

net = pn.case9()

ppc = pc.to_ppc(net)