Sto solo aggiungendo i miei 2 centesimi per le buone risposte già.
L'uso pratico del PID per il controllo della temperatura ha spesso comportamenti non lineari se il rilevamento dell'errore di temperatura è limitato (guadagno saturo dell'amplificatore operazionale) e la potenza disponibile per controllare la temperatura è fissa.
Prendi in considerazione un controller on-off. Il sistema avrà latenza dal momento in cui viene applicato il calore e viene rilevato un cambiamento di temperatura. Che nessun loop PID, questa latenza crea un loop instabile oscillante e se c'è qualche isteresi, la potenza cicla con il rumore (On-Off-On) Tuttavia un guadagno molto elevato (come un comparatore) provoca un piccolo errore di temperatura residua. La latenza influisce sul tempo di ciclo e sul superamento.
Se si è verificato un disturbo esterno come una lampada del serbatoio che può aggiungere calore significativo, il regolatore del riscaldatore deve rispondere non appena viene rilevato un aumento di temperatura dal calore della lampada. Se la tua lampada swith non fa parte del circuito PID, non può "anticipare" l'effetto (guadagno del feedback derivativo) Ovviamente, se le lampade generano troppo calore, la temperatura non può essere regolata e supererà il setpoint.
Il tuo controllo del calore con controllo PID potrebbe dover avere un'inoput per lo stato dell'interruttore della lampada e il controllo dell'uscita per regolare la potenza della luce come fonte secondaria di calore, anche se troppo.
La definizione dei requisiti di errore di controllo assoluto,% di superamento e tempo di risposta sono alcuni input di progettazione necessari per ottimizzare il loop PID. Altrettanto importante è definire i disturbi del sistema e includerli nel sistema di controllo per input e output. per esempio. Potenza termica della lampada e scelta del / i sensore / i e posizione.
A parte l'esperienza.
La mia prima esperienza nell'uso di uno scaldabagno è stata durante l'era del letto ad acqua degli anni '70, quando ero uno studente, ho progettato il mio termoregolatore usando un termistore, un circuito di controllo e un interruttore triac zero-crossing per il riscaldatore. Ho iniziato con il controllo del comparatore e ho trovato una risposta insolita saltando nel letto. Quindi ho aggiunto il controllo proporzionale usando il rumore non filtrato sul sensore per darmi "cicli mancanti" proporzionali quando il triac ZCS era ON vicino alla soglia. Ho potuto regolare la temperatura entro 0,1 ° C La risposta è stata più morbida ma il risultato è stato lo stesso.
Ho scoperto che l'errore più grande era nella posizione e piccoli cambiamenti nella pressione dell'acqua sul sensore. (Ero piccolo allora, solo 185 libbre ma su un letto d'acqua da 2000 libbre <il cambiamento del 10% della pressione dell'acqua era minuscolo)
La resistenza termica tra il sensore e il letto ad acqua ha creato un piccolo errore di offset a seconda della pressione dell'acqua contro il sensore. Nel tuo scenario del serbatoio dell'acqua, l'errore del sensore potrebbe essere influenzato dalle dimensioni del serbatoio e dalla distanza tra sensore e riscaldatore o sensore e dalla superficie più lontana dell'acqua o dalla portata del flusso d'acqua o dalle bolle tra il sensore e il riscaldatore.
Nel mio caso, ogni volta che saltavo nel letto, la resistenza termica calava leggermente dalla pressione aggiunta e la luce di potenza si illuminava per un minuto o due fino a quando una temperatura scendeva di un decimo di grado o per corrispondere all'aumento della temperatura apparente da peso aggiuntivo e pressione di il letto ad acqua contro il termostato.
(Lezione appresa. Non trascurare le fonti di disturbo e i loro effetti sull'errore del sistema di controllo)