Comment implémenter un auto-PID et déterminer les valeurs de Kp, Ki et Kd?

Bonjour à tous,

Je suis actuellement en train de travailler sur un projet impliquant un contrôle de température avec Arduino et je suis intéressé par l'utilisation de la technique PID pour améliorer la stabilité et la précision de mon système. Cependant, je suis un peu perdu sur la façon de trouver les valeurs optimales de Kp, Ki et Kd et j'aimerais savoir s'il existe une librairie Arduino qui propose un auto-PID.

J'ai également lu qu'il était possible de calculer les valeurs de Kp, Ki et Kd en utilisant la méthode de Ziegler-Nichols, mais je ne suis pas sûr de bien comprendre comment la mettre en œuvre.

Si quelqu'un pourrait m'expliquer le concept de l'auto-PID et me recommander une librairie Arduino qui en propose une implémentation, ainsi que m'aider à déterminer les valeurs optimales de Kp, Ki et Kd pour mon système de facon automatique.

En vous remerciant par avance pour votre aide.

Bonjour. Le PID est un moyen de contrôler la valeur de sortie de quelque chose prenant en compte un ou plusieurs entrées.

Wikipédia peut donner plus d'informations :

Mais. Pour un système de chauffage, un PID n'est pas fortement facile à faire, car le temps de chauffe est très lent, pas comme sur la réaction d'un drone.

Un hystéris pour commencer sera bien.

Une library intéressante

Dans le readme un lien vers le site de Brett Beauregard où il y a beaucoup d'explications

De la littérature (en français)
http://projet.eu.org/pedago/sin/term/6-asservissement_arduino.pdf

+1 pour le lien.
C'est bien écrit, on nous évite les maths et on nous prend pas trop pour des jambons. Je trouve ça très adapté en mode découverte, mais aussi rafraichissant avant de se replonger dans les "vraies" formules.

[quote="techvij, post:2, topic:1099549"
Pour un système de chauffage, un PID n'est pas fortement facile à faire
[/quote]

Dans les régulations de chauffage (souvent aussi dans d'autres régulations de température, si le système asservi s'y prête) on se contente en général de P et I, on laisse tomber terme dérivé........pas de Kd...Un terme de moins à ajuster :wink:

Merci pour vos réponses, je vais essayer avec les liens donnés

Dans les firmwares des imprimantes 3D il y a un autotune qui répond à la commande Gcode M303:

Le programme fait un cycle de 8 test et indique le P.I.D optimale et permet de le conserver

ici, on voit le test avec les montées en température, les coupures et les reprises afin de le calculer

Dans le firmware Marlin 1.0.2 LTS pour les imprimantes 3D avec des cartes AVR .

je pense qu'une partie du sous programme d'autotune est dans le fichier temperature.h et temperature.ccp . Mais je n'arrive ps à extraire.

Bonjour

En complément du lien donné en #3 par lesept @fdufnews voici une variante 'autotune' du même auteur
https://github.com/br3ttb/Arduino-PID-AutoTune-Library

Pour une liste de divers alogorithmes d'autotune :
https://engineering.stackexchange.com/questions/37852/best-pid-autotuning-algorithm-library-for-simple-heater-problem

C'est @fdufnews ...

Désolé @fdufnews et merci @lesept !

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.