Main Content

Flux Observer

Compute electrical position, magnetic flux, and electrical torque of rotor

Since R2020a

Libraries:
Motor Control Blockset / Sensorless Estimators

Description

The Flux Observer block computes the electrical position, magnetic flux, and electrical torque of a PMSM or an induction motor by using the per unit voltage and current values along the α- and β-axes in the stationary αβ reference frame.

The block also accepts 16-bit fixed-point data type inputs. To perform mathematical operations on 16-bit fixed-point data type signals, the block uses optimized implementation of equations for maintaining the best possible precision.

Equations

These equations describe how the block computes the electrical position, magnetic flux, and electrical torque for a PMSM.

ψα= (VαIαR)dt (LsIα)

ψβ= (VβIβR)dt (LsIβ)

If (VαIαR)=v1(t) and (VβIβR)=v2(t)

Then, the following Laplace transforms represent the integral terms available in Ψα and Ψβ:

L(v1(t)dt)=1sL(v1(t))=1sv1(s)L(v2(t)dt)=1sL(v2(t))=1sv2(s)

The block uses low-pass filter (LPF) based integrator to compute these integral terms.

If the input electrical speed of the motor (ωe) is much greater than the speed corresponding to the cut-off frequency of LPF-based integrator (ωc), then

L(v1(t)dt)=1(s+ωc)v1(s)L(v2(t)dt)=1(s+ωc)v2(s)

The LPF-based integrator that the block uses eliminates any DC offset that the block may have. For example, consider an input function X(s)=k/s. Using the preceding transfer function of G(s)=1(s+ωc), we obtain:

Y(s)=G(s)X(s)=ks(s+ωc)=kωc(1s)kωc(1s+ωc)Y(t)=kωcu(t)kωcexp(ωct)u(t)

The preceding equation shows that the DC component in the resulting output Y(t) reduces exponentially with time. Therefore, the LPF-based integrator enables the block to eliminate any DC component available in the system.

ψ= ψα2+ψβ2

Te=32P(ψαIβψβIα)

θe= tan1ψβψα

These equations describe how the block computes the rotor electrical position, rotor magnetic flux, and electrical torque for an induction motor.

ψα=LrLm ((VαIαR)dt σLsIα)

ψβ=LrLm ((VβIβR)dt σLsIβ)

As explained previously, the LPF-based integrator enables the block to eliminate any DC component available in Ψα and Ψβ.

σ=1Lm2LrLs

ψ= ψα2+ψβ2

Te=32PLmLr(ψαIβψβIα)

θe= tan1ψβψα

where:

  • Vα and Vβ are the α-axis and β-axis voltages (volts).

  • Iα and Iβ are the α-axis and β-axis current (amperes).

  • R is the stator resistance of the motor (ohms).

  • Ls is the stator inductance of the motor (henry).

  • Lr is the rotor inductance of the motor (henry).

  • Lm is the magnetizing inductance of the motor (henry).

  • σ is the total leakage factor of the induction motor.

  • P is the number of motor pole pairs.

  • ψ is the rotor magnetic flux (weber).

  • ψα and ψβ are the rotor magnetic fluxes along the α- and β-axes (weber).

  • Te is the electrical torque of the rotor (Nm).

  • θe is the electrical position of the rotor (radians).

Ports

Input

expand all

Voltage component along the α-axis in the stationary αβ reference frame.

Data Types: single | double | fixed point

Voltage component along the β-axis in the stationary αβ reference frame.

Data Types: single | double | fixed point

Current along the α-axis in the stationary αβ reference frame.

Data Types: single | double | fixed point

Current along the β-axis in the stationary αβ reference frame.

Data Types: single | double | fixed point

The pulse (true value) that resets the block algorithm.

Data Types: single | double | fixed point

Output

expand all

The electrical position of the rotor as estimated by the block.

Dependencies

To enable this port, set Block output to Position.

Data Types: single | double | fixed point

