Main Content

Pulsating High Freq Observer

Estimate initial rotor electrical position of interior PMSM using pulsating high frequency (PHF) injection

Since R2022b

Libraries:
Motor Control Blockset / Sensorless Estimators

Description

The Pulsating High Frequency Observer block estimates the initial position (in electrical radians) of a stationary interior PMSM by using pulsating high-frequency (PHF) injection and dual-pulse (DP) techniques. In addition, the block also detects the real-time position when the rotor runs using (low-speed) closed-loop control.

For more information about the block algorithm, see Algorithm.

Examples

Ports

Input

expand all

The high-frequency (phase a and b) current feedback from the motor in response to the PHF voltage injection, in amperes or per-unit.

Data Types: single | double | fixed point

Specify one of these inputs at this port:

  • 1 — Enable block operation

  • 0 — Disable block operation

Data Types: Boolean

Initial rotor position input when the block skips the stage 1 initial position estimation (IPE) operation. The position is expressed in radians, degrees, or per-unit. For more information on the two stages that the block operates in, see Algorithm.

The unit depends on the Position unit parameter.

Data Types: single | double | fixed point

Port for signal to enable stage 1 IPE operation. It supports one of the following inputs:

  • 1 — Enable the block to run the stage 1 IPE operation followed by the stage 2 closed-loop pulsating high-frequency (PHF) injection operation.

  • 0 — Enable the block to skip stage 1 and directly run stage 2 closed-loop PHF injection.

For more information on the two stages that the block operates in, see Algorithm.

Data Types: Boolean

Output

expand all

Pulsating high-frequency voltage (in αβ reference frame) output, in per-unit.

Data Types: single | double | fixed point

The rotor position estimated by the block, in radians, degrees, or per-unit.

The unit depends on the Position unit parameter.

Data Types: single | double | fixed point

The port provides one of the following outputs:

  • 1 — Indicates that the block has successfully completed the stage 1 initial position estimation (IPE) and that the θest port displays the accurate rotor position.

  • 0 — Indicates that the stage 1 IPE operation is still in progress (θest port output is not accurate as yet) or that the estimation has failed.

Data Types: single | double | fixed point

The bus signal contains these block calculations.

SignalDescriptionUnits

Sin θest and cos θest

Sine and cosine of estimated rotor position

-

Id and Iq

Stator direct axis and quadrature axis currents

A

Convergence

Difference between current and previous sample of θest output.

A value closer to zero indicates saturation of θest.

rad

Status

0

Block is not enabled (Enable input port is 0)

-

1

Block is finding the best possible initial estimate (stage 1 part A)

-

2

Block is running the PHF method (stage 1 part B)

-

3

Block is running the DP method (stage 1 part C)

-

4

Block has successfully completed stage 1 and has started stage 2 closed-loop PHF injection

-

5

Stage 1 part B failed due to a large error in the estimated rotor position

-

Parameters

expand all

The time between two consecutive instances of block execution.

Units of measure for the block inputs.

Data type of the block inputs and outputs.

Selecting this parameter enables the block to automatically compute the following PHF parameters (available on the PHF Parameters tab) using the specified motor parameters:

  • PHF frequency (Hz)

  • LP filter cutoff frequency (Hz)

  • Proportional gain

  • Integral gain

  • Expected settling time (s)

  • Expected damping ratio

  • Open loop duration (s)

  • Close loop duration (s)

  • Idle time (s)

For more information about how the block computes these PHF parameters, see Compute PHF Parameters.

If you select this parameter, the block disables the Compute PHF parameters button.

Selecting this parameter enables the block to automatically compute the DP parameter Pulse duration (s) (available on the DP Parameters tab) using the specified motor parameters.

For more information about how the block computes the DP parameter, see Compute DP Parameters.

If you select this parameter, the block disables the Compute DP parameters button.

Motor Parameters

Resistance of the stator (in ohms).

Inductance of the stator along the d-axis of the d-q reference frame.

Inductance of the stator along the q-axis of the d-q reference frame.

Rated voltage of the motor (in volts).

Rated current of the motor (in amperes).

When you click this button, the block computes the following PHF parameters (available on the PHF Parameters tab) manually using the specified motor parameters:

  • PHF frequency (Hz)

  • LP filter cutoff frequency (Hz)

  • Proportional gain

  • Integral gain

  • Expected settling time (s)

  • Expected damping ratio

  • Open loop duration (s)

  • Close loop duration (s)

  • Idle time (s)

For more information about how the block computes these PHF parameters, see Compute PHF Parameters.

Dependencies

To enable this parameter, clear the Compute PHF parameters automatically using motor parameters parameter.

When you click this button, the block computes the DP parameter Pulse duration (s) (available on the PHF Parameters tab) manually using the specified motor parameters:

For more information about how the block computes the DP parameter, see Compute DP Parameters.

Dependencies

To enable this parameter, clear the Compute DP parameters automatically using motor parameters parameter.

PHF Parameters

