PymateIO-PID-controler: Difference between revisions

From pymate.io wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
{{PYMATE-HEADER}}
{{PYMATE-HEADER}}
== About PID ==
A PID controller is a feedback-based control loop used to manage machines and processes that require continuous control and automatic adjustment!
It can be used to regulates temperature, pressuren, speed, illumination, position, ...
* [https://youtu.be/k7vxUFVR8Ks?si=56PMJ5-f2gEk11ey PID Controler with Arduino] from Andeas Spiess. A very valuable ressource.
* [https://en.wikipedia.org/wiki/PID_controller PID controller on WikiPedia]


== Software PID ==
== Software PID ==

Revision as of 02:32, 30 June 2026


About PID

A PID controller is a feedback-based control loop used to manage machines and processes that require continuous control and automatic adjustment!

It can be used to regulates temperature, pressuren, speed, illumination, position, ...

Software PID

The PymateIO includes the PID class (pid library).

The PID controler do use a Timer to perform its treatments (it is an autonomous process).

As for each PID Controller, the following parameter are required:

  • Kp : Proportional constant
  • Ki : Integral constant
  • Kd : Derivated constant

The software controller requires additional parameters:

  • dt: time (ms) between two consecutive measurement
  • measure_func : the function that returns the PID input value.
  • output_func : the function(value) called by the PID controler to set the output.
  • output_min : minimal value for the output.
  • output_max : maximal value for the output.

The PID controller starts when setting the setpoint (see setpoint(value) ) and stop when stop() is called.

This controller have been deployed with success into the Plancha-CMS project.
Do not hesitate to read the test_pid.py of Plancha-CMS for implementation example.
A typical application of PID would be speed regulation:
  • Kp, Ki, Kd : to determine
  • dt = 100ms
  • measurement_func : returns the measured RPM
  • output_func : set the PWM duty cycle (in percent) for the motor
  • output_min : 0
  • output_max : 100

PymateIO all right reserved © 2026 - Written by MCHobby for PymateIO