m-lundberg / simple-pid

A simple and easy to use PID controller in Python
MIT License
801 stars 217 forks source link

Implement optional bias constant #37

Open BenVosper opened 3 years ago

BenVosper commented 3 years ago

Add a new optional argument to the PID class which allows a constant output bias to be specified. If provided this bias is applied to the output before any output limits are applied. This can be useful for systems which require a non-zero output to maintain a steady-state.

This new argument is optional and defaults to zero, so existing users of the package won't notice any changes. The implementation itself is also trivial.

I've been using a bias constant in a system I'm currently working on by using a PID instance without output limits, then applying the bias and output limits myself, after calling the PID instance. This works fine, but it's definitiely neater and more efficient to be able to let the PID take care of all the limits internally.

Interested to hear if you think this would be worth having @m-lundberg . Let me know if there's anything else I need to add to this PR. Thanks for your work on this package, I've found it great to work with!