Arduino

Arduino

Regolazione proporzionale della temperatura

In questo progetto vi mostro una simulazione della regolazione della temperatura dell'acqua che si trova in un contenitore cilindrico di determinate caratteristiche (volume, materiale, isolamento, etc...).
La sorgente che fornisce energia per il riscaldamento è elettrica, con una potenza max di 2000 W.
Essa può essere variata mediante un regolatore meccanico, partendo da un valore minimo di 500 W fino a 2000 W, in modo continuo a seconda del segnale di uscita (la temperatura).
Così facendo essa tenderà al valore di setpoint impostato.
Prima di partire con il progetto è necessario impostare alcuni dati come la massa dell'acqua, la sua temperatura iniziale, la temperatura di regime o setpoint, la temperatura ambientale ed il coefficiente di trasmissione termica verso l'esterno.
Considerando la massa dell'acqua m pari a 50 litri, la temperatura ambiente Ta e quella iniziale T1 pari a 0°C, il setpoint uguale a 80°C ed il coefficiente di trasmissione termica K di 10 W/m²°C, si imposta il valore di potenza da assegnare in partenza pari a 2000 W per fare in modo che il riscaldamento avvenga nel più breve tempo possibile.
Superata la soglia di 80°C, entrerà in funzione la regolazione proporzionale che condurrà il processo al valore di setpoint dopo poche e brevi oscillazioni.
Adottando il plotter seriale messo a disposizione dall'IDE di Arduino è possibile monitorare la simulazione in tempo reale.
E' ovvio che i dati impostati da me sono flessibili ed ognuno può modificarli a suo piacimento.

Il modello matematico adottato per gestire questo processo è quello dell'equazione dell'equilibrio termico:


P*Dt = cmDT + KSDT'*Dt

dove:

P*Dt           è l'energia elettrica impegnata
cmDT         è l'energia termica immagazzionata dall'acqua
KSDT'*Dt  è l'energia termica dispersa nell'ambiente dalle pareti del contenitore

Sviluppando la formula, si può scrivere:

P*Dt = cm(T2-T1) + KS(T1-Ta)*Dt

dove:

P     è la potenza elettrica in W
Dt   è il tempo con step di 1, in s
c     è il calore specifico dell'acqua pari a 1 Kcal/Kg°C
m    è la massa dell'acqua in Kg
T2   è la temperatura finale dopo unn secondo in °C
T1   è la temperatura iniziale in °C
Ta    è la temperatura ambiente in °C
K     è il coefficiente di trasmissione termica in W/m²°C
S     è la superficie smaltente in m²

Esplicizzando la formula rispetto a T2 si arriva a:

T2 = T1 + (P - KS(T1-Ta))*Dt/cm

Per poter applicare questo modello bisogna calcolare il valore di S.
Supponendo che il contenitore sia cilindrico, dovrà contenere il volume di 50 litri pari a 0.05 m³.
Applicando una maggiorazione del 10%, si arriva ad un volume di 0.055 m³.
Se si fissa un'altezza di 50 cm, si arriva subito all'area di base dividendo il volume per l'altezza cioè 0.11 m² a cui corrisponde un diametro di circa 37.4 cm.
Arrotondando a 40 cm e con un'altezza di 50 cm, si calcola un volume di 0.0625 m³ che sicuramente contiene i 50 litri di acqua.
Fatto ciò, è possibile calcolare la superficie smaltente come somma tra quella laterale più quella delle due basi del cilindro:

S = pigr*D*h + 2*pigr*D²/4 = pigr*D*(h + D/2)

Facendo i calcoli si arriva circa al valore di 0.88 m².

Se vogliamo avere un'idea del tempo necessario per il riscaldamento dell'acqua fino alla temperatura di regime, bisogna pensare che tutta l'energia fornita sia assorbita tutta dalla stessa acqua e nulla si disperde per cui è ovvio che più alto è il valore della potenza elettrica più basso è il tempo che ci vuole per il regime.
Quanto detto è possibile verificarlo dal seguente grafico:




E' facile notare come la curva riferita al valore di 2000 W ragginge gli 80°C in un tempo di circa 450 s mentre quella dei 1500 W impiega quasi 550 s, quella dei 1000 W quasi 750 s e quella dei 500 W neanche arriva al regime.

Adesso passiamo alla regolazione proporzionale.
Ho costruito il seguente grafico lineare che mette in relazione la grandezza meccanica y (posizione del cursore del regolatore) con la potenza da fornire x.



Da questa caratteristica, sfruttando la similitudine dei triangoli colorati, ho ricavato la legge di regolazione che ho inserito nel codice.
Facendo alcune sperimentazioni che potete osservare in seguito, ho notato che il Kp non può essere inferiore ad 1 altrimenti la potenza elettrica supera il valore massimo e non può essere tanto più grande di 3 perchè si rischia di rimanere sotto il setPoint.
Ecco qui di seguito alcune prove con Kp = 1,1.2,2 e 3. A mio parere quella con Kp = 1.2 è una buona regolazione perchè mantiene la temperatura entro la zona neutra e con poche oscillazioni si stabilizza (può andare bene anche un valore di Kp = 1.5 che riduce il primo picco).












Il codice del progetto è disponibile al seguente link: Reg_Temp_Prop.


Nessun commento:

Posta un commento