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 an SPMSM in the αβ reference frame.

ψα= (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 does not allow any DC offset (in the block inputs) to ramp up the block output. For example, consider an input function X(s)=k/s corresponding to a step input x(t) = k*u(t). Using the preceding transfer function of LPF based integrator, 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)

According to the preceding equation, the step response of LPF integrator asymptotically settles to a DC value (that depends on the magnitude of the step input). Whereas the step response of a pure integrator is a ramp function. Using a high-pass filter at the LPF integrator output eliminates the DC offset (present in the input) completely.

ψ= ψα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β)

σ=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, select the Position option in the Block output parameter.

Data Types: single | double | fixed point

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

Dependencies

To enable this port, select the Flux option in the Block output parameter.

Data Types: single | double | fixed point

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

Dependencies

To enable this port, select the Torque option in the Block output parameter.

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.

  • The block selects the Position option in the Block output parameter because it does not support flux and torque computations when 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 motor. For details, see Per-Unit System.

Dependencies

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

The maximum measurable current supplied to the motor. 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

Select the Torque option in the Block output parameter.

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 high-pass filter. Set the Cutoff frequency (Hz) for this filter to a value that is lower than the electrical frequency corresponding to the minimum speed of the motor. For example, you can enter a value that is one-tenth of the minimum frequency of the motor 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, select the Position option in the Block output parameter.

Data type of the electrical position output.

Dependencies

To enable this parameter, select the Position option in the Block output parameter.

Unit of the magnetic flux output.

Dependencies

To enable this parameter, select the Flux option in the Block output parameter.

Flux value (in weber) corresponding to one per-unit. For details about the per-unit system, see Per-Unit System.

Dependencies

To enable this parameter:

  • Select the Flux option in the Block output parameter.

  • Set the Flux unit parameter to Per-unit.

Data type of the magnetic flux output.

Dependencies

To enable this parameter, select the Flux option in the Block output parameter.

Unit of the electrical torque output.

Dependencies

To enable this parameter, select the Torque option in the Block output parameter.

Torque value (in Nm) corresponding to one per-unit. For details about the per-unit system, see Per-Unit System.

Dependencies

To enable this parameter:

  • Select the Torque option in the Block output parameter.

  • Set the Torque unit parameter to Per-unit.

Data type of the electrical torque output.

Dependencies

To enable this parameter, select the Torque option in the Block output parameter.

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