Removing package directories.
[PyCIM.git] / CIM14 / Dynamics / ExcitationSystems / ExcAC8B.py
blob39077d2e66647bcb5ada7cc26e04ffa9a20369ff
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 ExcAC8B(ExcitationSystem):
20 """IEEE (2005) AC8B Model The AVR in this model consists of PID control, with separate constants for the proportional (<i>KPR</i>), integral (<i>KIR</i>), and derivative (<i>KDR</i>) gains. The representation of the brushless exciter (<i>TE</i>, <i>KE</i>, <i>SE</i>, <i>KC</i>, <i>KD</i>) is similar to the model Type AC2A. The Type AC8B model can be used to represent static voltage regulators applied to brushless excitation systems. Digitally based voltage regulators feeding dc rotating main exciters can be represented with the AC Type AC8B model with the parameters <i>KC </i>and <i>KD </i>set to 0. For thyristor power stages fed from the generator terminals, the limits <i>VRMAX </i>and <i>VRMIN </i>should be a function of terminal voltage: <i>VT </i>x <i>VRMAX </i>and <i>VT </i>x <i>VRMIN</i>.
21 """
23 def __init__(self, vfemax=0.0, vrmin=0.0, ta=0.0, tdr=0.0, vtmult=0.0, ka=0.0, kdr=0.0, se1=0.0, e1=0.0, vemin=0.0, te=0.0, ke=0.0, se2=0.0, tr=0.0, kir=0.0, kpr=0.0, vrmax=0.0, kd=0.0, e2=0.0, kc=0.0, *args, **kw_args):
24 """Initialises a new 'ExcAC8B' instance.
26 @param vfemax: Exciter field current limit parameter
27 @param vrmin: Minimum controller output (&lt;= 0.)
28 @param ta: Amplifier time constant (&gt;= 0.)
29 @param tdr: Voltage Regulator Derivative Time Constant (&gt; 0. if kdr &gt; 0.)
30 @param vtmult: if not 0, multiply vrmax and vrmin by terminal voltage
31 @param ka: Amplifier gain (&gt; 0.)
32 @param kdr: Voltage Regulator Derivative Gain (&gt;= 0.)
33 @param se1: Saturation factor at e1 (&gt;= 0.)
34 @param e1: Field voltage value 1 (&gt; 0.)
35 @param vemin: Minimum exciter ouput voltage (&lt;= 0.)
36 @param te: Exciter field time constant (&gt; 0.)
37 @param ke: Exciter field proportional constant
38 @param se2: Saturation factor at e2 (&gt;= 0.)
39 @param tr: Voltage transducer time constant (&gt;= 0.)
40 @param kir: Voltage Regulator Integral Gain (&gt;= 0.)
41 @param kpr: Voltage Regulator Proportional Gain (&gt; 0. if kir = 0.)
42 @param vrmax: Maximum controller output (&gt; 0.)
43 @param kd: Exciter regulation factor (&gt;= 0.)
44 @param e2: Field voltage value 2. (&gt; 0.)
45 @param kc: Rectifier regulation factor (&gt;= 0.)
46 """
47 #: Exciter field current limit parameter
48 self.vfemax = vfemax
50 #: Minimum controller output (&lt;= 0.)
51 self.vrmin = vrmin
53 #: Amplifier time constant (&gt;= 0.)
54 self.ta = ta
56 #: Voltage Regulator Derivative Time Constant (&gt; 0. if kdr &gt; 0.)
57 self.tdr = tdr
59 #: if not 0, multiply vrmax and vrmin by terminal voltage
60 self.vtmult = vtmult
62 #: Amplifier gain (&gt; 0.)
63 self.ka = ka
65 #: Voltage Regulator Derivative Gain (&gt;= 0.)
66 self.kdr = kdr
68 #: Saturation factor at e1 (&gt;= 0.)
69 self.se1 = se1
71 #: Field voltage value 1 (&gt; 0.)
72 self.e1 = e1
74 #: Minimum exciter ouput voltage (&lt;= 0.)
75 self.vemin = vemin
77 #: Exciter field time constant (&gt; 0.)
78 self.te = te
80 #: Exciter field proportional constant
81 self.ke = ke
83 #: Saturation factor at e2 (&gt;= 0.)
84 self.se2 = se2
86 #: Voltage transducer time constant (&gt;= 0.)
87 self.tr = tr
89 #: Voltage Regulator Integral Gain (&gt;= 0.)
90 self.kir = kir
92 #: Voltage Regulator Proportional Gain (&gt; 0. if kir = 0.)
93 self.kpr = kpr
95 #: Maximum controller output (&gt; 0.)
96 self.vrmax = vrmax
98 #: Exciter regulation factor (&gt;= 0.)
99 self.kd = kd
101 #: Field voltage value 2. (&gt; 0.)
102 self.e2 = e2
104 #: Rectifier regulation factor (&gt;= 0.)
105 self.kc = kc
107 super(ExcAC8B, self).__init__(*args, **kw_args)
109 _attrs = ["vfemax", "vrmin", "ta", "tdr", "vtmult", "ka", "kdr", "se1", "e1", "vemin", "te", "ke", "se2", "tr", "kir", "kpr", "vrmax", "kd", "e2", "kc"]
110 _attr_types = {"vfemax": float, "vrmin": float, "ta": float, "tdr": float, "vtmult": float, "ka": float, "kdr": float, "se1": float, "e1": float, "vemin": float, "te": float, "ke": float, "se2": float, "tr": float, "kir": float, "kpr": float, "vrmax": float, "kd": float, "e2": float, "kc": float}
111 _defaults = {"vfemax": 0.0, "vrmin": 0.0, "ta": 0.0, "tdr": 0.0, "vtmult": 0.0, "ka": 0.0, "kdr": 0.0, "se1": 0.0, "e1": 0.0, "vemin": 0.0, "te": 0.0, "ke": 0.0, "se2": 0.0, "tr": 0.0, "kir": 0.0, "kpr": 0.0, "vrmax": 0.0, "kd": 0.0, "e2": 0.0, "kc": 0.0}
112 _enums = {}
113 _refs = []
114 _many_refs = []