Vai al contenuto
PLC Forum


Regolazione parametri PI di una piccola camera termostatica controllata con celle di peltier


mib

Messaggi consigliati

Buon giorno a tutti,

vi chiedo un aiuto per la regolazione dei parametri PI per questo controllo di temperatura (5° - 45°) di una piccola camera termostatica contenente un piccolo volume di H2O (5 millilitri).

Questo sistema funziona con un PID, ma in realtà è solo un PI, implementato in un microcontrollore PIC che controlla la corrente delle celle peltier attraverso un PWM e un MOSFET, mentre il sensore di temperatura è un comune LM35. Il loop del programma, al cui interno elaboro il PID è di 100msec precisi, scanditi da un interrup controllato con uno dei timer del PIC.

Il sistema mi funziona bene sia in modalità di riscaldamento che quella in raffreddamento, se tengo fissa una delle due modalità  riesco a tarare bene i valori di PI (taro prima il P fino ai primi segnali di instabilità e lo decremento del 10% e poi con il medesimo sistema taro l'I)  e tutto funziona molto bene. I problemi iniziano quando cerco di far funzionare le due modalità in modo automatico: cioè se cambio la temperatura di set oppure si cambia di molto la temperatura ambiente il sistema commuta in una delle due modalità (riscaldamento/raffreddamento attraverso l'inversione di corrente delle peltier) in funzione dell'andamento del PI, ossia quando il valore del PI passa per zero inverto la modalità. Questo meccanismo mi funziona, credo correttamente, cioè il sistema si inverte quando cambio adeguatamente il set poit oppure quando la temperatura mi va molto più alta (o più bassa) del set poit. Il mio problema è che con il sistema automatico non riesco a tarare i parametri p e i in modo da rendere tutto stabile, c'è sempre una qualche condizione in cui o per l'errore negativo o per l'integrale accumulato il sistema si commuta nel verso sbagliato e quindi va in pratica in retroazione positiva.

Volevo chiedere se secondo voi è corretto farlo commutare sul cambio di segno del PI, e se si che approccio pratico posso adoperare per tarare i fattori PI in queste condizioni. 

Mi piacerebbe anche sapere se ci sono delle tecniche diverse o più adatte di quella addotata da me.

Ringrazio in anticipo tutti quelli che mi risponderanno.

Link al commento
Condividi su altri siti


SandroCalligaro

Ci sono almeno un paio di cose da verificare, per poterti dare delle indicazioni.

 

Ti faccio qualche domanda, ma sarebbe preferibile che tu postassi il codice di aggiornamento del PI (commentato adeguatamente perché lo si possa capire al volo).

 

- Annulli la parte integrale quando cambi modalità?

- C'è un meccanismo di anti-windup?

- Qual è il criterio di passaggio tra una modalità e l'altra? C'è una "banda morta" di temperatura nella quale non applichi nessuna azione?

- Come gestisci la corrispondenza tra un valore positivo/negativo ed il duty-cycle?

Link al commento
Condividi su altri siti

Oltre alle giustissime considerazioni di Sandro Calligaro, devi considerare il sistema come se fosse composto da 2 regolatori distinti.

Nel monento dell'inversione da riscalda a raffredda e viceversa, per prima cosa va azzerato l'integrale, poi sarebbe cosa buona e giusta cambiare i gudagni proprozionale ed il tempo di integrale.

Link al commento
Condividi su altri siti

Intanto grazie per le pronte risposte,

per Sandro Calligaro:

Quote

 

Quote

 Annulli la parte integrale quando cambi modalità?

No, anche se ci avevo pensato, ma poi mi sono perso in altri dubbi.

Quote

C'è un meccanismo di anti-windup?

Credo che tu intenda il meccanismo per il quale se la risposta in uscita è satura l'integrale è disattivato (cioè non si incrementa finchè la risposta non torna nel range.

Se intendi questo la risposta è si.

Quote

Qual è il criterio di passaggio tra una modalità e l'altra? C'è una "banda morta" di temperatura nella quale non applichi nessuna azione?

Il criterio per lo switch tra le due modalità è il passaggio del valore del PI per lo 0, non c'è una banda morta di temperatura per la quale disattivo il passaggio tra le due modalità.

Quote

Come gestisci la corrispondenza tra un valore positivo/negativo ed il duty-cycle?

Per il duty cycle del PWM prendo il valore assoluto del PI, e cambio anche il segno dell'errore per rimanere in retroazione negativa.

 

per il codice non riesco a inserirlo ora, ma lo posso sicuramente inserire Lunedì pomeriggio, magari anche con un minimo di schema elettrico.

 

Per Livio Orsini:

Si in effetti li considero due regolatori distinti perchè in riscaldamento e in raffreddamento il sistema risponde diversamente quindi un  kp e  Ki per la fase che scalda e un Kp e ki per la fase che raffredda, per l'azzeramento dell'integrale, come detto ci avevo pensato, ma mai messo in pratica. Ora che me lo avete fatto  notare, non vedo l'ora che venga lunedì per provarlo.

Devo dire che un vero piacere parlare con voi, solo leggendo le vostre domane ho eliminato alcuni miei dubbi e forse ho capito che le soluzioni sono a portata di mano.  

Vi terrò aggiornati.

 

Buon week end.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...