You are here

Low RPM with Hoverboard hub motor

3 posts / 0 new
Last post
e m i l
Offline
Last seen: 4 years 7 months ago
Joined: 2020-05-05 13:30
Posts: 1
Low RPM with Hoverboard hub motor

Hey everyone,

I'am trying to utilize the VESC infrastructure in conjunction with a generic 350W 6.5in hoverboard hub motor (27 poles / 30 magnets) at 10s (~37V) in a robotics project. My goal is to reach the slowest possible RPM with closed loop control.

I noticed there is a soft lock in the PID controllers / Speed Controller / Minimum ERPM defaulted to 900.0, but that's only disables the input signal (in my case sent from VESC-Tool while experimenting). With that cap set to zero, the PID control loop just falls apart and the motor starts to twitch somewhere around 4-500 ERPM. The interesting thing is when I try to tune the PID controller, the ERPM value in the Realtime Data / RPM does not really like to dip under 500 ERPM. That is still around 33 RPM (500 ERPM / 15 pairs; if I understand correctly). 

The thing that strucks me the most is that with an open loop duty control at D 0.01 the motor can rotate pretty slowly and also when calibrating the HALL sensors the motor rotates at an exceptionally slow speed. Although that is open loop control as well.

My question: Is it possible to reach similarly slow speeds with closed loop control as in open loop, and if it is how should I tackle this problem?

For full disclosure I am using a run of the mill chinese "Based on Genuine" clone. (hw:60, fw:5.1)

Any feedback appreciated. Thanks.

rasheeddo
Offline
Last seen: 1 year 1 week ago
Joined: 2020-06-05 12:48
Posts: 1

Same problem here, low speed on PID speed control on VESC seems to have a problem. Even try to tune the PID gains but still the movement is not as smooth as Duty cycle.

pf26
Offline
Last seen: 3 weeks 5 days ago
VESC FreeVESC Silver
Joined: 2018-12-04 08:44
Posts: 53

Running openloop is simply setting a rotating current vector, and leaving the motor (rotor) follow the magnetic field (along Id) - just like stepper motors, there is a compromise on current/efficiency vs loosing steps: when the required torque increases, your set current may be not sufficient. And if you set a high current, you waste energy.

You may want to try PID position control (encoder or HFI mode) and use a custom app to change the position setting  according to the low speed you want, down to 0 if needed.  Contrary to  openloop, the controller adjusts the current to the minium required to get the torque you need. This is way more efficient. But setting the PID position parameters may be hard (depending on your mechanical config)

If you don't need a very accurate speed control and your motor has plenty of torque, you could use Duty Cycle mode (and possibly compensate for torque by increasing slightly Duty when current increases - to compensate resistance voltage loss - can be done in a custom app, I posted a code example some time ago)