Beispiel #1
0
def add_test_impedance(net):
    b1, b2, ln = add_grid_connection(net, zone="test_impedance")
    b3 = pp.create_bus(net, vn_kv=220., zone="test_impedance")
    rij = 0.02
    xij = 0.01
    rji = 0.03
    xji = 0.005
    s = 2.

    pl = 1
    ql = 0.5

    pp.create_impedance(net,
                        b2,
                        b3,
                        rft_pu=rij,
                        xft_pu=xij,
                        rtf_pu=rji,
                        xtf_pu=xji,
                        sn_mva=s,
                        index=pp.get_free_id(net.impedance) + 1)
    pp.create_impedance(net,
                        b2,
                        b3,
                        rft_pu=rij,
                        xft_pu=xij,
                        rtf_pu=rji,
                        xtf_pu=xji,
                        sn_mva=s,
                        index=pp.get_free_id(net.impedance) + 1,
                        in_service=False)
    pp.create_load(net, b3, p_mw=pl, q_mvar=ql)
    net.last_added_case = "test_impedance"
    return net
def add_test_trafo3w(net):
    b1, b2, ln = add_grid_connection(net, zone="test_trafo3w")
    b3 = pp.create_bus(net, vn_kv=0.6, zone="test_trafo3w")
    pp.create_load(net, b3, p_kw=200, q_kvar=0)
    b4 = pp.create_bus(net, vn_kv=0.4, zone="test_trafo3w")
    pp.create_load(net, b4, p_kw=100, q_kvar=0)

    pp.create_transformer3w_from_parameters(net, hv_bus=b2, mv_bus=b3, lv_bus=b4, vn_hv_kv=22,
                                            vn_mv_kv=.64, vn_lv_kv=.42, sn_hv_kva=1000,
                                            sn_mv_kva=700, sn_lv_kva=300, vsc_hv_percent=1.,
                                            vscr_hv_percent=.03, vsc_mv_percent=.5,
                                            vscr_mv_percent=.02, vsc_lv_percent=.25,
                                            vscr_lv_percent=.01, pfe_kw=.5, i0_percent=0.1,
                                            name="test", index=pp.get_free_id(net.trafo3w) + 1,
                                            tp_side="hv", tp_pos=2, tp_st_percent=1.25,
                                            tp_min=-5, tp_mid=0, tp_max=5)
    # adding out of service 3w trafo should not change results
    pp.create_transformer3w_from_parameters(net, hv_bus=b2, mv_bus=b3, lv_bus=b4, vn_hv_kv=20,
                                            vn_mv_kv=.6, vn_lv_kv=.4, sn_hv_kva=1000, sn_mv_kva=700,
                                            sn_lv_kva=300, vsc_hv_percent=2., vscr_hv_percent=.3,
                                            vsc_mv_percent=1., vscr_mv_percent=.2,
                                            vsc_lv_percent=.5, vscr_lv_percent=.1, pfe_kw=50.,
                                            i0_percent=1., name="test", in_service=False,
                                            index=pp.get_free_id(net.trafo3w) + 1)
    net.last_added_case = "test_trafo3w"
    return net
Beispiel #3
0
def add_test_gen(net):
    b1, b2, ln = add_grid_connection(net, zone="test_gen")
    pl = 1.200
    ql = 1.100
    ps = 0.500
    vm_set_pu = 1.0

    b3 = pp.create_bus(net, zone="test_gen", vn_kv=.4)
    pp.create_line_from_parameters(net,
                                   b2,
                                   b3,
                                   12.2,
                                   r_ohm_per_km=0.08,
                                   x_ohm_per_km=0.12,
                                   c_nf_per_km=300,
                                   max_i_ka=.2,
                                   df=.8)

    pp.create_load(net, b3, p_mw=pl, q_mvar=ql)
    pp.create_gen(net, b3, p_mw=ps, vm_pu=vm_set_pu)
    # adding out of serivce gens should not change the result
    pp.create_gen(net,
                  b2,
                  p_mw=ps,
                  vm_pu=vm_set_pu,
                  in_service=False,
                  index=pp.get_free_id(net.gen) + 1)

    net.last_added_case = "test_gen"
    return net