The magnetic flux of the rotor as estimated by the block.

Dependencies

To enable this port, set Block output to Flux.

Data Types: single | double | fixed point

The electrical torque of the rotor as estimated by the block.

Dependencies

To enable this port, set Block output to Torque.

Data Types: single | double | fixed point

Parameters

expand all

Parameters

Select the type of motor from the types that the block supports.

To process 16-bit fixed-point inputs and perform computation using 16-bit fixed-point data type, select this parameter. To use a data type other than 16-bit fixed point, clear this parameter.

If you select this parameter:

  • The block sets the Input unit parameter to Per-unit because you cannot use the 16-bit data type with SI units.

  • The block selects the Position option in the Block output parameter because it cannot generate flux or torque output using the 16-bit data type.

Select the unit of the α- and β-axes voltage and current input values.

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

Dependencies

To enable this parameter, set Input unit to Per-unit.

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

Dependencies

To enable this parameter, set Input unit to Per-unit.

Select one or more quantities that you want the block to compute and display in the block output.

Note

You must select at least one value. The block displays an error message if you click Ok or Apply without selecting any value.

Number of pole pairs available in the motor.

Dependencies

To enable this parameter, set Block output to Torque.

Stator phase winding resistance of the motor in ohms.

Stator winding inductance of the motor along the d-axis in henries.

Dependencies

To enable this parameter, set Motor selection to PMSM.

Leakage inductance of the induction motor stator winding in henries.

Dependencies

To enable this parameter, set Motor selection to ACIM.

Leakage inductance of the induction motor rotor winding in henries.

Dependencies

To enable this parameter, set Motor selection to ACIM.

Magnetizing inductance of the induction motor in henries.

Dependencies

To enable this parameter, set Motor selection to ACIM.

Cutoff frequency of the internal highpass filter (that filters noise) in hertz.

The Flux Observer block uses an internal first-order IIR highpass filter. Set the Cutoff frequency (Hz) for this filter to a value that is lower than the lowest frequency corresponding to the minimum speed of the motor. For example, you can enter a value that is one-tenth of the lowest electrical frequency of the stator voltages and currents. However, you can adjust this value to determine a more accurate cutoff frequency that generates the desired block output.

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

Datatypes

Unit of the electrical position output.

Dependencies

To enable this parameter, set Block output to Position.

Data type of the electrical position output.

Dependencies

To enable this parameter, set Block output to Position.

Unit of the magnetic flux output.

Dependencies

To enable this parameter, set Block output to Flux.

Data type of the magnetic flux output.

Dependencies

To enable this parameter, set Block output to Flux.

Unit of the electrical torque output.

Dependencies

To enable this parameter, set Block output to Torque.

Data type of the electrical torque output.

Dependencies

To enable this parameter, set Block output to Torque.

References

[1] A. Podder and D. Pandit, "Study of Sensorless Field-Oriented Control of SPMSM Using Rotor Flux Observer & Disturbance Observer Based Discrete Sliding Mode Observer," 2021 IEEE 22nd Workshop on Control and Modelling of Power Electronics (COMPEL), 2021, pp. 1-8. (doi: 10.1109/COMPEL52922.2021.9645939)

[2] O. Sandre-Hernandez, J. J. Rangel-Magdaleno and R. Morales-Caporal, "Simulink-HDL cosimulation of direct torque control of a PM synchronous machine based FPGA," 2014 11th International Conference on Electrical Engineering, Computing Science and Automatic Control (CCE), Campeche, 2014, pp. 1-6. (doi: 10.1109/ICEEE.2014.6978298)

[3] Y. Inoue, S. Morimoto and M. Sanada, "Control method suitable for direct torque control based motor drive system satisfying voltage and current limitations," The 2010 International Power Electronics Conference - ECCE ASIA -, Sapporo, 2010, pp. 3000-3006. (doi: 10.1109/IPEC.2010.5543698)

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 R2020a