Current measurement scaling error

Hi all,

I would like to calculate the actual power the motor connected to my ODrive is consuming.
For this purpose I multiply the Ibus variable (current_control_.Ibus) with vbus_voltage.
However I noticed this value was off when looking at the (voltage * current) my power supply was indicating.

I ignored it but came back to it when I was using a battery instead of a power supply. As a test I measured the DC current flowing form the battery to the ODrive with a Fluke clamp meter: the manual measurement resulted in 8.2A(DC)*45V = 369W, while ODrive’s Ibus*vbus_voltage resulted in only 70W (average, multiple samples).

As an extra test I applied 2A in current control, while manually blocking the motor. I put the Fluke (in DC mode) around one of the motor wires, while slowling rotating the motor until I got the maximum DC current. This was about 7-8A. So it seems the phase current measurement is wrongly scaled?

What could be the cause of this scaling error, and has anyone else experienced this?
I’m using a ODrive 3.5 48V board. The motor was in closed loop control.

Thanks in advance,
Robin

Hi Robin,

This kind of very large scaling issue is not something I have seen before. Is there a possibility that EMI from the ODrive is disrupting the clamp meter?
It is also possible that the ODrive is having issues measuring the current in your particular setup. What motor are you using?

Hi Oskar, thanks for your reply.

I am using a high torque hub motor: HT3525
To get the motor calibration right I had to increase the max calibration voltage to 16V. Other than that I also had to add 22nF capacitors on the hall sensors and drop the encoder bandwidth down to 100 to allow smooth closed loop control. The motor config is as followed:

    "p_gain": 0.35,
    "i_gain": 500,
    "pre_calibrated": 1,
    "pole_pairs": 23,
    "calibration_current": 10,
    "resistance_calib_max_voltage": 16,
    "phase_inductance": 0.000569,
    "phase_resistance": 0.604563,
    "direction": 1,
    "motor_type": 0,
    "current_lim": 23,
    "inverter_temp_limit_lower": 100,
    "inverter_temp_limit_upper": 120,
    "requested_current_range": 35,
    "current_control_bandwidth": 500

The motor runs perfectly fine for my application, it’s just weird that the measured current seems so off.

I have the D6374 150KV motor laying around (ODrive webshop) as well so I could test with that to check if it gives the same results. I suppose EMI on the clamp meter could also be the culprit.

Unfortunately the soonest I can do further testing is in three weeks. Will get back to it then.