# BLDC

Three-winding brushless DC motor with trapezoidal flux distribution

• Libraries:
Simscape / Electrical / Electromechanical / Permanent Magnet

## Description

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. ### Motor Construction

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 a-phase magnetic axis and the rotor q-axis.

### Trapezoidal Rate of Change of Flux

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}\left({\theta }_{F}+{\theta }_{W}\right),$`

where:

• Φmax is the permanent magnet flux linkage.

• h is the rate of change of flux profile height.

• θF is the rotor angle range over which the back emf that the permanent magnet flux induces in the stator is constant.

• θW is the rotor angle range over which back emf increases or decreases linearly when the rotor moves at constant speed.

Rearranging the preceding equation,

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

### Electrical Defining Equations

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:

• va, vb, and vc are the external voltages applied to the three motor electrical connections.

• Rs is the equivalent resistance of each stator winding.

• ia, ib, and ic are the currents flowing in the stator windings.

• $\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, ψb, and ψc are the total fluxes linking each stator winding.

• Laa, Lbb, and Lcc are the self-inductances of the stator windings.

• Lab, Lac, Lba, etc. are the mutual inductances of the stator windings.

• ψam, ψbm, and ψcm are the permanent magnet fluxes linking the stator windings.

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

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

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

`${L}_{cc}={L}_{s}+{L}_{m}\text{cos}\left(2\left({\theta }_{r}+2\pi /3\right)\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:

• Ls is the stator self-inductance per phase — The average self-inductance of each of the stator windings.

• Lm is the stator inductance fluctuation — The fluctuation in self-inductance and mutual inductance with changing rotor angle.

• Ms is the stator mutual inductance — The average mutual inductance between the stator windings.

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.

### Simplified Equations

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:

• vd, vq, and v0 are the 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.

• id, iq, and i0 are the 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]$

• Ld = Ls + Ms + 3/2 Lm. Ld is the stator d-axis inductance.

• Lq = Ls + Ms − 3/2 Lm. Lq is the stator q-axis inductance.

• L0 = Ls – 2Ms. L0 is the stator zero-sequence inductance.

• T is the rotor torque. Torque flows from the motor case (block physical port C) to the motor rotor (block physical port R).

### Calculating Iron Losses

Iron losses are divided into two terms, one representing the main magnetizing path, and the other representing the cross-tooth tip path that becomes active during field weakened operation. The iron losses model, which is based on the work of Mellor .

The term representing the main magnetizing path depends on the induced RMS stator voltage, ${V}_{{m}_{rms}}^{}$:

`${P}_{OC}\left({V}_{{m}_{rms}}^{}\right)=\frac{{a}_{h}}{k}{V}_{{m}_{rms}}^{}+\frac{{a}_{j}}{{k}^{2}}{V}_{{m}_{rms}}^{2}+\frac{{a}_{ex}}{{k}^{1.5}}{V}_{{m}_{rms}}^{1.5}$`

This is the dominant term during no-load operation. k is the back emf constant relating RMS volts per Hz. It is defined as $k={V}_{{m}_{rms}}^{}/f$, where f is the electrical frequency. The first term on the right-hand side is the magnetic hysteresis loss, the second is the eddy current loss and the third is the excess loss. The three coefficients appearing on the numerators are derived from the values that you provide for the open-circuit hysteresis, eddy, and excess losses.

The term representing the cross-tooth tip path becomes important when a demagnetizing field is set up and can be determined from a finite element analysis short-circuit test. It depends on the RMS emf associated with the cross-tooth tip flux, ${V}_{{d}_{rms}}^{*}$:

`${P}_{SC}\left({V}_{{d}_{rms}}^{*}\right)=\frac{{b}_{h}}{k}{V}_{{d}_{rms}}^{*}+\frac{{b}_{j}}{{k}^{2}}{V}_{{d}_{rms}}^{*2}+\frac{{b}_{ex}}{{k}^{1.5}}{V}_{{d}_{rms}}^{*1.5}$`

The three numerator terms are derived from the values you provide for the short-circuit hysteresis, eddy, and excess losses.

### Predefined Parameterization

There are multiple available built-in parameterizations for the BLDC block.

This pre-parameterization data allows you to set up the block to represent components by specific suppliers. The parameterizations of these brushless DC motors match the manufacturer data sheets. To load a predefined parameterization, double-click the BLDC block, click the <click to select> hyperlink of the Selected part parameter and, in the Block Parameterization Manager window, select the part you want to use from the list of available components.

