Removing package directories.
[PyCIM.git] / CIM14 / Dynamics / ExcitationSystems / ExcAC7B.py
blobd7df55ca028daae030cd583a226f02a8af36c62b
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.
21 """
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 (&gt;= 0.)
27 @param kpr: Regulator proportional gain (&gt; 0. if kir = 0.)
28 @param vfemax: Exciter field current limit parameter
29 @param te: Exciter time constant, sec. (&gt; 0.)
30 @param vemin: Minimum exciter ouput voltage (&lt;= 0.)
31 @param ke: Exciter field resistance constant
32 @param kp: Exciter field voltage source gain (&gt; 0.)
33 @param kd: Exciter internal reactance (&gt;= 0.)
34 @param kdr: Regulator derivative gain (&gt;= 0.)
35 @param kf3: Rate feedback gain (&gt;= 0.)
36 @param e1: Field voltage value 1 (&gt; 0.)
37 @param tdr: Derivative gain washout time constant (&gt;= 0.)
38 @param se2: Saturation factor at e2 (&gt;= 0.)
39 @param kf1: Field voltage feedback gain (&gt;= 0.)
40 @param e2: Field voltage value 2. (&gt; 0.)
41 @param kc: Rectifier regulation factor (&gt;= 0.)
42 @param vamin: Minimum amplifier output (&lt; 0.)
43 @param se1: Saturation factor at e1 (&gt;= 0.)
44 @param vrmin: Minimum regulator output (&lt; 0.)
45 @param tf: Rate feedback time constant (&gt; 0.)
46 @param vrmax: Maximum regulator output (&gt; 0.)
47 @param kf2: Exciter field current feedback gain (&gt;= 0.)
48 @param kl: Exciter field voltage lower limit parameter
49 @param kpa: Amplifier proportional gain (&gt; 0. if kia = 0.)
50 @param kia: Amplifier integral gain (&gt;= 0.)
51 @param tr: Filter time constant (&gt;= 0.)
52 @param vamax: Maximum amplifier output (&gt; 0.)
53 """
54 #: Regulator integral gain (&gt;= 0.)
55 self.kir = kir
57 #: Regulator proportional gain (&gt; 0. if kir = 0.)
58 self.kpr = kpr
60 #: Exciter field current limit parameter
61 self.vfemax = vfemax
63 #: Exciter time constant, sec. (&gt; 0.)
64 self.te = te
66 #: Minimum exciter ouput voltage (&lt;= 0.)
67 self.vemin = vemin
69 #: Exciter field resistance constant
70 self.ke = ke
72 #: Exciter field voltage source gain (&gt; 0.)
73 self.kp = kp
75 #: Exciter internal reactance (&gt;= 0.)
76 self.kd = kd
78 #: Regulator derivative gain (&gt;= 0.)
79 self.kdr = kdr
81 #: Rate feedback gain (&gt;= 0.)
82 self.kf3 = kf3
84 #: Field voltage value 1 (&gt; 0.)
85 self.e1 = e1
87 #: Derivative gain washout time constant (&gt;= 0.)
88 self.tdr = tdr
90 #: Saturation factor at e2 (&gt;= 0.)
91 self.se2 = se2
93 #: Field voltage feedback gain (&gt;= 0.)
94 self.kf1 = kf1
96 #: Field voltage value 2. (&gt; 0.)
97 self.e2 = e2
99 #: Rectifier regulation factor (&gt;= 0.)
100 self.kc = kc
102 #: Minimum amplifier output (&lt; 0.)
103 self.vamin = vamin
105 #: Saturation factor at e1 (&gt;= 0.)
106 self.se1 = se1
108 #: Minimum regulator output (&lt; 0.)
109 self.vrmin = vrmin
111 #: Rate feedback time constant (&gt; 0.)
112 self.tf = tf
114 #: Maximum regulator output (&gt; 0.)
115 self.vrmax = vrmax
117 #: Exciter field current feedback gain (&gt;= 0.)
118 self.kf2 = kf2
120 #: Exciter field voltage lower limit parameter
121 self.kl = kl
123 #: Amplifier proportional gain (&gt; 0. if kia = 0.)
124 self.kpa = kpa
126 #: Amplifier integral gain (&gt;= 0.)
127 self.kia = kia
129 #: Filter time constant (&gt;= 0.)
130 self.tr = tr
132 #: Maximum amplifier output (&gt; 0.)
133 self.vamax = vamax
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}
140 _enums = {}
141 _refs = []
142 _many_refs = []