Main Content

Extended EMF Observer

Compute electrical position and mechanical speed of permanent magnet synchronous motor (PMSM)

Since R2023a

Libraries:
Motor Control Blockset / Sensorless Estimators

Description

The Extended EMF Observer block computes the electrical position, θe (or sin θe and cos θe), in addition to the mechanical speed of the PMSM from the measured voltage and current in the stationary αβ reference frame.

The block includes a linear extended EMF state observer that estimates the extended back-EMF. It uses a lowpass filter to remove any noise in the estimated back-EMF value. In addition, the block includes a speed feedforward-based quadrature phase-locked loop (PLL) that acts as a speed observer. The speed observer uses the computed extended back-EMF to determine the motor speed. It calculates speed with zero error even during constant angular acceleration. The block then computes the position output from the estimated motor electrical speed.

In addition, you can use the advanced options to enable the ParameterBus input port, which you can use with the Compute Parameter block to update the block parameters optimally at run-time. You can use this functionality when motor parameters can change over time, for example, while building applications that may require swapping of motors at run-time.

Equations

The IPMSM state equation is defined as:

[i·e·]=[A11A120A22][ie]+[B10]v+[0W]i=C[ie]

These equations describe the reduced order PMSM state model:

i·=A11i+A12e+B1ve·=A22e

Extended back-EMF, e={(LdLq)(ωreidi·q)+ωreKE}[sinθrecosθre]

This equation describes the reduced dimensional state observer:

e^·=(A^22ξA12)e^+ξ(i·A^11iB1v)

These equations describe the extended EMF observer parameters:

A22ξA12=ωreJ(αI+βJ)(1Ld)Iξ=(αI+βJ)

To ensure convergence, if you set β=ωre×Ld and set α to a negative value, then the extended EMF observer gain can be determined as:

Extended EMF observer gain=αLd

where:

  • i=[iαiβ], e=[eαeβ], and v=[vαvβ].

  • W=(LdLq)(ωreid·iq··)[sinθrecosθre].

  • A=[A11A120A22], B=[B10], and C=[I0].

  • A11=(RLd)I+(ωre(LdLq)Ld)J, A12=(1Ld)I, and A22=ωreJ.

  • B1=(1Ld)I, I=[1001], and J=[0110].

    Note

    A and C are an observable pair.

  • "·" and "··" are the first-order and second-order differential operators, respectively.

  • vα and vβ are the stator voltages along the α- and β-axes, respectively.

  • iα and iβ are the stator currents along the α- and β-axes, respectively.

  • eα and eβ are the extended back-EMF along the α- and β-axes, respectively.

  • id and iq are the stator currents along the d- and q-axes, respectively.

  • R is the stator resistance of PMSM.

  • Ld and Lq are the stator inductances of PMSM across d and q axes, respectively.

  • KE is the EMF constant.

  • ωre is the angular velocity at electrical angle.

  • θre is the rotor position at electrical angle.

  • e^, A^22, and A^11 are the estimated values.

  • ξ is the feedback gain.

Examples

Ports

Input

expand all

Per-unit voltage component along the α-axis of the stationary αβ reference frame.

Data Types: single | double | fixed point

Per-unit voltage component along the β-axis of the stationary αβ reference frame.

Data Types: single | double | fixed point

Per-unit current component along the α-axis of the stationary αβ reference frame.

Data Types: single | double | fixed point

Per-unit current component along the β-axis of the stationary αβ reference frame.

Data Types: single | double | fixed point

The pulse (true value) that resets and restarts the processing of the block algorithm.

Data Types: single | double | fixed point

Computed parameters for the Extended EMF Observer block. The input port accepts the following parameters:

  • Number of pole pairs

  • Stator resistance (ohm)

  • Stator d-axis inductance (H)

  • Stator q-axis inductance (H)

  • Maximum application speed (RPM)

  • EEMF observer gain

  • EEMF filter cutoff frequency (Hz)

  • Proportional (P)

  • Integral (I)

  • Speed filter cutoff frequency (Hz)

