The PMSM BLDC model implements three motor types which provide parametrization for different machine types (Permanent Magnet Synchronous Machine and Brushless DC Motor) and allow for different levels of model fidelity (Constant or Variable parametrization) : PMSM Constant Ld/Lq, PMSM Variable Ld/Lq, and BLDC Constant Ls.  The PMSM Constant Ld/Lq and BLDC Constant Ls motor modes simulate a machine with constant inductance and magnetic flux parameters. The PMSM Variable Ld/Lq motor type simulates a PMSM whose inductance and magnetic flux parameters are variable based on the operating state of the simulation (in this case, based on Id and Iq), which allows for greater model fidelity.

Configuration Page

In the System Explorer window configuration tree, expand the Power Electronics Add-On custom device and select Circuit Model >> PMSM BLDC to display this page.  Use this page to configure the PMSM BLDC machine model.

This page includes the following components:

Machine Model Settings
NameSpecifies the name of the machine model.
DescriptionSpecifies a description for the machine model.
Motor Configuration
Motor Type

Choose from one of the following types.  The motor configuration parameters automatically populate depending on the selected Motor Type.

Input Mapping Configuration
Use the Input Mapping Configuration to route signals to the Voltage Phase A, Voltage Phase B, and Voltage Phase C inputs of the machine model.  Available routing options may vary depending on the selected Hardware Configuration.

Group

Specifies the group that will be routed to the input voltages of the machine. The available routing options are defined by the selected Hardware Configuration, however it is typical to see the following options by default:

  • Measurements - eHS circuit model measurements

Element

Specifies the index of the measurement in the group that has been selected as the input voltage of the machine.

Section Channels

This section includes the following custom device channels:

Channel Name

Symbol

Type

Units

Default Value

Description

Current Phase A

IaOutputAmpere0 APhase A current measured at the stator

Current Phase B

IbOutputAmpere0 APhase B current measured at the stator

Current Phase C

IcOutputAmpere0 APhase C current measured at the stator
Average Voltage AVa,avgOutputVolts0 V

Averaged Phase A voltage measured at the stator. The voltage is processed through a low-pass filter with a cutoff frequency of 159 Hz

f_{c} = \frac{1}{2\pi \times 1e-3} = 159Hz 


Average Voltage BVb,avgOutputVolts0 VAveraged Phase B voltage measured at the stator. The voltage is processed through a low-pass filter with a cutoff frequency of 159Hz.
Average Voltage CVc,avgOutputVolts0 VAveraged Phase C voltage measured at the stator. The voltage is processed through a low-pass filter with a cutoff frequency of 159Hz
Three-Phase Active PowerPOutputWatts0 W

Three-phase instantaneous active electrical power in Watts

See Power Equations for more information on how this is calculated.

Three-Phase Reactive PowerQOutputVolt-ampere reactive0 var

Three-phase instantaneous reactive electrical power in vars

See Power Equations for more information on how this is calculated.

Direct Axis Stator CurrentIdOutputAmpere0 A

Direct-axis stator current in the reference frame aligned with the rotor

For a description of the DQ-transform used to compute this value, see D-Q Transform

Quadrature Axis Stator CurrentIqOutputAmpere0 A

Quadrature-axis stator current in the reference frame aligned with the rotor

For a description of the DQ-transform used to compute this value, see D-Q Transform

Back-EMF Phase AVbemf,aOutputVolts0 VPhase A to neutral voltage induced by the electromotive force
Back-EMF Phase BVbemf,bOutputVolts0 VPhase B to neutral voltage induced by the electromotive force
Back-EMF Phase CVbemf,cOutputVolts0 VPhase C to neutral voltage induced by the electromotive force
Permanent Magnet Flux Linkage

ψM

OutputWeber0 Wb

Latest-value measurement of the Permanent Magnet Flux Linkage used at the input of the electrical model

In Constant mode, this will return the constant value input by the user in the Motor Configuration settings

