I am wondering why rate PID is computed like this in STABILIZE mode
get_stabilize_roll(long target_angle)
{
...
// Rate P:
error = rate - (long)(degrees(omega.x) * 100.0);
rate = g.pi_rate_roll.get_pi(error, G_Dt);
...
but like this in ACRO mode
get_rate_roll(long target_rate)
{
long error;
target_rate = constrain(target_rate, -2500, 2500);
error = (target_rate * 4.5) - (long)(degrees(omega.x) * 100.0);
target_rate = g.pi_rate_roll.get_pi(error, G_Dt);
...
Where does the 4.5 factor come from ?
Replies
That's actually a stand-in for Stabilize_P. I don't fly Acro at all so please suggest a fix!
Thanks,
Jason