Already discussed in this thread: http://vedder.se/forums/viewtopic.php?t=639
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.
As far as I know it seems to be partly implemented, but I don't know how to use it.
Have a Nice Day.
Added to the todo list.
any news on Field Weakening yet ?
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?
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.
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?
The are at least 3 ways for fault handling during high speed field weakening
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.
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.
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?
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.
lux, please take a look at this:
Field Weakening support is getting closer!
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.
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.
Yes, currently during FW we limit rpm to ( flux_linkage / Vinmax ).