Engee 文档
Notebook

通过变压器进行短路电流传输

模型描述

在这个例子中,我们考虑了一个电力系统,其中有一个带有单向电源的架空线路和一个双绕组变压器,在其后面发生各种类型的短路。 显示了启动、使用命令控制从脚本开发环境编辑模型以及可视化仿真结果的过程。 该模型测量高压(OH)和低压(OH)变压器两侧的电流,然后显示它们的时间图和矢量图。 模型的外观:

transformer_fault--1730369673875.png

电源由[电压源]模块建模(Three-Phase)](https://engee.com/helpcenter/stable/ru/fmod-electricity-sources/voltage-source-three-phase.html)。架空线路由块三相PI段建模Line。短路由[Fault]块建模(Three-Phase)](https://engee.com/helpcenter/stable/ru/fmod-electricity-utilities/fault-three-phase.html)在该块的设置中,使用*Filure模式*下拉菜单,您可以选择短路的类型。 使用[断路器]块禁用短路。 (Three-Phase)](https://engee.com/helpcenter/stable/ru/fmod-electricity-switches-breakers/circuit-breaker-three-phase.html),其模拟继电保护的操作。 短路关断持续时间是根据单向供电死端线路保护的运行时间和关断时间来选择的,并根据2003年起的电力系统稳定性方法指南[1],在110kv短路关断持续时间上限设定为0.18s。 负载由[Wye-Connected]块建模Load](https://engee.com/helpcenter/stable/ru/fmod-electricity-rlc-assemblies/wye-connected-load.html).
系统参数[2]:
/元素/参数|
| ----------- | ----------- |
/系统/平衡节点
|
/线路/AC185/29
|
/变压器/TRDCN-80000/110|
/装载|
|

启动模型

我们将导入处理图形、表格和浮窗傅立叶变换函数所需的模块。:

In [ ]:
using Plots
using DataFrames
include("$(@__DIR__)/fourie_func.jl")
gr();

加载模型:

In [ ]:
model_name = "transformer_fault"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");

首次体验3-F短路和绕组连接方案的模型设置 :

In [ ]:
transf_name = "Трансформатор ТРДЦН-80000|110";
fault_name = "КЗ";
line_name = "Линия АС 185|29"
engee.set_param!(model_name*"/"*transf_name,
"winding1_connection" => "Wye with grounded neutral",
"winding2_connection" => "Delta 11 o'clock");
engee.set_param!(model_name*"/"*fault_name, "type" => "Three-phase (a-b-c)");
engee.set_param!(model_name*"/"*line_name, "line_length" => 20);

启动上传的模型:

In [ ]:
results = engee.run(model_name);

模拟结果

为了导入仿真结果,预先启用了必要信号的记录,并设置了它们的名称。 将results变量电流的瞬时值转换为单独的矢量:

In [ ]:
# вектор времени симуляции
sim_time = results["i_a_1"].time;
# вектор токов на стороне ВН
i_1 = hcat(results["i_a_1"].value,results["i_b_1"].value,results["i_c_1"].value);
# вектор токов на стороне ВН
i_2 = hcat(results["i_a_2"].value,results["i_b_2"].value,results["i_c_2"].value);

来自VN和NN侧的电流图:

In [ ]:
p1 = plot(sim_time, i_1, label = [L"I_a" L"I_b" L"I_c"],
title = "Токи (ВН)", ylabel = "I, А", xlabel="Время, c");
p2 = plot(sim_time, i_2./1e3, label = [L"I_a" L"I_b" L"I_c"],
title = "Токи (НН)", ylabel = "I, кА", xlabel="Время, c")
plot(p1, p2, layout=(2,1), legend = true, linecolor = [:orange :green :red], size = (700,440))
Out[0]:

让我们使用带有浮动窗口的傅里叶变换对电流进行矢量化,以隔离电流的幅度和相位。
与此同时,我们不会使用内置函数,而是使用该函数[3]:

In [ ]:
# Переменные для хранения векторов
i_1_Xmag, i_2_Xmag,
i_1_Xphase, i_2_Xphase = [zeros(length(sim_time),3) for _ = 1:4];

for (Xmag, Xphase, signal) in zip(
    (i_1_Xmag, i_2_Xmag),
    (i_1_Xphase, i_2_Xphase),
    (i_1, i_2))
    Xmag, Xphase = moving_fourie(Xmag, Xphase, sim_time, signal);
end

为了更清楚,通过除以变换系数,来自HH侧的电流减少到HH侧。 短路时VN和NN两侧电流的矢量图:

In [ ]:
# поиск индекса КЗ
fault_ind = indexin(0.3, sim_time);
# коэффициент трансформации
kt = 115/10.5;
# вектора токов в комплексных числах
i_a_HV_mag, i_a_HV_ang = round(i_1_Xmag[fault_ind,1][1], digits=1), round(i_1_Xphase[fault_ind,1][1], digits=1)
i_b_HV_mag, i_b_HV_ang = round(i_1_Xmag[fault_ind,2][1], digits=1), round(i_1_Xphase[fault_ind,2][1], digits=1)
i_c_HV_mag, i_c_HV_ang = round(i_1_Xmag[fault_ind,3][1], digits=1), round(i_1_Xphase[fault_ind,3][1], digits=1)
i_a_LV_mag, i_a_LV_ang = round(i_2_Xmag[fault_ind,1][1]/kt, digits=1), round(i_2_Xphase[fault_ind,1][1], digits=1)
i_b_LV_mag, i_b_LV_ang = round(i_2_Xmag[fault_ind,2][1]/kt, digits=1), round(i_2_Xphase[fault_ind,2][1], digits=1)
i_c_LV_mag, i_c_LV_ang = round(i_2_Xmag[fault_ind,3][1]/kt, digits=1), round(i_2_Xphase[fault_ind,3][1], digits=1)

p1 = plot([0;i_a_HV_ang*pi/180], [0;i_a_HV_mag], arrow=true, proj = :polar, linecolor = :orange, 
label = L"I_a = %$i_a_HV_mag \angle\, %$i_a_HV_ang \degree А", title = "Токи (ВН)")

plot!([0;i_b_HV_ang*pi/180], [0;i_b_HV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b = %$i_b_HV_mag \angle\, %$i_b_HV_ang \degree А")

plot!([0;i_c_HV_ang*pi/180], [0;i_c_HV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с = %$i_c_HV_mag \angle\, %$i_c_HV_ang \degree А")

p2 = plot([0;i_a_LV_ang*pi/180], [0;i_a_LV_mag], arrow=true, proj = :polar, linecolor = :orange,
label = L"I_a/k_t = %$i_a_LV_mag \angle\, %$i_a_LV_ang \degree А", title = "Токи (НН)")

plot!([0;i_b_LV_ang*pi/180], [0;i_b_LV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b/k_t = %$i_b_LV_mag \angle\, %$i_b_LV_ang \degree А")

plot!([0;i_c_LV_ang*pi/180], [0;i_c_LV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с/k_t = %$i_c_LV_mag \angle\, %$i_c_LV_ang \degree А")

plot(p1, p2, layout=(1,2), legend = :outerbottom, legendfontsize=10, size = (800,450))
Out[0]:

注意短路电流的对称性和HH侧电流相对于HH侧电流的相移。 由于绕组的连接方案 . 在这种情况下,考虑到变换系数,在通过变压器的过渡期间来自VN和NN侧的线性电流相等,并且来自NN侧的相电流小于 线性的。

2-F短路和绕组连接方案的经验

建立2-F短路和绕组连接方案实验模型 :

In [ ]:
engee.set_param!(model_name*"/"*transf_name,
"winding1_connection" => "Wye with grounded neutral",
"winding2_connection" => "Delta 11 o'clock");
engee.set_param!(model_name*"/"*fault_name, "type" => "Two-phase (b-c)");

测量电流的模型启动、处理和矢量化:

In [ ]:
results = engee.run(model_name);
# вектор токов амперметра 1
i_1 = hcat(results["i_a_1"].value,results["i_b_1"].value,results["i_c_1"].value);
# вектор токов амперметра 2
i_2 = hcat(results["i_a_2"].value,results["i_b_2"].value,results["i_c_2"].value);

for (Xmag, Xphase, signal) in zip(
    (i_1_Xmag, i_2_Xmag),
    (i_1_Xphase, i_2_Xphase),
    (i_1, i_2))
    Xmag, Xphase = moving_fourie(Xmag, Xphase, sim_time, signal);
end

短路时VN和NN两侧电流的矢量图:

In [ ]:
# вектора токов в комплексных числах
i_a_HV_mag, i_a_HV_ang = round(i_1_Xmag[fault_ind,1][1], digits=1), round(i_1_Xphase[fault_ind,1][1], digits=1)
i_b_HV_mag, i_b_HV_ang = round(i_1_Xmag[fault_ind,2][1], digits=1), round(i_1_Xphase[fault_ind,2][1], digits=1)
i_c_HV_mag, i_c_HV_ang = round(i_1_Xmag[fault_ind,3][1], digits=1), round(i_1_Xphase[fault_ind,3][1], digits=1)
i_a_LV_mag, i_a_LV_ang = round(i_2_Xmag[fault_ind,1][1]/kt, digits=1), round(i_2_Xphase[fault_ind,1][1], digits=1)
i_b_LV_mag, i_b_LV_ang = round(i_2_Xmag[fault_ind,2][1]/kt, digits=1), round(i_2_Xphase[fault_ind,2][1], digits=1)
i_c_LV_mag, i_c_LV_ang = round(i_2_Xmag[fault_ind,3][1]/kt, digits=1), round(i_2_Xphase[fault_ind,3][1], digits=1)

p1 = plot([0;i_a_HV_ang*pi/180], [0;i_a_HV_mag], arrow=true, proj = :polar, linecolor = :orange, 
label = L"I_a = %$i_a_HV_mag \angle\, %$i_a_HV_ang \degree А", title = "Токи (ВН)")

plot!([0;i_b_HV_ang*pi/180], [0;i_b_HV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b = %$i_b_HV_mag \angle\, %$i_b_HV_ang \degree А")

plot!([0;i_c_HV_ang*pi/180], [0;i_c_HV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с = %$i_c_HV_mag \angle\, %$i_c_HV_ang \degree А")

p2 = plot([0;i_a_LV_ang*pi/180], [0;i_a_LV_mag], arrow=true, proj = :polar, linecolor = :orange,
label = L"I_a/k_t = %$i_a_LV_mag \angle\, %$i_a_LV_ang \degree А", title = "Токи (НН)")

plot!([0;i_b_LV_ang*pi/180], [0;i_b_LV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b/k_t = %$i_b_LV_mag \angle\, %$i_b_LV_ang \degree А")

plot!([0;i_c_LV_ang*pi/180], [0;i_c_LV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с/k_t = %$i_c_LV_mag \angle\, %$i_c_LV_ang \degree А")

plot(p1, p2, layout=(1,2), legend = :outerbottom, legendfontsize=10, size = (800,450))
Out[0]:

在2-f短路时,出现反向序列的电流,等于正向序列的电流。 在短路位置的反向序列电流的矢量图的位置是考虑到一个特殊的条件来确定的-完好相中的短路电流为零 . 因此,用于该相位的正向和反向序列的电流矢量应该以相反的方向定向。 由于对称分量的矢量相加,高压侧的a相和B相的电流实际上比c相的电流小两倍。

1-f短路和绕组连接方案的经验

建立1-f短路和绕组连接方案实验模型 :

In [ ]:
engee.set_param!(model_name*"/"*transf_name,
"winding1_connection" => "Wye with grounded neutral",
"winding2_connection" => "Delta 11 o'clock");
engee.set_param!(model_name*"/"*fault_name, "type" => "Single-phase to ground (a-g)");

测量电流的模型启动、处理和矢量化:

In [ ]:
results = engee.run(model_name);
# вектор токов амперметра 1
i_1 = hcat(results["i_a_1"].value,results["i_b_1"].value,results["i_c_1"].value);
# вектор токов амперметра 2
i_2 = hcat(results["i_a_2"].value,results["i_b_2"].value,results["i_c_2"].value);

for (Xmag, Xphase, signal) in zip(
    (i_1_Xmag, i_2_Xmag),
    (i_1_Xphase, i_2_Xphase),
    (i_1, i_2))
    Xmag, Xphase = moving_fourie(Xmag, Xphase, sim_time, signal);
end

短路时VN和NN两侧电流的矢量图:

In [ ]:
# вектора токов в комплексных числах
i_a_HV_mag, i_a_HV_ang = round(i_1_Xmag[fault_ind,1][1], digits=1), round(i_1_Xphase[fault_ind,1][1], digits=1)
i_b_HV_mag, i_b_HV_ang = round(i_1_Xmag[fault_ind,2][1], digits=1), round(i_1_Xphase[fault_ind,2][1], digits=1)
i_c_HV_mag, i_c_HV_ang = round(i_1_Xmag[fault_ind,3][1], digits=1), round(i_1_Xphase[fault_ind,3][1], digits=1)
i_a_LV_mag, i_a_LV_ang = round(i_2_Xmag[fault_ind,1][1]/kt, digits=1), round(i_2_Xphase[fault_ind,1][1], digits=1)
i_b_LV_mag, i_b_LV_ang = round(i_2_Xmag[fault_ind,2][1]/kt, digits=1), round(i_2_Xphase[fault_ind,2][1], digits=1)
i_c_LV_mag, i_c_LV_ang = round(i_2_Xmag[fault_ind,3][1]/kt, digits=1), round(i_2_Xphase[fault_ind,3][1], digits=1)

p1 = plot([0;i_a_HV_ang*pi/180], [0;i_a_HV_mag], arrow=true, proj = :polar, linecolor = :orange, 
label = L"I_a = %$i_a_HV_mag \angle\, %$i_a_HV_ang \degree А", title = "Токи (ВН)")

plot!([0;i_b_HV_ang*pi/180], [0;i_b_HV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b = %$i_b_HV_mag \angle\, %$i_b_HV_ang \degree А")

plot!([0;i_c_HV_ang*pi/180], [0;i_c_HV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с = %$i_c_HV_mag \angle\, %$i_c_HV_ang \degree А")

p2 = plot([0;i_a_LV_ang*pi/180], [0;i_a_LV_mag], arrow=true, proj = :polar, linecolor = :orange,
label = L"I_a/k_t = %$i_a_LV_mag \angle\, %$i_a_LV_ang \degree А", title = "Токи (НН)")

plot!([0;i_b_LV_ang*pi/180], [0;i_b_LV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b/k_t = %$i_b_LV_mag \angle\, %$i_b_LV_ang \degree А")

plot!([0;i_c_LV_ang*pi/180], [0;i_c_LV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с/k_t = %$i_c_LV_mag \angle\, %$i_c_LV_ang \degree А")

plot(p1, p2, layout=(1,2), legend = :outerbottom, legendfontsize=10, size = (800,450))
Out[0]:

在这个例子中,有一个中性点接地的负载,它在单相接地故障期间形成电流流动的电路,但是,零序电流在NN绕组中闭合并且不通过VN侧。

此外

尝试改变系统的特性,并探索这将如何影响电力系统模式的参数:

In [ ]:
# @markdown Длина воздушной линии, в км:
L1 = 20 # @param {type:"slider", min:1, max:100, step:1}
engee.set_param!(model_name*"/"*line_name, "line_length" => float(L1));
# @markdown Схема соединения обмоток на стороне ВН:
winding_con_HV = "Wye with grounded neutral" # @param ["Wye with floating neutral", "Wye with grounded neutral", "Delta 1 o'clock", "Delta 11 o'clock"]
# @markdown Схема соединения обмоток на стороне НН:
winding_con_LV = "Wye with grounded neutral" # @param ["Wye with floating neutral", "Wye with grounded neutral", "Delta 1 o'clock", "Delta 11 o'clock"]
engee.set_param!(model_name*"/"*transf_name,
"winding1_connection" => winding_con_HV,
"winding2_connection" => winding_con_LV);
# @markdown Вид КЗ
kind_of_fault = "Single-phase to ground (a-g)" # @param ["Single-phase to ground (a-g)", "Single-phase to ground (b-g)", "Single-phase to ground (c-g)", "Two-phase (a-b)", "Two-phase (b-c)", "Two-phase (c-a)", "Three-phase (a-b-c)", "Three-phase ground (a-b-c-g)"]
engee.set_param!(model_name*"/"*fault_name, "type" => kind_of_fault);

测量电流的模型启动、处理和矢量化:

In [ ]:
results = engee.run(model_name);
# вектор токов на стороне ВН
i_1 = hcat(results["i_a_1"].value,results["i_b_1"].value,results["i_c_1"].value);
# вектор токов на стороне НН
i_2 = hcat(results["i_a_2"].value,results["i_b_2"].value,results["i_c_2"].value);

for (Xmag, Xphase, signal) in zip(
    (i_1_Xmag, i_2_Xmag),
    (i_1_Xphase, i_2_Xphase),
    (i_1, i_2))
    Xmag, Xphase = moving_fourie(Xmag, Xphase, sim_time, signal);
end

短路时VN和NN两侧电流的矢量图:

In [ ]:
# вектора токов в комплексных числах
i_a_HV_mag, i_a_HV_ang = round(i_1_Xmag[fault_ind,1][1], digits=1), round(i_1_Xphase[fault_ind,1][1], digits=1)
i_b_HV_mag, i_b_HV_ang = round(i_1_Xmag[fault_ind,2][1], digits=1), round(i_1_Xphase[fault_ind,2][1], digits=1)
i_c_HV_mag, i_c_HV_ang = round(i_1_Xmag[fault_ind,3][1], digits=1), round(i_1_Xphase[fault_ind,3][1], digits=1)
i_a_LV_mag, i_a_LV_ang = round(i_2_Xmag[fault_ind,1][1]/kt, digits=1), round(i_2_Xphase[fault_ind,1][1], digits=1)
i_b_LV_mag, i_b_LV_ang = round(i_2_Xmag[fault_ind,2][1]/kt, digits=1), round(i_2_Xphase[fault_ind,2][1], digits=1)
i_c_LV_mag, i_c_LV_ang = round(i_2_Xmag[fault_ind,3][1]/kt, digits=1), round(i_2_Xphase[fault_ind,3][1], digits=1)

p1 = plot([0;i_a_HV_ang*pi/180], [0;i_a_HV_mag], arrow=true, proj = :polar, linecolor = :orange, 
label = L"I_a = %$i_a_HV_mag \angle\, %$i_a_HV_ang \degree А", title = "Токи (ВН)")

plot!([0;i_b_HV_ang*pi/180], [0;i_b_HV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b = %$i_b_HV_mag \angle\, %$i_b_HV_ang \degree А")

plot!([0;i_c_HV_ang*pi/180], [0;i_c_HV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с = %$i_c_HV_mag \angle\, %$i_c_HV_ang \degree А")

p2 = plot([0;i_a_LV_ang*pi/180], [0;i_a_LV_mag], arrow=true, proj = :polar, linecolor = :orange,
label = L"I_a/k_t = %$i_a_LV_mag \angle\, %$i_a_LV_ang \degree А", title = "Токи (НН)")

plot!([0;i_b_LV_ang*pi/180], [0;i_b_LV_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b/k_t = %$i_b_LV_mag \angle\, %$i_b_LV_ang \degree А")

plot!([0;i_c_LV_ang*pi/180], [0;i_c_LV_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с/k_t = %$i_c_LV_mag \angle\, %$i_c_LV_ang \degree А")

plot(p1, p2, layout=(1,2), legend = :outerbottom, legendfontsize=10, size = (800,450))
Out[0]:

结论

在这个例子中,显示了通过变压器的短路电流转换的特征。 Engee模型命令管理工具用于从脚本开发环境加载和运行模型并配置块。 测量的电流从result变量导入工作区,并显示在时间图上。 然后使用带有浮动窗口的傅立叶变换对它们进行矢量化,并显示在矢量图上。 使用Plots模块进行可视化。 添加部分使用掩码代码单元格来提高示例的交互性。

连结

  1. 关于能源系统稳定性的方法指南。
    由俄罗斯能源部2003年6月30日N277的命令批准。
  2. 电气网络设计手册 /
    d.L.faybisovich编辑。 –第4版。,修订和增加。 -M.:ENAS,2012。 -376页:生病了。
  3. 微处理器继电器:一本教科书/A.A.Nikitin;俄罗斯联邦教育和科学部,联邦教育局,联邦国家高等教育机构。 教育"以I.N.Ulyanov命名的楚瓦什州立大学"。 Cheboksary:楚瓦什大学出版社,2006。 447页;ISBN5-7677-1051-1