Use this port along with the Compute Parameter block to update the preceding block parameters optimally at run-time.

Dependencies

To enable this port, select the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Data Types: single | double

Output

expand all

The estimated electrical position of the rotor.

Dependencies

To enable this port, set the Position output parameter to Electrical position.

Data Types: single | double | fixed point

Sine of the estimated electrical position of the rotor.

Dependencies

To enable this port, set the Position output parameter to Sine and Cosine electrical position.

Data Types: single | double | fixed point

Cosine of the estimated electrical position of the rotor.

Dependencies

To enable this port, set the Position output parameter to Sine and Cosine electrical position.

Data Types: single | double | fixed point

The estimated mechanical speed of the rotor.

Data Types: single | double | fixed point

Parameters

expand all

Select this parameter to enable the ParameterBus input port and disable the following parameters:

  • Number of pole pairs

  • Stator resistance (ohm)

  • Stator d-axis inductance (H)

  • Stator q-axis inductance (H)

  • Maximum application speed (RPM)

  • EEMF observer gain

  • EEMF filter cutoff frequency (Hz)

  • Proportional (P)

  • Integral (I)

  • Speed filter cutoff frequency (Hz)

This parameter enables you to use the input port along with the Compute Parameter block to update block parameters optimally at run-time.

Units of inputs to the block.

Type of positions that the block outputs.

  • Electrical position — Select this value to enable the θe port.

  • Sine and Cosine electrical position — Select this value to enable the Sin θe and Cos θe ports.

The fixed time interval (in seconds) between two consecutive instances of block execution.

Motor Parameters

Stator phase winding resistance (in ohm).

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Stator phase winding inductance (in Henry) along the d-axis of the rotating d-q reference frame.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Stator phase winding inductance (in Henry) along the q-axis of the rotating d-q reference frame.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Maximum mechanical speed (in RPM) that the block can support. If you set the speed to a value higher than this value, the block generates incorrect outputs.

Note

The block uses this parameter to filter out noise in the estimated speed signal.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Number of pole pairs available in the motor.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

The maximum phase voltage applied to the PMSM. For details, see Per-Unit System.

The maximum measurable current supplied to the PMSM. For details, see Per-Unit System.

Observer Parameters

Gain of the linear extended EMF state observer.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Cutoff frequency of the lowpass filter that the block uses to remove noise in the estimated back-EMF value.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Proportional gain of the speed observer used by the block.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Integral gain of the speed observer used by the block.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Number of data points in the lookup table that the speed observer uses to compute speed from the extended back-EMF value.

Cutoff frequency of the lowpass filter that the block uses to remove noise in the estimated speed.

Dependencies

To enable this parameter, clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Datatypes

Unit of the position output.

Data type of the position output.

Unit of the speed output.

Data type of the speed output.

Data type of the table.

References

[1] Zhiqian Chen, M. Tomita, S. Doki and S. Okuma, "An extended electromotive force model for sensorless control of interior permanent-magnet synchronous motors," in IEEE Transactions on Industrial Electronics, vol. 50, no. 2, pp. 288-295, April 2003, doi: 10.1109/TIE.2003.809391.

[2] T. Ohnuma, S. Doki and S. Okuma, "Extended EMF observer for wide speed range sensorless control of salient-pole synchronous motor drives," The XIX International Conference on Electrical Machines - ICEM 2010, Rome, Italy, 2010, pp. 1-6, doi: 10.1109/ICELMACH.2010.5608087.

[3] G. Liu, H. Zhang and X. Song, "Position-Estimation Deviation-Suppression Technology of PMSM Combining Phase Self-Compensation SMO and Feed-Forward PLL," in IEEE Journal of Emerging and Selected Topics in Power Electronics, vol. 9, no. 1, pp. 335-344, Feb. 2021, doi: 10.1109/JESTPE.2020.2967508.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Fixed-Point Conversion
Design and simulate fixed-point systems using Fixed-Point Designer™.

Version History

Introduced in R2023a