Main Content

Direct Torque Control of an Induction Motor Drive

This example demonstrates the speed regulation of a variable-frequency AC drive using a hysteresis-based direct torque control (DTC) technique.

Electrical Model

The electrical energy is supplied by a three-phase AC/DC diode rectifier connected to a 460 V, 60 Hz grid equivalent. The DC bus is connected to a three-phase, two-level converter. This converter generates the variable voltage and frequency required for variable-speed operation of the 150 HP induction motor. In addition, a braking chopper is connected to the DC bus in order to dissipate the kinetic energy of the motor during deceleration.

An inverter-fed induction motor drive can be controlled through various techniques depending on application, desired performance, and controller design complexity. Commonly used schemes are scalar control (V/Hz control or open loop flux control) or vector control (field-oriented control or direct torque control). This example uses a hysteresis-based direct torque control (DTC) technique.

Direct Torque Controller

Direct torque control (DTC) is a technique that allows you to instantaneously control the motor magnetic flux and its electromagnetic torque in a decoupled way. Controlling the torque directly permits accurate static and dynamic speed regulation. The main components of the DTC subsystem are:

  1. Flux and Torque Calculation — The stator flux linkage is estimated by integrating the stator voltages, and torque is calculated based on the estimated flux and the motor currents.

  2. Speed Regulator — The regulator compares the actual motor speed with the speed reference and generates the torque reference.

  3. Hysteresis Control — The calculated flux magnitude and torque are compared with the reference values. When the resulting flux or torque error crosses either the positive or negative hysteresis band value, a control signal is activated in order to correct the error.

  4. Optimal Switching — Pulses to the motor inverter are produced based on the control signals generated by the hysteresis control and the stator flux linkage position.

The figure below illustrates the strategy used to determine the best voltage vector when the flux linkage is located in sector 0.

The image shows four cases:

  1. V3 is selected when the electromagnetic torque should be increased and the flux should stay unchanged. Selecting the V3 voltage vector speeds up the flux and thus applies an acceleration torque to the rotor while slightly decreasing the flux magnitude.

  2. V2 is selected when the electromagnetic torque should be increased and the flux should be increased. Selecting the V2 voltage vector slightly speeds up the flux and increases its magnitude.

  3. V6 is selected when the electromagnetic torque should be reduced and the flux should be increased. Selecting the V6 voltage vector slows down the flux and thus applies a deceleration torque to the rotor while increasing the flux magnitude.

  4. V5 is selected when the electromagnetic torque should be reduced and the flux should stay unchanged. Selecting V5 the voltage vector applies a deceleration torque to the rotor and slightly decreases the flux magnitude. Note that voltage vectors V1 and V4 are not selected in sector 0. Using these two vectors would have too much negative impact on the desired flux value. Finally, to keep the torque and the flux unchanged, the null voltage vectors V0 or V7 are selected.

When the flux linkage vector moves to sector 1, the selected voltage vectors become V4 for case 1, V3 for case 2, V1 for case 3, and V6 for case 4, and vectors V2 and V5 are not used. This 60 degree shift in the voltage vectors happens each time the flux linkage vector enters a new sector.


Run the simulation and observe the waveforms on Scope2. Initially, the flux reference is set to 0.9 V.s.

At 0.1 s, the speed reference is set to 1500 RPM and the motor starts to accelerate. The motor speed precisely follows the speed reference, whose maximum rate of change is limited to 1200 rpm/s. The 1500 RPM set point is reached at 1.35 s.

At 1.5 s, a load torque of 500 N.m is applied to the motor. The DTC control operates to maintain the motor speed at 1500 RPM.

At 2 s, the load torque is reduced to 50 N.m and at 2.5 s, the speed reference is reduced to 500 RPM. Observe on Scope 1 that the braking chopper operation dissipates the kinetic energy produced by the motor in order to avoid overvoltage on the DC bus. Finally, at 3.5 s, the flux reference is increased from 0.9 to 1.0 V.s.

Real-Time Simulation

If you have Simulink Real-Time and a Speedgoat target, you can run this model in real time.

  1. Open the Configuration Parameters window (or press Ctrl+E ), click Code Generation , and set System target file to slrealtime.tlc .

  2. Connect to the target and, in the Real-Time tab, click Run on Target.

Your model will then be automatically built, deployed, and executed on the target. Depending on your target streaming bandwidth, you may have to reduce the number of signals transferred in real-time from the target to the host computer.


1. M. Cirrincione, M. Pucci, G. Vitale. Power Converters and AC Electrical Drives with Linear Neural Networks. CRC Press, 2012

2. Technical guide No. 1 Direct torque control – the world’s most advanced AC drive technology, ABB 2011

3. T. Wildi, G. Sybille. Électrotechnique (4th edition). Les Presses de l’Université Laval, 2005.