# Field Weakening

15 posts / 0 new
hexakopter
Offline
Last seen: 2 weeks 3 days ago
Joined: 2017-05-24 12:13
Posts: 67
Field Weakening

Benjamin wrote in that thread that Field Weakenig is on his todo list, but I cant see it on the todo list available here http://vesc-project.com/node/110. Maybe that would be something to add to the list.

ThierryGTLTS
Offline
Last seen: 10 months 2 weeks ago
Joined: 2017-09-06 14:18
Posts: 120

As far as I know it seems to be partly implemented, but I don't know how to use it.

Have a Nice Day.

Thierry

benjamin
Offline
Last seen: 22 hours 32 min ago
Joined: 2016-12-26 15:20
Posts: 334

Offline
Last seen: 5 months 2 days ago
Joined: 2017-11-11 13:08
Posts: 32

hi

any news on Field Weakening yet ?

thanks

Maximilian Scherff
Offline
Last seen: 7 months 3 weeks ago
Joined: 2017-05-24 12:11
Posts: 3

Hi,

I'm also interested in field weakening. I build a dynastarter for a combustion engine.

In my application I need as much torque as possible from stand still (within restricted space available). This is why a higher number of windings is desirable. On the other hand, when the combustion engine is running at high revs the generated voltage can rise up too high, above supply voltage and the battery will be damaged.

I think field weakening could solve this problem. Or I'm wrong?

Max

Roger Wolff
Offline
Last seen: 1 month 2 weeks ago
Joined: 2017-05-24 12:27
Posts: 202

When the VESC encounters an error, it will stop driving all FETs and hope that this is a safe situation. When braking is required going down a hill, that may not be the best situation for the rider, but the electronics stays safe.

This suddenly doesn't work when the motor can be driven at much higher speed than what the battery allows. The VESC uses 1.2 mOhm mosfets. At 50A the voltage drop will be about 60mV, so at 50A there will be about 3W of power dissipated. When the motor turns faster than the battery allows, the six mosfets will coincide with six diodes in a three fase bridge rectifier and start charging the battery. But now with a voltage drop of 0.6V, at 5A average you'll already hit the 3W power dissipation that the fets can handle without overheating.....

When things go wrong, (you hit the reset on the CPU, hit reboot in the gui, a fault triggers anything) you blow up hardware.....

field weakening is interesting when you have a low-inertia rotor that needs to go faster than the supply allows.

hexakopter
Offline
Last seen: 2 weeks 3 days ago
Joined: 2017-05-24 12:13
Posts: 67

But why are a lot of ebike ESCs then use field weakening without blowing up? Just lucky that no faults happened in the period they are using a faster erpm then the normal battery max erpm or do they use special hardware preventing a blow up and dissipate the power in an other way?

RSR
Offline
Last seen: 2 weeks 3 days ago
Joined: 2017-05-24 12:46
Posts: 37

The are at least 3 ways for fault handling during high speed field weakening

1. disconnect the 3-phase -- so that the electronics will not be exposed to the high voltage -- sparks may occur (no good), cost $$2. use components with higher voltage rating -- cost$$\$
3. short circuit the 3-phase --  no extra costs -- often the preferred option

If a fault occurs at high speed, and the fault action is to output null vectors (all 3 phases to + or to Gnd), then the motor will do automatic field weakening.   High currents will occur when doing this, but it will not exceed Ichar=Lamda/Ld.  VESC firmware could easily calculate Ichar as a parameter during motor configuration, If Ichar is within safe range, then it could allow both high speed field weakening and null vectors as the default fault action.

You can feel a high braking torque if you try to rotate by hand  a motor after connecting/shorting the 3 terminals.  It may feel like the braking torque will increase forever while trying to rotate it a higher speed, but it will not -- the torque will reach a peak, and the braking power (torque*rpm) will approach a constant value (P=R*Ichar^2) over a wide speed range -- constant power means that torque decreases as rpm increases.

district9prawn
Offline
Last seen: 5 days 16 hours ago
Joined: 2018-04-26 12:18
Posts: 48

I recently added a few lines of code to mcpwm_foc to implement field weakening.

I set id_set_tmp based on the difference between iq_target and iq actual.

I also tried the lookup table method and manually recorded some data points of erpm and negative d axis current. I don't know much about programming so I just hard coded this table into mcpwm_foc and it also seems to work well enough. Some parts of the field weakening rpm curve are quite non linear, and I found it helpful to have a decent number of points defining the curve.

Many ebike controllers have field weakening but I don't believe any of them use any proper method of fault handling. The manufacturers of most of these controllers simply recommend against running very high fw currents and speeds. Most users are on 20s or below, so there is a little headroom with 100v components. Also most of SPM motors don't field weaken that well anyway. The fw current needed to push way above the voltage limit probably prevents most users from killings things.

lux
Offline
Last seen: 1 week 12 hours ago
Joined: 2019-01-15 13:48
Posts: 2

Hi

@benjamin:

Are there any plans to implement this feature? Do you need help with testing or could i do something else to speed up the process?

@district9prawn

could you describe more in detail what you did or could you even share code for testing?

I do have experience with STM32 software development but no idea of electronic engine control.

Best regards

Lux

paltatech
Offline
Last seen: 7 hours 51 min ago
Joined: 2017-09-10 22:50
Posts: 32

lux, please take a look at this:

Field Weakening support is getting closer!

sunsam8
Offline
Last seen: 5 days 15 hours ago
Joined: 2018-04-02 13:27
Posts: 10

I like the plain notes on using field weakening.

I think a beefy diode paralell to the battery fuse is a must have to clamp the voltage in fault scenario.

bobfrank
Offline
Last seen: 1 week 4 days ago
Joined: 2019-04-23 09:43
Posts: 5

I think another option would be to be able to set a Max RPM/ERPM specific to field weakening, so that you can run your motor over speed, but not beyond the rating of the components used in the controller, eg, if you build a controller with 200v rated devices, but only run to a max pack voltage of 151.5v your field weakening would only let you get to an RPM that would result in your open circuit motor voltage being 199.9v (or less if you want). It should be reasonably safe provided you use avalanche rated switching devices, because your MOSFETs will only need to dissipate the 1/2 L I ^ 2 energy of the parasitic inductances, not the kinetic energy.

paltatech
Offline
Last seen: 7 hours 51 min ago
Joined: 2017-09-10 22:50
Posts: 32

Yes, currently during FW we limit rpm to ( flux_linkage / Vinmax ).

lux
Offline
Last seen: 1 week 12 hours ago
Joined: 2019-01-15 13:48
Posts: 2

Hello

thank all for they're work on this amazing project.

As I see it, the pull request hasn't been merged yet, right?

Could i do something to help? Maybe testing beta versions?

Best regards