Permanent magnet synchronous motor with sinusoidal flux distribution

Simscape / Electrical / Electromechanical / Permanent Magnet

The PMSM block models a permanent magnet synchronous motor with a three-phase wye-wound stator. The figure shows the equivalent electrical circuit for the stator windings.

This figure shows the motor construction with a single pole-pair on the rotor.

Permanent magnets generate a rotor magnetic field that creates a sinusoidal rate of change of flux with rotor angle.

For the axes convention in the preceding figure, the *a*-phase
and permanent magnet fluxes are aligned when rotor mechanical angle,
*θ _{r}*, is zero. The block supports a
second rotor axis definition in which rotor mechanical angle is defined as the angle
between the

Voltages across the stator windings are defined by:

$$\left[\begin{array}{c}{v}_{a}\\ {v}_{b}\\ {v}_{c}\end{array}\right]=\left[\begin{array}{ccc}{R}_{s}& 0& 0\\ 0& {R}_{s}& 0\\ 0& 0& {R}_{s}\end{array}\right]\left[\begin{array}{c}{i}_{a}\\ {i}_{b}\\ {i}_{c}\end{array}\right]+\left[\begin{array}{c}\frac{d{\psi}_{a}}{dt}\\ \frac{d{\psi}_{b}}{dt}\\ \frac{d{\psi}_{c}}{dt}\end{array}\right],$$

where:

*v*,_{a}*v*, and_{b}*v*are the individual phase voltages across the stator windings._{c}*R*is the equivalent resistance of each stator winding._{s}*i*,_{a}*i*, and_{b}*i*are the currents flowing in the stator windings._{c}$$\frac{d{\psi}_{a}}{dt},$$$$\frac{d{\psi}_{b}}{dt},$$ and $$\frac{d{\psi}_{c}}{dt}$$ are the rates of change of magnetic flux in each stator winding.

The permanent magnet and the three windings contribute to the total flux linking each winding. The total flux is defined by:

$$\left[\begin{array}{c}{\psi}_{a}\\ {\psi}_{b}\\ {\psi}_{c}\end{array}\right]=\left[\begin{array}{ccc}{L}_{aa}& {L}_{ab}& {L}_{ac}\\ {L}_{ba}& {L}_{bb}& {L}_{bc}\\ {L}_{ca}& {L}_{cb}& {L}_{cc}\end{array}\right]\left[\begin{array}{c}{i}_{a}\\ {i}_{b}\\ {i}_{c}\end{array}\right]+\left[\begin{array}{c}{\psi}_{am}\\ {\psi}_{bm}\\ {\psi}_{cm}\end{array}\right],$$

where:

*ψ*,_{a}*ψ*, and_{b}*ψ*are the total fluxes linking each stator winding._{c}*L*,_{aa}*L*, and_{bb}*L*are the self-inductances of the stator windings._{cc}*L*,_{ab}*L*,_{ac}*L*, and so on, are the mutual inductances of the stator windings._{ba}*ψ*,_{am}*ψ*, and_{bm}*ψ*are the permanent magnet fluxes linking the stator windings._{cm}

The inductances in the stator windings are functions of rotor electrical angle, defined by:

${\theta}_{e}=N{\theta}_{r},$

${L}_{aa}={L}_{s}+{L}_{m}\text{cos}(2{\theta}_{e}),$

${L}_{bb}={L}_{s}+{L}_{m}\text{cos}(2\left({\theta}_{e}-2\pi /3\right)),$

${L}_{cc}={L}_{s}+{L}_{m}\text{cos}(2\left({\theta}_{e}+2\pi /3\right)),$

$${L}_{ab}={L}_{ba}=-{M}_{s}-{L}_{m}\mathrm{cos}\left(2\left({\theta}_{e}+\pi /6\right)\right),$$

${L}_{bc}={L}_{cb}=-{M}_{s}-{L}_{m}\mathrm{cos}\left(2\left({\theta}_{e}+\pi /6-2\pi /3\right)\right),$

and

${L}_{ca}={L}_{ac}=-{M}_{s}-{L}_{m}\mathrm{cos}\left(2\left({\theta}_{e}+\pi /6+2\pi /3\right)\right),$

where:

*θ*is the rotor mechanical angle._{r}*θ*is the rotor electrical angle._{e}*L*is the stator self-inductance per phase. This value is the average self-inductance of each of the stator windings._{s}*L*is the stator inductance fluctuation. This value is the amplitude of the fluctuation in self-inductance and mutual inductance with changing rotor angle._{m}*M*is the stator mutual inductance. This value is the average mutual inductance between the stator windings._{s}

