def test_result_index_unsorted(): net = pp.create_empty_network() b1 = pp.create_bus(net, vn_kv=0.4, index=4) b2 = pp.create_bus(net, vn_kv=0.4, index=2) b3 = pp.create_bus(net, vn_kv=0.4, index=3) pp.create_gen(net, b1, p_kw=-10, vm_pu=0.4) pp.create_load(net, b2, p_kw=10) pp.create_ext_grid(net, b3) pp.create_line(net, from_bus=b1, to_bus=b2, length_km=0.5, std_type="NAYY 4x120 SE") pp.create_line(net, from_bus=b1, to_bus=b3, length_km=0.5, std_type="NAYY 4x120 SE") net_recycle = copy.deepcopy(net) pp.runpp(net_recycle) pp.runpp(net_recycle, recycle=dict(_is_elements=True, ppc=True, Ybus=True)) pp.runpp(net) assert nets_equal(net, net_recycle, tol=1e-12)
def test_pvpq_lookup(): net = pp.create_empty_network() b1 = pp.create_bus(net, vn_kv=0.4, index=4) b2 = pp.create_bus(net, vn_kv=0.4, index=2) b3 = pp.create_bus(net, vn_kv=0.4, index=3) pp.create_gen(net, b1, p_kw=-10, vm_pu=0.4) pp.create_load(net, b2, p_kw=10) pp.create_ext_grid(net, b3) pp.create_line(net, from_bus=b1, to_bus=b2, length_km=0.5, std_type="NAYY 4x120 SE") pp.create_line(net, from_bus=b1, to_bus=b3, length_km=0.5, std_type="NAYY 4x120 SE") net_numba = copy.deepcopy(net) pp.runpp(net_numba, numba=True) pp.runpp(net, numba=False) assert nets_equal(net, net_numba)
def test_nets_equal(): tb.logger.setLevel(40) original = nw.create_cigre_network_lv() net = copy.deepcopy(original) # should be equal assert tb.nets_equal(original, net) assert tb.nets_equal(net, original) # detecting additional element pp.create_bus(net, vn_kv=.4) assert not tb.nets_equal(original, net) assert not tb.nets_equal(net, original) net = copy.deepcopy(original) # detecting removed element net["bus"].drop(net.bus.index[0], inplace=True) assert not tb.nets_equal(original, net) assert not tb.nets_equal(net, original) net = copy.deepcopy(original) # detecting alternated value net["load"]["p_kw"][net["load"].index[0]] += 0.1 assert not tb.nets_equal(original, net) assert not tb.nets_equal(net, original) net = copy.deepcopy(original) # detecting added column net["load"]["new_col"] = 0.1 assert not tb.nets_equal(original, net) assert not tb.nets_equal(net, original) net = copy.deepcopy(original) # not detecting alternated value if difference is beyond tolerance net["load"]["p_kw"][net["load"].index[0]] += 0.0001 assert tb.nets_equal(original, net, tol=0.1) assert tb.nets_equal(net, original, tol=0.1)
# Youtube Tutorial: https://www.youtube.com/watch?v=O74yw1FmmsM import pandapower.toolbox as tb import pandapower.networks as nw import pandapower as pp net = nw.create_cigre_network_mv() pp.runpp(net) # print some power flow information tb.lf_info(net) net2 = nw.create_cigre_network_mv() net2.load.drop(index=0, inplace=True) # check if two nets are identical. You can also only check the results tb.nets_equal(net, net2) # merge two power systems net3 = tb.merge_nets(net, net2) # drop some buses tb.drop_buses(net, buses=[5]) # creates a continuous index in net.bus starting at 10 tb.create_continuous_bus_index(net, start=10) # get all line elements connected to buses els = tb.get_connected_elements(net, "line", buses=[11]) print(els) print(net.line.loc[els])
net2 = pp.create_empty_network(sn_kva=2e3) for net in [net1, net2]: add_test_line(net) add_test_trafo(net) add_test_load_sgen(net) add_test_load_sgen_split(net) add_test_single_load_single_eg(net) add_test_ward(net) add_test_xward(net) add_test_shunt_split(net) add_test_impedance(net) pp.runpp(net1) pp.runpp(net2) print(net1.res_trafo.values - net2.res_trafo.values) nets_equal(net1, net2) # print(net1._ppc["branch"][:,3] / net2._ppc["branch"][:,3]) # add_test_load_sgen(net) # add_test_load_sgen_split(net) # yield add_test_ext_grid(net) # yield add_test_trafo(net) # yield add_test_single_load_single_eg(net) # yield add_test_ward(net) # yield add_test_ward_split(net) # yield add_test_xward(net) # yield add_test_xward_combination(net) # yield add_test_gen(net) # yield add_test_ext_grid_gen_switch(net) # yield add_test_enforce_qlims(net) # yield add_test_trafo3w(net)