コード例 #1
0
def test_3ph_isolated_nodes():
    v_base = 110  # 110kV Base Voltage
    mva_base = 100  # 100 MVA
    net = pp.create_empty_network(sn_mva=mva_base)

    busn = pp.create_bus(net, vn_kv=v_base, name="busn", index=1)
    pp.create_bus(net, vn_kv=20., in_service=True, index=2, name="busx")
    busk = pp.create_bus(net, vn_kv=v_base, name="busk", index=5)
    busl = pp.create_bus(net, vn_kv=v_base, name="busl", index=6)
    pp.create_bus(net, vn_kv=20., in_service=False, index=3)
    busy = pp.create_bus(net, vn_kv=20., in_service=True, index=0, name="busy")

    pp.create_ext_grid(net, bus=busn, vm_pu=1.0, name="Grid Connection",
                       s_sc_max_mva=5000, rx_max=0.1)
    net.ext_grid["r0x0_max"] = 0.1
    net.ext_grid["x0x_max"] = 1.0
    pp.create_std_type(net, {"r0_ohm_per_km": 0.0848, "x0_ohm_per_km": 0.4649556,
                             "c0_nf_per_km": 230.6, "max_i_ka": 0.963,
                             "r_ohm_per_km": 0.0212, "x_ohm_per_km": 0.1162389,
                             "c_nf_per_km": 230}, "example_type")
    # Loads on supplied buses
    pp.create_asymmetric_load(net, busk, p_a_mw=50, q_a_mvar=50, p_b_mw=10, q_b_mvar=15,
                              p_c_mw=10, q_c_mvar=5)
    pp.create_load(net, bus=busl, p_mw=7, q_mvar=0.070, name="Load 1")
    # Loads on unsupplied buses
    pp.create_load(net, bus=busy, p_mw=70, q_mvar=70, name="Load Y")
    pp.create_line(net, from_bus=busn, to_bus=busk, length_km=50.0, std_type="example_type")
    pp.create_line(net, from_bus=busl, to_bus=busk, length_km=50.0, std_type="example_type")
    pp.add_zero_impedance_parameters(net)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']
    assert np.allclose(net.res_bus_3ph.T[[0, 2, 3]].T[["vm_a_pu", "va_a_degree", "vm_b_pu",
                       "va_b_degree", "vm_c_pu", "va_c_degree"]], np.nan, equal_nan=True)
    assert np.allclose(net.res_bus_3ph.T[[0, 2, 3]].T[["p_a_mw", "q_a_mvar", "p_b_mw", "q_b_mvar",
                       "p_c_mw", "q_c_mvar"]], 0.0)
コード例 #2
0
def test_3ph_bus_mapping_order():
    net = pp.create_empty_network()
    b2 = pp.create_bus(net, vn_kv=0.4, index=4)
    pp.create_bus(net, vn_kv=0.4, in_service=False, index=3)
    b1 = pp.create_bus(net, vn_kv=0.4, index=7)

    pp.create_ext_grid(net, b1, vm_pu=1.0, s_sc_max_mva=10, rx_max=0.1)
    net.ext_grid["x0x_max"] = 1.
    net.ext_grid["r0x0_max"] = 0.1
    pp.create_std_type(net, {"r_ohm_per_km": 0.1013, "x_ohm_per_km": 0.06911504,
                             "c_nf_per_km": 690, "g_us_per_km": 0, "max_i_ka": 0.44,
                             "c0_nf_per_km": 312.4, "r0_ohm_per_km": 0.4053,
                             "x0_ohm_per_km": 0.2764602}, "N2XRY 3x185sm 0.6/1kV")

    pp.create_line(net, b1, b2, 1.0, std_type="N2XRY 3x185sm 0.6/1kV", index=4)
    pp.create_line(net, b1, b2, 1.0, std_type="N2XRY 3x185sm 0.6/1kV", index=3, in_service=False)
    pp.create_line(net, b1, b2, 1.0, std_type="N2XRY 3x185sm 0.6/1kV", index=7)
    pp.add_zero_impedance_parameters(net)
    pp.create_load(net, b2, p_mw=0.030, q_mvar=0.030)
    pp.runpp(net)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']

    assert np.allclose(net.res_bus_3ph.vm_a_pu.values, net.res_bus.vm_pu.values, equal_nan=True)
    assert net.res_bus_3ph.index.tolist() == net.res_bus.index.tolist()

    assert net.res_line_3ph.index.tolist() == net.res_line.index.tolist()
    assert np.allclose(net.res_line.p_from_mw, net.res_line_3ph.p_a_from_mw +
                       net.res_line_3ph.p_b_from_mw +
                       net.res_line_3ph.p_c_from_mw)
    assert np.allclose(net.res_line.loading_percent, net.res_line_3ph.loading_a_percent)
コード例 #3
0
ファイル: test_runpp_3ph.py プロジェクト: zypher22/pandapower
def test_2bus_network_single_isolated_busses(net):
    # -o---o o x
    pp.create_bus(net, vn_kv=110)
    pp.create_bus(net, vn_kv=110, in_service=False)
    pp.add_zero_impedance_parameters(net)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']
    check_it(net)
コード例 #4
0
def test_2bus_network_singel_oos_bus(net):
    # -o---x---o
    b1 = pp.create_bus(net, vn_kv=110)
    net.bus.loc[5, "in_service"] = False
    pp.create_line(net, from_bus=5, to_bus=b1, length_km=10.0, std_type="example_type")
    pp.create_asymmetric_load(net, b1, p_a_mw=-5, q_a_mvar=5, p_b_mw=-1, q_b_mvar=1.5,
                              p_c_mw=-1, q_c_mvar=.5)
    pp.add_zero_impedance_parameters(net)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']
