Engee documentation
Notebook

Method of parameterization of synchronous machine models

Problems

In the Russian electric power industry, the reference book Neklepaev B.N., Kryuchkov I.P. "The electrical part of stations and substations" is traditionally used. Among other things, it contains the main parameters of domestic hydro and turbo generators.

Modern mathematical models in software packages (Engee, RSDAD, PSCAD, PowerFactory, PSS/E, MATLAB/Simulink) require a much larger set of parameters than indicated in the reference. Although there are tools like Block Parameterization Manager with various preset block models, however, they have a number of disadvantages, for example, if the parameter is not in the directory, it remains the default.

Therefore, every time an engineer builds a model, he is faced with the task of parameterizing the model blocks based on insufficient data from the reference book in order to achieve a certain accuracy of the simulation results.

We decided to get closer to solving this difficult task and created a method for parameterizing synchronous machines in order to make life a little easier for modeling engineers.

Description of the methodology

A table of parameters that are needed to parameterize mathematical models of synchronous machines with неявнополюсным (T) and явнополюсным (D) rotors, indicating the method of finding:

Parameter Designation How to find?
1 Rated full power [1]
2 Rated voltage [1]
3 Rated electrical frequency [1]
4 Rated rotation speed [1]
5 Excitation circuit current [1]
6 Voltage of the excitation circuit [1]
7 Active resistance of the stator [1] or for G [2, p.40]
8 Stator scattering reactance [1] or for G [2, p.40]
9 Synchronous reactance on the d-axis [1]
10 Synchronous reactance along the q axis [1] or for T[2, p.29], for G [2, p.40]
11 Zero-sequence reactance [1] or for G [2, p.40]
12 Transient reactance along the d-axis [1]
13 Transient reactance along the q axis for T[2, p.34]
14 Hyperconversion reactance along the d-axis [1]
15 Hyperconversion reactance along the q axis for T[2, p.34], for G [2, p.40]
16 Transient time constant along the d axis when the stator winding is open [1] or for G [2, p.40]
17 Hyperconversion time constant along the d axis with the stator winding open [3, p.48] or for G [2, p.39]
18 Transient time constant along the q axis when the stator winding is open for T[4, p.125]
19 Transient time constant along the d axis with the stator winding short-circuited [1] or [3, p.48]
20 Hyperconversion time constant along the d axis with a short-circuited stator winding [1] or [3, p.48]
21 The transient time constant along the q axis when the stator winding is short-circuited for T[2, p.39]
22 Superconvertive time constant along the q axis with a short-circuited stator winding for T[2, p.39], for G[2, p.39]

List of literary sources

[1] Neklepaev B.N., Kryuchkov I.P. The electrical part of stations and substations: Reference materials for course and diploma design. Moscow: Energoatomizdat, 1989.

[2] Kimbark E.W. Power System Stability. Volume III: Synchronous Machines. – John Wiley & Sons, 1956.

[3] GOST 10169-77. Electric synchronous three-phase generators with rotation speed 3000, 1500, 1000, 750, 600, 500 and 375 rpm. General technical conditions. Moscow: Publishing House of Standards, 1977.

[4] Anderson P.M., Fouad A.A. Power System Control and Stability. 2nd Edition. – IEEE Press, 2003.

Script for parameterization of synchronous machines

Next, let's consider a script that parses data from a JSON file with directory data and calculates the described method. The JSON file consists of a database of synchronous machines from the Neklepayev directory. At the moment, only two hydro and two turbo units have been added to it. In the future, it is planned to transfer all the data on cars from the Neklepayev reference book to it (or good people will share the digitized reference book with us in the comments, for which we will be very grateful).

Importing a json file with a database of synchronous machines from the Neklepayev directory:

In [ ]:
using JSON
db = JSON.parsefile("synchronous_machines.json")["SynchronousMachines"];

Selecting a synchronous machine from the list of available ones:

In [ ]:
println("List of synchronous machines:")
for (i, m) in enumerate(db)
    println("[$i] $(m["machine_model"]) ($(m["machine_type"]))")
