Comment apprendre le contrôle PID?

26

Je veux apprendre le contrôle PID (Proportionnel – Intégral – Dérivé) principalement pour la température.

J'aimerais apprendre de préférence à travers un projet facile à faire.

Pourriez-vous s'il vous plaît recommander quelque chose qui prendrait quelques semaines à apprendre?

Edit: je veux contrôler la température d'un réservoir d'eau. Le chauffage se fait par une résistance.

Daniel Grillo
la source
J'ai essayé d'obtenir un projet de base dont quelqu'un pourrait apprendre, je pense que les mathématiques sont également intéressantes. Les gens y consacrent leur vie.
Kortuk
De quoi voulez-vous contrôler la température?
J.Polfer
3
Comme vous ne pouvez pas éliminer la chaleur, vous devez vous assurer que votre système refroidira toujours même en appliquant un petit courant ou votre pid pourrait avoir des problèmes de régulation. J'ajouterais éventuellement un ventilateur ou de la glace lorsque vous feriez votre expérience. Vous voulez qu'il monte quand vous êtes au maximum et qu'il descende quand vous êtes éteint. Si tel est le cas, la rétroaction réglera pour vous.
Rex Logan
1
Cela est déterminé par la température du réservoir d'eau requise. S'il veut 80C alors la température de l'environnement sera suffisante, s'il veut 25C alors il aura un problème. Le PID, une fois réglé correctement, devrait pouvoir faire face à une perte de température lente.
Kortuk

Réponses:

27

Contrôler la température (cela dépend de votre milieu) n'est pas très difficile. C'était mon premier projet quand j'ai commencé. Excusez-moi, si je répète des choses que vous savez déjà.

Je suppose que vous avez déjà un moyen de contrôler le système (c.-à-d. Un appareil de chauffage ou de refroidissement) et un moyen d'obtenir des commentaires du système (un capteur de température comme une thermistance ou quelque chose). Vous aurez besoin des deux pour implémenter une boucle PID, qui est un type de contrôle en boucle fermée. Tout ce que vous devez vraiment faire après cela est d'écrire un peu de logiciel pour envoyer des commandes de contrôle, lire les commentaires et prendre des décisions en fonction de ces commentaires.

Je commencerais par lire le PID sans doctorat . C'est l'article que j'ai utilisé la première fois que j'ai dû réguler la température dans une expérience scientifique. Il fournit des images faciles à comprendre et un bel exemple de code (une boucle de base que vous pouvez modifier n'a besoin que de 30 lignes) qui explique comment contrôler votre `` plante '' - dans ce cas, la chose dont vous voulez contrôler la température .

L'essentiel du contrôle PID - Proportionnel-Intégral-Différentiel - est d'utiliser les performances instantanées, passées et futures (respectivement) du système pour déterminer comment contrôler un système à un moment donné pour atteindre un point de consigne spécifié. Dans de nombreux cas, vous devrez régler les facteurs de gain de l'algorithme pour obtenir les performances souhaitées dont vous avez besoin - à quelle vitesse la température augmentera, à quel point vous voulez éviter le dépassement, etc. Vous pourriez même constater que vous n'avez pas besoin du différentiel ou même un contrôle intégral pour arriver là où vous voulez être!

J. Polfer
la source
ne pouvait pas se rappeler où ce lien vers PID sans un doctorat est allé. J'avais oublié son nom et je ne pouvais pas me souvenir de ce que j'avais lu il y a si longtemps. +1 monsieur.
Kortuk
3
PID sans doctorat est un excellent article! Cependant, mon microcontrôleur 8 bits n'aimait pas cette arithmétique à virgule flottante ..
abdullah kahraman
Tout simplement excellent! Le PID sans PHD est parfait. J'ai un doctorat, mais j'ai fait de mon mieux pour rester loin de la théorie du contrôle :) De plus, j'adore le mini suiveur de ligne.
@Bistromath Veuillez ne pas ajouter "merci" comme réponse. Une fois que vous avez une réputation suffisante , vous pourrez voter pour les questions et réponses que vous avez trouvées utiles.
m.Alin
10

Oui. Obtenez une thermistance et une résistance. Choisissez une résistance qui peut tirer un courant assez important (> 100mA).

Utilisez de la pâte thermique entre eux et collez-les avec du ruban adhésif. Accrochez le circuit de thermistance à un microcontrôleur via ADC. Utilisez un transistor pour contrôler la résistance et contrôler cela avec un PWM.

