Main Content

I-F Controller

Implement I-F control for a three-phase permanent magnet synchronous motor

Since R2024a

Libraries:
Motor Control Blockset / Controls / Controllers

Description

The I-F Controller block implements I-F control based sensorless startup algorithm for a three-phase permanent magnet synchronous motor (PMSM).

Similar to the VbyF Controller block, the I-F Controller block enables sensorless motor startup, however, I-F Controller generates a higher startup torque in the motor.

The block computes the d- and q-axis reference currents along with reference electrical position for the PMSM. It accepts electrical position, q-axis current, as well as reference and actual mechanical speeds as inputs.

The block supports both the SI unit and per-unit (PU) systems. For more information about the per-unit system, see Per-Unit System.

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.

For information about the block algorithm, see Algorithm.

Examples

Ports

Input

expand all

Signal that enables block algorithm:

  • 1 — Enables block algorithm.

  • 0 — Reset block algorithm.

Data Types: single | double | fixed point

The electrical position of the rotor.

Data Types: single | double | fixed point

Reference mechanical speed for running the motor using I-F control.

Data Types: single | double | fixed point

Actual mechanical speed of the motor.

Data Types: single | double | fixed point

Stator current along the q-axis of the rotating dq reference frame..

Data Types: single | double | fixed point

Stator voltage along the q-axis of the rotating dq reference frame..

Data Types: single | double | fixed point

Computed parameters for the I-F Controller block. The input port accepts the following parameters:

  • Number of pole pairs

  • Speed to exit I-F controller (RPM), ω1

  • Speed to re-enter I-F controller (RPM), ω2

  • Maximum current (A), Imax

  • Maximum rate of speed change (RPM/s)

  • Maximum current decay rate (A/s)

  • Idle time (s)

  • Damping coefficient, ζ

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

Reference d-axis stator current leading to currents that drive the motor.

Data Types: single | double | fixed point

Reference q-axis stator current leading to currents that drive the motor.

Data Types: single | double | fixed point

Reference electrical position of motor generated by the block that drives the motor.

Data Types: single | double | fixed point

Status of the I-F control algorithm.

  • 1 — Indicates that I-F control is inactive.

  • 0 — Indicates that I-F control is active.

Data Types: single | double | fixed point

Parameters

expand all

Select this parameter to apply speed oscillation damping to the motor electrical speed (according to assumed motor position) with speed oscillations.

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

  • Number of pole pairs

  • Current unit

  • Base current (A)

  • Speed to exit I-F controller (RPM), ω1

  • Speed to re-enter I-F controller (RPM), ω2

  • Maximum current (A), Imax

  • Maximum rate of speed change (RPM/s)

  • Maximum current decay rate (A/s)

  • Idle time (s)

  • Voltage unit

  • Base voltage (V)

  • Damping coefficient, ζ

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

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.

Unit of θe input and θeref output used by the block.

Select Per-unit to use per-unit system for the reference electrical position input and output. For more information about the per-unit system, see Per-Unit System.

Units of the ωmref and ωm inputs.

Select Per-unit to use per-unit system for the two speed inputs. For more information about the per-unit system, see Per-Unit System.

Speed value corresponding to one per-unit. For details, see Per-Unit System.

Dependencies

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

Unit of Iq input as well as Idref and Iqref outputs of the block.

Select Per-unit to use per-unit system for these motor currents. For more information about the per-unit system, see Per-Unit System.

Dependencies

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

Nominal current value corresponding to one per-unit. For details, see Per-Unit System.

Dependencies

To enable this parameter:

  • Clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

  • Set Current unit to Per-unit.

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

Controller Parameters

Speed (after motor starts) until which the I-F controller remains active (in RPM). When the motor speed exceeds this value, the I-F controller becomes inactive and the Status block output turns true.

Dependencies

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

After exiting I-F control (and entering closed-loop control), speed required to reactivate the I-F controller (in RPM). When the motor speed falls below this value, the I-F controller becomes active again and the Status block output turns false.

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 current (in amperes) that is supplied to the motor when I-F control is active.

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 rate at which motor speed can change (in RPM/s) when I-F control is active.

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 rate at which motor current can decay (in amperes/s) when I-F control is active.

Dependencies

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

Time (in seconds) during which both motor speed and current remains constant when I-F control is active.

Dependencies

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

Threshold electrical position error (between θe and θeref ) below which the block transitions from I-F control to closed-loop control.

Advanced Parameters

