Three-winding brushless DC motor with trapezoidal flux distribution

Simscape / Electrical / Electromechanical / Permanent Magnet

The BLDC block models a permanent magnet synchronous machine with a three-phase wye-wound stator. The block has four options for defining the permanent magnet flux distribution as a function of rotor angle. Two options allow for simple parameterization by assuming a perfect trapezoid for the back emf. For simple parameterization, you specify either the flux linkage or the rotor-induced back emf. The other two options give more accurate results using tabulated data that you specify. For more accurate results, you specify either the flux linkage partial derivative or the measured back emf constant for a given rotor speed.

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.

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

The rotor magnetic field due to the permanent magnets create a trapezoidal rate of change of flux with rotor angle. The figure shows this rate of change of flux.

Back emf is the rate of change of flux, defined by

$\frac{d\Phi}{dt}=\frac{\partial \Phi}{\partial \theta}\frac{d\theta}{dt}=\frac{\partial \Phi}{\partial \theta}\omega ,$

where:

*Φ*is the permanent magnet flux linkage.*θ*is the rotor angle.*ω*is the mechanical rotational speed.

The height `h`

of the trapezoidal rate of change
of flux profile is derived from the permanent magnet peak flux.

Integrating $\frac{\partial \Phi}{\partial \theta}$ over the range 0 to π/2,

${\Phi}_{max}=\frac{h}{2}({\theta}_{F}+{\theta}_{W}),$

where:

*Φ*is the permanent magnet flux linkage._{max}*h*is the rate of change of flux profile height.*θ*is the rotor angle range over which the back emf that the permanent magnet flux induces in the stator is constant._{F}*θ*is the rotor angle range over which back emf increases or decreases linearly when the rotor moves at constant speed._{W}

Rearranging the preceding equation,

$h=2{\Phi}_{max}/({\theta}_{F}+{\theta}_{W}).$

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 external voltages applied to the three motor electrical connections._{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*, etc. 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 angle, defined by

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

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

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

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

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

and

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

where:

*L*is the stator self-inductance per phase — The average self-inductance of each of the stator windings._{s}*L*is the stator inductance fluctuation — The amplitude of the fluctuation in self-inductance and mutual inductance with changing rotor angle._{m}*M*is the stator mutual inductance — The average mutual inductance between the stator windings._{s}

The permanent magnet flux linking each stator winding follows the trapezoidal profile shown in the figure. The block implements the trapezoidal profile using lookup tables to calculate permanent magnet flux values.

The defining voltage and torque equations for the block are

$\left[\begin{array}{c}{v}_{d}\\ {v}_{q}\\ {v}_{0}\end{array}\right]=P\left(\left[\begin{array}{c}{v}_{a}\\ {v}_{b}\\ {v}_{c}\end{array}\right]-N\omega \left[\begin{array}{c}\frac{\partial {\psi}_{am}}{\partial {\theta}_{r}}\\ \frac{\partial {\psi}_{bm}}{\partial {\theta}_{r}}\\ \frac{\partial {\psi}_{cm}}{\partial {\theta}_{r}}\end{array}\right]\right),$

${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},$

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

and

$T=\frac{3}{2}N\left({i}_{q}{i}_{d}{L}_{d}-{i}_{d}{i}_{q}{L}_{q}\right)+\left[\begin{array}{ccc}{i}_{a}& {i}_{b}& {i}_{c}\end{array}\right]\left[\begin{array}{c}\frac{\partial {\psi}_{am}}{\partial {\theta}_{r}}\\ \frac{\partial {\psi}_{bm}}{\partial {\theta}_{r}}\\ \frac{\partial {\psi}_{cm}}{\partial {\theta}_{r}}\end{array}\right],$

where:

*v*,_{d}*v*, and_{q}*v*are the_{0}*d*-axis,*q*-axis, and zero-sequence voltages.*P*is Park’s Transformation, 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].$

*N*is the number of rotor permanent magnet pole pairs.*ω*is the rotor mechanical rotational speed.$$\frac{\partial {\psi}_{am}}{\partial {\theta}_{r}},$$$$\frac{\partial {\psi}_{bm}}{\partial {\theta}_{r}},$$ and $$\frac{\partial {\psi}_{cm}}{\partial {\theta}_{r}}$$

are the partial derivatives of instantaneous permanent magnet flux linking each phase winding.

*i*,_{d}*i*, and_{q}*i*are the_{0}*d*-axis,*q*-axis, and zero-sequence currents, defined by$\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].$

