Skip to content

transformer

This module contains classes for representing transformer.

Transformer

Bases: ABC

Interface for base transformer representation

Source code in shift\transformer.py
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
class Transformer(ABC):
    """Interface for base transformer representation"""

    @property
    def name(self) -> str:
        """Name of the transformer"""
        return self._name

    @name.setter
    def name(self, name: str) -> None:
        self._name = name

    @property
    def latitude(self) -> float:
        """Latitude property where transformer is located"""
        return self._latitude

    @latitude.setter
    def latitude(self, latitude: float) -> None:
        """Latitude setter method for the transformer"""
        if latitude < MIN_LATITUDE or latitude > MAX_LATITUDE:
            raise LatitudeNotInRangeError(latitude)
        self._latitude = latitude

    @property
    def longitude(self) -> float:
        """Longitude property where transformer is located"""
        return self._longitude

    @longitude.setter
    def longitude(self, longitude: float) -> None:
        """Longitude setter method for the transformer"""
        if longitude < MIN_LONGITUDE or longitude > MAX_LONGITUDE:
            raise LongitudeNotInRangeError(longitude)
        self._longitude = longitude

    @property
    def num_phase(self) -> NumPhase:
        """Number of phase property for the transformer"""
        return self._num_phase

    @num_phase.setter
    def num_phase(self, num_phase: NumPhase) -> None:
        """Number of phase setter method for the transformer"""
        self._num_phase = num_phase

    @property
    def xhl(self) -> float:
        """Percentage reactance property for the transformer"""
        return self._xhl

    @xhl.setter
    def xhl(self, xhl: float) -> None:
        """Percentage reactance setter method for the transformer"""
        if xhl < MIN_PERCENTAGE or xhl > MAX_PERCENTAGE:
            raise PercentageNotInRangeError(xhl)
        self._xhl = xhl

    @property
    def pct_r(self) -> float:
        """Percentage resistance property for the transformer"""
        return self._pct_r

    @pct_r.setter
    def pct_r(self, r: float) -> None:
        """Percentage resistance setter method for the transformer"""
        if r < MIN_PERCENTAGE or r > MAX_PERCENTAGE:
            raise PercentageNotInRangeError(r)
        self._pct_r = r

    @property
    def pct_noloadloss(self) -> float:
        """Percentage no load loss property for the transformer"""
        return self._pct_noloadloss

    @pct_noloadloss.setter
    def pct_noloadloss(self, pct_nl_loss: float) -> None:
        """Percentage no load loss setter for the transformer"""
        if pct_nl_loss < MIN_PERCENTAGE or pct_nl_loss > MAX_PERCENTAGE:
            raise PercentageNotInRangeError(pct_nl_loss)
        self._pct_noloadloss = pct_nl_loss

    @property
    def kva(self) -> float:
        """Transformer kVA property"""
        return self._kva

    @kva.setter
    def kva(self, kva: float) -> None:
        """kVA setter method for transformer"""
        if kva < 0:
            raise NegativekVAError(kva)
        self._kva = kva

    @property
    def primary_kv(self) -> float:
        """Primary kV of the transformer"""
        return self._primary_kv

    @primary_kv.setter
    def primary_kv(self, kv: float) -> None:
        """Primary kv setter for transformer"""
        if kv < 0:
            raise NegativeKVError(kv)
        if kv == 0:
            raise ZeroKVError
        self._primary_kv = kv

    @property
    def secondary_kv(self) -> float:
        """Secondary kV of the transformer"""
        return self._secondary_kv

    @secondary_kv.setter
    def secondary_kv(self, kv: float) -> None:
        """Secondary kv setter for transformer"""
        if kv < 0:
            raise NegativeKVError(kv)
        if kv == 0:
            raise ZeroKVError
        self._secondary_kv = kv

    @property
    def primary_con(self) -> TransformerConnection:
        """Primary connection type of the transformer"""
        return self._primary_con

    @primary_con.setter
    def primary_con(self, conn: TransformerConnection) -> None:
        """Primary connection setter for transformer"""
        self._primary_con = conn

    @property
    def secondary_con(self) -> TransformerConnection:
        """Secondary connection type of the transformer"""
        return self._secondary_con

    @secondary_con.setter
    def secondary_con(self, conn: TransformerConnection) -> None:
        """Primary connection setter for transformer"""
        self._secondary_con = conn

    @property
    def primary_phase(self) -> Phase:
        """Primary phase of the transformer"""
        return self._primary_phase

    @primary_phase.setter
    def primary_phase(self, phase: Phase) -> None:
        """Primary phase setter for transformer"""
        self._primary_phase = phase

    @property
    def secondary_phase(self) -> Phase:
        """Secondary phase of the transformer"""
        return self._secondary_phase

    @secondary_phase.setter
    def secondary_phase(self, phase: Phase) -> None:
        """Secondary phase setter for transformer"""
        self._secondary_phase = phase

    def __repr__(self):
        return (
            f"{self.__class__.__name__}(Name = {self._name}, "
            + f"Latitude = {self._latitude}, Longitude = {self._longitude}, "
            + f"NumPhase = {self._num_phase}, XHL = {self._xhl}, "
            + f"%R = {self._pct_r}, "
            + f"%no_load_loss = {self._pct_noloadloss}, "
            + f"Primary Phase = {self._primary_phase}, Secondary Phase"
            + f" = {self._secondary_phase} "
            + f"kVA = {self._kva}, Primary kV = {self._primary_kv},"
            + f"Secondary kV = {self._secondary_kv}, Primary Conn ="
            + f" {self._primary_con}, Secondary Conn = {self._secondary_con}"
        )

