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)