Configuring poles and slip_velocity for induction motors

Hello and thank you for an amazing project!

I’m trying out 56V ODrive for controlling a few different induction motors (1.5-2.2 kW three phase ASEA/ABB with delta 220V or wye 380V connections, vbus=48V). I have limited success after hacking my way through motor calibration (to accept 10s of mH in phase inductance), enabling over voltage rampup, and tuning parameters for encoder calibration. Currently able to enter velocity mode closed loop with eventual spinout (may require more tuning).

There are two specific points that remain unclear after reading existing threads:

  • It seems like squirrel cage rotors don’t have a concept of poles - should pole pairs simply be configured to what the stator contains (e.g. magnets/2)? FWIW pole_pairs=1 does allow passing encoder calibration after doubling calib_range. I’m not sure if adjusting the tolerance is intended however.

  • slip_velocity is supposedly rad/s, but my understanding is that slip is relative (e.g. 1-5% of the target velocity) - how do you pick a value? can it be measured with instruments?

Re the 2nd question; can it be estimated by the ODrive by comparing the rotor mechanical velocity (encoder-based) with the magnetic field?

ACIM’s have poles, it’s just defined by the periods in the stator, not the rotor.
Slip velocity is given in Hz (or * 2*pi to convert to units of rad/s). You may be thinking of “slip” which may be a percentage of the nominal speed.

Can you post the nameplate values of these motors and I may be able to find a way to derive these two parameters in the units that ODrive expects.

We don’t have any routines to estimate these values automatically.

Thank you! I have attached two example nameplates (this is post 1/2). Both are wired in delta mode.

Note that I have managed to stop spinout by reducing the I_d ACIM current values. Seems like the defaults are too large.

Example nameplate #2

So to get the values, we only really need to make one assumption: the slip velocity is generally pretty low, like 2-10Hz.

So I’ll start with the 2nd motor:
Nominal speed is 2860rpm, which is 47.66 Hz, which is very close to the specified line frequency of 50Hz. So with the above assumption, we know this must be a “1 pole pair” machine. The nominal slip velocity is simply 50Hz - 47.66Hz = 2.33Hz = 14.66 rad/s electrical. So the value you would use is slip_velocity = 14.66 and pole_pairs = 1.

The 1st motor has a nominal speed of 930rpm at 50Hz. We know that the nominal speed should be a little slower than the line frequency. The best solution for this is 3 pole pairs, and 3.5Hz nominal slip velocity: 50 - (930/60 * 3) = 3.5Hz = 21.99 rad/s electrical. So you can set slip_velocity = 21.99 and pole_pairs = 3.

Please note that this is the nameplate “nominal” slip velocity, which may not be the perfectly optimal slip velocity at all current levels. But it should be decent and perfectly usable.
Also note that in the future we may change the units of slip_velocity from rad/s electrical to Hz (this is mostly for people reading this in the future :wink: )