Beispiel #4
0
def add_test_xward(net):
    b1, b2, ln = add_grid_connection(net, zone="test_xward")

    pz = 1.200
    qz = 1.100
    ps = 0.500
    qs = 0.200
    vm_pu = 1.06
    r_ohm = 50
    x_ohm = 70
    # one xward at a bus
    pp.create_xward(net,
                    b2,
                    pz_mw=pz,
                    qz_mvar=qz,
                    ps_mw=ps,
                    qs_mvar=qs,
                    vm_pu=vm_pu,
                    x_ohm=x_ohm,
                    r_ohm=r_ohm)
    # add out of service xward should not change the result
    pp.create_xward(net,
                    b2,
                    pz_mw=pz,
                    qz_mvar=qz,
                    ps_mw=ps,
                    qs_mvar=qs,
                    vm_pu=vm_pu,
                    x_ohm=x_ohm,
                    r_ohm=r_ohm,
                    in_service=False,
                    index=pp.get_free_id(net.xward) + 1)
    net.last_added_case = "test_xward"
    return net
def add_test_load_sgen(net):
    b1, b2, ln = add_grid_connection(net, zone="test_load_sgen")
    pl = 1200
    ql = 1100
    ps = -500
    qs = 100
    # load and sgen at one bus
    pp.create_load(net, b2, p_kw=pl, q_kvar=ql)
    pp.create_sgen(net, b2, p_kw=ps, q_kvar=qs)
    # adding out of serivce loads and sgens should not change the result
    pp.create_load(net, b2, p_kw=pl, q_kvar=ql, in_service=False,
                   index=pp.get_free_id(net.load) + 1)
    pp.create_sgen(net, b2, p_kw=ps, q_kvar=qs, in_service=False,
                   index=pp.get_free_id(net.sgen) + 1)
    net.last_added_case = "test_load_sgen"
    return net
Beispiel #6
0
def add_grid_connection(net, vn_kv=20., zone=None):
    """Creates a new grid connection for create_result_test_network()
    """
    b1 = pp.create_bus(net, vn_kv=vn_kv, zone=zone)
    pp.create_ext_grid(net, b1, vm_pu=1.01)
    b2 = pp.get_free_id(net.bus) + 2  # shake up the indices so that non-consecutive indices are tested
    b2 = pp.create_bus(net, vn_kv=vn_kv, zone=zone, index=b2)
    l1 = create_test_line(net, b1, b2)
    return b1, b2, l1
Beispiel #7
0
def add_test_trafo(net):
    b1, b2, ln = add_grid_connection(net, zone="test_trafo")
    b3 = pp.create_bus(net, vn_kv=0.4, zone="test_trafo")
    pp.create_transformer_from_parameters(net,
                                          b2,
                                          b3,
                                          vk_percent=5.,
                                          vkr_percent=2.,
                                          i0_percent=.4,
                                          pfe_kw=2.,
                                          sn_mva=0.4,
                                          vn_hv_kv=22,
                                          vn_lv_kv=0.42,
                                          tap_max=10,
                                          tap_neutral=5,
                                          tap_min=0,
                                          tap_step_percent=1.25,
                                          tap_pos=3,
                                          shift_degree=150,
                                          tap_side="hv",
                                          parallel=2)
    t2 = pp.create_transformer_from_parameters(
        net,
        b2,
        b3,
        vk_percent=5.,
        vkr_percent=2.,
        i0_percent=.4,
        pfe_kw=2,
        sn_mva=0.4,
        vn_hv_kv=22,
        vn_lv_kv=0.42,
        tap_max=10,
        tap_neutral=5,
        tap_min=0,
        tap_step_percent=1.25,
        tap_pos=3,
        tap_side="hv",
        shift_degree=150,
        index=pp.get_free_id(net.trafo) + 1)
    pp.create_switch(net, b3, t2, et="t", closed=False)
    pp.create_transformer_from_parameters(net,
                                          b2,
                                          b3,
                                          vk_percent=5.,
                                          vkr_percent=2.,
                                          i0_percent=1.,
                                          pfe_kw=20,
                                          sn_mva=0.4,
                                          vn_hv_kv=20,
                                          vn_lv_kv=0.4,
                                          in_service=False)
    pp.create_load(net, b3, p_mw=0.2, q_mvar=0.05)
    net.last_added_case = "test_trafo"
    return net