In Variable mode, this will be the value that is looked-up in the 2D Flux Linkage table.

Direct Axis InductanceLdOutputHenry0 H

Direct-axis inductance. This value is fed back from the input of the electrical model and describes only the latest value.

In Constant mode, this will return the constant value input by the user in the Motor Configuration settings

In Variable mode, this will be the value that is looked-up in the 2D Ld table.

Quadrature Axis InductanceLqOutputHenry0 H

Quadrature-axis inductance. This value is fed back from the input of the electrical model and describes only the latest value.

In Constant mode, this will return the constant value input by the user in the Motor Configuration settings

In Variable mode, this will be the value that is looked-up in the 2D Lq table.

Direct Axis Stator VoltageVdOutputVolts0 V

Direct-axis stator voltage in the reference frame aligned with the rotor

For a description of the DQ-transform used to compute this value, see D-Q Transform

Quadrature Axis Stator VoltageVqOutputVolts0 V

Quadrature-axis stator voltage in the reference frame aligned with the rotor

For a description of the DQ-transform used to compute this value, see D-Q Transform

Electrical AngleθeOutputDegrees-90°

Position of the rotating magnetic field, defined by the electrical angle equation

If this signal is routed to a Waveform Channel or an Analog Output Channel, its value is expressed in Turns.  The signal ranges in value from 0 to 1, with 1 representing a full rotation.


Electromagnetic TorqueTeOutputNm0 Nm

Torque generated through power at the stator. For equations describing the electromagnetic torque of each type of machine, refer to their specific description pages under the Machine Section.


Model Description

Permanent Magnet Synchronous Machines are common electrical machines in the the automotive and transportation industry. The PMSM is usually chosen because of its excellent power density (produced power over size or weight) or its capability to reach higher speed than others motor types. However, controlling a PMSM is usually more challenging when compared to other machine types. Since it is a synchronous machine, the controller must be aware of the rotor position at all times in order to properly control the torque. In addition, there is a chance of de-fluxing the magnet if the control is not stable, which would lead to a modification of the machine properties. 

The following figures illustrate the equivalent circuits of the PMSM motor model in the abc-frame and in the D-Q frame.

Figure 1.  Electrical Model for PMSM

Figure 2.  Electrical Model for PMSM in the D-Q frame


General Equation

The equation of the PMSM model can be expressed as follows:

I_{abc} = [L_{abc}(θ_e)]^ {-1} \{ \int (V_{abc} - R_{abc} I_{abc})dt - \psi_{abc} \}

where Labc is the time-varying inductance matrix (global inductance for Constant Ld/Lq and Variable Ld/Lq models), Iabc is the stator current inside the winding, Rabc are the stator resistances and Vabc is the voltage across the stator windings. ψabc defines the magnet flux linked into the stator windings.

Electrical Angle

The electrical angle is expressed as follows:

\theta_e= pp * \theta_m + \theta_{offset}

D-Q Transform

In normal conditions, the ideal sinusoidal stator voltages of the PMSM, back-EMFs, and inductances all have sinusoidal shapes. In the case of the BLDC, the back-EMFs are considered to be trapezoidal. One can transform the equation using the Park transformation with a referential locked on the rotor position θ using  and .


\left[\begin{array}{l}
{V_{d s}} \\
{V_{q s}}
\end{array}\right]=\mathrm{T}\left[\begin{array}{l}
{V_{a s}} \\
{V_{b s}} \\
{V_{c s}}
\end{array}\right]


\mathrm{T}=\sqrt{2 / 3}\left[\begin{array}{cc}
{\cos (\theta)} & {\sin (\theta)} \\
{-\sin (\theta)} & {\cos (\theta)}
\end{array}\right]\left[\begin{array}{ccc}
{1} & {-0.5} & {-0.5} \\
{0} & {\sqrt{3} / 2} & {-\sqrt{3} / 2}
\end{array}\right]


