Direct Torque Control insights and examples?

mxlemming

100 kW
Joined
Jul 17, 2020
Messages
1,116
I've been looking for a while now for DTC examples. It seems to be very much proprietary and locked up in ABB and a few others inverters.

I see little objective evidence that it's any better than FOC, and also very little in terms of how it actually works... All the academic papers seem to be based on using some black box attained and comparing the torque ripple etc.

Is anyone aware of an actual open source implementation, an actual explanation of how it works etc?

Masses of nonsense with people implying it's sensorless intrinsically (it's not... You need an encoder/observer) and having faster torque response (really is this meaningful over FOC running with 30khz+ switching?)

From what i can tell it's basically:
Know position and speed from encoder or otherwise,
Know current from very good phase shunts/hall sensors/whatever
Look up predetermined values for how long to turn on each switch to get required current, which can be calculated based on inductance, resistance and BEMF
Write pwm values, or write timed on output
Wait until on period/other arbitrary time has elapsed before rerunning the control loop

Since you know current and inverter voltage you can construct an observer.

Is this correct? Does anyone have any greater insight?

It seems to me that with proper FOC the limiting factor usually being the ability to resolve position, this doesn't obviously present any great advantage.
 
Seems like decent info here,
https://www.motioncontroltips.com/what-is-direct-torque-control-dtc-for-ac-induction-motors/
There's a decent visual of the control loops but no examples. And a quick read to me they're claiming it's a faster and more accurate way of delivering the requested torque. The PID optimization / settings is where I see this being a challenge to setup for most users in different use cases. My admittedly poor understanding sounds like they are using foc / something like foc to also fine tune the torque delivery.

I know Bosch uses torque request in their combustion engine controls. I'm sure that has carried over to electric vehicles / hybrids but I haven't seen any useful info on how they are calculating / doing the decision making equations to balance requested torque and available torque from different sources. It might be a similar reference to what you're trying to do if you can find it.
There is some info on how they do torque request in their motorsport internal combustion engine controller, https://www.bosch-motorsport.com/content/downloads/Raceparts/Resources/pdf/Operation%20Manual_67715595_Engine_Control_Unit_MS_25_Sport.pdf and how they map the torque / lookup tables. Not sure this is of any use to what you're looking for though.
 
I've been reading over some patents since, and it seems increasingly like there is a field oriented control like thing embedded in it as you say. I mean... You can't really control flux and torque from two phase current measurements without some kind of transform.

https://library.e.abb.com/public/14f3a3ad8f3362bac12578a70041e728/ABB_Technical_guide_No_1_REVC.pdf most of the online articles seem to basically paraphrase this ABB "technical guide" (marketing).

The other thing that has been increasingly clear is that the DTC applications are generally for ridiculously big motors like... Trains... Where the inductance is millihenries not micro Henries and the switching frequencies are around 1-2khz... Many on this forum run 1khz commutation (60kerpm).

In this context, controlling the torque/current directly makes a lot more sense; if the inductance is so huge that it takes a millisecond to go from 50 to 60% current, then a hysteresis controller will be able to do in 1ms what a pulse width modulation scheme and FOC with PID loops might take 10 pwm cycles to stabilise to. It also makes it a hell of a lot easier to control...

I wonder how an ABB DTC drive would fair with one of our 25uH 30kerpm scooter or ebike motors. Would it be amazing or would it eat it's face?
 
Here's an interesting discussion that I think would be related: https://build-its-inprogress.blogspot.com/2017/05/ This might actually benefit from a really fast hardware-based implementation for small, high-ERPM motors of the sort that see a lot of use on ebike projects :)
 
ARod1993 said:
Here's an interesting discussion that I think would be related: https://build-its-inprogress.blogspot.com/2017/05/ This might actually benefit from a really fast hardware-based implementation for small, high-ERPM motors of the sort that see a lot of use on ebike projects :)
This is very interesting. It looks like he's achieved something with the properties of DTC while not strictly using DTC.

I have an idea how to do this but I'm waiting on an esc with 3 phase shunts. A friend is sending me an fsesc 6.6 to try it with. Unless it's highly successful, this will just be a curiosity thing. If it works I'll post how I did it, if not... I'll post to say it didn't :lol:
 
district9prawn said:
The literature seemed to be mostly 6 step commutation examples and simulations. I suppose it would be a useful technique if that was all your micro was capable of.

That's an interesting thought, 6 step commutation could easily be done with low side shunts. Some motors work better with bldc 6 step anyway, and DTC could massively improve the performance over the usual PID loop... The biggest issue I've seen with bldc is the painfully slow ramp between no phase current and 100+A phase current every commutation step.
 
Back
Top