Explicit pole oscillator with regulators¶
Model description¶
This example considers the operation of a hydro-generator-transformer unit via a double-circuit overhead line (OHL) to an infinite power bus (IPB) with strong-acting excitation regulators ARV-M, speed and hydro turbine. At a time instant of 5 s, the model experiences a three-phase short-circuit (short-circuit) in the middle of one of the overhead line circuits. The model is first started with the ARV-M switched off, then the voltage regulation channels and its first derivative and the frequency deviation stabilisation channels, its first derivative and the first derivative of the excitation current are switched on sequentially.
The process of starting and setting up the model from the script development environment using command control, processing of simulation results, visualisation of simulation results and suggested scripts for independent work with the model are shown. Logging of signals is carried out, their time plots are shown. External view of the model:
The main blocks used in this example are:
- Synchronous Machine Salient Pole - explicitly pole synchronous generator ($P_{ном} = 500 МВт$, $\varphi_{ном} = 0,85$, $U_{ном} = 15,75 кВ$).
- PID-controller AVR - AVR-M excitation regulator with proportional-integral-differential law of generator voltage control.
- Separately-Excited Exciter - electro-machine or thyristor exciter with independent power supply.
- Hydraulic Turbine and Governor - hydraulic turbine, PID control system and servo drive.
- Voltage Source (Three-Phase) - three-phase voltage source, used for modelling the BSF, steady-state mode is set by setting the effective line voltage and phase shift ($E = 500\angle0° кВ$, $S_{кз} = 10 ГВт$).
- Fault (Three-Phase) - short circuit.
- From Library of Passive Elements blocks of three-phase power line Three-Phase PI Section Line ($L = 200км$, AC 500/64, 2 circuits) and two-winding three-phase transformer Two-Winding Transformer (Three-Phase) (TD-630000/500).
Modelling¶
Import the necessary modules for working with graphs:
using Plots;
gr();
Loading the model:
model_name = "regulated_hydro_generator";
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
Setting up the model using command control, disabling the ADF:
# отключение АРВ
engee.set_param!(model_name*"/АРВ+СВ/"*"reg", "Value" => 0);
# отключение каналов стабилизации
engee.set_param!(model_name*"/АРВ+СВ/"*"stab", "Value" => 0);
Running a loaded model:
results = engee.run(model_name);
To import the simulation results, logging of the required signals has been enabled in advance and their names have been set. Let's convert the simulation results from the results variable:
# вектор времени симуляции
sim_time = results["V"].time;
# вектора записанных сигналов
w1 = results["w"].value;
U1 = results["V"].value;
P1 = results["P"].value;
Run the model and switch on the ADF only with voltage control channel and first derivative without stabilisation channels:
# настройка модели
engee.set_param!(model_name*"/АРВ+СВ/"*"reg", "Value" => 1);
engee.set_param!(model_name*"/АРВ+СВ/"*"stab", "Value" => 0);
# запуск модели
results = engee.run(model_name);
# вектора токов в точке измерения №1
w2 = results["w"].value;
U2 = results["V"].value;
P2 = results["P"].value;
Running the model and activating the ADF with all regulation and stabilisation channels:
# настройка модели
engee.set_param!(model_name*"/АРВ+СВ/"*"reg", "Value" => 1);
engee.set_param!(model_name*"/АРВ+СВ/"*"stab", "Value" => 1);
# запуск модели
results = engee.run(model_name);
# вектора токов в точке измерения №1
w3 = results["w"].value;
U3 = results["V"].value;
P3 = results["P"].value;
Generator rotor speed graph:
plot(sim_time, w1, title = L"Скорость\; вращения\; ротора", ylabel = L"\omega, о.е.", xlabel=L"Время,\; c", label = L"Без\; АРВ", legendfontsize = 10)
plot!(sim_time, w2, label = L"АРВ\; без\; стабилизации", size = (700,440), left_margin=5Plots.mm, bottom_margin=5Plots.mm)
plot!(sim_time, w3, label = L"АРВ\; со\; стабилизацией", ylims = (0.99,1.015), legend=:topleft)
The graph shows that the use of the ARV-M allowed a significantly faster damping of the generator rotor oscillations after the perturbation.
Graph of voltage on the generator busbars:
plot(sim_time, U1, title = L"Напряжение\; генератора", ylabel = L"U, о.е.", xlabel=L"Время,\; c", label = L"Без\; АРВ", legendfontsize = 10)
plot!(sim_time, U2, label = L"АРВ\; без\; стабилизации", legend=:bottomleft,size = (700,440), left_margin=5Plots.mm, bottom_margin=5Plots.mm)
plot!(sim_time, U3, label = L"АРВ\; со\; стабилизацией", ylims = (0.3, 1.1))
The graph shows that the use of ARV-M allowed to restore the generator busbar voltage after the disturbance to the original value.
Graph of the generator active power:
plot(sim_time, P1, title = L"Активная\; мощность\; генератора", ylabel = L"P, о.е.", xlabel=L"Время,\; c",label = L"Без\; АРВ")
plot!(sim_time, P2, label = L"АРВ\; без\; стабилизации", legendfontsize = 10, size = (700,440), left_margin=5Plots.mm, bottom_margin=5Plots.mm)
plot!(sim_time, P3, label = L"АРВ\; со\; стабилизацией", ylims = (0, 1.4), legend=:topleft)
The graph shows that the use of ARV-M has significantly improved the damping of the generator active power fluctuations after the disturbance.
Addition¶
Try to change the following model parameters yourself and investigate how this affects the dynamic stability:
- increase the overhead line length by 200 km;
- type of short circuit in the Fault (Three-Phase) block;
- change the ARV coefficients.
Conclusions¶
In this example the tools for command control of the Engee model and uploading of the simulation results have been used and the work with the Plots module has been shown. The operation of an explicitly pole generator through a transformer and a double-circuit overhead line on the SWBM was considered, taking into account an ARV-M, a hydraulic turbine and a speed controller. The influence of ARV-M on the power system operation was shown.