transix.ab0_to_abc

Contents

transix.ab0_to_abc#

transix.ab0_to_abc(alpha, beta, zero, variant: Literal['power_variant', 'power_invariant'] = 'power_invariant')#

Compute three phase abc quantities from Clarke’s alpha, beta and zero components.

Parameters:
alpha, beta, zeroarray_like

alpha-, beta-, and zero components of clarke’s three phase quantities.

variant{“power_invariant”,”power_variant”}, optional

Default is power_invariant

Returns:
a, b, cndarray

Three phase abc quantities.

Notes

The inverse Clarke’s transformation [1] converts alpha-beta-zero quantities to three phase abc quantities.

The power invariant transformation type is orthonormal. So, the inverse is given by taking transpose of original matrix.

\[\begin{split}\begin{bmatrix} a\\ b\\ c \end{bmatrix} = \sqrt{\frac{2}{3}} \begin{bmatrix} 1 & 0 & \frac{1}{\sqrt{2}}\\ -\frac{1}{2} & \frac{\sqrt{3}}{2} & \frac{1}{\sqrt{2}}\\ -\frac{1}{2} & -\frac{\sqrt{3}}{2} & \frac{1}{\sqrt{2}} \end{bmatrix} \begin{bmatrix} \alpha\\ \beta\\ zero \end{bmatrix}\end{split}\]

The power variant type is not orthonormal. The inverse is given by,

\[\begin{split}\begin{bmatrix} a\\ b\\ c \end{bmatrix} = \begin{bmatrix} 1 & 0 & 1\\ -\frac{1}{2} & \frac{\sqrt{3}}{2} & 1\\ -\frac{1}{2} & -\frac{\sqrt{3}}{2} & 1 \end{bmatrix} \begin{bmatrix} \alpha\\ \beta\\ zero \end{bmatrix}\end{split}\]

References

[1]

E. Clarke, Circuit Analysis of A-C Power Systems: Symmetrical and Related Components. Wiley, 1943.

Examples

>>> import transix as tx
>>> a, b, c = tx.generate_abc(rms=230,f=50,t=0.1,fs=50000)
[ 0.      2.0437  4.0873 ... -4.0873 -2.0437 -0.    ]
[-281.6913 -282.7076 -283.7128 ... -279.6254 -280.6639 -281.6913]
[281.6913 280.6639 279.6254 ... 283.7128 282.7076 281.6913]
>>> alpha,beta,zero = tx.abc_to_ab0(a,b,c)
[ 0.      2.503   5.0059 ... -5.0059 -2.503   0.    ]
[-398.3717 -398.3638 -398.3403 ... -398.3403 -398.3638 -398.3717]
[ 0.      0.     -0.0001 ...  0.0001  0.      0.    ]
>>> a1,b1,c1 = tx.ab0_to_abc(alpha,beta,zero)
>>> np.allclose(a, a1) and np.allclose(b, b1) and np.allclose(c, c1)
True