Développez un PID qui vous permet de contrôler la température avec un cadran et entraînez-vous à créer un PID qui dépasse et fait sonner la température. Faites-le sur-amorti et prenez une éternité pour atteindre la température, et essayez de l'amortir de manière critique et d'atteindre la température à la vitesse maximale.

Faites-moi savoir si plus de détails pourraient aider.

Une fois que vous avez terminé, réduisez leur conductance thermique, essayez d'ajouter un étage qui retardera la propagation de la température et essayez de bien la contrôler.

Cela peut également être fait avec une LED et un photo-transistor.

Kortuk
la source
Ce sont de bonnes suggestions pour essayer de comprendre le comportement des boucles PID.
J. Polfer
1

Un joli simulateur PID est disponible pour Scilab.

Leon Heller
la source
1

J'ajoute déjà ma valeur de 2 cents aux bonnes réponses.

L'utilisation pratique du PID pour le contrôle de la température a souvent des comportements non linéaires si la détection d'erreur de température est limitée (le gain de l'amplificateur opérationnel sature la sortie) et la puissance disponible pour contrôler la température est fixe.

Considérez un contrôleur marche-arrêt. Le système aura une latence à partir du moment où la chaleur est appliquée et un changement de température est détecté. Ce qui sans boucle PID, cette latence crée une boucle instable oscillant et s'il y a une hystère, le cycle de puissance avec du bruit (On-Off-On) Cependant un gain très élevé (comme un comparateur) se traduit par une petite erreur de température résiduelle. La latence affecte le temps de cycle et le dépassement.

S'il y avait une perturbation externe telle qu'une lampe de réservoir qui peut ajouter une chaleur importante, le régulateur de chauffage doit réagir dès qu'une augmentation de température est détectée à partir de la chaleur de la lampe. Si votre lampe ne fait pas partie de la boucle PID, elle ne peut pas "anticiper" l'effet (gain de rétroaction dérivée). Évidemment, si les lampes génèrent trop de chaleur, la température ne peut pas être régulée et dépassera le point de consigne.

Votre contrôle de chaleur avec contrôle PID devra peut-être avoir une entrée pour l'état du commutateur de lampe et un contrôle de sortie pour réguler la puissance lumineuse comme source secondaire de chaleur, encore une fois si c'est trop.

La définition de vos exigences en matière d'erreur de contrôle absolue, de% de dépassement et de temps de réponse sont quelques entrées de conception nécessaires pour optimiser votre boucle PID. Il est tout aussi important de définir les perturbations de votre système et de les inclure dans votre système de contrôle pour l'entrée et la sortie. par exemple. Puissance thermique de la lampe et choix du (des) capteur (s) et emplacement.

Mis à part l'expérience.

Ma première expérience avec un chauffe-eau remonte à l'époque des lits à eau des années 70, lorsque j'étais étudiant, j'ai conçu mon propre contrôleur de température à l'aide d'une thermistance, d'un circuit de commande et d'un interrupteur triac à passage par zéro pour le chauffe-eau. J'ai commencé avec le contrôle du comparateur et j'ai trouvé une réponse inhabituelle en sautant dans son lit. J'ai donc ajouté un contrôle proportionnel en utilisant du bruit non filtré sur le capteur pour me donner des "cycles manquants" proportionnels lorsque le triac ZCS était allumé près du seuil. Je pouvais réguler la température à 0,1 ° C. La réponse était plus douce mais le résultat était le même.

J'ai trouvé que la plus grande erreur était dans l'emplacement et de minuscules changements dans la pression de l'eau sur le capteur. (J'étais minuscule à l'époque, seulement 185 lb mais sur un lit d'eau de 2000 lb <10% de changement de pression d'eau était minuscule)

La résistance thermique entre le capteur et le lit à eau a créé une minuscule erreur de décalage en fonction de la pression de l'eau contre le capteur. Dans votre scénario de réservoir d'eau, l'erreur du capteur peut être due à la taille du réservoir et à la distance entre le capteur et le chauffe-eau ou le capteur et la surface la plus éloignée de l'eau ou le débit d'eau ou les bulles entre le capteur et le chauffe-eau.

Dans mon cas, chaque fois que je sautais dans le lit, la résistance thermique diminuait légèrement sous l'effet de la pression ajoutée et le voyant d'alimentation s'allumait gradateur pendant une minute ou deux jusqu'à ce qu'une température baisse d'un dixième de degré ou pour correspondre à l'augmentation de température apparente du poids et de la pression supplémentaires de le lit d'eau contre le thermostat.

(Leçon apprise. Ne négligez pas les sources de perturbations et leurs effets sur les erreurs du système de contrôle)

Tony Stewart Sunnyskyguy EE75
la source