AsynchronousMachine.py 3.61 KB
Newer Older
1
from cimpy.cgmes_v2_4_15.RotatingMachine import RotatingMachine
2
3
4
5
6
7


class AsynchronousMachine(RotatingMachine):
	'''
	A rotating machine whose shaft rotates asynchronously with the electrical field.  Also known as an induction machine with no external connection to the rotor windings, e.g squirrel-cage induction machine.

Philipp Reuber's avatar
Philipp Reuber committed
8
	:AsynchronousMachineDynamics: Asynchronous machine dynamics model used to describe dynamic behavior of this asynchronous machine. Default: None
9
10
11
12
13
	:nominalFrequency: Nameplate data indicates if the machine is 50 or 60 Hz. Default: 0.0
	:nominalSpeed: Nameplate data.  Depends on the slip and number of pole pairs. Default: 0.0
	:converterFedDrive: Indicates whether the machine is a converter fed drive. Used for short circuit data exchange according to IEC 60909 Default: False
	:efficiency: Efficiency of the asynchronous machine at nominal operation in percent. Indicator for converter drive motors. Used for short circuit data exchange according to IEC 60909 Default: 0.0
	:iaIrRatio: Ratio of locked-rotor current to the rated current of the motor (Ia/Ir). Used for short circuit data exchange according to IEC 60909 Default: 0.0
Philipp Reuber's avatar
Philipp Reuber committed
14
	:polePairNumber: Number of pole pairs of stator. Used for short circuit data exchange according to IEC 60909 Default: 0
15
16
17
18
19
20
	:ratedMechanicalPower: Rated mechanical power (Pr in the IEC 60909-0). Used for short circuit data exchange according to IEC 60909. Default: 0.0
	:reversible: Indicates for converter drive motors if the power can be reversible. Used for short circuit data exchange according to IEC 60909 Default: False
	:rxLockedRotorRatio: Locked rotor ratio (R/X). Used for short circuit data exchange according to IEC 60909 Default: 0.0
	:asynchronousMachineType: Indicates the type of Asynchronous Machine (motor or generator). Default: None
		'''

21
22
	cgmesProfile = RotatingMachine.cgmesProfile

Philipp Reuber's avatar
Philipp Reuber committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
	possibleProfileList = {'class': [cgmesProfile.DY.value, cgmesProfile.EQ.value, cgmesProfile.SSH.value, ],
						'AsynchronousMachineDynamics': [cgmesProfile.DY.value, ],
						'nominalFrequency': [cgmesProfile.EQ.value, ],
						'nominalSpeed': [cgmesProfile.EQ.value, ],
						'converterFedDrive': [cgmesProfile.EQ.value, ],
						'efficiency': [cgmesProfile.EQ.value, ],
						'iaIrRatio': [cgmesProfile.EQ.value, ],
						'polePairNumber': [cgmesProfile.EQ.value, ],
						'ratedMechanicalPower': [cgmesProfile.EQ.value, ],
						'reversible': [cgmesProfile.EQ.value, ],
						'rxLockedRotorRatio': [cgmesProfile.EQ.value, ],
						'asynchronousMachineType': [cgmesProfile.SSH.value, ],
						 }

37
	serializationProfile = {}
38
39
40

	__doc__ += '\n Documentation of parent class RotatingMachine: \n' + RotatingMachine.__doc__ 

Philipp Reuber's avatar
Philipp Reuber committed
41
	def __init__(self, AsynchronousMachineDynamics = None, nominalFrequency = 0.0, nominalSpeed = 0.0, converterFedDrive = False, efficiency = 0.0, iaIrRatio = 0.0, polePairNumber = 0, ratedMechanicalPower = 0.0, reversible = False, rxLockedRotorRatio = 0.0, asynchronousMachineType = None,  *args, **kw_args):
42
43
		super().__init__(*args, **kw_args)
	
Philipp Reuber's avatar
Philipp Reuber committed
44
		self.AsynchronousMachineDynamics = AsynchronousMachineDynamics
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
		self.nominalFrequency = nominalFrequency
		self.nominalSpeed = nominalSpeed
		self.converterFedDrive = converterFedDrive
		self.efficiency = efficiency
		self.iaIrRatio = iaIrRatio
		self.polePairNumber = polePairNumber
		self.ratedMechanicalPower = ratedMechanicalPower
		self.reversible = reversible
		self.rxLockedRotorRatio = rxLockedRotorRatio
		self.asynchronousMachineType = asynchronousMachineType
		
	def __str__(self):
		str = 'class=AsynchronousMachine\n'
		attributes = self.__dict__
		for key in attributes.keys():
			str = str + key + '={}\n'.format(attributes[key])
		return str