Source code for cimpy.cgmes_v2_4_15.SynchronousMachineEquivalentCircuit

from .SynchronousMachineDetailed import SynchronousMachineDetailed
from .CGMESProfile import Profile


[docs]class SynchronousMachineEquivalentCircuit(SynchronousMachineDetailed): """ The electrical equations for all variations of the synchronous models are based on the SynchronousEquivalentCircuit diagram for the direct and quadrature axes. = + = + * / ( + ) = + * * / ( * + * + * ) = + = + * / (+ ) = + ** / ( * + * + * ) = ( + ) / ( * ) = ( * + * + * ) / ( * * ( + ) = ( + ) / ( * ) = ( * + * + * )/ ( * * ( + ) Same equations using CIM attributes from SynchronousMachineTimeConstantReactance class on left of = sign and SynchronousMachineEquivalentCircuit class on right (except as noted): xDirectSync = xad + RotatingMachineDynamics.statorLeakageReactance xDirectTrans = RotatingMachineDynamics.statorLeakageReactance + xad * xfd / (xad + xfd) xDirectSubtrans = RotatingMachineDynamics.statorLeakageReactance + xad * xfd * x1d / (xad * xfd + xad * x1d + xfd * x1d) xQuadSync = xaq + RotatingMachineDynamics.statorLeakageReactance xQuadTrans = RotatingMachineDynamics.statorLeakageReactance + xaq * x1q / (xaq+ x1q) xQuadSubtrans = RotatingMachineDynamics.statorLeakageReactance + xaq * x1q* x2q / (xaq * x1q + xaq * x2q + x1q * x2q) tpdo = (xad + xfd) / (2*pi*nominal frequency * rfd) tppdo = (xad * xfd + xad * x1d + xfd * x1d) / (2*pi*nominal frequency * r1d * (xad + xfd) tpqo = (xaq + x1q) / (2*pi*nominal frequency * r1q) tppqo = (xaq * x1q + xaq * x2q + x1q * x2q)/ (2*pi*nominal frequency * r2q * (xaq + x1q). Are only valid for a simplified model where "Canay" reactance is zero. :r1d: D-axis damper 1 winding resistance. Default: 0.0 :r1q: Q-axis damper 1 winding resistance. Default: 0.0 :r2q: Q-axis damper 2 winding resistance. Default: 0.0 :rfd: Field winding resistance. Default: 0.0 :x1d: D-axis damper 1 winding leakage reactance. Default: 0.0 :x1q: Q-axis damper 1 winding leakage reactance. Default: 0.0 :x2q: Q-axis damper 2 winding leakage reactance. Default: 0.0 :xad: D-axis mutual reactance. Default: 0.0 :xaq: Q-axis mutual reactance. Default: 0.0 :xf1d: Differential mutual (`Canay`) reactance. Default: 0.0 :xfd: Field winding leakage reactance. Default: 0.0 """ possibleProfileList = { "class": [Profile.DY.value, ], "r1d": [Profile.DY.value, ], "r1q": [Profile.DY.value, ], "r2q": [Profile.DY.value, ], "rfd": [Profile.DY.value, ], "x1d": [Profile.DY.value, ], "x1q": [Profile.DY.value, ], "x2q": [Profile.DY.value, ], "xad": [Profile.DY.value, ], "xaq": [Profile.DY.value, ], "xf1d": [Profile.DY.value, ], "xfd": [Profile.DY.value, ], } serializationProfile = {} recommendedClassProfile = Profile.DY.value __doc__ += "\nDocumentation of parent class SynchronousMachineDetailed:\n" + SynchronousMachineDetailed.__doc__ def __init__(self, r1d = 0.0, r1q = 0.0, r2q = 0.0, rfd = 0.0, x1d = 0.0, x1q = 0.0, x2q = 0.0, xad = 0.0, xaq = 0.0, xf1d = 0.0, xfd = 0.0, *args, **kw_args): super().__init__(*args, **kw_args) self.r1d = r1d self.r1q = r1q self.r2q = r2q self.rfd = rfd self.x1d = x1d self.x1q = x1q self.x2q = x2q self.xad = xad self.xaq = xaq self.xf1d = xf1d self.xfd = xfd def __str__(self): str = "class=SynchronousMachineEquivalentCircuit\n" attributes = self.__dict__ for key in attributes.keys(): str = str + key + "={}\n".format(attributes[key]) return str