vedderb / bldc

The VESC motor control firmware
2.1k stars 1.32k forks source link

Additional SVM variations #590

Open Rampagy opened 1 year ago

Rampagy commented 1 year ago

Additional svm implementations

Fixes #589 https://youtu.be/5eQyoVMz1dY https://link.gale.com/apps/doc/A18320578/AONE

Rampagy commented 1 year ago

Adding picture for documentation purposes

image

Teslafly commented 1 year ago

Doesn't vesc already use the ARS SVPWM type? So you don't get any more voltage magnitude.

You do get to eliminate the dead time for the low side phase, but that can actually provide important balancing and make the dead time for all phases equal and easier to compensate for / ignore. It also increases stress on the low side mosfet. (But enables asymmetrical hardware with more current on the bottom mosfet)

Have you tested this on any hardware at all? Tried with / without phase voltage filters?

This would also effect the voltage sensing for hardware with low side current shunts vs phase voltage shunts.

So this is not simple. and may not be desired in a lot of cases. It has actually been discussed before and not been found to be particularly valuable with it's tack on effects. At most this may be made selectable, but probably should not replace ARS SVPWM.

If you aren't you should join us in the vesc discord. (Discord) Especially if you are really into motor control. The #esc-firmware thread is probably where you want to be for discussing this in depth.

vedderb commented 1 year ago

Nice work! I think you got the the VESC Tool update right too.

Before merging I would like to see some more testing. As it looks to me now from the testing you did the additional methods reduce stability and whether they help with spreading heat or reducing the effects of dead time is not really confirmed. It would be good to see some experiments that show advantages and how current sensing and voltage sensing with phase filters is affected.