To enable this tab, select the Enable speed damping parameter.

Unit of Vα and Vβ stator voltages.

Select Per-unit to use per-unit system for these voltages. For more information about the per-unit system, see Per-Unit System.

Dependencies

To enable this parameter:

  • Select the Enable speed damping parameter.

  • Clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Nominal voltage value corresponding to one per-unit. For details about the per-unit system, see Per-Unit System.

Dependencies

To enable this parameter:

  • Select the Enable speed damping parameter.

  • Clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

  • Set Voltage unit to Per-unit.

Value of the speed oscillation damping coefficient (K) that the block should use.

Dependencies

To enable this parameter:

  • Select the Enable speed damping parameter.

  • Clear the Use input port for computed parameters (run-time motor swap) parameter available in the Advanced Options section.

Algorithms

expand all

The following equations explain the I-F control algorithm used by the block for a PMSM.

The preceding figure explains the I-F control operation. It shows the γ- rotating orthogonal axes (aligned with assumed rotor position), the d-q axes in the rotating reference frame, and the stationary α-β reference frame.

The following equation describes the electrical torque of PMSM when I-F control is active:

Te=1.5p[λpmiq+(LdLq)idiq]=3p2Imλpmcos(θerr)+3p4Im2(LdLq)sin(2θerr)1.5pImλpmcos(θerr)

The mechanical equation of PMSM is

dωedt=pJTepJTlBJωe

During steady state operation:

TeTl+pBωe

The following equation describes the relationship between θerr and Im:

cos(θerr)Tl+pBωe1.5PλpmIm

where:

  • Te is the electromagnetic torque of the motor (in Nm).

  • Tl is the load torque of the motor (in Nm).

  • p is the number of pole pairs of the motor.

  • λpm is the permanent magnet flux linkage (in Weber).

  • id is the motor current along the d-axis of the d-q rotating reference frame (in amperes).

  • iq is the motor current along the q-axis of the d-q rotating reference frame (in amperes).

  • Ld is the d-axis inductance of the motor (in henries).

  • Lq is the q-axis inductance of the motor (in henries).

  • Im is the current injected by the I-F control algorithm (in amperes).

  • θe is the actual rotor position (in radians).

  • θi is the assumed (reference) rotor position (in radians).

  • θerr is the difference between the actual and assumed rotor position (in radians).

  • ωe is the electrical speed of the motor (in rad/s).

  • J is the motor inertia (in kgm^2)

  • B is the friction constant (in Nms).

When using this algorithm, the magnitude of the starting current determines the maximum electrical torque that the I-F control algorithm can generate.

The preceding equations also show that a very high acceleration value can affect the stability of I-F control. The error between actual and assumed motor position depends on the magnitude of the supplied current.

The following image shows the operation of the I-F control, which begins with motor-start followed by transition from I-F to closed-loop control and from closed-loop to I-F control.

The I-F control algorithm provides good control over torque during motor startup. The control algorithm starts the motor without any current overshoots as well as provides a smooth I-F control to closed-loop control transition.

References

[1] Z. Wang, K. Lu and F. Blaabjerg, "A Simple Startup Strategy Based on Current Regulation for Back-EMF-Based Sensorless Control of PMSM," in IEEE Transactions on Power Electronics, vol. 27, no. 8, pp. 3817-3825, Aug. 2012, doi: 10.1109/TPEL.2012.2186464.

[2] A. Borisavljevic, H. Polinder and J. A. Ferreira, "Realization of the I/f control method for a high-speed permanent magnet motor," The XIX International Conference on Electrical Machines - ICEM 2010, Rome, Italy, 2010, pp. 1-6, doi: 10.1109/ICELMACH.2010.5607892.

[3] S. V. Nair, K. Hatua, N. V. P. R. D. Prasad and D. K. Reddy, "A Quick I--f Starting of PMSM Drive With Pole Slipping Prevention and Reduced Speed Oscillations," in IEEE Transactions on Industrial Electronics, vol. 68, no. 8, pp. 6650-6661, Aug. 2021, doi: 10.1109/TIE.2020.3005070.

[4] Z. Song, W. Yao, K. Lee and W. Li, "An Efficient and Robust I-f Control of Sensorless IPMSM With Large Startup Torque Based on Current Vector Angle Controller," in IEEE Transactions on Power Electronics, vol. 37, no. 12, pp. 15308-15321, Dec. 2022, doi: 10.1109/TPEL.2022.3193565.

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 R2024a