Peak amplitude of the PHF voltage applied by the block, in volts.

Frequency of the PHF voltage applied by the block, in Hz.

Cutoff frequency of the lowpass filter for the PHF applied by the block, in Hz.

Select the control parameters that you want to manually tune.

  • Controller gains — Select this option to enable these control parameters:

    • Proportional gain

    • Integral gain

    Note

    Selecting Control gains disables the time response variables.

  • Time response variables — Select this option to enable these control parameters:

    • Expected settling time (s)

    • Expected damping ratio

    Note

    Selecting Time response variables disables the control gains variables.

To see the effects of the tuned parameters on the disabled control parameters, you can click the Compute Control Parameters button. For more details, see Compute Control Parameters.

Proportional PI controller gain, Kp, for the PHF applied by the block.

Dependencies

To enable this parameter, set the Select tuning parameters parameter to Controller gains.

Integral PI controller gain, Ki, for the PHF applied by the block.

Dependencies

To enable this parameter, set the Select tuning parameters parameter to Controller gains.

The expected time for the block output θest to saturate during part B.

Dependencies

To enable this parameter, set the Select tuning parameters parameter to Time response variables.

The expected damping ratio of the block output θest dynamics.

Dependencies

To enable this parameter, set the Select tuning parameters parameter to Time response variables.

Compute the control parameters that are disabled in the Control Parameters section. This parameter helps you update the disabled control parameters according to the edits you made to the enabled control parameters. This table describes the equations that the block uses to compute the disabled control parameters.

Control ParameterExpression or ValueRemarks

Proportional gain, kp

ln(20000)GTsettling

The Compute Control Parameters button computes these values when you enable the time response variables for manual edits.

Integral gain, ki

G(kp)24δ2

Expected settling time (s), Tsettling

ln(20000)Gkp,when δ1ln(20000)Gkp(2δ(δδ21)),when δ>1

The Compute Control Parameters button computes these values when you enable the controller gains for manual edits.

Expected damping ratio,

kp2Gki

In the expressions:

  • G=Vphf(LqLd)4πfhLdLq

  • Vphf is the peak amplitude value of the injected high frequency voltage signal (in volts).

  • Ld and Lq are the d and q axis stator inductances (in henry).

  • fh is the frequency of the injected high-frequency voltage.

Note

The expressions in this table use elements and values based on the reference papers as well as experimental data.

Duration of the open-loop PHF injection during stage 1 part A, in seconds.

Duration of the closed-loop PHF injection during stage 1 part B, in seconds.

Duration (in seconds) between steps in the algorithm related to stage 1 part A and stage 1 part B that allow for fading of transient dynamics. For example, this block stops operating (for this duration) between each PHF injection (open loop or closed loop).

The minimum error value θerr at which the convergence of estimated rotor position θest completes.

DP Parameters

Voltage amplitude of the injected pulses, in volts.

Duration of the injected pulses, in seconds.

Duration (in seconds) between two pulses during the dual-pulse injection (stage 1 part C).

Algorithms

expand all

The block determines the best possible initial estimation for the rotor position using open-loop pulsating high-frequency (PHF) injection, which it uses to run closed-loop PHF.

The block executes closed-loop PHF by injecting a high-frequency signal into the estimated rotor position to determine the actual rotor position without spinning the motor. This technique works when the motor saliency ratio (Lq/Ld) is greater than 1. Due to a limitation in the PHF method, the estimated position can show ambiguity equal to the value of π (pi). The dual-pulse (DP) method uses polarity detection to resolve the ambiguity of π and applies a compensation of π if there is an error. The estimated rotor position ranges from 0 to 2π electrical radians.

The block can run in these two stages:

  1. Stage 1 – Initial position estimation (IPE), which includes three parts.

  2. Stage 2 – Closed-loop pulsating high-frequency (PHF) injection.

After Stage 1 completes, you can continue to run the block in Stage 2 where it computes the rotor position while the motor runs using closed loop control (for example, field-oriented control or FOC). Using the Stage 2 algorithm (closed-loop PHF injection), the block can continue to inject pulsating high frequency (as described in Part B) and use the numerical analysis of the resulting stator current response to compute and track the rotor position during closed-loop operation.

Stage 1 focuses on determining the initial position of the rotor when it is stationary. This stage includes the following three parts.

References

[1] W. Zine, L. Idkhajine, E. Monmasson, Z. Makni, P. Chauvenet, B. Condamin, and A. Bruyere, "Optimisation of HF signal injection parameters for EV applications based on sensorless IPMSM drives", IET Electric Power Applications, Volume 12, Issue 3, March 2018, p. 347 - 356 (doi:10.1049/iet-epa.2017.0228).

[2] Gaolin Wang, Guoqiang Zhang, and Dianguo Xu, "Position Sensorless Control Techniques for Permanent Magnet Synchronous Machine Drives", Springer, Singapore, 2020 p. 41 - 43 (doi: https://doi.org/10.1007/978-981-15-0050-3).

Extended Capabilities

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 R2022b