def test_convenience_create_functions(): net = pp.create_empty_network() b1 = pp.create_bus(net, 110.) b2 = pp.create_bus(net, 110.) pp.create_ext_grid(net, b1) pp.create_line_from_parameters(net, b1, b2, length_km=20., r_ohm_per_km=0.0487, x_ohm_per_km=0.1382301, c_nf_per_km=160., max_i_ka=0.664) l0 = pp.create_load_from_cosphi(net, b2, 10e3, 0.95, "ind", name="load") pp.runpp(net, init="flat") assert net.load.p_kw.at[l0] == 9.5e3 assert net.load.q_kvar.at[l0] > 0 assert np.sqrt(net.load.p_kw.at[l0]**2 + net.load.q_kvar.at[l0]**2) == 10e3 assert np.isclose(net.res_bus.vm_pu.at[b2], 0.99990833838) assert net.load.name.at[l0] == "load" sh0 = pp.create_shunt_as_condensator(net, b2, 10e3, loss_factor=0.01, name="shunt") pp.runpp(net, init="flat") assert np.isclose(net.res_shunt.q_kvar.at[sh0], -10,043934174e3) assert np.isclose(net.res_shunt.p_kw.at[sh0], 100.43933665) assert np.isclose(net.res_bus.vm_pu.at[b2], 1.0021942964) assert net.shunt.name.at[sh0] == "shunt" sg0 = pp.create_sgen_from_cosphi(net, b2, 5e3, 0.95, "cap", name="sgen") pp.runpp(net, init="flat") assert np.sqrt(net.sgen.p_kw.at[sg0]**2 + net.sgen.q_kvar.at[sg0]**2) == 5e3 assert net.sgen.p_kw.at[sg0] == -4.75e3 assert net.sgen.q_kvar.at[sg0] < 0 assert np.isclose(net.res_bus.vm_pu.at[b2], 1.0029376578) assert net.sgen.name.at[sg0] == "sgen"
def test_convenience_create_functions(): net = pp.create_empty_network() b1 = pp.create_bus(net, 110.) b2 = pp.create_bus(net, 110.) b3 = pp.create_bus(net, 20) pp.create_ext_grid(net, b1) pp.create_line_from_parameters(net, b1, b2, length_km=20., r_ohm_per_km=0.0487, x_ohm_per_km=0.1382301, c_nf_per_km=160., max_i_ka=0.664) l0 = pp.create_load_from_cosphi(net, b2, 10, 0.95, "underexcited", name="load") pp.runpp(net, init="flat") assert net.load.p_mw.at[l0] == 9.5 assert net.load.q_mvar.at[l0] > 0 assert np.sqrt(net.load.p_mw.at[l0] ** 2 + net.load.q_mvar.at[l0] ** 2) == 10 assert np.isclose(net.res_bus.vm_pu.at[b2], 0.99990833838) assert net.load.name.at[l0] == "load" sh0 = pp.create_shunt_as_capacitor(net, b2, 10, loss_factor=0.01, name="shunt") pp.runpp(net, init="flat") assert np.isclose(net.res_shunt.q_mvar.at[sh0], -10.043934174) assert np.isclose(net.res_shunt.p_mw.at[sh0], 0.10043933665) assert np.isclose(net.res_bus.vm_pu.at[b2], 1.0021942964) assert net.shunt.name.at[sh0] == "shunt" sg0 = pp.create_sgen_from_cosphi(net, b2, 5, 0.95, "overexcited", name="sgen") pp.runpp(net, init="flat") assert np.sqrt(net.sgen.p_mw.at[sg0] ** 2 + net.sgen.q_mvar.at[sg0] ** 2) == 5 assert net.sgen.p_mw.at[sg0] == 4.75 assert net.sgen.q_mvar.at[sg0] > 0 assert np.isclose(net.res_bus.vm_pu.at[b2], 1.0029376578) assert net.sgen.name.at[sg0] == "sgen" tol = 1e-6 base_z = 110 ** 2 / 100 sind = pp.create_series_reactor_as_impedance(net, b1, b2, r_ohm=100, x_ohm=200, sn_mva=100) assert net.impedance.at[sind, 'rft_pu'] - 100 / base_z < tol assert net.impedance.at[sind, 'xft_pu'] - 200 / base_z < tol tid = pp.create_transformer_from_parameters(net, hv_bus=b2, lv_bus=b3, sn_mva=0.1, vn_hv_kv=110, vn_lv_kv=20, vkr_percent=5, vk_percent=20, pfe_kw=1, i0_percent=1) pp.create_load(net, b3, 0.1) assert net.trafo.at[tid, 'df'] == 1 pp.runpp(net) tr_l = net.res_trafo.at[tid, 'loading_percent'] net.trafo.at[tid, 'df'] = 2 pp.runpp(net) tr_l_2 = net.res_trafo.at[tid, 'loading_percent'] assert tr_l == tr_l_2 * 2 net.trafo.at[tid, 'df'] = 0 with pytest.raises(UserWarning): pp.runpp(net)