end

print("\Enter the number of the selected car: ")
idx = parse(Int, readline())
m = db[idx]

println("\Selected: $(m["machine_model"])")
println("Type: $(m["machine_type"])\n")
Список синхронных машин:

[1] Т-6-2у3 (Turbo)
[2] Т-12-2у3 (Turbo)
[3] ВГС260/99-10 (Hydro)
[4] ВГС325/89-14 (Hydro)

Введите номер выбранной машниы: stdin>  1

Выбрана: Т-6-2у3
Тип: Turbo

We connect and execute the function for calculating parameters according to the described method for blocks of synchronous machines

In [ ]:
include("convert_parameters.jl");
calculated_parameters = convert_parameters(m)
Out[0]:
Dict{Symbol, Float64} with 25 entries:
  :V_rated      => 6.3
  :S_rated      => 7.5
  :T_p_d        => 0.77
  :X_d          => 1.651
  :X_q          => 1.651
  :T_pp_q0      => 0.0063
  :machine_type => 1.0
  :V_fd_base    => 140.0
  :w_rated      => 3000.0
  :T_pp_d       => 0.0063
  :X_l          => 0.147
  :X_p_q        => 0.9109
  :X_0          => 0.057
  :T_p_q        => 1.155
  :I_fd_base    => 249.0
  :X_pp_q       => 0.9109
  :R_a          => 0.0124
  :X_pp_d       => 0.1208
  :T_p_q0       => 2.09343
  :f_rated      => 50.0
  :T_p_d0       => 7.45
  :T_pp_q       => 0.0063
  :T_pp_d0      => 0.00890762
  :N_pole_pairs => 1.0
  :X_p_d        => 0.1708

We connect and execute the function to output the parameters of blocks of synchronous machines

In [ ]:
include("print_parameters.jl");
printed_parameters = print_parameters(calculated_parameters);
============================================================
ПАРАМЕТРЫ СИНХРОННОЙ МАШИНЫ
Тип: Турбогенератор (RoundRotor)
============================================================

1. Номинальные параметры:
   S_rated      = 7.5 МВА
   V_rated      = 6.3 кВ
   f_rated      = 50.0 Гц
   N_pole_pairs = 1.0

2. Параметры цепи возбуждения:
   I_fd_base = 249.0 А
   V_fd_base = 140.0 В

3. Основные сопротивления:
   R_a = 0.0124 о.е.
   X_l = 0.147 о.е.
   X_d = 1.651 о.е.
   X_q = 1.651 о.е.
   X_0 = 0.057 о.е.

4. Переходные и сверхпереходные сопротивления:
   X_p_d  = 0.1708 о.е.
   X_pp_d = 0.1208 о.е.
   X_p_q  = 0.9109 о.е.
   X_pp_q = 0.9109 о.е.

5. Постоянные времени по оси d:
   T_p_d0  = 7.45 с (ХХ)
   T_p_d   = 0.77 с (КЗ)
   T_pp_d0 = 0.008907615894039735 с (ХХ)
   T_pp_d  = 0.0063 с (КЗ)

6. Постоянные времени по оси q:
   T_p_q0  = 2.0934295751454606 с (ХХ)
   T_p_q   = 1.155 с (КЗ)
   T_pp_q0 = 0.0063 с (ХХ)
   T_pp_q  = 0.0063 с (КЗ)
============================================================

Conclusions

A method of parameterization of blocks of synchronous machines with неявнополюсным and явнополюсным by the rotor based on limited reference data. The methodology solves the problem of inconsistency between outdated reference books and modern modeling requirements by offering a systematic approach to calculating missing parameters. The methodology is a "living document" - it will develop as experience accumulates and constructive comments arrive.

A script on Julia is presented that automates the process of parameterization of blocks, integrates data from various sources and provides a single interface for processing both turbo and hydro generators.

We invite the community of engineers, researchers and teachers to cooperate: test the methodology, suggest improvements, and share your experience. Your comments and suggestions will help make this tool more accurate and useful for all specialists in the field of electric power industry.