电力系统分析
电力系统分析是设计发电机、变压器、电容器组、并联电抗、输电线路等整个电力系统的一个分支。这消费场所的电气安装设计不同,后者不仅涉及低压,而且假设公用事业提供稳定的电力供应,而电力系统分析则涉及公用事业本身的设计。国内安装设计的设计理念不需要任何数学或先进的软件,只关心一个地方的照明和电源布线的分布。然而,公用事业设计涉及高、低压和中压电力设备,包括发电机和变压器,以及多台发电机并联工作的复杂性。电力系统分析的目的是确保设备协同工作,以便以规定的电压和频率将所需的电源输送到负载中心,网络中没有过载组件,也没有危及系统的故障条件。
由三个主要部分组成:
- 潮流分析 - 输入发电机电压、负载中心的功率要求和线路阻抗,并在各种总线(终端)上找到结果电压。 当然,电压应在公差范围内。 请注意,在这种情况下,我们不能假设负载电压是家庭安装情况下的标称电压,而是必须通过求解非线性多变量方程来计算。
- 短路研究 - 模拟各种短路,找出故障电流,为电力系统选择合适的开关设备
- 稳定性研究 - 由于发电机同步工作,必须处理一个或多个故障,可能导致一个或多个故障。
本文
本文介绍了新的电力系统分析方法和工具。总结了网格建模和数据结构的动机和基本设计选择。第 III 讨论了广泛的附带电气元件库,如 ZIP 负载、线路、变压器或开关。 还包括符合 IEC 60909 短路计算的原始实现。拓扑搜索模块允许在电力分析功能上使用 NetworkX 库对电网进行图形分析。最后,给出了一个在有源配电网中进行准静态时间序列模拟的综合案例研究。
Python电网数据结构
基于表格数据结构,每个元素类型表示包含特定元素所有参数的表和包含不同分析方法的特定元素结果的表。基于表格数据结构 Python 库 pandas。允许存储任何类型的数据变量,使电气参数与状态变量和元数据(如名称或描述)一起存储。添加新列可以轻松扩展和定制表格。所有固有的 pandas 该方法可用于有效地读取、写入和分析网络和结果数据。 网络(缩写为 net)是一个 Python 字典,包含所有关于网络的信息。最重要的是,它包括一个元素和每个元素类型的结果表,如线路、变压器、开关等。元素表保存用户指定的所有输入参数,结果表用于存储结果。输入和输出参数由两个表中相同的索引标记。该网络还包括保存标准类型数据和网络范围参数的字典(如频率、网络名称或单位系统的额定视为功率)。
电元件模型
- 总线 - 代表网络节点
- 负载 - 模拟功耗负载
- 静态发电机 - 用于模拟具有功率和无功率的恒定功率注入
- 压控发电机 - 用于建模具有固定功率注入和电压范围设定点的电压控制发电单元
- 外部电网 - 外部电网元素模型表示具有电压振幅值和相应电压角的电压源
- 分流器 - 可用于模拟电容器组或电抗器的网络元素
- 线路 - 线用π等效电路建模
- 双绕组变压器 - 用 T 等效电路建模
- 三绕组变压器 - 可以由三个 Y 二绕组变压器建模
- 开关 - 允许建模理想开关
- 直流输电线路 - 直流传输线在两条总线之间传输有功功率
- 阻抗
示例
-
创建一个包含 2 外部电网,两个变压器(1) 两个绕组变压器和 1 三绕组变压器)电网。为了使所有总线和线路的创建更容易,我们将创建总线和线路的过程包装到函数中。
def create_bus_with_line(net, last_bus, length_km, std_type): new_bus = pp.create_bus(net, vn_kv=10.) lidx = pp.create_line(net, last_bus, new_bus, std_type=std_type, length_km=length_km) pp.create_switch(net, bus=last_bus, element=lidx, et="l") pp.create_switch(net, bus=new_bus, element=lidx, et="l") return new_bus
def create_example_net(): net = pp.create_empty_network() hvb = pp.create_buses(net, 2, vn_kv=110.) pp.create_ext_grid(net, hvb[0], s_sc_min_mva=2500, rx_min=0.3) pp.create_ext_grid(net, hvb[1], s_sc_min_mva=3000, rx_min=0.2) lb = pp.create_bus(net, vn_kv=10.) pp.create_transformer(net, hvb[0], lb, std_type="40 MVA 110/10 kV", df=0.1) std_types = ["70-AL1/11-ST1A 10.0", "NA2XS2Y 1x240 RM/25 6/10 kV"] for length, std_type in zip([1.8, 2.4, 3.6, 4.8, 4.8, 1.2], [0, 1, 0, 1, 1, 1]): lb = create_bus_with_line(net, lb, length_km=length, std_type=std_types[std_type]) lb = 5 for length, std_type in zip([1.2, 3., 4.8, 3.6, 1.2, 0.6], [1, 1, 1, 0, 1, 0]): lb = create_bus_with_line(net, lb, length_km=length, std_type=std_types[std_type]) pp.create_transformer3w(net, hvb[1], 8, lb, "63/25/38 MVA 110/10/10 kV") net.line.loc[net.line.index[net.line.type == "ol"], "endtemp_degree"] = 100 net.line.loc[net.line.index[net.line.type == "cs"], "endtemp_degree"] = 20 net.line["max_loading_percent"] = 50 net.trafo["max_loading_percent"] = 50 net.bus["max_vm_pu"] = 1.03 net.bus["min_vm_pu"] = 0.97 return net
-
分析电网中所有可能的开关状态,以分析考虑径向和短路约束的可行开关位置
-
考虑有功功率损耗、线路负载、变压器负载和电压约束,优化开关状态和变压器的时间序列仿真