Slow S curve deceleration

I am using a 2 pole (1 pole pair) BLDC motor with the MA730. Controller: Nucleo L432KC 80MHz.
control type: Angle. motor rated current is 2.0, voltage is 20V. (yes I know it’s my power supply, strange number but it is stable). I don’t use the built in current sense because my sensors are internal op amps sensing Low side - not supported yet by Simple FOC.

My problem is that with angle control the acceleration is fine and fast, but the deceleration is a slow S curve. I tried to change the PID but it didn’t change this behavior. my app requires high speed motion control (15,000 RPM) and almost a triangular motion profile. I need a sharp deceleration.
I wrote a simple script that sends the motor to an angle setpoint and then back. So you can see it on the graph:

Can you try a velocity PID config with integral set to zero. Perhaps the integral has memory / inertia. I realise that without integral you are unlikely to hit your target velocity but this experiment might help gain some intuition about what is going on.

If the above does improve deceleration then perhaps the PID implementation can be manipulated to reset integral sum (to zero) when making major velocity changes.

Thank you Owen, Increasing Angle P to 30-40 and setting Angle low pass filter to 0.02 did the trick.

1 Like

So apparently the high P gain of the angle is not good for me. I need fast accelerations and decelerations. How can I achieve that? what parameter is responsible for this?