*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}*T*is the rotor torque. Torque flows from the motor case (block physical port C) to the motor rotor (block physical port R).

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

**Back EMF profile**Parameterization for defining the permanent magnet flux distribution as a function of rotor angle. Choose:

`Perfect trapezoid - specify maximum flux linkage`

to specify the maximum flux linkage for the permanent magnet and the rotor angle where the back emf is constant. The block assumes a perfect trapezoid for the back emf. This is the default value.`Perfect trapezoid - specify maximum rotor-induced back emf`

to specify the maximum rotor-induced back emf and the corresponding rotor speed. The block assumes a perfect trapezoid for the back emf.`Tabulated - specify flux partial derivative with respect to rotor angle`

to specify values for the partial derivative of flux linkage and the corresponding rotor angles.`Tabulated - specify rotor-induced back emf as a function of rotor angle`

to specify the measured back emf constant and the corresponding rotor speed and angles.

**Maximum permanent magnet flux linkage**Peak permanent magnet flux linkage with any of the stator windings. This parameter is visible only when

**Back EMF profile**is set to`Perfect trapezoid - specify maximum flux linkage`

. The default value is`0.03`

`Wb`

.**Rotor angle over which back emf is constant**Rotor angle range over which the permanent magnet flux linking the stator winding is constant. This angle is θ

_{F}in the figure that shows the Trapezoidal Rate of Change of Flux. This parameter is visible only when**Back EMF profile**is set to`Perfect trapezoid - specify maximum flux linkage`

or`Perfect trapezoid - specify maximum rotor-induced back emf`

. The default value is`pi / 12`

`rad`

.**Maximum rotor-induced back emf**Peak rotor-induced back emf into the stator windings. This parameter is visible only when

**Back EMF profile**is set to`Perfect trapezoid - specify maximum rotor-induced back emf`

. The default value is`9.6`

`V`

.**Rotor-induced back emf**Vector of values for the rotor-induced back emf as a function of rotor angle. The first and last values must be the same, and are normally both zero. For more information, see the

**Corresponding rotor angles**parameter. First and last values are the same because flux is cyclic with period $2\pi /N$, where N is the number of permanent magnet pole pairs. This parameter is visible only when**Back EMF profile**is set to`Tabulated - specify rotor-induced back emf as a function of rotor angle`

. The default value is`[0.0, -9.6, -9.6, 9.6, 9.6, 0.0]`

`V`

.**Flux linkage partial derivative with respect to rotor angle**Vector of values for the partial derivative of flux linkage (where flux linkage is flux times number of winding turns) with respect to rotor angle. The first and last values must be the same, and are normally both zero. For more information, see the

**Corresponding rotor angles**parameter. First and last values are the same because flux is cyclic with period $2\pi /N$, where*N*is the number of permanent magnet pole pairs. This parameter is visible only when**Back EMF profile**is set to`Tabulated - specify flux partial derivative with respect to rotor angle`

. The default value is`[0.0, -0.1528, -0.1528, 0.1528, 0.1528, 0.0]`

`Wb/rad`

.**Corresponding rotor angles**Vector of rotor angles where the flux linkage partial derivative or rotor-induced back emf is defined. Rotor angle is defined as the angle between the

*a*-phase magnetic axis and the*d*-axis. That is, when the angel is zero, the magnetic fields due to the rotor and the*a*-phase winding align. This definition is used regardless of your block setting for rotor angle definition. The first value is zero, and the last value is $2\pi /N$, where*N*is the number of permanent magnet pole pairs. This parameter is visible only when**Back EMF profile**is set to`Tabulated - specify flux partial derivative with respect to rotor angle`

or to`Tabulated - specify rotor-induced back emf as a function of rotor angle`

. The default value is`[0, 7.5, 22.5, 37.5, 52.5, 60]`

`deg`

.**Rotor speed used for back emf measurement**Specify the rotor speed corresponding to the maximum rotor-induced back emf. This parameter is visible only when

**Back EMF profile**is set to`Perfect trapezoid - specify maximum rotor-induced back emf`

or`Tabulated - specify rotor-induced back emf as a function of rotor angle`

. The default value is`600`

`rpm`

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

`6`

.**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.

**Stator parameterization**Choose

`Specify Ld, Lq, and L0`

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

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

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

. The default value is`0.00022`

`H`

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

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

. The default value is`0.00022`

`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.00002`

`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`

`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`

.

**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.