You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
According to the limit variable, which is used for antiwindup.
The limit variable was used in two conditions, L33 and L41
float integral = integral_prev + I*Ts*0.5f*(error + error_prev); // antiwindup - limit the output integral = _constrain(integral, -limit, limit);
and // sum all the components float output = proportional + integral + derivative; // antiwindup - limit the output variable output = _constrain(output, -limit, limit);
This is quite incorrect since the anti-windup also has the importance role in reducing the overshoot for the integral term.
And the integral term limit is the result of the multiplication of the I gain, it has a difference reference?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
According to the limit variable, which is used for antiwindup.
The limit variable was used in two conditions, L33 and L41
float integral = integral_prev + I*Ts*0.5f*(error + error_prev); // antiwindup - limit the output integral = _constrain(integral, -limit, limit);
and
// sum all the components float output = proportional + integral + derivative; // antiwindup - limit the output variable output = _constrain(output, -limit, limit);
This is quite incorrect since the anti-windup also has the importance role in reducing the overshoot for the integral term.
And the integral term limit is the result of the multiplication of the I gain, it has a difference reference?
Should we split it into two separated veriable?
Beta Was this translation helpful? Give feedback.
All reactions