Motor failure for high speeds


#1

Motor suddenly stops for velocity setpoint above some particular in all modes.To start the motor again the odrive needs to be restarted.What should be the error ?


#2

Maybe your voltage is dropping too low or not stable enough. Have you tried adding a capacitor in parallel to your power supply, or simply a more powerful power supply? Can you check which values you are seeing when this occurs?

print(hex(odrv1.axis1.error))
print(hex(odrv1.axis1.encoder.error))
print(hex(odrv1.axis1.motor.error))


#3

Yes we checked the errors it was found to be

‘’'hex(odrv0.axis1.encoder.error)
Out[145]: ‘0x0’

In [146]: hex(odrv0.axis1.error)
Out[146]: ‘0x30’

In [147]: hex(odrv0.axis1.motor.error)
Out[147]: ‘0x40’
‘’’
Documentation states “Brake current out of range”
We removed the brake resistor and still getting the same error


#4

If you remove the brake resistor, be sure to set the resistor current to 0. Then it will dump all the brake energy into your power supply (this may damage it).

odrv0.config.brake_resistance = 0

The error is tripped when the brake duty cycle is not between 0% and 90%. Basicly the brake_resistance value you are supplying means your brake voltage is higher than your input voltage. This is probably not true, so check if your brake_resistance is set correctly. Also, consider measuring the max voltage over your brake resistor.

float brake_duty = brake_current * board_config.brake_resistance / vbus_voltage;


#5

I have tried removing the brake resistor and set the resistor current to 0. but it didn’t solve the problem.


#6

It is likely the same issue as this:

We are still investigating the issue. Can you please report (on that topic) approximately what speed it dies at?
What bus voltage, pole_pairs, and if you are reporting speed in counts/s, what is the encoder CPR?

Thanks.