新手指南
4 简短介绍
pandapower中的一个网络是由一个pandapowerNet对象表示的,该对象是由pandas的Dataframes的集合组成的。pandapowerNet中的每一个dataframe包含了每一个pandapower元件的信息,例如线路、负荷、变压器等等。
以一个简单的3节点示例网络作为一个小例子:
4.1 创建一个网络
上面的3节点系统可以采用pandapower按下面代码生成:
import pandapower as pp
# create empty net
net = pp.create_empty_network()
# create buses
b1 = pp.create_bus(net, vn_kv=20., name="Bus 1")
b2 = pp.create_bus(net, vn_kv=.4, name="Bus 2")
b3 = pp.create_bus(net, vn_kv=.4, name="Bus 3")
# create bus elements
pp.create_ext_grid(net, bus=b1, vm_pu=1.02, name="Grid Connection")
pp.create_load(net, bus=b3, p_kw=100, q_kvar=50, name="Load")
# create branch elements
tid = pp.create_transformer(net, hv_bus=b1, lv_bus=b2, std_type="0.4 MVA 20/0.4 kV", name="Trafo")
pp.create_line(net, from_bus=b2, to_bus=b3, length_km=.1, name="Line", std_type="NAYY 4x50 SE")
net
This pandapower network includes the following parameter tables:
- line (1 element)
- bus (3 elements)
- trafo (1 element)
- ext_grid (1 element)
- load (1 element)
需要强调的是你不用计算等效电路的任何阻抗或是分接比,pandapower内部通过变压器模型
自动处理。标准类型库
支持舒适地创建线路和变压器元件。
pandapower的表示形式如下:
print(net.bus)
name vn_kv type zone in_service
0 Bus 1 20.0 b None True
1 Bus 2 0.4 b None True
2 Bus 3 0.4 b None True
print(net.trafo)
name std_type hv_bus lv_bus sn_kva vn_hv_kv vn_lv_kv \
0 Trafo 0.4 MVA 20/0.4 kV 0 1 400.0 20.0 0.4
vsc_percent vscr_percent pfe_kw ... tp_mid tp_min tp_max \
0 6.0 1.425 1.35 ... 0 -2 2
tp_st_percent tp_st_degree tp_pos tp_phase_shifter parallel df \
0 2.5 0.0 0 False 1 1.0
in_service
0 True
[1 rows x 23 columns]
print(net.line)
name std_type from_bus to_bus length_km r_ohm_per_km \
0 Line NAYY 4x50 SE 1 2 0.1 0.642
x_ohm_per_km c_nf_per_km g_us_per_km max_i_ka df parallel type \
0 0.083 210.0 0.0 0.142 1.0 1 cs
in_service
0 True
print(net.load)
name bus p_kw q_kvar const_z_percent const_i_percent sn_kva \
0 Load 2 100.0 50.0 0.0 0.0 NaN
scaling in_service type
0 1.0 True None
print(net.ext_grid)
name bus vm_pu va_degree in_service
0 Grid Connection 0 1.02 0.0 True
4.2 运行一个电力潮流
可以采用runpp函数
运行潮流计算
pp.runpp(net)
当运行一个电力潮流计算,pandapower将所有的元件信息融合到一个pypower的case文件中,并使用pypower运行电力潮流。运行结果将在被处理完后写回到pandapower。
对于三节点示例网络,运行结果如下所示:
print(net.res_bus)
vm_pu va_degree p_kw q_kvar
0 1.020000 0.000000 -107.265391 -52.675195
1 1.008843 -0.760126 0.000000 0.000000
2 0.964431 0.115859 100.000000 50.000000
print(net.res_trafo)
p_hv_kw q_hv_kvar p_lv_kw q_lv_kvar pl_kw ql_kvar i_hv_ka \
0 107.265391 52.675195 -105.392391 -50.696119 1.872999 1.979076 0.003382
i_lv_ka loading_percent
0 0.167325 29.289513
print(net.res_line)
p_from_kw q_from_kvar p_to_kw q_to_kvar pl_kw ql_kvar i_from_ka \
0 105.392391 50.696119 -100.0 -50.0 5.392391 0.696119 0.167325
i_to_ka i_ka loading_percent
0 0.167326 0.167326 117.835208
print(net.res_load)
p_kw q_kvar
0 100.0 50.0
print(net.res_ext_grid)
p_kw q_kvar
0 -107.265391 -52.675195
所有其他的pandapower元件和网络分析函数(例如:最优潮流计算、状态评估和短路计算)也完全集成到表格形式的pandapower数据结构中。