Simple Pid Versions Save

A simple and easy to use PID controller in Python

v2.0.0

1 year ago

[2.0.0] - 2023-04-28

Added

  • Ability to override the time function by setting PID.time_fn to whichever function to use
  • Black is now run in CI to detect formatting problems
  • Project is now defined by a pyproject.toml file instead of the old setup.py. The setup.cfg file remains for flake8 configuration for now.
  • Ability to give the PID a starting guess for its output, when you start controlling a system that is already at the setpoint and don't want the PID to start outputting 0
  • Option for specifying differential_on_measurement, to choose between calculating the derivative term on the input (default) or on the error (classic PID)

Changed

  • Rename the module PID to pid to avoid the shadowing from the PID class - potentially a breaking change in some edge cases
  • CI migrated from Travis to GitHub Actions
  • The documentation has gotten an overhaul and a new look. Much of the detailed documentation in README.md has been moved to a dedicated user guide.

Fixed

  • Fix mypy issue by explicitly exporting PID
  • Remove duplicated definition of output_limits in type stubs

Deprecated

  • Official support for Python 2 is dropped. While the code will likely keep working in Python 2 going forward, it's no longer tested in CI and no guarantees are given.

v1.0.1

1 year ago

[1.0.1] - 2021-04-11

Fixed

  • Added type information for public instance variables to typing stub

v1.0.0

1 year ago

[1.0.0] - 2021-03-20

Added

  • Function to map the error value to a different domain

  • Typing information through a stub file so that users of the library can use e.g. mypy to type check their code

  • This project now uses the Black code style

  • The PID class now has a __repr__() method, meaning that objects of this type can be printed directly for use during development

  • MANIFEST.in file to ensure all necessary files are included in the source distribution

Fixed

  • Formatting errors in the documentation due to poorly formatted docstrings

v0.2.4

1 year ago

[0.2.4] - 2019-10-08

Added

  • Added optional argument to manually set dt (useful e.g. when running in a simulation)

v0.2.3

1 year ago

[0.2.3] - 2019-08-26

Added

  • A reset method to reset the internal state of the PID controller

v0.2.2

1 year ago

[0.2.2] - 2019-07-04

Changed

  • Don't limit the proportional term to the output bounds when using proportional_on_measurement

v0.2.1

1 year ago

[0.2.1] - 2019-03-01

Fixed

  • ZeroDivisionError on systems with limited precision time.

v0.2.0

1 year ago

[0.2.0] - 2019-02-26

Added

  • Allow the proportional term to be monitored properly through the components-property when proportional on measurement is enabled.

Fixed

  • Bump in output when re-enabling auto mode after running in manual mode.

v0.1.5

1 year ago

[0.1.5] - 2019-01-31

Added

  • The ability to see the contributions of the separate terms in the PID

Fixed

  • D term not being divided by delta time, leading to wrong output values

v0.1.4

1 year ago

[0.1.4] - 2018-10-03

Fixed

  • Use monotonic time to prevent errors that may be difficult to diagnose when the system time is modified. Thanks @deniz195

Added

  • Initial implementation