In ecl attitude_fw 3 axis PID controller (eg: ecl github) I find the following code (~line 140)
/* Apply PI rate controller and store non-limited output */
_last_output = _bodyrate_setpoint * _k_ff * ctl_data.scaler +
_rate_error * _k_p * ctl_data.scaler * ctl_data.scaler
+ integrator_constrained; //scaler is proportional to 1/airspeed
It seems that the Kp term is scaled via airspeed^2 while Kff and Ki are only scaled using airspeed. (scaler = airspeed_trim/airspeed_current)
I think the scaling of airspeed^2 make sense to account dynamic pressure effects, so is Kff and KI scaling inconsistent or I am missing something?