Induction Motor control?

I just came to this forum looking to get some discussion started on how hard it would be to re-purpose an odrive for induction-motor control… but if you dont mind I drop my thinking here, as I think its very interesting to consider the question of how far one could take the vison of odrive as a general-purpose-three-phase motor controller.

While I have never implemented either a brushless or induction controller myself, the only differences that I am aware of are of a software nature. But let me enumerate my assumptions, because maybe they are wildly off.

  • As far as the bulky hardware components are concerned, we are looking at the same three-phase-full-bridge plumbing.

  • Control-wise, induction motors can be run with a similar kind of field-oriented control algorithm. In a nutshell, the only difference is that you throw some magnetisation current in there with a little phase offset.

  • Implementing sensorless control requires measuring certain voltages. I can imagine hardware wise its basically the same idea as sensorless control for a brushless motor… keep an eye on the resulting voltages of the phases so you can build an internal model of the relevant internal dynamics of the system… and the rest is a software problem. But then again I have never really looked into the specifics of this at all.

On the flipside:

  • For a motor of similar dimensions, induction motors will have much higher inductance, given that there are none of these reluctant neodidlium magnets to push against. That should be all fine as far as changes in the control algorithm is concerned, but I have no idea if that also forces subtle changes on the hardware topology as well, such as to prevent current from rushing and spiking in unwanted ways?

  • Induction motors tend to run at lower electrical frequencies than synchronous motors. So that should be fine, hardware wise?

  • Many induction motors you will find in the wild are wound for different current/voltage ratings than the odrive. The typical bldc that odrive targets is tuned to the constraints given by the lithium battery, whereas induction motors have a reputation mostly for cost-efficiency in industrial settings. Of course that should be solvable by rewinding the motor, but it does raise the question; why do I care in the first place?

Well partially it is just an interesting question, but partially I also believe induction motors are under-rated for control-applications. That is, they cannot really compete if you care both about power density and efficiency, as you would in a drone. But for low-duty cycle robotics type applications, where you do not care that much about efficiency, but where you still want to get all the peak torque you can squeeze out of your saturated flux path for when your contraption does need to move, a high steel-to-copper-ratio induction motor is pretty much ideal.

If you think a 1kw induction motor needs to have the proportions of a medium sized pig, and needs an electronics control box the size of a fridge, thats no more true fundamentally than that the price of a 3kw ‘PMSM’ (suckers jargon for bldc amirite) needs to be the same price as a small car. I am very thankful for odrive for calling bluff on the latter, but I think induction motors also have a bright future ahead of them once they manage to shake off their steampunk aesthetic, and analog-era memes about low startup torque finally die out.

The economic reality at the moment is of course that there isnt a wide selection of really cheap induction motors flooding the market at the moment exactly, so I will not try to argue that there is a huge immediate untapped market for odrive here to implement such a feature. But if it really is as easy as I hope it might be, and almost purely a matter of implementing some variations of the same type of control algorithms, then that is an enticing possibility for me. And if odrive does manage to position itself as the general-purpose three phase controller… well enginerds would be probably be twice as likely to buy one just because of their appreciation for the fact that you just brought a little bit of order to the universe, and made something seemingly disjoint and convoluted, more elegant and reusable.

Well but there is always plenty of cheap supply mains supplied induction motors from scrapyards. Only that those will require to rewind them, as they are sporting thin wire with too many turns to be driven by low voltage. By replacing the windings with less turns of thick wire it would be possible to drive them with low voltage high current, as the Odrive will provide.
While this of couse seems impractical to the “casual” user, it may be a neat side project for enthusiasts :grinning:

For the software side, while the slip would prevent using the stock encoder controlled mode, the sensorless mode may be able to drive an induction motor if well configured.

@Eelco If you are interested in Induction motors you can flash the devel branch to your Odrive where support for AC Induction motors is included. You can see in the changelog here

Neat, thanks for the headsup! Cool to see that it is indeed possible. Have you been involved in the development of this feature, and are you aware of what it tooks to get to this point? Would love to hear more about it.

Not in a position where I can quickly try this out at the moment; but I couldnt find any documentation of this feature yet. If you are aware of something like that or a blog of someone giving it a spin, would love to see a link to that as well.

Yeah exactly.

I think there is a bit of a chicken and egg problem, where there are neither induction motors geared towards control applications on the market, nor an ecosystem of controllers and software. Indeed it seems that without doing your own winding, you wont find an induction motor wound for 48V on the market, that I can find at least.

But given modern electronic control, there is no doubt that induction motors have a niche compared to PM motors; for the same weight, the peak magnetic flux for an induction motor is higher since you are not limited by the PMs, only by iron saturation; on short timescales you can easily get double the torque, which can be quite an advantage for control applications. By contrast PM motors shine at efficiency for continuous load since you have a lossless rotor current; but I bet its actually a tiny minority of motors hooked up to an odrive that really benefit from that.

In the industrial range there are plenty of induction motors for servo applications. They usually just look different then the cheap uncontrolled ones, sometimes you can’t tell them from DC or stepper motors as they use the same casing (and encoders / brakes) alike.

Those are of course geared towards control applications, but they usually use the mains voltage range, eg. 200-400V which is out of range for the ODrive.

So it’s more the ODrive that is special in using low voltage, making it simple and cheap. In industrial systems I think the higher complexity of high voltage drivers is traded in for less power loss on longer and thinner wires.

Just search for “ac servo” to find a plethora of systems…

Just an idea for experimentation:
Maybe its possible to replace the permanent magnets of an inrunner BLDC motor by a self made cage winding. This should give an induction motor with an odrive compatible stator winding.
I wonder if there would be a winding sheme that would work for making magnet-less outrunner armatures?

Well yeah by ‘the market’ I refer to the consumer segment that I am most familiar with. The high/low voltage divide I imagine is primarily driven by the difference between stationary factory automation where mains voltage is the norm, and the robotics/drone market, and what you are typically working with given a lipo pack. There is a trend towards high voltage in the electric car industry as well given that if you have plenty of battery cells you can get any voltage you want, so then it mainly becomes a question of getting high quality and economical switches at those power levels.

In any case, the practical reality is that I can go to aliexpress and pay cents per watt for a super broad selection of PM motors; and I have yet to find a single induction motor that is trying to compete in that segment. I suppose that can be explained by the fact that induction motors dont make sense for drones; which is the bulk of the consumer PM motor market, that we as control enthusiasts are merely piggybacking off, rather than being an economic driving force in.

Making your own rotor is an option of course, although currently outside my limits. Though if you have access to a lathe and some machine shop basics its actually quite doable. Any PM stator should be fine, although the exact configuration ofc depends on what you are optimizing for.

Solid iron induction rotors are actually a thing and very DIY friendly. They are not great for power efficiency at continuous load, obviously, but they have an edge if you care about crazy high RPM, (and dont like explosions). But also, they should be able to outcompete the corresponding PM rotor for instantaneous torque. Yeah you need more magnetization current to sustain a rotor current, but as time goes to zero so heat is not an issue, and your power supply/circuit can keep up, who cares? The limiting factor in this case is merely the area of your flux path. If your design constraints are dominated by your ability to throw a good punch every now and then, it could be the best option.