Voltage Limit and Supply Voltage

Hi,

I’m wondering if someone could help me understand the relationship / limitations between supply voltage and voltage limit.

My Setup:
6S Lipo power → 25.2V fully charged
B-G431B-ESC1 controller
RC Timer GBM5010-150T 90KV motor
AS5048B I2C encoder
Closed loop control

I’ve been powering with a 6 cell LiPo → 25.2V fully charged. I’ve been setting my voltage limit to 12V until now. I’m trying to get more power from this motor in short bursts. I’m hoping I can just increase my voltage limit, but when doing so I can’t seem to get the current past 1 Amp, which is around the same value I was getting at 12V.

At first glance can anyone see something obvious that I could be doing wrong? I’ve run my code with different lower resistance motors and measured higher currents, so I don’t think this is a programming (current limiting) issue. Is it possible to power my motor with the full supply voltage?

I have a mechanical background so I’m a bit out of my depth with FOC control but I’ve been learning a lot and am really enjoying the library.

Thanks.

Which limits have you set, and what mode are you using?

The motor has 14.65Ω resistance, so at 25V you would actually not expect to get more than 1.7A maximally. When the motor is turning, back-EMF and motor dynamics mean you won’t quite reach the max, so 1A of RMS current is maybe not too far from the max you can expect.

To give the motor the full supply voltage, set
`motor.voltage_limit`
and `driver.voltage_limit`
equal to `driver.voltage_power_supply`

But be careful to change these limits back to something lower before connecting one of the low-ohm motors!

Hi runger,

Thanks for your response. Yes the back-EMF is likely limiting my current. When I try increasing the motor.voltage_limit, and driver.voltage_limit beyond 0.5*supply I start getting weird jitters when forcing the motor out of position (while in position mode).

I’ve been reading the docs: https://docs.simplefoc.com/foc_theory

From these I’m gathering that for sinusoidal PWM I should not be sending Uq higher than 0.5*Vpower_supply. I’m wondering if that jittering is the saturated sinusoidal PWM. Would this be a likely symptom of saturated PWM?

I’ve plotted motor.voltage.q, and it seems to be limited either by motor.voltage_limit, or by driver.voltage_limit, whichever is lower. It’s not clear to me what the difference between these parameters is, can someone explain?

Is Uq the same as voltage.q? If this is the case then it seems I should keep my voltage limits to 0.5Vpower_supply for sinusoidal, or 0.58Vpower_supply for space vector.

Hopefully that all makes some sense. Can anyone confirm from this explanation if I’m understanding the theory correctly?

Cheers,

Simon

That’s a question for one of our more knowledgable members… I don’t know enough about this, I’m afraid.

That’s right! driver.voltage_limit forms a "hard limit’ on the driver’s output, while motor.voltage_limit limits the Q axis voltage.

Uq and voltage.q are proportional as long as the currents are low and the motor isn’t turning too quickly, i.e. if you neglect the motor’s dynamics, current is proportional to voltage.