The D-Q Transform (also called Park-Clarke transform) reduces sinusoidal varying quantities of inductances, flux, current, and voltage to constant values in the D-Q frame thus greatly facilitating the analysis and control of the device under study.

It is important to note that there are many different types of D-Q transforms and this often leads to confusion when interpreting the motor states inside the D-Q frame. The one used here (which is typically standard in Japan) presents the advantage of being orthonormal (notice the sqrt(3/2) factor). This particular D-Q orthonormal transform is power-invariant which means that the power computed in the D-Q frame by performing a dot product of currents and voltages will be numerically equal to the one computed in the phase domain, namely:

V_{abc}I_{abc} = V_{dq}I_{dq}

Torque Equation

With this transform (and only this transform) the machine torque can be expressed by , where pp is the number of pole pairs.


T_{e}=p p\left[ \sqrt{\frac{3}{2}} \; \psi_{M} \; i_{q}+\left(L_{d}-L_{q}\right) i_{d} i_{q}\right]


One may notice the absence of the 3/2 factor in , which is usually present in the PMSM torque equation when using non-orthonormal transforms. This is, again, because this model uses the orthonormal D-Q transform. Figure 3 explains the principle of the Park transform. Considering fixed ABC referential with all quantities ( Vbemf, motor current I) rotating at the electric frequency ω, if we observe these quantities in a D-Q frame turning at the same speed we can see that the motor quantities will be constant.

This is easy to see for the Back-EMF voltage Vbemf  that directly follows the Q-axis (because the magnet flux is on the D-axis by definition). In Figure 3, I leads  and the Q-axis by an angle called β (beta). The modulus of the vector I is called Iamp. In the figure below, θ is the rotor angle, aligned with the D-axis.


Figure 3. Park Transform with angle definitions for θ and β


Power Equations

The  instantaneous active and reactive power, P and Q are calculated as follows:

P = V_a I_a + V_b I_b + V_c I_c = V_d I_d + V_q I_q\\
Q = \frac {1} {\sqrt 3} [(V_b - V_c) I_a + (V_c - V_a) I_b + (V_a - V_b) I_c ] = V_q I_d - V_d I_q

where Va, Vb, and Vc are the instantaneous stator voltages

The active and reactive power are processed through low-pass filters dependent on the timestep of the machine and are calculated as follows. When Ts is set to the minimum of 120ns, the cutoff frequencies are 133Hz:

f_{c} = \frac{1}{\SI{1e4} \times Ts \times 2\pi} = \frac{1}{\SI{1e4} \times \SI{120e-9} \times 2\pi} = 133Hz


Motor Type: PMSM Constant Ld/Lq

When set to the PMSM Constant Ld/Lq motor type, the machine model uses constant values for Direct Inductance, Quadrature Inductance, Magnetic Flux, Phase [A, B, C] Resistance, and Pole Pairs.

Configuration Parameters

The following parameters are available:

Motor Configuration

SymbolUnitsDefault ValueDescription
Direct Axis InductanceLdHenry0.002984 HDirect-axis inductance of the machine
Quadrature Axis InductanceLqHenry0.004576 HQuadrature-axis inductance of the machine
Permanent Magnet Flux LinkageψMWeber0.25366 Wb

Peak permanent magnet flux linkage

Phase A ResistanceRaOhm0.12 ΩPhase A Resistance of the machine
Phase B ResistanceRbOhm0.12 ΩPhase B Resistance of the machine
Phase C ResistanceRcOhm0.12 ΩPhase C Resistance of the machine
Pole Pairspp
3Number of pole pairs
Direct Quadrature Transform Angle Offsetθoffset
Aligned

Describes the electrical angle offset as described by the Electrical Angle equation

  • Aligned - Indicates that the D axis is aligned with Phase A when the rotor angle θ=0, which means that θoffset = -0 degrees.
  • 90 Degrees behind Phase A - Indicates that the Q axis is aligned with Phase A when the rotor angle θ=0, which means that θoffset = -90 degrees
Initial Angle (Deg)θ0Degrees0°