Beispiel #8
0
def create_test_line(net, b1, b2, in_service=True):
    return pp.create_line_from_parameters(net,
                                          b1,
                                          b2,
                                          12.2,
                                          r_ohm_per_km=0.08,
                                          x_ohm_per_km=0.12,
                                          c_nf_per_km=300,
                                          max_i_ka=.2,
                                          df=.8,
                                          in_service=in_service,
                                          index=pp.get_free_id(net.line) + 1)
def add_test_ward(net):
    b1, b2, ln = add_grid_connection(net, zone="test_ward")

    pz = 1200
    qz = 1100
    ps = 500
    qs = 200
    # one shunt at a bus
    pp.create_ward(net, b2, pz_kw=pz, qz_kvar=qz, ps_kw=ps, qs_kvar=qs)
    # add out of service ward shuold not change the result
    pp.create_ward(net, b2, pz_kw=pz, qz_kvar=qz, ps_kw=ps, qs_kvar=qs, in_service=False,
                   index=pp.get_free_id(net.ward) + 1)
    net.last_added_case = "test_ward"
    return net
Beispiel #10
0
def add_network(net, vector_group):
    b1 = pp.create_bus(net, 110, zone=vector_group, index=pp.get_free_id(net.bus))
    b2 = pp.create_bus(net, 20, zone=vector_group)
    pp.create_bus(net, 20, in_service=False)
    b3 = pp.create_bus(net, 20, zone=vector_group)
    b4 = pp.create_bus(net, 20, zone=vector_group)
    pp.create_bus(net, 20)

    pp.create_ext_grid(net, b1, s_sc_max_mva=100, s_sc_min_mva=100, rx_min=0.35, rx_max=0.35)
    net.ext_grid["r0x0_max"] = 0.4
    net.ext_grid["x0x_max"] = 1.0
    
    net.ext_grid["r0x0_min"] = 0.4
    net.ext_grid["x0x_min"] = 1.0
    
    pp.create_std_type(net, {"r_ohm_per_km": 0.122, "x_ohm_per_km": 0.112, "c_nf_per_km": 304,
                         "max_i_ka": 0.421, "endtemp_degree": 70.0, "r0_ohm_per_km": 0.244,
                         "x0_ohm_per_km": 0.336, "c0_nf_per_km": 2000}, "unsymmetric_line_type")
    l1 = pp.create_line(net, b2, b3, length_km=10, std_type="unsymmetric_line_type",
                   index=pp.get_free_id(net.line)+1)
    l2 = pp.create_line(net, b3, b4, length_km=15, std_type="unsymmetric_line_type")
    pp.create_line(net, b3, b4, length_km=15, std_type="unsymmetric_line_type", in_service=False)

    transformer_type = {"i0_percent": 0.071, "pfe_kw": 29, "vkr_percent": 0.282,
            "sn_mva": 25, "vn_lv_kv": 20.0, "vn_hv_kv": 110.0, "vk_percent": 11.2,
            "shift_degree": 150, "vector_group": vector_group, "tap_side": "hv",
            "tap_neutral": 0, "tap_min": -9, "tap_max": 9, "tap_step_degree": 0,
            "tap_step_percent": 1.5, "tap_phase_shifter": False, "vk0_percent": 5,
            "vkr0_percent": 0.4, "mag0_percent": 10, "mag0_rx": 0.4,
            "si0_hv_partial": 0.9}
    pp.create_std_type(net, transformer_type, vector_group, "trafo")
    t1 = pp.create_transformer(net, b1, b2, std_type=vector_group, parallel=2,
                          index=pp.get_free_id(net.trafo)+1)
    pp.create_transformer(net, b1, b2, std_type=vector_group, in_service=False)
    pp.add_zero_impedance_parameters(net)
    return l1, l2, t1