コード例 #5
0
def test_1ph_with_switches():
    net = pp.create_empty_network()
    vc = "Yy"
    l1, l2, _ = add_network(net, vc)
    sc.calc_sc(net, fault="1ph", case="max")
    pp.create_line(net, net.line.to_bus.at[l2], net.line.from_bus.at[l1], length_km=15,
                   std_type="unsymmetric_line_type", parallel=2.)
    pp.add_zero_impedance_parameters(net)
    pp.create_switch(net, bus=net.line.to_bus.at[l2], element=l2, et="l", closed=False)
    sc.calc_sc(net, fault="1ph", case="max")
    check_results(net, vc, [0.52209347338, 2.0620266652, 2.3255761263, 2.3066467489])
コード例 #6
0
def test_2bus_network_isolated_net_part(net):
    # -o---o o---o
    b1 = pp.create_bus(net, vn_kv=110)
    b2 = pp.create_bus(net, vn_kv=110)
    pp.create_line(net, from_bus=b1, to_bus=b2, length_km=50.0, std_type="example_type")
    pp.create_asymmetric_load(net, b2, p_a_mw=50, q_a_mvar=50, p_b_mw=10, q_b_mvar=15,
                              p_c_mw=10, q_c_mvar=5)
    pp.add_zero_impedance_parameters(net)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']
    check_it(net)
コード例 #7
0
def test_out_serv_load(net):
    # <-x--o------o
    pp.add_zero_impedance_parameters(net)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']
    check_it(net)
    pp.create_asymmetric_load(net, 5, p_a_mw=50, q_a_mvar=100, p_b_mw=29, q_b_mvar=38,
                              p_c_mw=10, q_c_mvar=5, in_service=False)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']
    check_it(net)
コード例 #8
0
def test_3ph_two_bus_line_powerfactory():
    net = pp.create_empty_network()

    b1 = pp.create_bus(net, vn_kv=0.4)
    b2 = pp.create_bus(net, vn_kv=0.4)

    pp.create_ext_grid(net, b1, vm_pu=1.0, s_sc_max_mva=10, rx_max=0.1)
    net.ext_grid["x0x_max"] = 1.
    net.ext_grid["r0x0_max"] = 0.1
    pp.create_std_type(net, {"r_ohm_per_km": 0.1013, "x_ohm_per_km": 0.06911504,
                             "c_nf_per_km": 690, "g_us_per_km": 0, "max_i_ka": 0.44,
                             "c0_nf_per_km": 312.4, "r0_ohm_per_km": 0.4053,
                             "x0_ohm_per_km": 0.2764602}, "N2XRY 3x185sm 0.6/1kV")

    pp.create_line(net, b1, b2, 0.4, std_type="N2XRY 3x185sm 0.6/1kV")
    pp.add_zero_impedance_parameters(net)
    pp.create_load(net, b2, p_mw=0.010, q_mvar=0.010)
    pp.create_asymmetric_load(net, b2, p_a_mw=0.020, q_a_mvar=0.010, p_b_mw=0.015, q_b_mvar=0.005, p_c_mw=0.025,
                              q_c_mvar=0.010)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']

    bus_pp = np.abs(net.res_bus_3ph[['vm_a_pu', 'vm_b_pu', 'vm_c_pu']].values)
    bus_pf = np.abs(np.array([[0.99939853552, 1.0013885141, 0.99921580141],
                             [0.97401782343, 0.98945593737, 0.96329605983]]))

    assert np.max(np.abs(bus_pp-bus_pf)) < 4e-6

    line_pp = np.abs(net.res_line_3ph[
            ['i_a_from_ka', 'i_b_from_ka', 'i_c_from_ka',
             'i_a_to_ka', 'i_b_to_ka', 'i_c_to_ka',
             'p_a_from_mw', 'p_b_from_mw', 'p_c_from_mw',
             'q_a_from_mvar', 'q_b_from_mvar', 'q_c_from_mvar',
             'p_a_to_mw', 'p_b_to_mw', 'p_c_to_mw',
             'q_a_to_mvar', 'q_b_to_mvar', 'q_c_to_mvar']].values)
    line_pf = np.abs(np.array(
            [[0.11946088987	,	0.08812337783	,	0.14074226065	,
             0.1194708224	,	0.088131567331	,	0.14075063601	,
             0.023810539354	,	0.01855791658	,	0.029375192747	,
             0.013901720672	,	0.008421814704	,	0.013852398586	,
             -0.023333142958	,	-0.018333405987	,	-0.028331643666	,
             -0.013332756527	,	-0.008333413919	,	-0.013332422725	]]))
    assert np.max(np.abs(line_pp - line_pf)) < 1e-5

    line_load_pp = np.abs(net.res_line_3ph[
            ['loading_a_percent', 'loading_b_percent', 'loading_c_percent',
             'loading_percent']].values)
    line_load_pf = np.abs(np.array(
                          [[27.1525	,	20.0299	,	31.98878	,
                            31.98878]]))
    assert np.max(np.abs(line_load_pp - line_load_pf)) < 1e-2
