Field Weakening 101 - (or how to make your VESC board going faster 😀)

What is it and how does it work

Field Weakening is a technique used in PEVs to increase top speed by changing the motor characteristics as you get faster. An additional current is injected separately from the normal current used to drive the motor.

If you need to know more, google it.

Do you lose torque?

No, you actually don’t

Can’t you hit high duty cycles also in high-torque low-speed situations?

In theory yes, but in practice no… here a comment from a VESC motor engineer: “Generally i think you guys have 70V batteries. Motor resistance in the 100mohm range. So 100A takes like 10V phase at standstill… Which is 17V bus.
So it will be like 20% ish duty

Do you lose efficiency?

No, you don’t - just going faster uses more energy than going slower.

Because additional current to counter backEMF is small but the resistance to current flow that arises out of the magnetic flux of increasing rotor speed when there is no field weakening is comparatively large, and grows larger as you increase speed, to the point of being so large is totally counteracts all additional current. In other words, as this backEMF grows without field weakening, the amount of current needed to be pushed from the batteries through the motors windings by the ESC to get a resultant through-current of a much lower magnitude is huge, and thus counters the extra current you would be putting in for field weakening. So total current draw on battery is about the same, but instead of current going in to overcoming a generated magnetic field (and ultimately being coverted to heat in the motor windings) the same energy can go into additional speed. Total overall current is the same, but you are either using that current to create heat or to go faster. – Mark Choi

How to configure it

Any 5.3 and newer firmware supports field weakening, it’s a standard feature! We’ve been using it for 2 years now without issues.

In FOC - Field Weakening

  • set FW Max Current to 30A (a little more may work too, but be mindful of your BMS cutoffs!)
  • set FW Duty Start to 65% (some people go as low as 50%)
  • set Ramp Time to 500ms (this helps avoid nosedips when it kicks in)

In Motor General Advanced

  • make sure max duty cycle is 95% or 96%

Tiltback

  • set duty tiltback to 85%

FAQ

  • Why would anyone take such a risk? If you’ve ridden an XR or Plus above 16-17mph then you’ve been using this feature already, FM just doesn’t tell you about it
  • How much speed can I reach? About 30 percent more speed than without. I’ve been able to cruise at 19-20mph with a stock XR battery at 50-70% battery (flat road) while duty cycle remained at or below 80%
  • Is this an experimental feature? It’s been in the VESC firmware sinc 2021, ESK8 and Ebikes have used it for a while - Update 8/8/22 many of us have been riding this now for 2 months without any issues
  • Is it safe? Field weakening is safe - going faster than you can handle is not though!
  • Any downsides? The current firmware will apply field weakening solely triggered by duty cycle. This can cause loss of torque at ultra-low speed high-torque situations, e.g. slowly crawling over a door step
  • Do I need special firmware? No, stock 5.3 supports it but ATR-firmware only enables it above a minimum ERPM (5000)
5 Likes

quick note on ramp time - default is 200ms but early on people reported some instability right around the speed where FW kicks in - so we’ve settled on 500-1000ms as the recommend value

however during surge testing I’ve noticed that long ramp times can cause us to not get all the FW power that we expect during surge moments. If you ride at 80% duty and it suddenly jumps to 95% then your FW current would need a few 100ms to reach its max value, so you’re at 95% duty with only 20A FW even though you got 30A configured…

so I want to change the logic, to reduce ramp time, the higher the duty cycle is

so we could still use 500ms at 60% but once we’re above 80% I’d decrease ramp time to a fraction of the configured time

basically trying to ensure that we always get all the power that we have at our disposal to keep our nose from diving down when near 95%

right now long ramp times unnecessarily cause FW to hold back

2 Likes

Hello, im interested in FW. I have a problem i used your config for FW and my motor is BLDC 24V erpm at vesc with no FW is at 8000 erpm, and with FW it increase to 8700 erpm but its stuck at 8700 erpm even though my throttle is at 0%. Is there any suggestion to my problem thanks

This sounds like a bug - I would report that to the ESC Vendor or to the VESC Project.

Hello again, i tweak some setting in FW and the q axis current factor help with the erpm to go down until 0 erpm, is there any drawback if i set the q axis current factor. And the slope to go zero is not as smooth. I have another question if the erpm goes up is it possible to calculate the motor eff. I have the datasheet when the motor run in normal condition but not with FW conditioning. Btw Thanks its been a big help learning FW from you

you’re on your own there timmi. I’ve never dared touching this value

Will this work with PintV kit on stock pint? Stock it hits about 22 and then the duty cycle gets pretty high

it’s already enabled on PintV - so yes, it works but you’re already at the limit. You gotta push closer to 95% if you want to break speed records…