def convert_to_3ph(net):
  ### update external grid
  net.ext_grid["r0x0_max"] = 0.1
  net.ext_grid["x0x_max"] = 1.0
  net.ext_grid["s_sc_max_mva"] = 10000
  net.ext_grid["s_sc_min_mva"] = 8000
  net.ext_grid["rx_min"] = 0.1
  net.ext_grid["rx_max"] = 0.1
  
  ### update transformer
  net.trafo = net.trafo.head(0)
  pp.create_std_type(net, {"sn_mva": 0.3, "vn_hv_kv": 20, "vn_lv_kv": 0.4, "vk_percent": 6,
              "vkr_percent": 0.78125, "pfe_kw": 2.7, "i0_percent": 0.16875,
              "shift_degree": 0, "vector_group": "YNyn",
              "tap_side": "hv", "tap_neutral": 0, "tap_min": -2, "tap_max": 2,
              "tap_step_degree": 0, "tap_step_percent": 2.5, "tap_phase_shifter": False,
              "vk0_percent": 6, "vkr0_percent": 0.78125, "mag0_percent": 100,
              "mag0_rx": 0., "si0_hv_partial": 0.9,}, 
              "YNyn", "trafo")
  
  pp.create_transformer(net, 0, 1, std_type="YNyn", parallel=1,tap_pos=0,
                          index=pp.get_free_id(net.trafo))
  net.trafo.reset_index()
  
  ### add zero sequence for lines
  net.line["r0_ohm_per_km"] = 0.0848
  net.line["x0_ohm_per_km"] = 0.4649556
  net.line["c0_nf_per_km"] = 230.6
  
  ### convert loads to asymmertric loads
  for i in net.load.index:
    row = net.load.loc[i]
    phases = [0,0,0]
    p = i % 3
    phases[p] = 1
    pp.create_asymmetric_load(net, row['bus'], 
               p_a_mw=row['p_mw']*phases[0], q_a_mvar=row['q_mvar']*phases[0], 
               p_b_mw=row['p_mw']*phases[1], q_b_mvar=row['q_mvar']*phases[1],
               p_c_mw=row['p_mw']*phases[2], q_c_mvar=row['q_mvar']*phases[2], 
               sn_mva=row['sn_mva'])
    
  net.load['p_mw'] = 0
  net.load['q_mvar'] = 0
  pp.add_zero_impedance_parameters(net)
  return net
Beispiel #12
0
def network_with_trafo3ws():
    net = pp.create_empty_network()
    add_test_trafo(net)
    slack, hv, ln = add_grid_connection(net, zone="test_trafo3w")
    for _ in range(2):
        mv = pp.create_bus(net, vn_kv=0.6, zone="test_trafo3w")
        pp.create_load(net, mv, p_mw=0.8, q_mvar=0)
        lv = pp.create_bus(net, vn_kv=0.4, zone="test_trafo3w")
        pp.create_load(net, lv, p_mw=0.5, q_mvar=0)
        t3 = pp.create_transformer3w_from_parameters(net, hv_bus=hv, mv_bus=mv, lv_bus=lv, vn_hv_kv=22,
                                                vn_mv_kv=.64, vn_lv_kv=.42, sn_hv_mva=1,
                                                sn_mv_mva=0.7, sn_lv_mva=0.3, vk_hv_percent=1.,
                                                vkr_hv_percent=.03, vk_mv_percent=.5,
                                                vkr_mv_percent=.02, vk_lv_percent=.25,
                                                vkr_lv_percent=.01, pfe_kw=.5, i0_percent=0.1,
                                                name="test", index=pp.get_free_id(net.trafo3w) + 1,
                                                tap_side="hv", tap_pos=2, tap_step_percent=1.25,
                                                tap_min=-5, tap_neutral=0, tap_max=5)
    return (net, t3, hv, mv, lv)