The permanent magnet flux linking winding *a* is a maximum when
*θ _{e}* = 0° and zero when

$$\left[\begin{array}{c}{\psi}_{am}\\ {\psi}_{bm}\\ {\psi}_{cm}\end{array}\right]=\left[\begin{array}{c}{\psi}_{m}\mathrm{cos}{\theta}_{e}\\ {\psi}_{m}\mathrm{cos}\left({\theta}_{e}-2\pi /3\right)\\ {\psi}_{m}\mathrm{cos}\left({\theta}_{e}+2\pi /3\right)\end{array}\right].$$

where *ψ _{m}* is the permanent magnet flux
linkage.

Applying Park’s transformation to the block electrical equations produces an expression for torque that is independent of the rotor angle.

Park’s transformation is defined by:

$P=2/3\left[\begin{array}{ccc}\mathrm{cos}{\theta}_{e}& \mathrm{cos}\left({\theta}_{e}-2\pi /3\right)& \mathrm{cos}\left({\theta}_{e}+2\pi /3\right)\\ -\mathrm{sin}{\theta}_{e}& -\mathrm{sin}\left({\theta}_{e}-2\pi /3\right)& -\mathrm{sin}\left({\theta}_{e}+2\pi /3\right)\\ 0.5& 0.5& 0.5\end{array}\right].$

where *θ _{e}* is the electrical angle defined
as

Using Park's transformation on the stator winding voltages and currents transforms them to the dq0 frame, which is independent of the rotor angle:

$$\left[\begin{array}{c}{v}_{d}\\ {v}_{q}\\ {v}_{0}\end{array}\right]=P\left[\begin{array}{c}{v}_{a}\\ {v}_{b}\\ {v}_{c}\end{array}\right]$$

and

$\left[\begin{array}{c}{i}_{d}\\ {i}_{q}\\ {i}_{0}\end{array}\right]=P\left[\begin{array}{c}{i}_{a}\\ {i}_{b}\\ {i}_{c}\end{array}\right].$

Applying Park’s transformation to the first two electrical equations produces the following equations that define the block behavior:

${v}_{d}={R}_{s}{i}_{d}+{L}_{d}\frac{d{i}_{d}}{dt}-N\omega {i}_{q}{L}_{q},$

${v}_{q}={R}_{s}{i}_{q}+{L}_{q}\frac{d{i}_{q}}{dt}+N\omega ({i}_{d}{L}_{d}+{\psi}_{m}),$

${v}_{0}={R}_{s}{i}_{0}+{L}_{0}\frac{d{i}_{0}}{dt},$

and

$T=\frac{3}{2}N\left({i}_{q}\left({i}_{d}{L}_{d}+{\psi}_{m}\right)-{i}_{d}{i}_{q}{L}_{q}\right),$

where:

*L*=_{d}*L*+_{s}*M*+ 3/2_{s}*L*._{m}*L*is the stator_{d}*d*-axis inductance.*L*=_{q}*L*+_{s}*M*− 3/2_{s}*L*._{m}*L*is the stator_{q}*q*-axis inductance.*L*=_{0}*L*– 2_{s}*M*._{s}*L*is the stator zero-sequence inductance._{0}*ω*is the rotor mechanical rotational speed.*N*is the number of rotor permanent magnet pole pairs.*T*is the rotor torque. Torque flows from the motor case (block physical port C) to the motor rotor (block physical port R).

The PMSM block uses the original, non-orthogonal implementation of the Park transform. If you try to apply the alternative implementation, you get different results for the dq0 voltage and currents.

You can parameterize the motor using the back EMF or torque constants which are
more commonly given on motor datasheets by using the **Permanent magnet flux
linkage** option.

The back EMF constant is defined as the peak voltage induced by the permanent magnet in each of the phases per unit rotational speed. It is related to peak permanent magnet flux linkage by:

$${k}_{e}=N{\psi}_{m}.$$

From this definition, it follows that the back EMF
*e _{ph}* for one phase is given
by:

$${e}_{ph}={k}_{e}\omega .$$

The torque constant is defined as the peak torque induced by each of the phases per unit current. It is numerically identical in value to the back EMF constant when both are expressed in SI units:

$${k}_{t}=N{\psi}_{m}.$$

When
*L _{d}*=

$$T=\frac{3}{2}{k}_{t}{i}_{q}=\frac{3}{2}{k}_{t}{I}_{pk},$$

where *I _{pk}* is the peak current in any of
the three windings.

The factor 3/2 follows from this being the steady-state sum of the torques from
all phases. Therefore the torque constant
*k _{t}* could also be defined as:

$${k}_{t}=\frac{2}{3}\left(\frac{T}{{I}_{pk}}\right),$$