Initial Angle of the machine

This may be useful when simulating two separate 3-phase machines that require a phase shift between them.

Solver TimestepTsSecond1.2E-7 s

The timestep at which the machine model executes

Every Ts, new outputs are computed by the FPGA machine model. By default, this is set to the minimum achievable timestep.

Torque Equation

The machine torque for the PMSM Constant Ld/Lq motor type can be expressed by .

T_{e}=p p\left[ \sqrt{\frac{3}{2}} \; \psi_{M} \; i_{q}+\left(L_{d}-L_{q}\right) i_{d} i_{q}\right]

Motor Type: PMSM Variable Ld/Lq

When set to the PMSM Variable Ld/Lq motor type, the inductance and magnetic flux parameters are variable based on the operating state of the simulation, as defined in the JSON Motor Model File.

Configuration Parameters

The following parameters are available:

Motor Configuration

SymbolUnitsDefault ValueDescription
Model File


Specifies the path to the JSON Motor Model file on disk. Refer to Motor Model File [JSON] for details regarding the file format.
Enable Advanced Channels

False

Allows certain parameters to be exposed as tunable VeriStand Channels. See the Advanced Channels section below for more details.

This checkbox is only available when a Motor Model File has been specified. Otherwise, the option is greyed out.

Initial Angle (Deg)θ0Degrees0°

Initial Angle of the machine

This may be useful when simulating two separate 3-phase machines that require a phase shift between them.

Solver TimestepTsSecond1.2E-7 s

The timestep at which the machine model executes

Every Ts, new outputs are computed by the FPGA machine model. By default, this is set to the minimum achievable timestep.

Advanced Channels

The following VeriStand channels are displayed under the Advanced section when the Enable Advanced Channels option is enabled on the PMSM Variable Ld/Lq configuration page.

Channel Name

Symbol

Type

Units

Default Value

Description

Direct Axis Inductance Override

LdInputHenry0.002984 H

Direct-axis inductance of the machine

When Enable Inductance Override is True, this value overrides the direct axis inductance value defined in the JSON Motor Model File table. When Enable Inductance Override is False, this channel is not used.

This value can be modified while the simulation is running.

Enable Permanent Magnet Flux Linkage Override


Input
False

Enables the Flux Linkage Override channel, allowing the user to modify the permanent magnet flux linkage of the machine while the simulation is running.

When True, the flux linkage of the machine is read from the Flux Linkage Override channel.

When False, the flux linkage is read from the table in the JSON Motor Model File.

Enable Inductance Override


Input
False

Enables the Direct Inductance Override and Quadrature Inductance Override channels, allowing the user to modify the inductances of the machine while the simulation is running.

When True, the inductances of the machine are read from the  Direct Inductance Override and Quadrature Inductance Override channels.

When False, the direct axis and quadrature axis inductances are read from the table in the JSON Motor Model File.

Enable Resistance Override
Input
False

Enables the Resistance Phase A Override, Resistance Phase B Override, and Resistance Phase C Override channels, allowing the user to modify the phase resistances of the machine while the simulation is running.

When True, the phase resistances of the machine are read from the Resistance Phase A Override, Resistance Phase B Override, and Resistance Phase C Override channels.

When False, the phase resistances are read from the table in the JSON Motor Model File.

Permanent Magnet Flux Linkage OverrideψMInputWeber0.25366 Wb

Permanent magnet flux linkage of the machine

When the Enable Flux Linkage Override channel is set to True, instead of reading the Flux Linkage from the 2D ψM lookup table defined in the Model File, the motor model will use the following scalar channel value as an input.

When Enable Flux Linkage Override is True, this value overrides the flux linkage value defined in the JSON Motor Model File table. When Enable Flux Linkage Override is False, this channel is not used.

This channel value can be modified while the simulation is running.

Quadrature Axis Inductance OverrideLqInputHenry0.004576 H

Quadrature-axis inductance of the machine

