02 - Direct Torque Control (DTC) - MATLAB Simulink
02 - Direct Torque Control (DTC) - MATLAB Simulink
Motor Control Blockset™ uses the DTC space vector pulse-width modulation (DTC-SVPWM) variant to control a
permanent magnet synchronous motor (PMSM). The technique uses space vector modulation (SVM) to produce the
pulse-width modulation (PWM) duty cycles that are used by the inverter to generate the three-phase voltages that run the
PMSM.
The DTC-SVPWM algorithm estimates the motor torque and flux feedback values using the current feedback (in the α-β
reference frame) from the motor. The algorithm uses the motor speed feedback to compute the flux reference value. The
speed PI controller (part of the outer control loop) uses the speed error input to compute the torque reference value. The
flux and torque PI controllers (part of the inner control loop) use these flux and torque references and flux and torque
feedback values to compute the d-axis and q-axis reference voltages. The algorithm uses the PWM Reference Generator
block to generate PWM duty-cycles (using SVM) from these reference voltages.
You can determine current rotor position using both sensor-based or sensorless approaches.
These equations describe flux estimation from the currents in the α-β reference frame and rotor position:
ψα = Ls ⋅ iα + ψPM ⋅ cos θ
ψ β = Ls ⋅ i β + ψPM ⋅ sin θ
2 2
ψ = ψ + ψ
√ α β
pu pu pu pu
ψ = (ωbase ⋅ L ⋅ i ) + (ψ PM ⋅ sin θ )
β s β
2 2
pu pu pu
ψ = √(ψ + (ψ
α ) β )
ωbase = 2 ⋅ π ⋅ fbase
These equations describe torque estimation from the currents in the α-β reference frame:
3
T = ⋅ p ⋅ ( ψ αi β − ψ β i α )
2
pu 1 pu pu pu pu
T = ⋅ (ψ i − ψ i )
pu α β β α
ψ
PM
where:
ψβ is the rotor flux along the β-axis of the α-β reference frame (Weber).
ψβ
pu
is the per-unit version of ψ (Weber). β
iα is the motor current along the α-axis of the α-β reference frame (Amperes).
iα
pu
is the per-unit version of i (Amperes). α
iβ is the motor current along the β-axis of the α-β reference frame (Amperes).
iβ
pu
is the per-unit version of i (Amperes). β
θ is the rotor position (captured by a sensor or determined by sensorless position estimation) (Radians).
ωbase is the mechanical base speed of the motor (Radians/ sec).
fbase is the mechanical frequency of the motor (Hertz).
T is the rotor torque (Nm).
T
pu
is the per-unit version of T (Nm).
p is the number of pole pairs of the motor.