コード例 #9
0
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
コード例 #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
コード例 #11
0
def case34_3ph():
    """
    Create the IEEE 34 bus from IEEE PES Test Feeders:
    "https://site.ieee.org/pes-testfeeders/resources/”.

    OUTPUT:
        **net** - The pandapower format network.
    """
    net = pp.create_empty_network()

    # Linedata
    # CF-300
    line_data = {
        'c_nf_per_km': 3.8250977,
        'r_ohm_per_km': 0.69599766,
        'x_ohm_per_km': 0.5177677,
        'c0_nf_per_km': 1.86976748,
        'r0_ohm_per_km': 1.08727498,
        'x0_ohm_per_km': 1.47374703,
        'max_i_ka': 0.23,
        'type': 'ol'
    }
    pp.create_std_type(net, line_data, name='CF-300', element='line')

    # CF-301
    line_data = {
        'c_nf_per_km': 3.66884364,
        'r_ohm_per_km': 1.05015841,
        'x_ohm_per_km': 0.52265586,
        'c0_nf_per_km': 1.82231544,
        'r0_ohm_per_km': 1.48350255,
        'x0_ohm_per_km': 1.60203942,
        'max_i_ka': 0.18,
        'type': 'ol'
    }
    pp.create_std_type(net, line_data, name='CF-301', element='line')

    # CF-302
    line_data = {
        'c_nf_per_km': 0.8751182,
        'r_ohm_per_km': 0.5798427,
        'x_ohm_per_km': 0.30768221,
        'c0_nf_per_km': 0.8751182,
        'r0_ohm_per_km': 0.5798427,
        'x0_ohm_per_km': 0.30768221,
        'max_i_ka': 0.14,
        'type': 'ol'
    }
    pp.create_std_type(net, line_data, name='CF-302', element='line')

    # CF-303
    line_data = {
        'c_nf_per_km': 0.8751182,
        'r_ohm_per_km': 0.5798427,
        'x_ohm_per_km': 0.30768221,
        'c0_nf_per_km': 0.8751182,
        'r0_ohm_per_km': 0.5798427,
        'x0_ohm_per_km': 0.30768221,
        'max_i_ka': 0.14,
        'type': 'ol'
    }
    pp.create_std_type(net, line_data, name='CF-303', element='line')

    # CF-304
    line_data = {
        'c_nf_per_km': 0.90382554,
        'r_ohm_per_km': 0.39802955,
        'x_ohm_per_km': 0.29436416,
        'c0_nf_per_km': 0.90382554,
        'r0_ohm_per_km': 0.39802955,
        'x0_ohm_per_km': 0.29436416,
        'max_i_ka': 0.18,
        'type': 'ol'
    }
    pp.create_std_type(net, line_data, name='CF-304', element='line')

    # Busses
    bus0 = pp.create_bus(net,
                         name='Bus 0',
                         vn_kv=24.9,
                         type='n',
                         zone='34_BUS')
    bus_800 = pp.create_bus(net,
                            name='Bus 800',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_802 = pp.create_bus(net,
                            name='Bus 802',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_806 = pp.create_bus(net,
                            name='Bus 806',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_808 = pp.create_bus(net,
                            name='Bus 808',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_810 = pp.create_bus(net,
                            name='Bus 810',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_812 = pp.create_bus(net,
                            name='Bus 812',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_814 = pp.create_bus(net,
                            name='Bus 814',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_850 = pp.create_bus(net,
                            name='Bus 850',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_816 = pp.create_bus(net,
                            name='Bus 816',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_818 = pp.create_bus(net,
                            name='Bus 818',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_820 = pp.create_bus(net,
                            name='Bus 820',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_822 = pp.create_bus(net,
                            name='Bus 822',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_824 = pp.create_bus(net,
                            name='Bus 824',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_826 = pp.create_bus(net,
                            name='Bus 826',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_828 = pp.create_bus(net,
                            name='Bus 828',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_830 = pp.create_bus(net,
                            name='Bus 830',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_854 = pp.create_bus(net,
                            name='Bus 854',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_852 = pp.create_bus(net,
                            name='Bus 852',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_832 = pp.create_bus(net,
                            name='Bus 832',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_858 = pp.create_bus(net,
                            name='Bus 858',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_834 = pp.create_bus(net,
                            name='Bus 834',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_842 = pp.create_bus(net,
                            name='Bus 842',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_844 = pp.create_bus(net,
                            name='Bus 844',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_846 = pp.create_bus(net,
                            name='Bus 846',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_848 = pp.create_bus(net,
                            name='Bus 848',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_860 = pp.create_bus(net,
                            name='Bus 860',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_836 = pp.create_bus(net,
                            name='Bus 836',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_840 = pp.create_bus(net,
                            name='Bus 840',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_862 = pp.create_bus(net,
                            name='Bus 862',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_838 = pp.create_bus(net,
                            name='Bus 838',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_864 = pp.create_bus(net,
                            name='Bus 864',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')
    bus_888 = pp.create_bus(net,
                            name='Bus 888',
                            vn_kv=4.16,
                            type='n',
                            zone='34_BUS')
    bus_890 = pp.create_bus(net,
                            name='Bus 890',
                            vn_kv=4.16,
                            type='n',
                            zone='34_BUS')
    bus_856 = pp.create_bus(net,
                            name='Bus 856',
                            vn_kv=24.9,
                            type='n',
                            zone='34_BUS')

    # Lines
    pp.create_line(net,
                   bus_800,
                   bus_802,
                   length_km=0.786384,
                   std_type='CF-300',
                   name='Line 0')
    pp.create_line(net,
                   bus_802,
                   bus_806,
                   length_km=0.527304,
                   std_type='CF-300',
                   name='Line 1')
    pp.create_line(net,
                   bus_806,
                   bus_808,
                   length_km=9.823704,
                   std_type='CF-300',
                   name='Line 2')
    pp.create_line(net,
                   bus_808,
                   bus_810,
                   length_km=1.769059,
                   std_type='CF-303',
                   name='Line 3')
    pp.create_line(net,
                   bus_808,
                   bus_812,
                   length_km=11.43000,
                   std_type='CF-300',
                   name='Line 4')
    pp.create_line(net,
                   bus_812,
                   bus_814,
                   length_km=9.061704,
                   std_type='CF-300',
                   name='Line 5')
    # pp.create_line(net, bus_814, bus_850, length_km=0.003048, std_type='CF-301',
    #                name='Line 6')
    pp.create_line(net,
                   bus_816,
                   bus_818,
                   length_km=0.521208,
                   std_type='CF-302',
                   name='Line 7')
    pp.create_line(net,
                   bus_816,
                   bus_824,
                   length_km=3.112008,
                   std_type='CF-301',
                   name='Line 8')
    pp.create_line(net,
                   bus_818,
                   bus_820,
                   length_km=14.67612,
                   std_type='CF-302',
                   name='Line 9')
    pp.create_line(net,
                   bus_820,
                   bus_822,
                   length_km=4.187952,
                   std_type='CF-302',
                   name='Line 10')
    pp.create_line(net,
                   bus_824,
                   bus_826,
                   length_km=0.923544,
                   std_type='CF-303',
                   name='Line 11')
    pp.create_line(net,
                   bus_824,
                   bus_828,
                   length_km=0.256032,
                   std_type='CF-301',
                   name='Line 12')
    pp.create_line(net,
                   bus_828,
                   bus_830,
                   length_km=6.230112,
                   std_type='CF-301',
                   name='Line 13')
    pp.create_line(net,
                   bus_830,
                   bus_854,
                   length_km=0.158496,
                   std_type='CF-301',
                   name='Line 14')
    pp.create_line(net,
                   bus_832,
                   bus_858,
                   length_km=1.493520,
                   std_type='CF-301',
                   name='Line 15')
    pp.create_line(net,
                   bus_834,
                   bus_860,
                   length_km=0.615696,
                   std_type='CF-301',
                   name='Line 16')
    pp.create_line(net,
                   bus_834,
                   bus_842,
                   length_km=0.085344,
                   std_type='CF-301',
                   name='Line 17')
    pp.create_line(net,
                   bus_836,
                   bus_840,
                   length_km=0.262128,
                   std_type='CF-301',
                   name='Line 18')
    pp.create_line(net,
                   bus_836,
                   bus_862,
                   length_km=0.085344,
                   std_type='CF-301',
                   name='Line 19')
    pp.create_line(net,
                   bus_842,
                   bus_844,
                   length_km=0.411480,
                   std_type='CF-301',
                   name='Line 20')
    pp.create_line(net,
                   bus_844,
                   bus_846,
                   length_km=1.109472,
                   std_type='CF-301',
                   name='Line 21')
    pp.create_line(net,
                   bus_846,
                   bus_848,
                   length_km=0.161544,
                   std_type='CF-301',
                   name='Line 22')
    pp.create_line(net,
                   bus_850,
                   bus_816,
                   length_km=0.094488,
                   std_type='CF-301',
                   name='Line 23')
    # pp.create_line(net, bus_852, bus_832, length_km=0.003048, std_type='CF-301',
    #                name='Line 24')
    pp.create_line(net,
                   bus_854,
                   bus_856,
                   length_km=7.110984,
                   std_type='CF-303',
                   name='Line 25')
    pp.create_line(net,
                   bus_854,
                   bus_852,
                   length_km=11.22578,
                   std_type='CF-301',
                   name='Line 26')
    pp.create_line(net,
                   bus_858,
                   bus_864,
                   length_km=0.493776,
                   std_type='CF-302',
                   name='Line 27')
    pp.create_line(net,
                   bus_858,
                   bus_834,
                   length_km=1.776984,
                   std_type='CF-301',
                   name='Line 28')
    pp.create_line(net,
                   bus_860,
                   bus_836,
                   length_km=0.816864,
                   std_type='CF-301',
                   name='Line 29')
    pp.create_line(net,
                   bus_860,
                   bus_838,
                   length_km=1.481328,
                   std_type='CF-304',
                   name='Line 30')
    pp.create_line(net,
                   bus_888,
                   bus_890,
                   length_km=3.218688,
                   std_type='CF-300',
                   name='Line 31')

    # Substation
    pp.create_transformer_from_parameters(net,
                                          bus0,
                                          bus_800,
                                          sn_mva=2.5,
                                          vn_hv_kv=24.9,
                                          vn_lv_kv=24.9,
                                          vkr_percent=1.0,
                                          vk_percent=8.062257,
                                          pfe_kw=0.0,
                                          i0_percent=0.0,
                                          shift_degree=0.0,
                                          vkr0_percent=1.0,
                                          vk0_percent=8.062257,
                                          vector_group='YNyn',
                                          mag0_percent=100.0,
                                          mag0_rx=0,
                                          si0_hv_partial=0.9,
                                          tap_side='lv',
                                          tap_neutral=0,
                                          tap_max=2,
                                          tap_min=-2,
                                          tap_step_percent=2.5,
                                          tap_pos=-2,
                                          name='Substation')
    # Regulator 1
    pp.create_transformer_from_parameters(net,
                                          bus_814,
                                          bus_850,
                                          sn_mva=1,
                                          vn_hv_kv=24.9,
                                          vn_lv_kv=24.9,
                                          vkr_percent=0.320088,
                                          vk_percent=0.357539,
                                          pfe_kw=0.0,
                                          i0_percent=0.0,
                                          shift_degree=0.0,
                                          vkr0_percent=0.452171,
                                          vk0_percent=0.665505,
                                          vector_group='YNyn',
                                          mag0_percent=100.0,
                                          mag0_rx=0,
                                          si0_hv_partial=0.9,
                                          tap_side='lv',
                                          tap_neutral=0,
                                          tap_max=16,
                                          tap_min=-16,
                                          tap_step_percent=0.625,
                                          tap_pos=0,
                                          tap_phase_shifter=False,
                                          name='Regulator 1')

    # Regulator 2
    pp.create_transformer_from_parameters(net,
                                          bus_852,
                                          bus_832,
                                          sn_mva=1,
                                          vn_hv_kv=24.9,
                                          vn_lv_kv=24.9,
                                          vkr_percent=0.320088,
                                          vk_percent=0.357539,
                                          pfe_kw=0.0,
                                          i0_percent=0.0,
                                          shift_degree=0.0,
                                          vkr0_percent=0.452171,
                                          vk0_percent=0.665505,
                                          vector_group='YNyn',
                                          mag0_percent=100.0,
                                          mag0_rx=0,
                                          si0_hv_partial=0.9,
                                          tap_side='lv',
                                          tap_neutral=0,
                                          tap_max=16,
                                          tap_min=-16,
                                          tap_step_percent=0.625,
                                          tap_pos=0,
                                          tap_phase_shifter=False,
                                          name='Regulator 2')
    # Traformer
    pp.create_transformer_from_parameters(net,
                                          bus_832,
                                          bus_888,
                                          sn_mva=0.5,
                                          vn_hv_kv=24.9,
                                          vn_lv_kv=4.16,
                                          vkr_percent=1.9,
                                          vk_percent=4.5,
                                          pfe_kw=0.0,
                                          i0_percent=0.0,
                                          shift_degree=0.0,
                                          vkr0_percent=1.9,
                                          vk0_percent=4.5,
                                          vector_group='YNyn',
                                          mag0_percent=100.0,
                                          mag0_rx=0,
                                          si0_hv_partial=0.9,
                                          name='Traformer')

    # Loads
    pp.create_asymmetric_load(net,
                              bus_806,
                              p_a_mw=0,
                              p_b_mw=0.03,
                              p_c_mw=0.025,
                              q_a_mvar=0,
                              q_b_mvar=0.015,
                              q_c_mvar=0.014,
                              name='Load 806',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_810,
                              p_a_mw=0,
                              p_b_mw=0.016,
                              p_c_mw=0,
                              q_a_mvar=0,
                              q_b_mvar=0.008,
                              q_c_mvar=0,
                              name='Load 810',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_820,
                              p_a_mw=0.034,
                              p_b_mw=0,
                              p_c_mw=0,
                              q_a_mvar=0.017,
                              q_b_mvar=0,
                              q_c_mvar=0,
                              name='Load 820',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_822,
                              p_a_mw=0.135,
                              p_b_mw=0,
                              p_c_mw=0,
                              q_a_mvar=0.07,
                              q_b_mvar=0,
                              q_c_mvar=0,
                              name='Load 822',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_824,
                              p_a_mw=0,
                              p_b_mw=0.005,
                              p_c_mw=0,
                              q_a_mvar=0,
                              q_b_mvar=0.002,
                              q_c_mvar=0,
                              name='Load 824',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_826,
                              p_a_mw=0,
                              p_b_mw=0.04,
                              p_c_mw=0,
                              q_a_mvar=0,
                              q_b_mvar=0.02,
                              q_c_mvar=0,
                              name='Load 826',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_828,
                              p_a_mw=0,
                              p_b_mw=0,
                              p_c_mw=0.004,
                              q_a_mvar=0,
                              q_b_mvar=0,
                              q_c_mvar=0.002,
                              name='Load 828',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_830,
                              p_a_mw=0.007,
                              p_b_mw=0,
                              p_c_mw=0,
                              q_a_mvar=0.003,
                              q_b_mvar=0,
                              q_c_mvar=0,
                              name='Load 830',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_856,
                              p_a_mw=0,
                              p_b_mw=0.004,
                              p_c_mw=0,
                              q_a_mvar=0,
                              q_b_mvar=0.002,
                              q_c_mvar=0,
                              name='Load 856',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_858,
                              p_a_mw=0.007,
                              p_b_mw=0.002,
                              p_c_mw=0.006,
                              q_a_mvar=0.003,
                              q_b_mvar=0.001,
                              q_c_mvar=0.003,
                              name='Load 858',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_864,
                              p_a_mw=0.002,
                              p_b_mw=0,
                              p_c_mw=0,
                              q_a_mvar=0.001,
                              q_b_mvar=0,
                              q_c_mvar=0,
                              name='Load 864',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_834,
                              p_a_mw=0.004,
                              p_b_mw=0.015,
                              p_c_mw=0.013,
                              q_a_mvar=0.002,
                              q_b_mvar=0.008,
                              q_c_mvar=0.007,
                              name='Load 834',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_860,
                              p_a_mw=0.016,
                              p_b_mw=0.02,
                              p_c_mw=0.11,
                              q_a_mvar=0.008,
                              q_b_mvar=0.01,
                              q_c_mvar=0.055,
                              name='Load 860',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_836,
                              p_a_mw=0.03,
                              p_b_mw=0.01,
                              p_c_mw=0.042,
                              q_a_mvar=0.015,
                              q_b_mvar=0.006,
                              q_c_mvar=0.022,
                              name='Load 836',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_840,
                              p_a_mw=0.018,
                              p_b_mw=0.022,
                              p_c_mw=0,
                              q_a_mvar=0.009,
                              q_b_mvar=0.011,
                              q_c_mvar=0,
                              name='Load 840',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_838,
                              p_a_mw=0,
                              p_b_mw=0.028,
                              p_c_mw=0,
                              q_a_mvar=0,
                              q_b_mvar=0.014,
                              q_c_mvar=0,
                              name='Load 838',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_844,
                              p_a_mw=0.009,
                              p_b_mw=0,
                              p_c_mw=0,
                              q_a_mvar=0.005,
                              q_b_mvar=0,
                              q_c_mvar=0,
                              name='Load 844',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_846,
                              p_a_mw=0,
                              p_b_mw=0.025,
                              p_c_mw=0.012,
                              q_a_mvar=0,
                              q_b_mvar=0.02,
                              q_c_mvar=0.011,
                              name='Load 846',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_848,
                              p_a_mw=0,
                              p_b_mw=0.023,
                              p_c_mw=0,
                              q_a_mvar=0,
                              q_b_mvar=0.011,
                              q_c_mvar=0,
                              name='Load 848',
                              type='wye')

    pp.create_asymmetric_load(net,
                              bus_860,
                              p_a_mw=0.02,
                              p_b_mw=0.02,
                              p_c_mw=0.02,
                              q_a_mvar=0.016,
                              q_b_mvar=0.016,
                              q_c_mvar=0.016,
                              name='Load 860 spot',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_840,
                              p_a_mw=0.009,
                              p_b_mw=0.009,
                              p_c_mw=0.009,
                              q_a_mvar=0.007,
                              q_b_mvar=0.007,
                              q_c_mvar=0.007,
                              name='Load 840 spot',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_844,
                              p_a_mw=0.135,
                              p_b_mw=0.135,
                              p_c_mw=0.135,
                              q_a_mvar=0.105,
                              q_b_mvar=0.105,
                              q_c_mvar=0.105,
                              name='Load 844 spot',
                              type='wye')
    pp.create_asymmetric_load(net,
                              bus_848,
                              p_a_mw=0.02,
                              p_b_mw=0.02,
                              p_c_mw=0.02,
                              q_a_mvar=0.016,
                              q_b_mvar=0.016,
                              q_c_mvar=0.016,
                              name='Load 848 spot',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_890,
                              p_a_mw=0.15,
                              p_b_mw=0.15,
                              p_c_mw=0.15,
                              q_a_mvar=0.075,
                              q_b_mvar=0.075,
                              q_c_mvar=0.075,
                              name='Load 890 spot',
                              type='delta')
    pp.create_asymmetric_load(net,
                              bus_830,
                              p_a_mw=0.01,
                              p_b_mw=0.01,
                              p_c_mw=0.025,
                              q_a_mvar=0.005,
                              q_b_mvar=0.005,
                              q_c_mvar=0.01,
                              name='Load 830 spot',
                              type='delta')

    # External grid
    pp.create_ext_grid(net,
                       bus0,
                       vm_pu=1.0,
                       va_degree=0.0,
                       s_sc_max_mva=10.0,
                       s_sc_min_mva=10.0,
                       rx_max=1,
                       rx_min=1,
                       r0x0_max=1,
                       x0x_max=1)

    # Distributed generators
    pp.create_sgen(net,
                   bus_848,
                   p_mw=0.66,
                   q_mvar=0.500,
                   name='DG 1',
                   max_p_mw=0.66,
                   min_p_mw=0,
                   max_q_mvar=0.5,
                   min_q_mvar=0)
    pp.create_sgen(net,
                   bus_890,
                   p_mw=0.50,
                   q_mvar=0.375,
                   name='DG 2',
                   max_p_mw=0.50,
                   min_p_mw=0,
                   max_q_mvar=0.375,
                   min_q_mvar=0)
    pp.create_sgen(net,
                   bus_822,
                   p_mw=0.2,
                   type='PV',
                   name='PV 1',
                   max_p_mw=0.2,
                   min_p_mw=0,
                   max_q_mvar=0,
                   min_q_mvar=0)
    pp.create_sgen(net,
                   bus_856,
                   p_mw=0.2,
                   type='PV',
                   name='PV 2',
                   max_p_mw=0.2,
                   min_p_mw=0,
                   max_q_mvar=0,
                   min_q_mvar=0)
    pp.create_sgen(net,
                   bus_838,
                   p_mw=0.2,
                   type='PV',
                   name='PV 3',
                   max_p_mw=0.2,
                   min_p_mw=0,
                   max_q_mvar=0,
                   min_q_mvar=0)
    pp.create_sgen(net,
                   bus_822,
                   p_mw=0.3,
                   type='WP',
                   name='WP 1',
                   max_p_mw=0.3,
                   min_p_mw=0,
                   max_q_mvar=0,
                   min_q_mvar=0)
    pp.create_sgen(net,
                   bus_826,
                   p_mw=0.3,
                   type='WP',
                   name='WP 2',
                   max_p_mw=0.3,
                   min_p_mw=0,
                   max_q_mvar=0,
                   min_q_mvar=0)
    pp.create_sgen(net,
                   bus_838,
                   p_mw=0.3,
                   type='WP',
                   name='WP 3',
                   max_p_mw=0.3,
                   min_p_mw=0,
                   max_q_mvar=0,
                   min_q_mvar=0)

    # Shunt capacity bank
    pp.create_shunt(net,
                    bus_840,
                    q_mvar=-0.12,
                    name='SCB 1',
                    step=4,
                    max_step=4)
    pp.create_shunt(net,
                    bus_864,
                    q_mvar=-0.12,
                    name='SCB 2',
                    step=4,
                    max_step=4)

    # storage
    pp.create_storage(net,
                      bus_810,
                      p_mw=0.2,
                      max_e_mwh=1.0,
                      sn_mva=1.0,
                      soc_percent=50,
                      min_e_mwh=0.2,
                      name='Storage')

    pp.add_zero_impedance_parameters(net)

    return net


# net = case34_3ph()
# pp.pf.runpp_3ph.runpp_3ph(net)
# print(net.res_bus_3ph)
# print(net.sn_mva)
コード例 #12
0
ファイル: ARDMORE.py プロジェクト: tulabingryan/ldc_project
def create_ardmore_network():
    #### Create Network
    net = pp.create_empty_network()
    # create bus
    bus0 = pp.create_bus(net, vn_kv=0.4, name='bus0')  # trafo input
    bus1 = pp.create_bus(net, vn_kv=0.4, name='bus1')  # trafo output
    bus2 = pp.create_bus(net, vn_kv=0.4, name='bus2')  # house 2
    bus3 = pp.create_bus(net, vn_kv=0.4, name='bus3')  # house 3
    bus4 = pp.create_bus(net, vn_kv=0.4, name='bus4')  # house 4
    bus5 = pp.create_bus(net, vn_kv=0.4, name='bus5')  # house 5
    bus6 = pp.create_bus(net, vn_kv=0.4, name='bus6')  # house 1

    # create external grid
    pp.create_ext_grid(net, bus=bus0, vm_pu=1.02, name='Grid Connection')
    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

    # create new standards
    pp.create_std_type(
        net, {
            "sn_mva": 0.3,
            "vn_hv_kv": 0.4,
            "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_std_type(net,
    #     {
    #         "max_i_ka": 313,
    #         "r_ohm_per_km": 0.164,
    #         "x_ohm_per_km": 0.117,
    #         "c_nf_per_km": 406,
    #         "r0_ohm_per_km": 0.1,
    #         "x0_ohm_per_km": 0.4,
    #         "c0_nf_per_km": 230.6,
    #     },
    #     "NAVY-J 4x185 SE 0.6/1kV", "line")

    # add trafo to the network
    trafo = pp.create_transformer(net,
                                  hv_bus=bus0,
                                  lv_bus=bus1,
                                  std_type='YNyn',
                                  parallel=1,
                                  tap_pos=0)

    # create lines
    line_0_2 = pp.create_line(net,
                              from_bus=bus1,
                              to_bus=bus2,
                              length_km=0.250,
                              std_type='NA2XS2Y 1x185 RM/25 6/10 kV')
    line_2_3 = pp.create_line(net,
                              from_bus=bus2,
                              to_bus=bus3,
                              length_km=0.0001,
                              std_type='NA2XS2Y 1x185 RM/25 6/10 kV')
    line_3_4 = pp.create_line(net,
                              from_bus=bus3,
                              to_bus=bus4,
                              length_km=0.0001,
                              std_type='NA2XS2Y 1x185 RM/25 6/10 kV')
    line_4_5 = pp.create_line(net,
                              from_bus=bus4,
                              to_bus=bus5,
                              length_km=0.0001,
                              std_type='NA2XS2Y 1x185 RM/25 6/10 kV')
    line_5_1 = pp.create_line(net,
                              from_bus=bus5,
                              to_bus=bus6,
                              length_km=0.010,
                              std_type='NA2XS2Y 1x185 RM/25 6/10 kV')
    net.line["r0_ohm_per_km"] = 0.161
    net.line["x0_ohm_per_km"] = 0.11
    net.line["c0_nf_per_km"] = 406

    # create loads
    house1 = pp.create_asymmetric_load(net,
                                       bus=bus6,
                                       sn_mva=0.15,
                                       p_A_mw=0.01,
                                       q_A_mvar=(0.015**2 - 0.01**2)**0.5,
                                       p_B_mw=0,
                                       q_B_mvar=0,
                                       p_C_mw=0,
                                       q_C_mvar=0)
    house2 = pp.create_asymmetric_load(net,
                                       bus=bus2,
                                       sn_mva=0.15,
                                       p_A_mw=0,
                                       q_A_mvar=0,
                                       p_B_mw=0.01,
                                       q_B_mvar=(0.015**2 - 0.01**2)**0.5,
                                       p_C_mw=0,
                                       q_C_mvar=0)
    house3 = pp.create_asymmetric_load(net,
                                       bus=bus3,
                                       sn_mva=0.15,
                                       p_A_mw=0,
                                       q_A_mvar=0,
                                       p_B_mw=0,
                                       q_B_mvar=0,
                                       p_C_mw=0.01,
                                       q_C_mvar=(0.015**2 - 0.01**2)**0.5)
    house4 = pp.create_asymmetric_load(
        net,
        bus=bus4,
        sn_mva=0.15,
        p_A_mw=0,
        q_A_mvar=0,
        p_B_mw=0.01,
        q_B_mvar=(0.015**2 - 0.01**2)**0.5,
        p_C_mw=0,
        q_C_mvar=0,
    )
    house5 = pp.create_asymmetric_load(
        net,
        bus=bus5,
        sn_mva=0.15,
        p_A_mw=0,
        q_A_mvar=0,
        p_B_mw=0,
        q_B_mvar=0,
        p_C_mw=0.01,
        q_C_mvar=(0.015**2 - 0.01**2)**0.5,
    )

    pp.add_zero_impedance_parameters(net)

    return net
コード例 #13
0
ファイル: test_runpp_3ph.py プロジェクト: zypher22/pandapower
def test_2bus_network(net):
    # -o---o
    pp.add_zero_impedance_parameters(net)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']
    check_it(net)
コード例 #14
0
ファイル: test_runpp_3ph.py プロジェクト: zypher22/pandapower
def test_4bus_network():
    v_base = 110  # 110kV Base Voltage
    mva_base = 100  # 100 MVA
    net = pp.create_empty_network(sn_mva=mva_base)
    # =============================================================================
    # Main Program
    # =============================================================================
    busn = pp.create_bus(net, vn_kv=v_base, name="busn")
    busk = pp.create_bus(net, vn_kv=v_base, name="busk")
    busm = pp.create_bus(net, vn_kv=v_base, name="busm")
    busp = pp.create_bus(net, vn_kv=v_base, name="busp")
    pp.create_ext_grid(net,
                       bus=busn,
                       vm_pu=1.0,
                       name="Grid Connection",
                       s_sc_max_mva=5000,
                       rx_max=0.1,
                       r0x0_max=0.1,
                       x0x_max=1.0)
    pp.create_std_type(
        net, {
            "r0_ohm_per_km": .154,
            "x0_ohm_per_km": 0.5277876,
            "c0_nf_per_km": 170.4,
            "max_i_ka": 0.741,
            "r_ohm_per_km": .0385,
            "x_ohm_per_km": 0.1319469,
            "c_nf_per_km": 170
        }, "example_type3")
    pp.create_line(net,
                   from_bus=busn,
                   to_bus=busm,
                   length_km=1.0,
                   std_type="example_type3")
    pp.create_line(net,
                   from_bus=busn,
                   to_bus=busp,
                   length_km=1.0,
                   std_type="example_type3")
    pp.create_line_from_parameters(net,
                                   from_bus=busn,
                                   to_bus=busk,
                                   length_km=1.0,
                                   r0_ohm_per_km=.1005,
                                   x0_ohm_per_km=0.4900884,
                                   c0_nf_per_km=200.5,
                                   max_i_ka=0.89,
                                   r_ohm_per_km=.0251,
                                   x_ohm_per_km=0.1225221,
                                   c_nf_per_km=210)
    pp.create_line_from_parameters(net,
                                   from_bus=busk,
                                   to_bus=busm,
                                   length_km=1.0,
                                   r0_ohm_per_km=0.0848,
                                   x0_ohm_per_km=0.4649556,
                                   c0_nf_per_km=230.6,
                                   max_i_ka=0.963,
                                   r_ohm_per_km=0.0212,
                                   x_ohm_per_km=0.1162389,
                                   c_nf_per_km=230)
    pp.create_line_from_parameters(net,
                                   from_bus=busk,
                                   to_bus=busp,
                                   length_km=1.0,
                                   r0_ohm_per_km=.3048,
                                   x0_ohm_per_km=0.6031856,
                                   c0_nf_per_km=140.3,
                                   max_i_ka=0.531,
                                   r_ohm_per_km=.0762,
                                   x_ohm_per_km=0.1507964,
                                   c_nf_per_km=140)
    pp.add_zero_impedance_parameters(net)

    pp.create_asymmetric_load(net,
                              busk,
                              p_a_mw=50,
                              q_a_mvar=20,
                              p_b_mw=80,
                              q_b_mvar=60,
                              p_c_mw=20,
                              q_c_mvar=5)
    pp.create_asymmetric_load(net,
                              busm,
                              p_a_mw=50,
                              q_a_mvar=50,
                              p_b_mw=10,
                              q_b_mvar=15,
                              p_c_mw=10,
                              q_c_mvar=5)
    pp.create_asymmetric_load(net,
                              busp,
                              p_a_mw=50,
                              q_a_mvar=20,
                              p_b_mw=60,
                              q_b_mvar=20,
                              p_c_mw=10,
                              q_c_mvar=5)
    runpp_3ph_with_consistency_checks(net)
    assert net['converged']

    bus_pp = np.abs(net.res_bus_3ph[[
        'vm_a_pu', 'vm_b_pu', 'vm_c_pu'
    ]][~np.isnan(net.res_bus_3ph.vm_a_pu)].values)
    bus_pf = np.abs(
        np.array([[0.98085729, 0.97711997, 1.04353786],
                  [0.97828577, 0.97534651, 1.04470864],
                  [0.97774307, 0.97648197, 1.04421233],
                  [0.9780892, 0.97586805, 1.04471106]]))
    assert np.max(np.abs(bus_pp - bus_pf)) < 1e-8

    line_pp = np.abs(net.res_line_3ph[[
        'i_a_from_ka', 'i_b_from_ka', 'i_c_from_ka', 'i_a_to_ka', 'i_b_to_ka',
        'i_c_to_ka', 'p_a_from_mw', 'p_b_from_mw', 'p_c_from_mw',
        'q_a_from_mvar', 'q_b_from_mvar', 'q_c_from_mvar', 'p_a_to_mw',
        'p_b_to_mw', 'p_c_to_mw', 'q_a_to_mvar', 'q_b_to_mvar', 'q_c_to_mvar',
        'loading_a_percent', 'loading_b_percent', 'loading_c_percent',
        'loading_percent'
    ]].values)
    line_pf = np.abs(
        np.array([[
            0.98898804851, 0.68943734, 0.19848961, 0.99093993, 0.69146384,
            0.19966503, 49.87434308, 33.86579548, 12.44659879, 36.16562613,
            26.14426519, 4.25746428, -49.75842138, -33.90236497, -12.45155362,
            -36.19862688, -26.25675246, -4.50384238, 133.730100000000,
            93.314960000000, 26.945350000000, 133.730100000000
        ],
                  [
                      0.87075816277, 1.03463205, 0.19072622, 0.87210779,
                      1.03599167, 0.19188991, 49.59359423, 58.53676842,
                      11.97553941, 21.96967200, 26.37559958, 4.04458873,
                      -49.47110289, -58.55284705, -11.98669516, -22.07474008,
                      -26.34476811, -4.29078447, 117.693400000000,
                      139.809900000000, 25.896070000000, 139.809900000000
                  ],
                  [
                      0.95760407055, 1.14786582, 0.24829126, 0.95975383,
                      1.15028040, 0.24975553, 50.87938854, 57.53628873,
                      15.54470531, 31.13888557, 41.99378843, 5.39758513,
                      -50.76249094, -57.56374777, -15.56099267, -31.28560646,
                      -41.99056453, -5.69609575, 107.837500000000,
                      129.245000000000, 28.062420000000, 129.245000000000
                  ],
                  [
                      0.21780921494, 0.42795803, 0.03706412, 0.22229619,
                      0.42603286, 0.03771703, 0.23292404, -23.88471674,
                      -2.45255095, 13.53037092, -11.49972060, 0.17971665,
                      -0.24157862, 23.90236497, 2.45155361, -13.80137312,
                      11.25675247, -0.49615762, 23.083720000000,
                      44.440090000000, 3.916618000000, 44.440090000000
                  ],
                  [
                      0.03712221482, 0.10766244, 0.03093505, 0.03446871,
                      0.10500386, 0.03179428, 0.52956690, 1.44846452,
                      -1.98645639, -2.24476446, -6.50971485, 0.51637910,
                      -0.52889712, -1.44715295, 1.98669515, 2.07474008,
                      6.34476812, -0.70921554, 6.991001000000, 20.275410000000,
                      5.987624000000, 20.275410000000
                  ]]))
    assert np.max(np.abs(line_pp - line_pf)) < 1e-4
コード例 #15
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