Z Rate Behavior

Hi all, I am in the process of tuning the velocity controllers (already tuned angular + ang rate). I noticed some unusual steady state behavior while doing the Z rate where it seems to settle at a different value to the setpoint. I’ve also noticed this previously in high level position control.

Here is the log https://logs.px4.io/plot_app?log=7a4718b9-e6db-47a3-b447-d5e5512dbbe0
Since the online plotter doesn’t show velocity setpoint, the step inputs given are +/- 0.5 m/s (which is equal to the full stick max velocity)

Note that I’ve purposely increased MPC_Z_VEL_P to induce some oscillation so it is clear where the system eventually settles.

Motion capture is being used if that is significant, although the mocap and estimator positions appeared almost identical.

Is there some other saturation which would explain this behavior?