1 # Copyright (C) 2010 Richard Lincoln
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA, USA
17 from CIM14
.Dynamics
.ExcitationSystems
.ExcitationSystem
import ExcitationSystem
19 class ExcAC7B(ExcitationSystem
):
20 """IEEE (2005) AC7B Model These excitation systems consist of an ac alternator with either stationary or rotating rectifiers to produce the dc field requirements. Upgrades to earlier ac excitation systems, which replace only the controls but retain the ac alternator and diode rectifier bridge, have resulted in this new model. Some of the features of this excitation system include a high bandwidth inner loop regulating generator field voltage or exciter current (<i>KF</i>2, <i>KF</i>1), a fast exciter current limit, <i>VFEMAX</i>, to protect the field of the ac alternator, and the PID generator voltage regulator (AVR). An alternative rate feedback loop (<i>KF</i>, <i>TF</i>) is provided for stabilization if the AVR does not include a derivative term. If a PSS control is supplied, the Type PSS2B or PSS3B models are appropriate.
23 def __init__(self
, kir
=0.0, kpr
=0.0, vfemax
=0.0, te
=0.0, vemin
=0.0, ke
=0.0, kp
=0.0, kd
=0.0, kdr
=0.0, kf3
=0.0, e1
=0.0, tdr
=0.0, se2
=0.0, kf1
=0.0, e2
=0.0, kc
=0.0, vamin
=0.0, se1
=0.0, vrmin
=0.0, tf
=0.0, vrmax
=0.0, kf2
=0.0, kl
=0.0, kpa
=0.0, kia
=0.0, tr
=0.0, vamax
=0.0, *args
, **kw_args
):
24 """Initialises a new 'ExcAC7B' instance.
26 @param kir: Regulator integral gain (>= 0.)
27 @param kpr: Regulator proportional gain (> 0. if kir = 0.)
28 @param vfemax: Exciter field current limit parameter
29 @param te: Exciter time constant, sec. (> 0.)
30 @param vemin: Minimum exciter ouput voltage (<= 0.)
31 @param ke: Exciter field resistance constant
32 @param kp: Exciter field voltage source gain (> 0.)
33 @param kd: Exciter internal reactance (>= 0.)
34 @param kdr: Regulator derivative gain (>= 0.)
35 @param kf3: Rate feedback gain (>= 0.)
36 @param e1: Field voltage value 1 (> 0.)
37 @param tdr: Derivative gain washout time constant (>= 0.)
38 @param se2: Saturation factor at e2 (>= 0.)
39 @param kf1: Field voltage feedback gain (>= 0.)
40 @param e2: Field voltage value 2. (> 0.)
41 @param kc: Rectifier regulation factor (>= 0.)
42 @param vamin: Minimum amplifier output (< 0.)
43 @param se1: Saturation factor at e1 (>= 0.)
44 @param vrmin: Minimum regulator output (< 0.)
45 @param tf: Rate feedback time constant (> 0.)
46 @param vrmax: Maximum regulator output (> 0.)
47 @param kf2: Exciter field current feedback gain (>= 0.)
48 @param kl: Exciter field voltage lower limit parameter
49 @param kpa: Amplifier proportional gain (> 0. if kia = 0.)
50 @param kia: Amplifier integral gain (>= 0.)
51 @param tr: Filter time constant (>= 0.)
52 @param vamax: Maximum amplifier output (> 0.)
54 #: Regulator integral gain (>= 0.)
57 #: Regulator proportional gain (> 0. if kir = 0.)
60 #: Exciter field current limit parameter
63 #: Exciter time constant, sec. (> 0.)
66 #: Minimum exciter ouput voltage (<= 0.)
69 #: Exciter field resistance constant
72 #: Exciter field voltage source gain (> 0.)
75 #: Exciter internal reactance (>= 0.)
78 #: Regulator derivative gain (>= 0.)
81 #: Rate feedback gain (>= 0.)
84 #: Field voltage value 1 (> 0.)
87 #: Derivative gain washout time constant (>= 0.)
90 #: Saturation factor at e2 (>= 0.)
93 #: Field voltage feedback gain (>= 0.)
96 #: Field voltage value 2. (> 0.)
99 #: Rectifier regulation factor (>= 0.)
102 #: Minimum amplifier output (< 0.)
105 #: Saturation factor at e1 (>= 0.)
108 #: Minimum regulator output (< 0.)
111 #: Rate feedback time constant (> 0.)
114 #: Maximum regulator output (> 0.)
117 #: Exciter field current feedback gain (>= 0.)
120 #: Exciter field voltage lower limit parameter
123 #: Amplifier proportional gain (> 0. if kia = 0.)
126 #: Amplifier integral gain (>= 0.)
129 #: Filter time constant (>= 0.)
132 #: Maximum amplifier output (> 0.)
135 super(ExcAC7B
, self
).__init
__(*args
, **kw_args
)
137 _attrs
= ["kir", "kpr", "vfemax", "te", "vemin", "ke", "kp", "kd", "kdr", "kf3", "e1", "tdr", "se2", "kf1", "e2", "kc", "vamin", "se1", "vrmin", "tf", "vrmax", "kf2", "kl", "kpa", "kia", "tr", "vamax"]
138 _attr_types
= {"kir": float, "kpr": float, "vfemax": float, "te": float, "vemin": float, "ke": float, "kp": float, "kd": float, "kdr": float, "kf3": float, "e1": float, "tdr": float, "se2": float, "kf1": float, "e2": float, "kc": float, "vamin": float, "se1": float, "vrmin": float, "tf": float, "vrmax": float, "kf2": float, "kl": float, "kpa": float, "kia": float, "tr": float, "vamax": float}
139 _defaults
= {"kir": 0.0, "kpr": 0.0, "vfemax": 0.0, "te": 0.0, "vemin": 0.0, "ke": 0.0, "kp": 0.0, "kd": 0.0, "kdr": 0.0, "kf3": 0.0, "e1": 0.0, "tdr": 0.0, "se2": 0.0, "kf1": 0.0, "e2": 0.0, "kc": 0.0, "vamin": 0.0, "se1": 0.0, "vrmin": 0.0, "tf": 0.0, "vrmax": 0.0, "kf2": 0.0, "kl": 0.0, "kpa": 0.0, "kia": 0.0, "tr": 0.0, "vamax": 0.0}