kva() writable property

Transformer kVA property

Source code in shift\transformer.py
136
137
138
139
@property
def kva(self) -> float:
    """Transformer kVA property"""
    return self._kva

latitude() writable property

Latitude property where transformer is located

Source code in shift\transformer.py
66
67
68
69
@property
def latitude(self) -> float:
    """Latitude property where transformer is located"""
    return self._latitude

longitude() writable property

Longitude property where transformer is located

Source code in shift\transformer.py
78
79
80
81
@property
def longitude(self) -> float:
    """Longitude property where transformer is located"""
    return self._longitude

name() writable property

Name of the transformer

Source code in shift\transformer.py
57
58
59
60
@property
def name(self) -> str:
    """Name of the transformer"""
    return self._name

num_phase() writable property

Number of phase property for the transformer

Source code in shift\transformer.py
90
91
92
93
@property
def num_phase(self) -> NumPhase:
    """Number of phase property for the transformer"""
    return self._num_phase

pct_noloadloss() writable property

Percentage no load loss property for the transformer

Source code in shift\transformer.py
124
125
126
127
@property
def pct_noloadloss(self) -> float:
    """Percentage no load loss property for the transformer"""
    return self._pct_noloadloss

pct_r() writable property

Percentage resistance property for the transformer

Source code in shift\transformer.py
112
113
114
115
@property
def pct_r(self) -> float:
    """Percentage resistance property for the transformer"""
    return self._pct_r

primary_con() writable property

Primary connection type of the transformer

Source code in shift\transformer.py
176
177
178
179
@property
def primary_con(self) -> TransformerConnection:
    """Primary connection type of the transformer"""
    return self._primary_con

primary_kv() writable property

Primary kV of the transformer

Source code in shift\transformer.py
148
149
150
151
@property
def primary_kv(self) -> float:
    """Primary kV of the transformer"""
    return self._primary_kv

primary_phase() writable property

Primary phase of the transformer

Source code in shift\transformer.py
196
197
198
199
@property
def primary_phase(self) -> Phase:
    """Primary phase of the transformer"""
    return self._primary_phase

secondary_con() writable property

Secondary connection type of the transformer

Source code in shift\transformer.py
186
187
188
189
@property
def secondary_con(self) -> TransformerConnection:
    """Secondary connection type of the transformer"""
    return self._secondary_con

secondary_kv() writable property

Secondary kV of the transformer

Source code in shift\transformer.py
162
163
164
165
@property
def secondary_kv(self) -> float:
    """Secondary kV of the transformer"""
    return self._secondary_kv

secondary_phase() writable property

Secondary phase of the transformer

Source code in shift\transformer.py
206
207
208
209
@property
def secondary_phase(self) -> Phase:
    """Secondary phase of the transformer"""
    return self._secondary_phase

xhl() writable property

Percentage reactance property for the transformer

Source code in shift\transformer.py
100
101
102
103
@property
def xhl(self) -> float:
    """Percentage reactance property for the transformer"""
    return self._xhl