Arduino-FOC icon indicating copy to clipboard operation
Arduino-FOC copied to clipboard

driverAlign() ignores gain sign, always "MOT: Success: 3"

Open 4ndreas opened this issue 11 months ago • 4 comments

I try to get current sensing working on a custom STM32G431CUBx board. With low side current sensing based on three shunt resistors and the internal op amps.

So far the motor spins fine without current sensing. Also I tested the CS with a DC current on each phase to calibrate the Gain and verify the hardware -> all ok.

But the dirverAlign() funktion always returns MOT: Success: 3

I set the Gain to "70" and stepp thru the calibration

ab_ratio and ac_ratio are about ~2

CS_align1

at the end of the function all gains are <0 ->MOT: Success: 3

CS_align2

But if I invert the gain to "-70"

the currents are inverted and the ratio is ~2 so:

CS_align3

this changes the gains again: -> Success: 3

CS_align4

So something is wrong I'm not where the problem is, my gain should be positive since if I disconnect the motor and input a DC current to on phase the ADC value goes up. To test this I just enabled the low side mosfet and hocked up a second power supply ind constant current mode.

Also my Currents are off by a factor of 10 my opamp gain is 7 but then the measured current values are by 10 to high (but this is probably a different problem) The DC supply is set to 1A and the ADC values go up by like ~80 digits my shunt resistor is 0.01 Ohms.

IDE you are using

  • Arduino IDE

4ndreas avatar Feb 29 '24 09:02 4ndreas

Hi,

This is how the code works. It will just give you success 3 if the gains are negative, even if it's correct.

That's not a problem but it could be improved.

Candas1 avatar Feb 29 '24 10:02 Candas1

I agree we should change the code to only return 3 (or 4) if the gains were actually inverted compared to the user supplied setting. It's not a hard fix, so could be in the next release.

runger1101001 avatar Feb 29 '24 11:02 runger1101001

Thank you, it is a little bit confusing and I was not sure if the output was intended. It would help, if you change the sign of the gain it should somehow influence the outcome downstream ...

4ndreas avatar Feb 29 '24 13:02 4ndreas

Hi guys, The new current sense init #422 is in the release v2.3.4. It has several new features and that make it easier to use and has the suggested modification. :D The new code returns 3 or 4 only if the gains are actually inverted.

askuric avatar Jul 22 '24 05:07 askuric