Controlling acceleration of BLDC motor

Hello everyone,
I’m having trouble with ramped velocity control and controlling acceleration rates for my motors using the ODrive S1.

I have two hub motors replacing the back wheels of a rollator to motorize it (circled in pink).

Current acceleration of the motors in velocity control mode is about 0.5 m/s^2.

I recently recalibrated the motors due to an incorrect pole pair count, but with the previous tuning I was seeing up to 3 m/s^2 acceleration. Ideally I’d be able to have the acceleration consistent across different loads and from different starting speeds.

What are some variables that I can tune and play around with to increase the acceleration? I’ve tried out setting the motor in ramped velocity control mode and setting the odrv0.axis0.controller.config.vel_ramp_rate to 10 m/s^2 but that didn’t seem to change anything with the motor’s acceleration.
https://docs.odriverobotics.com/v/latest/manual/control.html#ramped-velocity-control

Did I miss something? Are there other options for increasing the acceleration?

I’d guess that your motor’s current limit is set too low, or you need to tune your velocity gains – given the exponential curve even when reducing speed, I’d guess the latter.

I did both those things and they helped a lot. The walker now reaches the accelerations I was seeing before recalibration.

I’m still not sure how to improve acceleration with different loads and different starting speeds. I saw wide variety when testing these previously. In this graph I have the recorded speed from the encoders plotted on the y axis (FALL-E is the name of the walker), and the setpoint speed on the x axis. The loads refer to weights I put on top of the walker when I set it to these speeds for a 0.5 sec period (the walker was at standstill beforehand). In the graph the speed slope is flatter, or further away from the setpoint speed, with more load on the walker. Would increasing velocity gains (vel_gain or vel_integrator_gain) be sufficient to make the measured speed more closely match the setpoint speed, or at least make the lines with load match more closely to the no load line?

You may actually be maxing out the motor’s acceleration. What current_lim do you have set?

For the motor I use a current limit of 15 A because that is the limit the motor has.

For the power source I use a max DC current of 20 and min DC current of -2. I am using a 5S Lipo battery: HRB 18.5V 5S 5000mAh 50C Lipo battery for RC Car Truck Helis Boat – HRB-POWER

Can you look at the iq_measured on the ODrive? Is this reaching 15A during acceleration, or is it less?