File Exchange

image thumbnail

Direct Torque Control (DTC) of IM Using Space Vector PWM

version (36.7 KB) by Pradipta Kumar Pal
Direct Torque Control (DTC) of Induction Motor Using Space Vector Pulse Width Modulation (SVPWM)


Updated 04 Dec 2018

View License

A Direct Torque Controlled (DTC) Induction Motor (IM) drive has been implemented using Space Vector Pulse Width Modulation (SVPWM). The default 'Asynchronous Machine SI Units' and 'SVPWM Generator (2-Level)' blocks are used to reduce complexity and facilitate understanding.

For simulation with the 'Driving cycle' speed reference and 'Variable load' torque reference, set the 'Stop time' to '11'.

To prevent a crash due to low-level graphics error, use software OpenGL instead of using the graphics hardware. Enter <opengl('save', 'software')> in the MATLAB 'Command Window' (without the braces) and restart MATLAB. For resolving further low-level graphics issues, enter <help opengl> in the MATLAB 'Command Window' (without the braces).

Cite As

Pradipta Kumar Pal (2019). Direct Torque Control (DTC) of IM Using Space Vector PWM (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (16)

prabudha BV

The simulation is giving distorted values with R2014a , any idea why

prabudha BV


I need detailed explanation !Thank you !

how can i know about ur model?


@Pradipta Kumar Pal
Hi Pal, could you please explain why 'psisx' value is constant 0.996? Thank you.



For Latest Simulation Projects,Please Contact


@Aseem Routray

Hi Aseem. Thank you for posting your query.

I recommend you the following two papers for a better insight into the SVPWM-DTC scheme:

1. Rodriguez, Jose, et al. "A novel direct torque control scheme for induction machines with space vector modulation." IEEE Power Electronics Specialists Conference. Vol. 2. 2004.

2. Liu, Yong, Z. Q. Zhu, and David Howe. "Direct torque control of brushless DC drives with reduced torque ripple." IEEE Transactions on Industry Applications 41.2 (2005): 599-608.

Please feel free to write back for a detailed explanation if need be.

@Pradipta Kumar pal
Thank You very much for explaining this to me!
Can you please send me the references on my mail: ?

@Aseem Routray

Aseem, thank you for writing back.

As for the answer to your first question, this is very much the Direct Torque Control (DTC). A detailed explanation with reference to IEEE Transactions and Journals be sent to you personally via email.

For your second question, this is the only way to model the ‘Mechanical system’ outside the Simulink default ‘Asynchronous Machine SI Units’ block. This model was created with simplicity, modularity and close adherence to the Simulink default library kept in mind. If you want it to be the way in the textbooks, you’ll have to model the ‘Electrical model’ with ‘Rotor speed (wr or wm)’ as the input and 'Electromagnetic torque (Te)’ as the output, feed the 'Electromagnetic torque (Te)’ to a ‘Mechanical model’ modelled separately and feed the ‘Rotor speed (wr or wm)’ obtained as output of the ‘Mechanical model’ back to the ‘Electrical model’.

Select the Simulink default ‘Asynchronous Machine SI Units’ block or the ‘3φ IM’ block from this file and press ‘Ctrl + U’ to look under the mask. You’ll see what I exactly mean. Now, the ‘Rotor speed (wr)’ port is not accessible externally. Hence the ‘Mechanical system’ is modelled differently as you find in most reference designs.

Have a look at the Simulink model ‘Direct Torque Control of an Induction Motor’ by Syed Abdul Rahman Kashif as a cross-reference where the author has modelled the electrical and mechanical systems separately the way you want.

Can someone please explain how is it direct torque control as there is a speed control loop before the torque controller and a position control loop after it?

Moreover, the Load torque that is supposed to go as input to the Induction machine as guided by matlab reference for asynchronous machine has not been given as input and instead there's the total developed torque or the electromagnetic torque needed is given as the input. Can someone please explain the validity of the torque input model?

great work.

beat wang


Updated the mathematical model of mechanical load to comply with standard designs.

Updated the mathematical model of mechanical load

Updated the mathematical model of mechanical load

Block diagram added to preview

MATLAB Release Compatibility
Created with R2013a
Compatible with R2013a to any release
Platform Compatibility
Windows macOS Linux

Inspired by: Direct Torque Control of an Induction Motor