В2 Программа функциональных испытаний ДЗ и ТНЗНП 330-500 кВ¶
В данном примере реализована модель тестовой сети для выполнения функциональных испытаний ДЗ и ТНЗНП 330-500 кВ из приложения В2 СТО 56947007-29.120.70.241-2017. Технические требования к микропроцессорным устройствам РЗА. В данном примере содержится 12 моделей с именем B2_X.engee, где X — номер или диапазон номеров опытов, модель B2.engee предназначена для верификации. Модель была адаптирована и протестирована для запуска на КПМ РИТМ. Более подробно о использовании КПМ РИТМ можно узнать в примерах КПМ РИТМ: быстрый старт и КПМ РИТМ: работа в реальном времени. Примеры опытов сделаны для демонстрации без подключения реального оборудования, необходимо самостоятельно его подключить. Для подключения терминала РЗА нужно добавить в модель блоки ЦАП и цифровых входов/выходов из библиотеки блоков РИТМ, затем подключить терминал к КПМ РИТМ. Схема моделируемой сети:
Параметры энергосистемы А:
Активное сопротивление прямой последовательности– 1,038 Ом
Индуктивное сопротивление прямой последовательности – 13,322 Ом
Активное сопротивление нулевой последовательности – 1,403 Ом
Индуктивное сопротивление нулевой последовательности – 16,429 Ом
Эквивалентная ЭДС – 523 кВ
Фазовый угол ЭДС – 0°
Параметры энергосистемы Б:
Активное сопротивление прямой последовательности – 3,761 Ом
Индуктивное сопротивление прямой последовательности – 39,757 Ом
Активное сопротивление нулевой последовательности – 1,661 Ом
Индуктивное сопротивление нулевой последовательности – 31,988 Ом
Эквивалентная ЭДС– 474 кВ
Фазовый угол ЭДС – -11,26°
Параметры линии А-Б:
Длина 152,63 км
Удельное сопротивление линии прямой последоват. 0,01967 + j 0,2899 Ом/км
Удельное сопротивление линии нулевой последоват. 0,1697 + j 1,1071 Ом/км
Удельная емкость прямой последовательности 3,908 нФ/км
Удельная емкость нулевой последовательности 2,851 нФ/км
Удельное сопротивление взаимоиндукции 0,15 + j 0,3044 Ом/км
Измерительные трансформаторы тока:
ТФРМ-500Б У1
nт= 2000/1 А
Sном = 40 ВА, cos φ = 0,8
К10 = 18
Qакт = 23,6 см2
Lср = 2,28 см
W1 = 1
W2 = 2000
R2 = 4,23 Ом
Х2 = 0 Ом
Верификация модели¶
Перед первым запуском необходимо установить пакет для отрисовки таблиц:
using Pkg
Pkg.add("PrettyTables")
Сравнение требуемых параметров режима и расчётных:
model_name = "B2"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
blocks = ["Q1_ctrl", "Q2_ctrl", "Q3_ctrl", "Q4_ctrl", "ЗН_3", "ЗН_4"]
switch_states = [0 0 0 0 1 1]
for i = 1:length(blocks)
engee.set_param!(model_name*"/"*blocks[i], "Value" => switch_states[i]);
end
time_ar = [0, 1]
switch = ones(2,4,2)
# Запуск загруженной модели:
results = engee.run(model_name);
# вектор времени симуляции
# sim_time = results["P1_1"].time;
P1_1_ex1 = results["P1_1"].value[end]
Q1_1_ex1 = results["Q1_1"].value[end]
V1_1_ex1 = results["V1_1"].value[end][1]
I1_1_ex1 = results["I1_1"].value[end][1]
P2_1_ex1 = results["P2_1"].value[end]
Q2_1_ex1 = results["Q2_1"].value[end]
V2_1_ex1 = results["V2_1"].value[end][1]
I2_1_ex1 = results["I2_1"].value[end][1]
switch_states = [0 0 1 1 0 0]
for i = 1:length(blocks)
engee.set_param!(model_name*"/"*blocks[i], "Value" => switch_states[i]);
end
# Запуск загруженной модели:
results = engee.run(model_name);
# вектор времени симуляции
# sim_time = results["P1_1"].time;
P1_1_ex2 = results["P1_1"].value[end]
Q1_1_ex2 = results["Q1_1"].value[end]
V1_1_ex2 = results["V1_1"].value[end][1]
I1_1_ex2 = results["I1_1"].value[end][1]
P2_1_ex2 = results["P2_1"].value[end]
Q2_1_ex2 = results["Q2_1"].value[end]
V2_1_ex2 = results["V2_1"].value[end][1]
I2_1_ex2 = results["I2_1"].value[end][1];
Отобажение результатов:
using PrettyTables
colomn1 = ["Обе цепи в работе", "Напряжение на шинах, кВ", "Ток по линии, А",
"Активный переток мощности, МВт", "Реактивный переток мощности, МВАр", "",
"Цепь 2 отключена с двух сторон и заземлена", "Напряжение на шинах, кВ", "Ток по линии, А",
"Активный переток мощности, МВт", "Реактивный переток мощности, МВАр"]
colomn2 = ["", "518,4", "392", "347,8", "53,53", "", "", "517,7", "618", "532,3", "154,8"]
colomn3 = ["", "505,9", "449", "-346,2", "-186,8", "", "", "496,5", "681", "-528,3", "-251,9"]
colomn4 = ["", V1_1_ex1, I1_1_ex1*1e3, P1_1_ex1, Q1_1_ex1, "", "", V1_1_ex2, I1_1_ex2*1e3, P1_1_ex2, Q1_1_ex2]
colomn5 = ["", V2_1_ex1, I2_1_ex1*1e3, P2_1_ex1, Q2_1_ex1, "", "", V2_1_ex2, I2_1_ex2*1e3, P2_1_ex2, Q2_1_ex2]
colomn6 = ["", (518.4 - V1_1_ex1) / 518.4 * 100, (0.392 - I1_1_ex1) / 0.392 * 100, (347.8 - P1_1_ex1) / 347.8 * 100,
(53.53 - Q1_1_ex1) / 53.53 * 100, "", "", (517.7 - V1_1_ex2) / 517.7 * 100, (0.618 - I1_1_ex2) / 0.618 * 100,
(532.3 - P1_1_ex2) / 532.3 * 100, (154.8 - Q1_1_ex2) / 154.8 * 100]
colomn7 = ["", (505.9 - V2_1_ex1) / 505.9 * 100, (0.449 - I2_1_ex1) / 0.449 * 100, (-346.2 - P2_1_ex1) / -346.2 / 100,
(-186.8 - Q2_1_ex1) / -186.8 * 100, "", "", (496.5 - V2_1_ex2) / 496.5 * 100, (0.681 - I2_1_ex2) / 0.681 * 100,
(-528.3 - P2_1_ex2) / -528.3 * 100, (-251.9 - Q2_1_ex2) / -251.9 * 100]
data = hcat(colomn1, colomn2, colomn3, colomn4, colomn5, colomn6, colomn7);
header = (["Режимы", "ПС А", "ПС Б", "ПС А", "ПС Б", "ПС А", "ПС Б"],
["", "RTDS", "RTDS", "Engee", "Engee", "Ошибка, %", "Ошибка, %"])
pretty_table(
data;
header = header,
alignment = :l,
formatters = ft_printf("%5.2f")
)
Погрешность расчёта меньше 5%.
Сравнение требуемых токов КЗ и расчётных:
model_name = "B2"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
switch = []
time_ar = [0, 1]
fault = reshape([0 0 0 1; 0 0 0 1; 1 0 0 0; 1 0 0 0; 0 1 1 0; 0 1 1 0], (6, 4, 1))
fault = cat(fault, fault, dims = 3)
blocks = ["ЗН_3", "ЗН_4", "Q1_ctrl", "Q2_ctrl","Q3_ctrl","Q4_ctrl","Q5_ctrl","Q6_ctrl"]
switch_states = [1 1 0 0 0 0 1 1; 0 0 0 0 1 1 1 1]
results = Matrix{Any}(undef, 12, 2)
for j = 1:2
for i = 1:6
engee.set_param!(model_name*"/"*blocks[i], "Value" => switch_states[j, i]);
end
for i = 1:6
if i % 2 == 1
switch = cat(reshape(fault[i,:,:], (1,4,2)), ones(5,4,2), dims = 1)
else
switch = cat(ones(1,4,2), reshape(fault[i,:,:], (1,4,2)), ones(4,4,2), dims = 1)
end
result = engee.run(model_name);
if i <= 2
results[i + (j - 1) * 6, 1] = result["I1_1"].value[end][1];
results[i + (j - 1) * 6, 2] = result["I2_1"].value[end][1];
else
results[i + (j - 1) * 6, 1] = result["3I_0_1"].value[end];
results[i + (j - 1) * 6, 2] = result["3I_0_2"].value[end];
end
end
end
Отображение результатов:
using PrettyTables
I_ref =[24.71 4.226 20.794 1.29 22.935 1.429 22.35 5.194 19.59 1.737 21.47 1.819;
2.206 11.07 1.181 11.16 1.303 12.36 3.316 7.145 1.734 9.324 1.9 9.761]
colomn1 = ["Обе цепи в работе", "K1", "K2", "K1", "K2","K1", "K2",
"Цепь 2 отключена с двух сторон и заземлена", "K1", "K2","K1", "K2", "K1", "K2"]
colomn2 = ["", "K(3)", "K(3)", "K(1,1)", "K(1,1)", "K(1)", "K(1)", "","K(3)", "K(3)", "K(1,1)", "K(1,1)", "K(1)", "K(1)"]
colomn3 = ["", "I1", "I1", "3I0", "3I0", "3I0", "3I0", "", "I1", "I1", "3I0", "3I0", "3I0", "3I0"]
colomn4 = ["", "24,71", "4,226", "20,794", "1,29", "22,935", "1,429", "", "22,35", "5,194", "19,59", "1,737", "21,47", "1,819"]
colomn5 = ["", "2,206", "11,07", "1,181", "11,16", "1,303", "12,36", "", "3,316", "7,145", "1,734", "9,324", "1,9", "9,761"]
colomn6 = reshape(cat("", transpose(results[1:6,1]),"", transpose(results[7:12,1]), dims=2), (14))
colomn7 = reshape(cat("", transpose(results[1:6,2]),"", transpose(results[7:12,2]), dims=2), (14))
colomn8 = reshape(cat("", (results[1:6,1].-I_ref[1,1:6])./I_ref[1,1:6].*100,
"", (results[7:12,1].-I_ref[1,7:12])./I_ref[1,7:12].*100, dims=1), (14))
colomn9 = reshape(cat("", (results[1:6,2].-I_ref[2,1:6])./I_ref[2,1:6].*100,
"", (results[7:12,2].-I_ref[2,7:12])./I_ref[2,7:12].*100, dims=1), (14))
data = hcat(colomn1, colomn2, colomn3, colomn4, colomn5, colomn6, colomn7, colomn8, colomn9);
header = (["Режимы КЗ", "", "", "от ПС А", "от ПС Б", "от ПС А", "от ПС Б", "от ПС А", "от ПС Б"],
["Место КЗ", "Вид КЗ", "", "RTDS", "RTDS", "Engee", "Engee", "Ошибка, %", "Ошибка, %"])
pretty_table(
data;
header = header,
alignment = :l,
formatters = ft_printf("%5.2f")
)
Погрешность расчёта меньше 5%.
Опыты 1-10¶
Влияние переходного сопротивления и нагрузки на работу ДЗ.
Условия испытания:
- Место КЗ: точка К4.
- Вид КЗ: К(1,1)ВС0, К(1)В0
Параметры опытов:
В модели задан опыт №1. Для проведения других опытов необходимо изменить вид КЗ и переходное сопротивление в блоке КЗ.
model_name = "B2_1_10"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1;
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir + 2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыты 11-14¶
Проверка работы ДЗ при близких КЗ.
Условия испытания:
- Вид КЗ: К(3)АВС
- Переходное сопротивление в месте КЗ: 0 Ом.
Параметры опытов:
В модели задан опыт №11. Для проведения других опытов необходимо переместить блок КЗ в требуемую точку.
model_name = "B2_11_14"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = result["I1_1"].time;
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1;
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir + 2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыт 15-16¶
Проверка работы ТНЗНП при внешних КЗ на шинах
Условия испытания:
- Место КЗ: точка К3, точка К4.
- Вид КЗ: К(1)А0.
- Переходное сопротивление в месте КЗ: 0 Ом.
- Параллельная линия отключена с двух сторон и заземлена.
- Нормальный режим нагрузки, предшествующий КЗ.
В модели задан опыт №15. Для проведения опыта №16 необходимо переместить блок КЗ в требуемую точку.
model_name = "B2_15_16"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = result["I1_1"].time;
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1;
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir + 2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыт 17-20¶
Проверка работы ДЗ и ТНЗНП при внутреннем КЗ с успешным ОАПВ.
Последовательность режимов:
- 0-0,5 с Нормальный режим нагрузки, предшествующий КЗ
- 0,4 с Возникновение КЗ в середине ВЛ
- 0,5 с Отключение фазы А линии с двух сторон, Бестоковая пауза (1,5 с)
- 1 с Исчезновение КЗ
- 1,5 с Включение фазы А (ОАПВ) со стороны ПС А
- 1,7 с Включение фазы А линии со стороны ПС Б.
В модели задан опыт №17. Для проведения других опытов необходимо изменить сопротивление КЗ в блоке КЗ и/или переместить его в требуемую точку.
model_name = "B2_17_20"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1;
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыты 21-24¶
Проверка работы ДЗ и ТНЗНП при внутреннем КЗ с неуспешным ОАПВ.
Последовательность режимов:
- 0-0,4 с Нормальный режим нагрузки, предшествующий КЗ.
- 0,4 с Возникновение КЗ на линии
- 0,5 с Отключение фазы А линии с КЗ с двух сторон, бестоковая пауза (1,5 с)
- 2 с Включение фазы А линии со стороны ПС А
- 2,1 с Отключение линии от защит ПС А.
В модели задан опыт №21. Для проведения других опытов необходимо изменить сопротивление КЗ в блоке КЗ и/или переместить его в требуемую точку.
model_name = "B2_21_24"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыты 25-30¶
Устойчивое перемежающееся КЗ в цикле ОАПВ.
Последовательность режимов:
- 0-0,4 с Нормальный режим нагрузки.
- 0,4 с Возникновение КЗ.
- 0,5 с Отключение фазы А линии.
- 1 с Исчезновение КЗ К(1)А0. Бестоковая пауза (1,5 с).
- 2 с Включение фазы А линии со стороны ПС А и возникновение КЗ фаз ВС.
- 2,1 с отключение КЗ защитами
В модели задан опыт №25. Для проведения других опытов необходимо изменить сопротивления выключателей в подсистеме К1. Для изменения точки КЗ необходимо перенести блок КЗ в середину линии.
model_name = "B2_25_30"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 2
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыт 31¶
Проверка работы ДЗ и ТНЗНП при внешних КЗ с неуспешным ТАПВ с насыщением ТТ.
Условия испытания:
- Место КЗ: точка К4
- Вид КЗ: К(1)А0
- Переходное сопротивление в месте КЗ: 0
Последовательность режимов:
- 0-0,4 с Нормальный режим нагрузки.
- 0,4 с Возникновение КЗ.
- 0,5 с Отключение поврежденной линии.
- 1,5 с АПВ со стороны ПС Б (1 с).
- 1,6 с Отключение поврежденной линии.
model_name = "B2_31"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыты 32-35¶
Качания с центром качаний на линии А-Б.
Условия испытания:
- Центр качаний: на линии А-Б.
- Частота качаний: 1 Гц и повышение до отказа срабатывания блокировки при качаниях.
В модели задан опыт №32. Для проведения других опытов необходимо изменить параметры ампилитуды и частоты блока "Синусоидальная функция" из подсистемы "Частота". Для опыта №32 задан угол качания ЭДС на ПС Б ±180° от установившего режима. С 0 по 0,5 секунд система работает в установившемся режиме, с 0,5 с частота начинает изменяться. Амплитуду нужно увеличивать пропорционально частоте качаний.
model_name = "B2_32_35"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["Zab_1"].value[:])[!,:value]);
results[1, 4] = stack(collect(result["Zab_2"].value[:])[!,:value]);
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "Zab, Ом", ylims = (0, 2000))
plot(p1, p2, layout=(2,1))
Опыты 36-43¶
Качания с центром качаний на линии А-Б и КЗ в зоне действия защиты.
Условия испытания:
- Центр качаний: на линии А-Б в 60% длины линии от ПС А.
- Частота качаний: 2 Гц
- Место КЗ: 60% линии от ПС А.
- Вид КЗ: К(3)ABC, К(2)BС, К(1,1)BС0, К(1)A0
- Сопротивление в месте КЗ 0 и 10 Ом.
В модели задан опыт №36. Для проведения других опытов необходимо изменить вид КЗ и переходное сопротивление в блоке КЗ. Для опыта №36 задан угол качания ЭДС на ПС Б ±180° от установившего режима. С 0 по 0,5 секунд система работает в установившемся режиме, с 0,5 с частота начинает изменяться, в 1,125 с происходит КЗ в точке К7.
model_name = "B2_36_43"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["Zab_1"].value[:])[!,:value]);
results[1, 4] = stack(collect(result["Zab_2"].value[:])[!,:value]);
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "Zab, Ом", ylims = (0, 2000))
plot(p1, p2, layout=(2,1))
Опыт 44¶
Внешнее КЗ на параллельной линии, переходящее во внутреннее.
Условия испытания:
- Вид КЗ: Внешнее К(3)АВC, переходящее во внутреннее.
- Место КЗ: точка К5 с переходом в точку К1.
- Нагрузка по линии: нормальный режим (Табл. 2).
- Угол возникновения КЗ: 0°.
- Переходное сопротивление в месте КЗ - 0 Ом.
Последовательность режимов:
- КЗ фаз АВС на параллельной линии со стороны ПС А.
- Через 60 мс КЗ переходит на защищаемую линию в точку К1.
Последовательность событий:
- 0,5 с 3ф КЗ в точке К5 (угол напряжения фазы A равен нулю).
- 0,56 с возникает 3ф КЗ в точке К1 (КЗ в точке К5 не исчезает).
- 0,6 с отключение КЗ в точке К5.
- 0,66 с отключение КЗ в точке К1.
model_name = "B2_44"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4)
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["V1_1"].value[:])[!,:value])';
results[1, 4] = stack(collect(result["V2_1"].value[:])[!,:value])';
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "U, кВ", label = ["a" "b" "c"])
plot(p1, p2, layout=(2,1))
Опыты 45-46¶
Влияние взаимоиндукции параллельной линии на работу ДЗ.
Условия испытания:
- Нормальный режим.
- Место КЗ: точка К2.
- Сопротивление в месте КЗ: 0 Ом.
- Вид КЗ: К(1)A0
- а) Параллельная линия отключена и заземлена.
- б) Параллельная линия в работе.
В модели задан опыт №45. Для проведения опыта №46 необходимо включить выключатели Q3 и Q4, отключить заземляющие ножи.
model_name = "B2_45_46"
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
results = Matrix{Any}(undef, 1, 4);
result = engee.run(model_name);
results[1, 1] = stack(collect(result["I1_1"].value[:])[!,:value])';
results[1, 2] = stack(collect(result["I2_1"].value[:])[!,:value])';
results[1, 3] = stack(collect(result["Zab_1"].value[:])[!,:value]);
results[1, 4] = stack(collect(result["Zab_2"].value[:])[!,:value]);
sim_time = collect(result["I1_1"].time[:])[!,:time];
Отображение результатов:
# сторона измерения, 1 - ПС А, 2 -ПС Б
dir = 1
gr()
p1 = plot(sim_time, results[1, dir], xlabel = "t, с", ylabel = "I, кА", label = ["a" "b" "c"])
p2 = plot(sim_time, results[1, dir+2], xlabel = "t, с", ylabel = "Zab, Ом", ylims = (0, 500))
plot(p1, p2, layout=(2,1))