通过变压器的短路电流过渡¶
型号说明¶
本示例考虑了一个具有单侧架空线路和双绕组变压器的电力系统,该系统后面发生了各种类型的短路故障(SCF)。运行过程、在脚本开发环境中使用命令控制对模型进行编辑以及模拟结果的可视化均在此显示。模型测量变压器高压侧(HV)和低压侧(LV)的电流,进一步显示其时间图和矢量图。模型外部视图:
电源由 * 电压源(三相)* 块建模。空气管路由 Three-Phase PI Section Line 块模拟。短路由 Fault (Three-Phase) 模块模拟,在该模块的设置中,可通过 Filure mode 下拉菜单选择短路类型。短路跳闸由 Circuit Breaker (Three-Phase) 模块执行,该模块模拟继电保护动作。短路跳闸持续时间根据单向供电死端线路保护的动作时间和断路器跳闸时间选择,并根据 2003 年《电力系统稳定性方法导则》中 110 kV 短路跳闸持续时间的上限设置为 0.18 s。[1]. 负载由 Wye-Connected Load 模块模拟。
系统参数 [2] 为
| 元素 | 参数
| ----------- | ----------- |
| 系统 | 平衡节点
$U_{ном} = 110 кВ$| | 线路 | AC 185
| 线路 | AC 185/29
$L = 20 км$|
| 变压器 TRDCN-80000/110
| 负载 |$P_{нагр} = 20 МВт$
$Q_{нагр} = 10 МВар$| 变压器
运行模型¶
导入必要的模块,以便使用图形、表格和带浮动窗口的傅立叶变换函数:
using Plots
using DataFrames
include("$(@__DIR__)/fourie_func.jl")
gr();
加载模型
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 短路和绕组连接方案$Y_0/\triangle-11$ :
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);
运行加载的模型:
results = engee.run(model_name);
建模结果¶
要导入模拟结果,必须事先启用所需信号的日志记录并设置其名称。将 results 变量的电流瞬时值转换为单独的矢量:
# вектор времени симуляции
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);
高压侧和低压侧电流图:
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))
让我们使用浮窗傅立叶变换对电流进行矢量化,以提取电流的幅值和相位。 我们将不使用内置函数,而使用函数 [3]: $$\underline{I}_1(nT_д)={\frac{2j}{N}}\sum_{\substack{k=n-N+1\\n=0...N-1}}^{n}i(kT_д)e^{-jw_1(k+N-n-1)T_д}$$
# Переменные для хранения векторов
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
为了更清楚起见,低压侧的电流除以变换比后将带入高压侧。短路时高压侧和低压侧电流的矢量图:
# поиск индекса КЗ
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))
注意短路电流的对称性,以及由于绕组连接方案$Y_0/\triangle-11$ ,低压侧电流相对于高压侧电流在$30 ^\circ$ 的相移。在这种情况下,考虑到变压比,通过变压器时高压侧和低压侧的线路电流相等,在$\sqrt{3}$ 线路电流中,低压侧的相电流较小。
2-f 短路和绕组连接方案实验$Y_0/\triangle-11$¶
为 2-F 短路和绕组连接实验建立模型$Y_0/\triangle-11$ :
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)");
运行模型,对测量电流进行处理和矢量化:
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
短路时高压侧和低压侧电流的矢量图:
# вектора токов в комплексных числах
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))
在 2-f 短路故障时,会出现与正序电流相等的反序电流。反序电流矢量图在故障位置的位置是根据一个特殊条件确定的,即未损坏相的故障电流等于零$I_a^{НН}=0$ 。因此,该相的正序和反序电流矢量的方向必须相反。由于对称分量的矢量相加,高压侧 A 相和 B 相的电流实际上是 C 相电流的两倍。
1-f 短路和绕组连接方案的经验$Y_0/\triangle-11$¶
建立 1-f 短路和绕组连接实验模型$Y_0/\triangle-11$ :
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)");
运行模型,对测量电流进行处理和矢量化:
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
短路时高压侧和低压侧电流的矢量图:
# вектора токов в комплексных числах
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))
在此示例中,负载中性点接地,形成单相接地故障电流回路,但零序电流在低压绕组中短路,不会流向高压侧。
附录¶
尝试改变系统特性,研究这将如何影响电力系统模式参数:
# @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);
运行模型,处理并矢量化测量到的电流:
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
短路时高压侧和低压侧电流的矢量图:
# вектора токов в комплексных числах
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))
输出¶
本示例显示了通过变压器的短路电流转换特性。Engee 模型命令工具用于加载和运行模型,并从脚本开发环境中设置块。测量的电流从 result 变量导入工作区,并绘制在时间图上。然后使用浮动窗口傅立叶变换将其矢量化,并显示在矢量图上。可视化是使用 Plots 模块完成的。在 "补充 "部分使用了屏蔽代码单元,以提高示例的交互性。
参考文献¶
1.电力系统稳定性方法指南》。 2003 年 6 月 30 日俄罗斯能源部第 277 号令批准。 2.电网设计参考书 / D.L. Faibisovich 编。 edited by D.L. Faibisovich.- 4th edition, revision and addendum - M. : ENAS, 2012.- 376 с.: ill. 微处理器继电器 : 教材 / A. A. Nikitin ; 俄罗斯联邦教育科学部,联邦教育署,"以 I. N. Ulyanov 命名的楚瓦什国立大学 "联邦国家高等专业教育机构.I.N. Ulyanov Chuvash State Univ.- Cheboksary : Izd-vo Chuvashskogo un-ta, 2006.- 447 p.; ISBN 5-7677-1051-1