Note

The predefined parameterizations of Simscape™ components use available data sources for the parameter values. Engineering judgement and simplifying assumptions are used to fill in for missing data. As a result, expect deviations between simulated and actual physical behavior. To ensure accuracy, validate the simulated behavior against experimental data and refine component models as necessary.

For more information about pre-parameterization and for a list of the available components, see List of Pre-Parameterized Components.

### Model Thermal Effects

You can expose thermal ports to model the effects of losses that convert power to heat. To expose the thermal ports, set the Modeling option parameter to either:

• `No thermal port` — The block contains expanded electrical conserving ports associated with the stator windings, but does not contain thermal ports.

• `Show thermal port` — The block contains expanded electrical conserving ports associated with the stator windings and thermal conserving ports for each of the windings and for the rotor.

For more information about using thermal ports in actuator blocks, see Simulating Thermal Effects in Rotational and Translational Actuators.

### Variables

To set the priority and initial target values for the block variables before simulation, use the Initial Targets section in the block dialog box or Property Inspector. For more information, see Set Priority and Initial Target for Block Variables.

Nominal values provide a way to specify the expected magnitude of a variable in a model. Using system scaling based on nominal values increases the simulation robustness. You can specify nominal values using different sources, including the Nominal Values section in the block dialog box or Property Inspector. For more information, see System Scaling by Nominal Values.

## Ports

### Conserving

expand all

#### Dependencies

To enable this port, set Electrical connection to ```Composite three-phase ports```.

Electrical conserving port associated with a-phase.

#### Dependencies

To enable this port, set Electrical connection to ```Expanded three-phase ports```.

Electrical conserving port associated with b-phase.

#### Dependencies

To enable this port, set Electrical connection to ```Expanded three-phase ports```.

Electrical conserving port associated with c-phase.

#### Dependencies

To enable this port, set Electrical connection to ```Expanded three-phase ports```.

Electrical conserving port associated with the neutral phase.

#### Dependencies

To enable this port, set Winding Type to `Wye-wound` and Zero sequence to `Include`.

Mechanical rotational conserving port associated with the motor rotor.

Mechanical rotational conserving port associated with the motor case.

Thermal conserving port associated with winding A.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

Thermal conserving port associated with winding B.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

Thermal conserving port associated with winding C.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

Thermal conserving port associated with the rotor.

#### Dependencies

To enable this port, set Modeling option to `Show thermal port`.

## Parameters

expand all

Option to parameterize the block to represent components by specific suppliers. Click the <click to select> hyperlink to open the Block Parameterization Manager window. For more information about the Block Parameterization Manager, see Load Predefined Parameterizations.

Whether to enable the thermal ports of the block and model the effects of losses that convert power to heat.

### Rotor

Whether to have composite or expanded three-phase ports.

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.

Peak permanent magnet flux linkage with any of the stator windings.

#### Dependencies

To enable this parameter, set Back EMF profile to ```Perfect trapezoid - specify maximum flux linkage```.

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.

#### Dependencies

To enable this parameter, set Back EMF profile to ```Perfect trapezoid - specify maximum flux linkage``` or ```Perfect trapezoid - specify maximum rotor-induced back emf```.

Peak rotor-induced back emf into the stator windings.

#### Dependencies

To enable this parameter, set Back EMF profile to ```Perfect trapezoid - specify maximum 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.

#### Dependencies

To enable this parameter, set Back EMF profile to ```Tabulated - specify rotor-induced back emf as a function of 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.

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

#### Dependencies

To enable this parameter, set Back EMF profile to ```Tabulated - specify flux partial derivative with respect to rotor angle``` or ```Tabulated - specify rotor-induced back emf as a function of rotor angle```.

Specify the rotor speed corresponding to the maximum rotor-induced back emf.

#### Dependencies

To enable this parameter, set Back EMF profile to ```Perfect trapezoid - specify maximum rotor-induced back emf``` or ```Tabulated - specify rotor-induced back emf as a function of rotor angle```.

Number of permanent magnet pole pairs on the rotor.

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

Select the configuration for the windings:

• `Wye-wound` — The windings are wye-wound.

• `Delta-wound` — The windings are delta-wound. The a-phase is connected between ports a and b, the b-phase between ports b and c and the c-phase between ports c and a.

Select the modeling fidelity:

• `Constant Ld and Lq`Ld and Lq values are constant and defined by their respective parameters.

