|
1 | | -from .ConductingEquipment import ConductingEquipment |
2 | | - |
3 | | - |
4 | | -class ACDCConverter(ConductingEquipment): |
5 | | - ''' |
6 | | - A unit with valves for three phases, together with unit control equipment, essential protective and switching devices, DC storage capacitors, phase reactors and auxiliaries, if any, used for conversion. |
7 | | -
|
8 | | - :baseS: Base apparent power of the converter pole. Default: 0.0 |
9 | | - :idleLoss: Active power loss in pole at no power transfer. Converter configuration data used in power flow. Default: 0.0 |
10 | | - :maxUdc: The maximum voltage on the DC side at which the converter should operate. Converter configuration data used in power flow. Default: 0.0 |
11 | | - :minUdc: Min allowed converter DC voltage. Converter configuration data used in power flow. Default: 0.0 |
12 | | - :numberOfValves: Number of valves in the converter. Used in loss calculations. Default: 0 |
13 | | - :ratedUdc: Rated converter DC voltage, also called UdN. Converter configuration data used in power flow. Default: 0.0 |
14 | | - :resistiveLoss: Converter configuration data used in power flow. Refer to poleLossP. Default: 0.0 |
15 | | - :switchingLoss: Switching losses, relative to the base apparent power `baseS`. Refer to poleLossP. Default: 0.0 |
16 | | - :valveU0: Valve threshold voltage. Forward voltage drop when the valve is conducting. Used in loss calculations, i.e. the switchLoss depend on numberOfValves * valveU0. Default: 0.0 |
17 | | - :DCTerminals: Default: "list" |
18 | | - :PccTerminal: All converters` DC sides linked to this point of common coupling terminal. Default: None |
19 | | - :p: Active power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used. Default: 0.0 |
20 | | - :q: Reactive power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used. Default: 0.0 |
21 | | - :targetPpcc: Real power injection target in AC grid, at point of common coupling. Default: 0.0 |
22 | | - :targetUdc: Target value for DC voltage magnitude. Default: 0.0 |
23 | | - :idc: Converter DC current, also called Id. Converter state variable, result from power flow. Default: 0.0 |
24 | | - :poleLossP: The active power loss at a DC Pole = idleLoss + switchingLoss*|Idc| + resitiveLoss*Idc^2 For lossless operation Pdc=Pac For rectifier operation with losses Pdc=Pac-lossP For inverter operation with losses Pdc=Pac+lossP Converter state variable used in power flow. Default: 0.0 |
25 | | - :uc: Converter voltage, the voltage at the AC side of the bridge. Converter state variable, result from power flow. Default: 0.0 |
26 | | - :udc: Converter voltage at the DC side, also called Ud. Converter state variable, result from power flow. Default: 0.0 |
27 | | - ''' |
28 | | - |
29 | | - cgmesProfile = ConductingEquipment.cgmesProfile |
30 | | - |
31 | | - possibleProfileList = {'class': [cgmesProfile.EQ.value, cgmesProfile.SSH.value, cgmesProfile.SV.value, ], |
32 | | - 'baseS': [cgmesProfile.EQ.value, ], |
33 | | - 'idleLoss': [cgmesProfile.EQ.value, ], |
34 | | - 'maxUdc': [cgmesProfile.EQ.value, ], |
35 | | - 'minUdc': [cgmesProfile.EQ.value, ], |
36 | | - 'numberOfValves': [cgmesProfile.EQ.value, ], |
37 | | - 'ratedUdc': [cgmesProfile.EQ.value, ], |
38 | | - 'resistiveLoss': [cgmesProfile.EQ.value, ], |
39 | | - 'switchingLoss': [cgmesProfile.EQ.value, ], |
40 | | - 'valveU0': [cgmesProfile.EQ.value, ], |
41 | | - 'DCTerminals': [cgmesProfile.EQ.value, ], |
42 | | - 'PccTerminal': [cgmesProfile.EQ.value, ], |
43 | | - 'p': [cgmesProfile.SSH.value, ], |
44 | | - 'q': [cgmesProfile.SSH.value, ], |
45 | | - 'targetPpcc': [cgmesProfile.SSH.value, ], |
46 | | - 'targetUdc': [cgmesProfile.SSH.value, ], |
47 | | - 'idc': [cgmesProfile.SV.value, ], |
48 | | - 'poleLossP': [cgmesProfile.SV.value, ], |
49 | | - 'uc': [cgmesProfile.SV.value, ], |
50 | | - 'udc': [cgmesProfile.SV.value, ], |
51 | | - } |
52 | | - |
53 | | - serializationProfile = {} |
54 | | - |
55 | | - __doc__ += '\n Documentation of parent class ConductingEquipment: \n' + ConductingEquipment.__doc__ |
56 | | - |
57 | | - def __init__(self, baseS = 0.0, idleLoss = 0.0, maxUdc = 0.0, minUdc = 0.0, numberOfValves = 0, ratedUdc = 0.0, resistiveLoss = 0.0, switchingLoss = 0.0, valveU0 = 0.0, DCTerminals = "list", PccTerminal = None, p = 0.0, q = 0.0, targetPpcc = 0.0, targetUdc = 0.0, idc = 0.0, poleLossP = 0.0, uc = 0.0, udc = 0.0, *args, **kw_args): |
58 | | - super().__init__(*args, **kw_args) |
59 | | - |
60 | | - self.baseS = baseS |
61 | | - self.idleLoss = idleLoss |
62 | | - self.maxUdc = maxUdc |
63 | | - self.minUdc = minUdc |
64 | | - self.numberOfValves = numberOfValves |
65 | | - self.ratedUdc = ratedUdc |
66 | | - self.resistiveLoss = resistiveLoss |
67 | | - self.switchingLoss = switchingLoss |
68 | | - self.valveU0 = valveU0 |
69 | | - self.DCTerminals = DCTerminals |
70 | | - self.PccTerminal = PccTerminal |
71 | | - self.p = p |
72 | | - self.q = q |
73 | | - self.targetPpcc = targetPpcc |
74 | | - self.targetUdc = targetUdc |
75 | | - self.idc = idc |
76 | | - self.poleLossP = poleLossP |
77 | | - self.uc = uc |
78 | | - self.udc = udc |
79 | | - |
80 | | - def __str__(self): |
81 | | - str = 'class=ACDCConverter\n' |
82 | | - attributes = self.__dict__ |
83 | | - for key in attributes.keys(): |
84 | | - str = str + key + '={}\n'.format(attributes[key]) |
85 | | - return str |
| 1 | +from .ConductingEquipment import ConductingEquipment |
| 2 | +from .CGMESProfile import Profile |
| 3 | + |
| 4 | + |
| 5 | +class ACDCConverter(ConductingEquipment): |
| 6 | + """ |
| 7 | + A unit with valves for three phases, together with unit control equipment, essential protective and switching devices, DC storage capacitors, phase reactors and auxiliaries, if any, used for conversion. |
| 8 | +
|
| 9 | + :DCTerminals: Default: "list" |
| 10 | + :PccTerminal: All converters` DC sides linked to this point of common coupling terminal. Default: None |
| 11 | + :baseS: Base apparent power of the converter pole. Default: 0.0 |
| 12 | + :idc: Converter DC current, also called Id. Converter state variable, result from power flow. Default: 0.0 |
| 13 | + :idleLoss: Active power loss in pole at no power transfer. Converter configuration data used in power flow. Default: 0.0 |
| 14 | + :maxUdc: The maximum voltage on the DC side at which the converter should operate. Converter configuration data used in power flow. Default: 0.0 |
| 15 | + :minUdc: Min allowed converter DC voltage. Converter configuration data used in power flow. Default: 0.0 |
| 16 | + :numberOfValves: Number of valves in the converter. Used in loss calculations. Default: 0 |
| 17 | + :p: Active power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used. Default: 0.0 |
| 18 | + :poleLossP: The active power loss at a DC Pole = idleLoss + switchingLoss*|Idc| + resitiveLoss*Idc^2 For lossless operation Pdc=Pac For rectifier operation with losses Pdc=Pac-lossP For inverter operation with losses Pdc=Pac+lossP Converter state variable used in power flow. Default: 0.0 |
| 19 | + :q: Reactive power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. Starting value for a steady state solution in the case a simplified power flow model is used. Default: 0.0 |
| 20 | + :ratedUdc: Rated converter DC voltage, also called UdN. Converter configuration data used in power flow. Default: 0.0 |
| 21 | + :resistiveLoss: Converter configuration data used in power flow. Refer to poleLossP. Default: 0.0 |
| 22 | + :switchingLoss: Switching losses, relative to the base apparent power `baseS`. Refer to poleLossP. Default: 0.0 |
| 23 | + :targetPpcc: Real power injection target in AC grid, at point of common coupling. Default: 0.0 |
| 24 | + :targetUdc: Target value for DC voltage magnitude. Default: 0.0 |
| 25 | + :uc: Converter voltage, the voltage at the AC side of the bridge. Converter state variable, result from power flow. Default: 0.0 |
| 26 | + :udc: Converter voltage at the DC side, also called Ud. Converter state variable, result from power flow. Default: 0.0 |
| 27 | + :valveU0: Valve threshold voltage. Forward voltage drop when the valve is conducting. Used in loss calculations, i.e. the switchLoss depend on numberOfValves * valveU0. Default: 0.0 |
| 28 | + """ |
| 29 | + |
| 30 | + possibleProfileList = { |
| 31 | + "class": [Profile.EQ.value, Profile.SV.value, Profile.SSH.value, ], |
| 32 | + "DCTerminals": [Profile.EQ.value, ], |
| 33 | + "PccTerminal": [Profile.EQ.value, ], |
| 34 | + "baseS": [Profile.EQ.value, ], |
| 35 | + "idc": [Profile.SV.value, ], |
| 36 | + "idleLoss": [Profile.EQ.value, ], |
| 37 | + "maxUdc": [Profile.EQ.value, ], |
| 38 | + "minUdc": [Profile.EQ.value, ], |
| 39 | + "numberOfValves": [Profile.EQ.value, ], |
| 40 | + "p": [Profile.SSH.value, ], |
| 41 | + "poleLossP": [Profile.SV.value, ], |
| 42 | + "q": [Profile.SSH.value, ], |
| 43 | + "ratedUdc": [Profile.EQ.value, ], |
| 44 | + "resistiveLoss": [Profile.EQ.value, ], |
| 45 | + "switchingLoss": [Profile.EQ.value, ], |
| 46 | + "targetPpcc": [Profile.SSH.value, ], |
| 47 | + "targetUdc": [Profile.SSH.value, ], |
| 48 | + "uc": [Profile.SV.value, ], |
| 49 | + "udc": [Profile.SV.value, ], |
| 50 | + "valveU0": [Profile.EQ.value, ], |
| 51 | + } |
| 52 | + |
| 53 | + serializationProfile = {} |
| 54 | + |
| 55 | + recommendedClassProfile = Profile.EQ.value |
| 56 | + |
| 57 | + __doc__ += "\nDocumentation of parent class ConductingEquipment:\n" + ConductingEquipment.__doc__ |
| 58 | + |
| 59 | + def __init__(self, DCTerminals = "list", PccTerminal = None, baseS = 0.0, idc = 0.0, idleLoss = 0.0, maxUdc = 0.0, minUdc = 0.0, numberOfValves = 0, p = 0.0, poleLossP = 0.0, q = 0.0, ratedUdc = 0.0, resistiveLoss = 0.0, switchingLoss = 0.0, targetPpcc = 0.0, targetUdc = 0.0, uc = 0.0, udc = 0.0, valveU0 = 0.0, *args, **kw_args): |
| 60 | + super().__init__(*args, **kw_args) |
| 61 | + |
| 62 | + self.DCTerminals = DCTerminals |
| 63 | + self.PccTerminal = PccTerminal |
| 64 | + self.baseS = baseS |
| 65 | + self.idc = idc |
| 66 | + self.idleLoss = idleLoss |
| 67 | + self.maxUdc = maxUdc |
| 68 | + self.minUdc = minUdc |
| 69 | + self.numberOfValves = numberOfValves |
| 70 | + self.p = p |
| 71 | + self.poleLossP = poleLossP |
| 72 | + self.q = q |
| 73 | + self.ratedUdc = ratedUdc |
| 74 | + self.resistiveLoss = resistiveLoss |
| 75 | + self.switchingLoss = switchingLoss |
| 76 | + self.targetPpcc = targetPpcc |
| 77 | + self.targetUdc = targetUdc |
| 78 | + self.uc = uc |
| 79 | + self.udc = udc |
| 80 | + self.valveU0 = valveU0 |
| 81 | + |
| 82 | + def __str__(self): |
| 83 | + str = "class=ACDCConverter\n" |
| 84 | + attributes = self.__dict__ |
| 85 | + for key in attributes.keys(): |
| 86 | + str = str + key + "={}\n".format(attributes[key]) |
| 87 | + return str |
0 commit comments