Separate output limits and integral limits #30
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a separate property
integral_limits
to clamp the integral term independently from the output.This fixes an issue I encountered where the pid does not stabilize to the setpoint when using
output_limits
with an integrating system (a PWM heater that I control with a 0->1 float). In this case, the proportional-on-measurement term becomes larger than the clamped integral term, and the pid output goes to 0 - very far from the setpoint. So, I think it would be nice to be able to set theoutput_limits
separately from the wind-up limiting on the integral term.I've provided an example that demonstrates this behavior below
This PR fixes this by adding an
integral_limits
property that is set in the same way as theoutput_limits
. Theintegral_limits
are applied solely on the integral term, whereas theoutput_limits
are applied solely on the output.