Come imparare il controllo PID?


26

Voglio imparare il controllo PID (proporzionale-integrale-derivato) principalmente per la temperatura.

Vorrei imparare preferibilmente attraverso un progetto facile da fare.

Potresti per favore consigliare qualcosa che richiederebbe alcune settimane per imparare?

Modifica: voglio controllare la temperatura di un serbatoio d'acqua. Il riscaldamento è fatto da una resistenza.


Ho cercato di ottenere un progetto di base da cui qualcuno potesse imparare, penso che anche la matematica sia interessante. Le persone ci dedicano la vita.
Kortuk,

Di cosa vuoi controllare la temperatura?
J. Polfer,

3
Poiché non è possibile rimuovere il calore, è necessario assicurarsi che il sistema si raffreddi ancora anche quando si applica una piccola corrente o il pid potrebbe avere problemi di regolazione. Vorrei eventualmente aggiungere un fan o ghiaccio quando fai l'esperimento. Vuoi che salga quando sei al completo e scendi quando sei spento. In tal caso, il feedback verrà regolato per te.
Rex Logan,

1
Ciò è determinato dalla temperatura del serbatoio dell'acqua richiesta. Se vuole 80 ° C, allora la temperatura ambiente sarà sufficiente, se vuole 25 ° C, allora avrà un problema. Il PID, se regolato correttamente, dovrebbe essere in grado di gestire una perdita di temperatura lenta.
Kortuk,

Risposte:


27

Il controllo della temperatura (dipende dal mezzo) non è tremendamente difficile. Questo è stato il mio primo progetto quando ho iniziato. Scusatemi, se ripeto cose che già sapete.

Presumo che tu abbia già un modo di controllare il sistema (ad esempio un riscaldatore o un'unità di raffreddamento) e un modo per ottenere feedback dal sistema (un sensore di temperatura come un termistore o qualcosa del genere). Avrai bisogno di entrambi per implementare un loop PID, che è un tipo di controllo ad anello chiuso. Tutto quello che devi fare è scrivere un po 'di software per inviare comandi di controllo, leggere feedback e prendere decisioni su quel feedback.

Comincerei leggendo PID senza dottorato . È l'articolo che ho usato quando ho dovuto regolare la temperatura per la prima volta in un esperimento scientifico. Fornisce alcune immagini di facile comprensione e un bel codice di esempio (un ciclo di base che puoi modificare richiede solo 30 righe) che spiega come controllare il tuo 'impianto' - in questo caso, ciò che vuoi controllare la temperatura di .

L'essenza del controllo PID - Proporzionale-Integrale-Differenziale - è utilizzare le prestazioni future (rispettivamente) istantanee, passate e previste del sistema per determinare come controllare un sistema in un determinato momento per raggiungere un determinato set point. In molti casi, dovrai ottimizzare i fattori di guadagno dell'algoritmo per ottenere le prestazioni desiderate di cui hai bisogno: quanto velocemente aumenterà la temperatura, quanto vuoi evitare il superamento, ecc. Potresti persino scoprire di non aver bisogno del differenziale o persino il controllo integrale per arrivare dove vuoi essere!


non riuscivo a ricordare dove fosse andato quel link a PID senza un dottorato. Mi ero dimenticato del suo nome e non riuscivo a ricordare ciò che avevo letto tanto tempo fa. +1 signore.
Kortuk,

3
PID senza dottorato è un ottimo articolo! Comunque, al mio microcontrollore a 8 bit non piaceva quell'aritmetica in virgola mobile ..
abdullah kahraman

Semplicemente eccellente! Il PID senza PHD è perfetto. Ho un dottorato di ricerca, ma ho fatto del mio meglio per stare lontano dalla teoria del controllo :) Inoltre, adoro il mini line follower.

@Bistromath Non aggiungere "grazie" come risposta. Una volta che avrai una reputazione sufficiente , potrai votare le domande e le risposte che hai trovato utili.
m.,

10

Sì. Ottieni un termistore e una resistenza. Scegli una resistenza che può tirare una corrente abbastanza grande (> 100 mA).

Usa la pasta termica tra di loro e fissali con del nastro adesivo. Agganciare il circuito del termistore a un microcontrollore tramite ADC. Utilizzare un transistor per controllare il resistore e controllarlo con un PWM.

Sviluppa un PID che ti consenta di controllare la temperatura con un quadrante ed esercitati a creare un PID che superi e squilli la temperatura. Renderlo troppo smorzato e impiegare un'eternità per raggiungere la temperatura, e provare a farlo smorzare criticamente e arrivare alla temperatura alla massima velocità.

Fammi sapere se maggiori dettagli potrebbero aiutare.

Al termine, ridurre la conduttanza termica, provare ad aggiungere uno stadio che ritarderà la propagazione della temperatura e provare a farlo controllare.

Questo può essere fatto anche con un LED e un transistor fotografico.


Questi sono buoni suggerimenti per cercare di capire come si comportano i loop PID.
J. Polfer,



1

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)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.