where *T* is the measured total torque when
testing with a balanced three-phase current with peak line voltage
*I _{pk}*. Writing in terms of RMS line voltage:

$${k}_{t}=\sqrt{\frac{2}{3}}\left(\frac{T}{{i}_{line,rms}}\right).$$

Use the **Variables** settings to specify the priority and initial target
values for the block variables before simulation. For more information, see Set Priority and Initial Target for Block Variables (Simscape).

**~**Expandable three-phase port

**n**Electrical conserving port associated with the neutral phase

**R**Mechanical rotational conserving port associated with the motor rotor

**C**Mechanical rotational conserving port associated with the motor case

**Number of pole pairs**Number of permanent magnet pole pairs on the rotor. The default value is

`6`

.**Permanent magnet flux linkage parameterization**Choose

`Specify flux linkage`

, the default value,`Specify torque constant`

, or`Specify back EMF constant`

.**Permanent magnet flux linkage**Peak permanent magnet flux linkage with any of the stator windings. This parameter is visible only if you set

**Permanent magnet flux linkage**to`Specify flux linkage`

.The default value is`0.03`

`Wb`

.**Torque constant**Torque constant with any of the stator windings. This parameter is visible only if you set

**Permanent magnet flux linkage**to`Specify torque constant`

. The default value is`0.18`

`N*m/A`

.**Back EMF constant**Back EMF constant with any of the stator windings. This parameter is visible only if you set

**Permanent magnet flux linkage**to`Specify back EMF constant`

. The default value is`0.18`

`V*s/rad`

.**Stator parameterization**Choose

`Specify Ld, Lq, and L0`

, the default value, or`Specify Ls, Lm, and Ms`

.**Stator d-axis inductance, Ld**Direct-axis inductance. This parameter is visible only if you set

**Stator parameterization**to`Specify Ld, Lq, and L0`

. The default value is`0.00019`

`H`

.**Stator q-axis inductance, Lq**Quadrature-axis inductance. This parameter is visible only if you set

**Stator parameterization**to`Specify Ld, Lq, and L0`

. The default value is`0.00025`

`H`

.**Stator zero-sequence inductance, L0**Zero-sequence inductance. This parameter is visible only if you set

**Stator parameterization**to`Specify Ld, Lq, and L0`

. The default value is`0.00016`

`H`

.**Stator self-inductance per phase, Ls**Average self-inductance of each of the three stator windings. This parameter is visible only if you set

**Stator parameterization**to`Specify Ls, Lm, and Ms`

. The default value is`0.0002`

`H`

.**Stator inductance fluctuation, Lm**Amplitude of the fluctuation in self-inductance and mutual inductance of the stator windings with rotor angle. This parameter is visible only if you set

**Stator parameterization**to`Specify Ls, Lm, and Ms`

. The default value is`-0.00002`

`H`

.**Stator mutual inductance, Ms**Average mutual inductance between the stator windings. This parameter is visible only if you set

**Stator parameterization**to`Specify Ls, Lm, and Ms`

. The default value is`0.00002`

`H`

.**Stator resistance per phase, Rs**Resistance of each of the stator windings. The default value is

`0.013`

`Ohm`

.**Zero sequence**Option to include or exclude zero-sequence terms.

`Include`

— Include zero-sequence terms. To prioritize model fidelity, use this default setting. Using this option:Results in an error for simulations that use the Partitioning solver. For more information, see Increase Simulation Speed Using the Partitioning Solver (Simscape).

Exposes a zero-sequence parameter in the

**Impedances**settings.

`Exclude`

— Exclude zero-sequence terms. To prioritize simulation speed for desktop simulation or real-time deployment, select this option.

**Rotor angle definition**Reference point for the rotor angle measurement. The default value is

`Angle between the a-phase magnetic axis and the d-axis`

. This definition is shown in the Motor Construction figure. When you select this value, the rotor and*a*-phase fluxes are aligned when the rotor angle is zero.The other value you can choose for this parameter is

`Angle between the a-phase magnetic axis and the q-axis`

. When you select this value, the*a*-phase current generates maximum torque when the rotor angle is zero.

**Rotor Inertia**Inertia of the rotor attached to mechanical translational port

**R**. The default value is`0.01`

`kg*m^2`

. The value can be zero.**Rotor damping**Rotary damping. The default value is

`0`

`N*m/(rad/s)`

.

[1] Kundur, P. *Power System Stability and Control.* New York,
NY: McGraw Hill, 1993.

[2] Anderson, P. M. *Analysis of Faulted Power Systems.*
Hoboken, NJ: Wiley-IEEE Press, 1995.