When Enable Inductance Override is True, this value overrides the direct axis inductance value defined in the JSON Motor Model File table. When Enable Inductance Override is False, this channel is not used.

This value can be modified while the simulation is running.

Resistance Phase A OverrideRaInputOhmRead from JSON Model File when Advanced Channels are enabled

Phase A resistance of the machine

When Enable Resistance Override is True, this value overrides the Phase A resistance value defined in the JSON Motor Model File. When Enable Resistance Override is False, this channel is not used.

This channel value can be modified while the simulation is running.

Resistance Phase B OverrideRbInputOhmRead from JSON Model File when Advanced Channels are enabled

Phase B resistance of the machine

When Enable Resistance Override is True, this value overrides the Phase B resistance value defined in the JSON Motor Model File. When Enable Resistance Override is False, this channel is not used.

This channel value can be modified while the simulation is running.

Resistance Phase C OverrideRcInputOhmRead from JSON Model File when Advanced Channels are enabled

Phase C resistance of the machine

When Enable Resistance Override is True, this value overrides the Phase C resistance value defined in the JSON Motor Model File. When Enable Resistance Override is False, this channel is not used.

This channel value can be modified while the simulation is running.


Torque Equation

The machine torque for the PMSM Variable Ld/Lq motor type can be expressed by .

T_{e}=p p\left[ \sqrt{\frac{3}{2}} \; \psi_{M} \; i_{q}+\left(L_{d}-L_{q}\right) i_{d} i_{q}\right]


Motor Type: BLDC Constant Ls

When set to the BLDC Constant LS motor type, the machine model uses constant values for Stator Inductance, Magnetic Flux, Phase [A, B, C] Resistance, and Pole Pairs. The main difference between the PMSM and the BLDC motor types lies in the shape of the back EMF voltage, which is trapezoidal in the case of the BLDC.

Configuration Parameters

The following parameters are available:

Motor Configuration

SymbolUnitsDefault ValueDescription
Stator InductanceLsHenry0.002984 HStator inductance of the machine
Back EMF Flat AreaHDegrees0

Describes the length of the flat area in degrees of the trapezoidal back-EMF wave

Please see Trapezoidal Back-EMF Characteristics for a description of the wave.

Initial Angle (Deg)θ0Degrees0°

Initial Angle of the machine

This may be useful when simulating two separate 3-phase machines that require a phase shift between them.

Permanent Magnet Flux LinkageψMWeber0.25366 WbPeak permanent magnet flux linkage
Phase A ResistanceRaOhm0.12 ΩPhase A Resistance of the machine
Phase B ResistanceRbOhm0.12 ΩPhase B Resistance of the machine
Phase C ResistanceRcOhm0.12 ΩPhase C Resistance of the machine
Pole Pairspp
3Number of pole pairs
Direct Quadrature Transform Angle Offsetθoffset
Aligned

Describes the electrical angle offset as described by the Electrical Angle equation

  • Aligned - Indicates that the D axis is aligned with Phase A when the rotor angle θ=0

  • 90 Degrees behind Phase A - Indicates that the Q axis is aligned with Phase A when the rotor angle θ=0, which means that θoffset = -90 degrees.

Solver TimestepTsSecond1.2E-7 s

The timestep at which the machine model executes

Every Ts, new outputs are computed by the FPGA machine model. By default, this is set to the minimum achievable timestep.

Torque Equation

T_{e}=p p\left[ I_{a b c}\cdot\frac{\partial \psi_{abc}}{\partial \theta_r}\right]

Trapezoidal Back-EMF Characteristics

The BLDC has a trapezoidal back EMF shape that is parametrized with λm the permanent flux linkage and H the back EMF flat area in degrees.

The electromotive force is constructed from a cosine table as described in the following equation:

\Large\frac{\partial \psi_{a}}{\partial \theta_r \psi_M}\normalsize= max(min(\Large\frac{cos(\theta_r)}{cos(\frac{H}{2})}\normalsize,1),-1)