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.
microcontroller
control-system
pid-controller
Daniel Grillo
la source
la source
Réponses:
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!
la source
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.
la source
Outre l'application évidente de contrôle de la température, voici un beau projet qui nécessitait un contrôle PID. Faites-vous un bot suivant la ligne: http://elm-chan.org/works/ltc/report.html
la source
Un joli simulateur PID est disponible pour Scilab.
la source
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.
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.
la source