Faults on power lines in a network with earthed star point¶
Model description¶
This example considers a power system with a deaf-earthed neutral consisting of two overhead lines with two-way supply and one dead-end line at the end of which a short-circuit occurs with subsequent disconnection (the default setting in the model is a single-phase earth fault in phase A). The process of launching the model from the script development environment using command control, processing of simulation results, calculation of symmetrical components, visualisation of simulation results and suggested scripts for independent work with the model are shown. Logging of current and voltage values at three measurement points is carried out, their time plots and vector diagrams are shown and the Fortescue transformation for the calculation of symmetrical components is performed. Model appearance:
Systems are modelled by Voltage Source (Three-Phase) blocks, steady-state mode is exhibited by specifying the effective line voltage and phase shift. Overhead lines are modelled by Three-Phase PI Section Line blocks. Short-circuits are modelled by the Fault (Three-Phase) block, in the settings of this block the type of short-circuit can be selected using the Failure mode drop-down menu. The short-circuit trip is performed by the Circuit Breaker (Three-Phase) block, which simulates the operation of the relay protection. The duration of short-circuit tripping is chosen on the basis of the operation time of the dead-end line protections with one-way supply and breaker tripping time, and is set to 0.18 s according to the upper limit of the short-circuit tripping duration for 110 kV in accordance with the Methodological Guidelines for the stability of power systems from 2003. [1]. The load is modelled by the Wye-Connected Load block. The system parameters [2] are:
Element | Parameter |
---|---|
System #1 | Balancing node $U_{ном} = 110 кВ$ |
System #2 | $U_{ном} = 110 кВ$ $P_{нагр} = 50 МВт$ $Q_{нагр} = -27.5 МВар$ |
Load | $P_{нагр} = 9 МВт$ $Q_{нагр} = 4.8 МВар$ |
Line #1 | AC 185/29 $L_1 = 45 км$ |
Line 2 | AC 185/29 $L_2 = 65 км$ |
Line 3 | AC 150/24 $L_3 = 30 км$ |
Running the model¶
Import the necessary modules for working with graphs, tables and Fourier transform function with floating window:
using Plots
using DataFrames
include("$(@__DIR__)/fourie_func.jl")
gr();
Loading the model:
model_name = "grounded_neutral_network_fault"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
Running a loaded model:
results = engee.run(model_name);
Modelling results¶
To import the simulation results, logging of the required signals has been enabled in advance and their names have been set. Convert the instantaneous values of currents and voltages of the variable results into separate vectors:
# вектор времени симуляции
sim_time = results["i_a_1"].time;
# вектор токов в точке измерения №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);
# вектор токов в точке измерения №3
i_3 = hcat(results["i_a_3"].value,results["i_b_3"].value,results["i_c_3"].value);
# вектор напряжений в точке измерения №1
v_1 = hcat(results["v_a_1"].value,results["v_b_1"].value,results["v_c_1"].value);
# вектор напряжений в точке измерения №2
v_2 = hcat(results["v_a_2"].value,results["v_b_2"].value,results["v_c_2"].value);
# вектор напряжений в точке измерения №3
v_3 = hcat(results["v_a_3"].value,results["v_b_3"].value,results["v_c_3"].value);
Plots of currents and voltages at measurement point #1:
p1 = Plots.plot(sim_time, v_1./1e3, label = [L"U_a" L"U_b" L"U_c"],
title = "Напряжения", ylabel = "U, кВ", xlabel="Время, c");
p2 = Plots.plot(sim_time, i_1, 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))
Graphs of currents and voltages at measurement point #2:
p1 = Plots.plot(sim_time, v_2./1e3, label = [L"U_a" L"U_b" L"U_c"],
title = "Напряжения", ylabel = "U, кВ", xlabel="Время, c");
p2 = Plots.plot(sim_time, i_2, 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))
Graphs of currents and voltages at measuring point No. 3
p1 = Plots.plot(sim_time, v_3./1e3, label = [L"U_a" L"U_b" L"U_c"],
title = "Напряжения", ylabel = "U, кВ", xlabel="Время, c");
p2 = Plots.plot(sim_time, i_3, 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))
As a result of a single-phase fault, the voltage of the faulted phase decreases and the current increases. Note that the voltage of the faulted phase increases as you move away from the fault.
Processing the results¶
Let's evaluate the influence of short-circuit on the current asymmetry. Calculation of symmetrical components using the Fortescue transform [3]: $$\underline{I}_1=\frac{1}{3}(\underline{I}_a+a\underline{I}_b+a^2\underline{I}_c)$$ $$\underline{I}_2=\frac{1}{3}(\underline{I}_a+a^2\underline{I}_b+a\underline{I}_c)$$ $$\underline{I}_0=\frac{1}{3}(\underline{I}_a+\underline{I}_b+\underline{I}_c)$$ $$где a=e^{j\frac{2\pi}{3}}$$
For this purpose, we will vectorise the currents using the Fourier transform with a floating window to extract the amplitudes and phases. In this case, we will not use the built-in functions and will use the function [4]: $$\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_д}$$
# Переменные для хранения векторов
v_1_Xmag, v_2_Xmag, v_3_Xmag, i_1_Xmag, i_2_Xmag, i_3_Xmag,
v_1_Xphase, v_2_Xphase, v_3_Xphase, i_1_Xphase, i_2_Xphase, i_3_Xphase = [zeros(length(sim_time),3) for _ = 1:12];
for (Xmag, Xphase, signal) in zip(
(v_1_Xmag, v_2_Xmag, v_3_Xmag, i_1_Xmag, i_2_Xmag, i_3_Xmag),
(v_1_Xphase, v_2_Xphase, v_3_Xphase, i_1_Xphase, i_2_Xphase, i_3_Xphase),
(v_1, v_2, v_3, i_1, i_2, i_3))
Xmag, Xphase = moving_fourie(Xmag, Xphase, sim_time, signal);
end
Vector diagram of currents at measuring point No. 3 before and during the short-circuit:
# поиск индексов моментов до и после КЗ (0.1 с и 0.3 с)
nom_reg_ind = indexin(0.1, sim_time);
kz_ind = indexin(0.3, sim_time);
# ампитуды и фазы токов
i_a_NR_mag, i_a_NR_ang = round(i_3_Xmag[nom_reg_ind,1][1], digits=1), round(i_3_Xphase[nom_reg_ind,1][1], digits=1)
i_b_NR_mag, i_b_NR_ang = round(i_3_Xmag[nom_reg_ind,2][1], digits=1), round(i_3_Xphase[nom_reg_ind,2][1], digits=1)
i_c_NR_mag, i_c_NR_ang = round(i_3_Xmag[nom_reg_ind,3][1], digits=1), round(i_3_Xphase[nom_reg_ind,3][1], digits=1)
i_a_SC_mag, i_a_SC_ang = round(i_3_Xmag[kz_ind,1][1], digits=1), round(i_3_Xphase[kz_ind,1][1], digits=1)
i_b_SC_mag, i_b_SC_ang = round(i_3_Xmag[kz_ind,2][1], digits=1), round(i_3_Xphase[kz_ind,2][1], digits=1)
i_c_SC_mag, i_c_SC_ang = round(i_3_Xmag[kz_ind,3][1], digits=1), round(i_3_Xphase[kz_ind,3][1], digits=1)
p1 = plot([0;i_a_NR_ang*pi/180], [0;i_a_NR_mag], arrow=true, proj = :polar, linecolor = :orange,
label = L"I_a = %$i_a_NR_mag \angle\, %$i_a_NR_ang \degree А", title = "Токи до КЗ")
plot!([0;i_b_NR_ang*pi/180], [0;i_b_NR_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b = %$i_b_NR_mag \angle\, %$i_b_NR_ang \degree А")
plot!([0;i_c_NR_ang*pi/180], [0;i_c_NR_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с = %$i_c_NR_mag \angle\, %$i_c_NR_ang \degree А")
p2 = plot([0;i_a_SC_ang*pi/180], [0;i_a_SC_mag], arrow=true, proj = :polar, linecolor = :orange,
label = L"I_a = %$i_a_SC_mag \angle\, %$i_a_SC_ang \degree А", title = "Токи во время КЗ")
plot!([0;i_b_SC_ang*pi/180], [0;i_b_SC_mag], arrow=true, proj = :polar, linecolor = :green,
label = L"I_b = %$i_b_SC_mag \angle\, %$i_b_SC_ang \degree А")
plot!([0;i_c_SC_ang*pi/180], [0;i_c_SC_mag], arrow=true, proj = :polar, linecolor = :red,
label = L"I_с = %$i_c_SC_mag \angle\, %$i_c_SC_ang \degree А")
plot(p1, p2, layout=(1,2), legend = :outerbottom, legendfontsize=10, size = (800,450))
Let's consider the current distribution of phase A at the line junction node #1-3 during the short-circuit on the vector diagram:
# вектора токов в комплексных числах
i_a_1_mag, i_a_1_ang = round(i_1_Xmag[kz_ind,1][1], digits=1), round(i_1_Xphase[kz_ind,1][1], digits=1)
i_a_2_mag, i_a_2_ang = round(i_2_Xmag[kz_ind,1][1], digits=1), round(i_2_Xphase[kz_ind,1][1], digits=1)
i_a_3_mag, i_a_3_ang = round(i_3_Xmag[kz_ind,1][1], digits=1), round(i_3_Xphase[kz_ind,1][1], digits=1)
ia1 = i_a_1_mag*exp(1im*i_a_1_ang*pi/180)
ia2 = i_a_2_mag*exp(1im*i_a_2_ang*pi/180)
ia3 = i_a_3_mag*exp(1im*i_a_3_ang*pi/180)
plot([0;angle(ia1)], [0;abs(ia1)],
arrow=true, proj = :polar, linecolor = :orange, label = L"I_{a1} = %$i_a_1_mag \angle\, %$i_a_1_ang \degree А")
plot!([0;angle(ia2)], [0;abs(ia1)],
arrow=true, proj = :polar, linecolor = :green, label = L"I_{a2} = %$i_a_2_mag \angle\, %$i_a_2_ang \degree А")
plot!([0;angle(ia3)], [0;abs(ia3)],
arrow=true, proj = :polar, linecolor = :red, label = L"I_{a3} = %$i_a_3_mag \angle\, %$i_a_3_ang \degree А")
# вспомогательный вектор Ia3+Ia1
plot!([angle(ia3);angle(ia3+ia1)], [abs(ia3);abs(ia3+ia1)],
arrow=true, proj = :polar, linecolor = :orange, label = L"I'_{a1} = %$i_a_1_mag \angle\, %$i_a_1_ang \degree А",
ls = :dash, linewidth=0.3)
# вспомогательный вектор Ia3+Ia1+Ia2
plot!([angle(ia3+ia1);angle(ia3+ia1+ia2)], [abs(ia3+ia1);abs(ia3+ia1+ia2)], arrow=true, proj = :polar, linecolor = :green,
label = L"I'_{a2} = %$i_a_2_mag \angle\, %$i_a_2_ang \degree А", ls = :dash, linewidth=0.3, legendfontsize=10, legend = :outerbottom)
The vector diagram shows that the geometric sum of the currents $I_{a1}$ and $I_{a2}$ is equal to the current $I_{a3}$, and all currents sum up to give 0. This diagram shows the fulfilment of Kirchhoff's first law for the node.
Let us calculate the symmetrical components of the currents:
a = exp(2pi*1im/3)
a_matr = [1 1 1;
a a^2 1;
a^2 a 1;]
# симметричные составляющие: [I1 I2 I0]
i_3_sym = 1/3*(i_3_Xmag .* exp.(1im .* i_3_Xphase .* (pi/180)))*a_matr;
Summarise in the table the values of amplitudes and symmetrical components of currents (measuring point No. 3) before and during the short-circuit:
# Токи №3
println("\n"*"Токи в точке измерения №3")
println(DataFrame([["Ном.реж.", "КЗ"],
round.([i_3_Xmag[nom_reg_ind,1][1]; i_3_Xmag[kz_ind,1][1]],digits = 1),
round.([i_3_Xmag[nom_reg_ind,2][1]; i_3_Xmag[kz_ind,2][1]],digits = 1),
round.([i_3_Xmag[nom_reg_ind,3][1]; i_3_Xmag[kz_ind,3][1]],digits = 1),
round.(abs.([i_3_sym[nom_reg_ind,1][1]; i_3_sym[kz_ind,1][1]]),digits = 1),
round.(abs.([i_3_sym[nom_reg_ind,2][1]; i_3_sym[kz_ind,2][1]]),digits = 1),
round.(abs.([i_3_sym[nom_reg_ind,3][1]; i_3_sym[kz_ind,3][1]]),digits = 1)],
["Режимы", "I_a (А)", "I_b (А)", "I_c (А)", "I_1 (А)", "I_2 (А)", "I_0 (А)"]))
During a single-phase short-circuit to earth, the reverse and zero-sequence components appear, and they are almost equal to each other. The slight difference is due to the presence of a load at the end of line 3.
Addendum¶
Try to change the following model parameters yourself and investigate how it affects the power system operation mode:
- the length of line #3 by 60 km;
- type of short circuit in the Fault (Three-Phase) block;
- the value of the short-circuit transient resistance by 0.1 Ohm in the Fault (Three-Phase) block;
- 3-fault power for 3000 MVA power supplies - Voltage Source (Three-Phase) blocks.
Conclusions¶
In this example, the tools for command control of the Engee model and uploading of the simulation results were used and the work with the Plots and DataFrames modules was shown. Measured currents and voltages were imported into the Workspace from the result variable and then plotted on time plots. These were then vectorised using the floating window Fourier transform and shown in vector plots. From the resulting current and voltage vectors, the symmetrical components were calculated using the Fortescue transform and summarised in tables.
References¶
- Methodological guidelines on stability of power systems. Approved by Order of the Ministry of Energy of Russia dated 30 June 2003 N 277.
- Reference book on design of electric networks / edited by D.L. Faibisovich. - 4th edition, revision and addendum - M. : ENAS, 2012. - 376 с. : ill.
- Zeveke G.V., Ionkin P.A., Netushil A.V., Strakhov S.V. Fundamentals of circuit theory (4th edition, 1975).
- Microprocessor relays : textbook / A. A. Nikitin ; Ministry of Education and Science of the Russian Federation, Federal Agency for Education, Federal State Educational Institution of Higher Professional Education "Chuvash State University named after I. N. Ulyanov". I.N. Ulyanov Chuvash State Univ. - Cheboksary : Izd-vo Chuvashskogo un-ta, 2006. - 447 p.; ISBN 5-7677-1051-1