• `Tabulated Ld and Lq`Ld and Lq values are computed online from DQ currents look-up tables as follows:

`${L}_{d}={f}_{1}\left({i}_{d},{i}_{q}\right)$`

`${L}_{d}={f}_{2}\left({i}_{d},{i}_{q}\right)$`

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ld, Lq, and L0```.

Choose `Specify Ld, Lq, and L0` or `Specify Ls, Lm, and Ms`.

D-axis inductance.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ld, Lq, and L0``` and Modeling fidelity to `Constant Ld and Lq`.

Q-axis inductance.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ld, Lq, and L0``` and Modeling fidelity to `Constant Ld and Lq`.

Direct-axis current vector, iD.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ld, Lq, and L0``` and Modeling fidelity to `Tabulated Ld and Lq`.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ld, Lq, and L0``` and Modeling fidelity to `Tabulated Ld and Lq`.

Ld matrix.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ld, Lq, and L0``` and Modeling fidelity to `Tabulated Ld and Lq`.

Lq matrix.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ld, Lq, and L0``` and Modeling fidelity to `Tabulated Ld and Lq`.

Zero-sequence inductance.

#### Dependencies

To enable this parameter either:

• Set Winding Type to `Wye-wound`, Zero sequence to `Include`, and Stator parameterization to `Specify Ld, Lq, and L0`.

• Set Winding Type to `Delta-wound` and Stator parameterization to `Specify Ld, Lq, and L0`.

Average self-inductance of each of the three stator windings.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ls, Lm, and Ms```.

Fluctuation in self-inductance and mutual inductance of the stator windings with rotor angle.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ls, Lm, and Ms```.

Average mutual inductance between the stator windings.

#### Dependencies

To enable this parameter, set Stator parameterization to ```Specify Ls, Lm, and Ms```.

Resistance of each of the stator windings.

Option to include or exclude zero-sequence terms.

• `Include` — Include zero-sequence terms. To prioritize model fidelity, use this default setting. Using this option:

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

#### Dependencies

This parameter is visible only when you set the Winding Type parameter to `Wye-wound`.

### Iron Losses

Specify the iron losses computational model.

Row vector, of length 3, of the open-circuit iron losses due to hysteresis, Eddy, and excess losses, respectively, at the frequency specified by Electrical frequency at which losses determined.

#### Dependencies

To enable this parameter, set Model to `Empirical`.

Row vector, of length 3, of the short-circuit iron losses due to hysteresis, Eddy, and excess losses, respectively, at the frequency specified by Electrical frequency at which losses determined.

#### Dependencies

To enable this parameter, set Model to `Empirical`.

Electrical frequency at which the open-circuit and short-circuit iron losses were measured.

#### Dependencies

To enable this parameter, set Model to `Empirical`.

The resulting short-circuit RMS phase current when measuring the short-circuit losses.

#### Dependencies

To enable this parameter, set Model to `Empirical`.

### Mechanical

Inertia of the rotor attached to mechanical translational port R. The value can be zero.

Rotary damping.

### Temperature Dependence

These parameters appear only for blocks with exposed thermal ports.

The temperature for which motor parameters are quoted.

Coefficient α in the equation relating resistance to temperature, as described in Thermal Model for Actuator Blocks. The default value is for copper.

The fractional rate of change of permanent magnet flux density with temperature. It is used to linearly reduce the torque and the induced back EMF as temperature rises.

### Thermal Port

These parameters appear only for blocks with exposed thermal ports.

The thermal mass value for the A, B, and C windings. The thermal mass is the energy required to raise the temperature by one degree.

The thermal mass of the rotor, that is, the energy required to raise the temperature of the rotor by one degree.

The percentage of the main flux path iron losses associated with the magnetic path through the rotor. It determines how much of the iron loss heating is attributed to the rotor thermal port HR, and how much is attributed to the three winding thermal ports HA, HB, and HC.

#### Dependencies

To enable this parameter, set Model to `Empirical`.

The percentage of the cross-tooth flux path iron losses associated with the magnetic path through the rotor. It determines how much of the iron loss heating is attributed to the rotor thermal port HR, and how much is attributed to the three winding thermal ports HA, HB, and HC.

#### Dependencies

To enable this parameter, set Model to `Empirical`.

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

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

 Mellor, P.H., R. Wrobel, and D. Holliday. “A computationally efficient iron loss model for brushless AC machines that caters for rated flux and field weakened operation.” IEEE Electric Machines and Drives Conference. May 2009.