def add_test_impedance(net):
    b1, b2, ln = add_grid_connection(net, zone="test_impedance")
    b3 = pp.create_bus(net, vn_kv=220., zone="test_impedance")
    r = 0.02
    x = 0.01
    s = 2000

    pl = 1000
    ql = 500

    pp.create_impedance(net,
                        b2,
                        b3,
                        r_pu=r,
                        x_pu=x,
                        sn_kva=s,
                        index=pp.get_free_id(net.impedance) + 1)
    pp.create_load(net, b3, p_kw=pl, q_kvar=ql)
    net.last_added_case = "test_impedance"
    return net
def add_test_trafo(net):
    b1, b2, ln = add_grid_connection(net, zone="test_trafo")
    b3 = pp.create_bus(net, vn_kv=0.4, zone="test_trafo")
    pp.create_transformer_from_parameters(net,
                                          b2,
                                          b3,
                                          vsc_percent=5.,
                                          vscr_percent=2.,
                                          i0_percent=1.,
                                          pfe_kw=20,
                                          sn_kva=400,
                                          vn_hv_kv=20,
                                          vn_lv_kv=0.4)
    t2 = pp.create_transformer_from_parameters(
        net,
        b2,
        b3,
        vsc_percent=5.,
        vscr_percent=2.,
        i0_percent=1.,
        pfe_kw=20,
        sn_kva=400,
        vn_hv_kv=20,
        vn_lv_kv=0.4,
        index=pp.get_free_id(net.trafo) + 1)
    pp.create_switch(net, b3, t2, et="t", closed=False)
    pp.create_transformer_from_parameters(net,
                                          b2,
                                          b3,
                                          vsc_percent=5.,
                                          vscr_percent=2.,
                                          i0_percent=1.,
                                          pfe_kw=20,
                                          sn_kva=400,
                                          vn_hv_kv=20,
                                          vn_lv_kv=0.4,
                                          in_service=False)
    pp.create_load(net, b3, p_kw=200, q_kvar=50)
    net.last_added_case = "test_trafo"
    return net
Beispiel #15
0
    res_vm_kv = np.concatenate(
        (net.res_bus_3ph[(net.bus.zone == vc) & (net.bus.in_service)].vm_a_pu,
         net.res_bus_3ph[(net.bus.zone == vc) & (net.bus.in_service)].vm_b_pu,
         net.res_bus_3ph[(net.bus.zone == vc) & (net.bus.in_service)].vm_c_pu),
        axis=0)
    assert np.allclose(result, res_vm_kv, atol=1e-4)
    if not np.allclose(result, res_vm_kv, atol=1e-4):
        raise ValueError("Incorrect results for vector group %s" % vc,
                         res_vm_kv, result)


def make_nw(net, bushv, tap_ps, case, vector_group):
    b1 = pp.create_bus(net,
                       bushv,
                       zone=vector_group,
                       index=pp.get_free_id(net.bus))
    b2 = pp.create_bus(net, 0.4, zone=vector_group)
    b3 = pp.create_bus(net, 0.4, zone=vector_group)
    pp.create_ext_grid(net,
                       b1,
                       s_sc_max_mva=10000,
                       rx_max=0.1,
                       r0x0_max=0.1,
                       x0x_max=1.0)
    pp.create_transformer_from_parameters(net,
                                          hv_bus=b1,
                                          lv_bus=b2,
                                          sn_mva=1.6,
                                          vn_hv_kv=10,
                                          vn_lv_kv=0.4,
                                          vk_percent=6,
Beispiel #16
0
                  'Dyn': 1e-03,
                  'Yzn': 1e-03}

    assert np.allclose(result, res_trafo_i_ka, atol=tolerances[trafo_vector_group])
    if not np.allclose(result, res_trafo_i_ka, atol=tolerances[trafo_vector_group]):
        raise ValueError("Incorrect results for vector group %s" % trafo_vector_group, res_trafo_i_ka, result)


def check_results(net, trafo_vector_group, results):
    check_bus_voltages(net, results[0], trafo_vector_group)
    check_line_currents(net, results[1], trafo_vector_group)
    check_trafo_currents(net, results[2], trafo_vector_group)


def make_nw(net, bushv, tap_ps, case, vector_group):
    b1 = pp.create_bus(net, bushv, zone=vector_group, index=pp.get_free_id(net.bus))
    b2 = pp.create_bus(net, 0.4, zone=vector_group)
    b3 = pp.create_bus(net, 0.4, zone=vector_group)
    pp.create_ext_grid(net, b1, s_sc_max_mva=10000,
                       rx_max=0.1, r0x0_max=0.1, x0x_max=1.0)
    pp.create_transformer_from_parameters(net, hv_bus=b1, lv_bus=b2,
                                          sn_mva=1.6, vn_hv_kv=10,
                                          vn_lv_kv=0.4, vk_percent=6,
                                          vkr_percent=0.78125, pfe_kw=2.7,
                                          i0_percent=0.16875, shift_degree=0,
                                          tap_side='lv', tap_neutral=0,
                                          tap_min=-2, tap_max=2,
                                          tap_step_degree=0,
                                          tap_step_percent=2.5,
                                          tap_phase_shifter=False,
                                          vk0_percent=6, vkr0_percent=0.78125,
Beispiel #17
0
def test_trafo3w_switches():
    net = pp.create_empty_network()
    add_test_trafo(net)
    slack, hv, ln = add_grid_connection(net, zone="test_trafo3w")
    for _ in range(2):
        mv = pp.create_bus(net, vn_kv=0.6, zone="test_trafo3w")
        pp.create_load(net, mv, p_kw=800, q_kvar=0)
        lv = pp.create_bus(net, vn_kv=0.4, zone="test_trafo3w")
        pp.create_load(net, lv, p_kw=500, q_kvar=0)
        t3 = pp.create_transformer3w_from_parameters(
            net,
            hv_bus=hv,
            mv_bus=mv,
            lv_bus=lv,
            vn_hv_kv=22,
            vn_mv_kv=.64,
            vn_lv_kv=.42,
            sn_hv_kva=1000,
            sn_mv_kva=700,
            sn_lv_kva=300,
            vsc_hv_percent=1.,
            vscr_hv_percent=.03,
            vsc_mv_percent=.5,
            vscr_mv_percent=.02,
            vsc_lv_percent=.25,
            vscr_lv_percent=.01,
            pfe_kw=.5,
            i0_percent=0.1,
            name="test",
            index=pp.get_free_id(net.trafo3w) + 1,
            tp_side="hv",
            tp_pos=2,
            tp_st_percent=1.25,
            tp_min=-5,
            tp_mid=0,
            tp_max=5)
    # open switch at hv side - t3 is disconnected
    s1 = pp.create_switch(net, bus=hv, element=t3, et="t3", closed=False)
    runpp_with_consistency_checks(net)
    assert np.isnan(net.res_bus.vm_pu.at[mv])
    assert np.isnan(net.res_bus.vm_pu.at[lv])
    assert np.isnan(net.res_trafo3w.p_hv_kw.at[t3]) == 0

    # open switch at mv side - mv is disconnected, lv is connected
    net.switch.bus.at[s1] = mv
    runpp_with_consistency_checks(net)

    assert np.isnan(net.res_bus.vm_pu.at[mv])
    assert not np.isnan(net.res_bus.vm_pu.at[lv])
    assert net.res_trafo3w.i_lv_ka.at[t3] > 1e-5
    assert net.res_trafo3w.i_mv_ka.at[t3] < 1e-5
    assert 490 < net.res_trafo3w.p_hv_kw.at[t3] < 510

    # open switch at lv side - lv is disconnected, mv is connected
    net.switch.bus.at[s1] = lv
    runpp_with_consistency_checks(net)

    assert np.isnan(net.res_bus.vm_pu.at[lv])
    assert not np.isnan(net.res_bus.vm_pu.at[mv])
    assert net.res_trafo3w.i_lv_ka.at[t3] < 1e-5
    assert net.res_trafo3w.i_mv_ka.at[t3] > 1e-5
    assert 790 < net.res_trafo3w.p_hv_kw.at[t3] < 810

    # open switch at lv and mv side - lv and mv is disconnected, t3 in open loop
    pp.create_switch(net, bus=mv, element=t3, et="t3", closed=False)
    runpp_with_consistency_checks(net)

    assert np.isnan(net.res_bus.vm_pu.at[lv])
    assert np.isnan(net.res_bus.vm_pu.at[mv])
    assert net.res_trafo3w.i_lv_ka.at[t3] < 1e-5
    assert net.res_trafo3w.i_mv_ka.at[t3] < 1e-5
    assert 0 < net.res_trafo3w.p_hv_kw.at[t3] < 1
Beispiel #18
0
def add_network(net, vector_group):
    b1 = pp.create_bus(net,
                       110,
                       zone=vector_group,
                       index=pp.get_free_id(net.bus))
    b2 = pp.create_bus(net, 20, zone=vector_group)
    pp.create_bus(net, 20, in_service=False)
    b3 = pp.create_bus(net, 20, zone=vector_group)
    b4 = pp.create_bus(net, 20, zone=vector_group)
    pp.create_bus(net, 20)

    pp.create_ext_grid(net,
                       b1,
                       s_sc_max_mva=100,
                       s_sc_min_mva=80,
                       rx_min=0.20,
                       rx_max=0.35)
    net.ext_grid["r0x0_max"] = 0.4
    net.ext_grid["x0x_max"] = 1.0

    pp.create_std_type(
        net, {
            "r_ohm_per_km": 0.122,
            "x_ohm_per_km": 0.112,
            "c_nf_per_km": 304,
            "max_i_ka": 0.421,
            "endtemp_degree": 70.0,
            "r0_ohm_per_km": 0.244,
            "x0_ohm_per_km": 0.336,
            "c0_nf_per_km": 2000
        }, "unsymmetric_line_type")
    l1 = pp.create_line(net,
                        b2,
                        b3,
                        length_km=10,
                        std_type="unsymmetric_line_type",
                        index=pp.get_free_id(net.line) + 1)
    l2 = pp.create_line(net,
                        b3,
                        b4,
                        length_km=15,
                        std_type="unsymmetric_line_type")
    pp.create_line(net,
                   b3,
                   b4,
                   length_km=15,
                   std_type="unsymmetric_line_type",
                   in_service=False)

    transformer_type = copy.copy(
        pp.load_std_type(net, "25 MVA 110/20 kV v1.4.3 and older", "trafo"))
    transformer_type.update({
        "vsc0_percent": 5,
        "vscr0_percent": 0.4,
        "mag0_percent": 10,
        "mag0_rx": 0.4,
        "mag0_rx": 0.4,
        "si0_hv_partial": 0.9,
        "vector_group": vector_group
    })
    pp.create_std_type(net, transformer_type, vector_group, "trafo")
    t1 = pp.create_transformer(net,
                               b1,
                               b2,
                               std_type=vector_group,
                               parallel=2,
                               index=pp.get_free_id(net.trafo) + 1)
    pp.create_transformer(net, b1, b2, std_type=vector_group, in_service=False)
    pp.add_zero_impedance_parameters(net)
    return l1, l2, t1