people.ding.unisannio.itpeople.ding.unisannio.it/continillo/didattica/corsi... · Web viewCSTR in...

28
UNIVERSITÀ DEGLI STUDI DEL SANNIO FACOLTÀ DI INGEGNERIA CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ENERGETICA ESAME DI “DINAMICA E CONTROLLO DEI PROCESSI ENERGETICI” Studio di un CSTR in regime transitorio non isotermo che scambia con aria a temperatura ambiente o con un jacket di raffreddamento Studenti: Aldo Mottola Gianmarco Aversano Nicola Minutella Stefano Guerriero

Transcript of people.ding.unisannio.itpeople.ding.unisannio.it/continillo/didattica/corsi... · Web viewCSTR in...

UNIVERSITÀ DEGLI STUDI DEL SANNIO

FACOLTÀ DI INGEGNERIA

CORSO DI LAUREA MAGISTRALE IN

INGEGNERIA ENERGETICA

ESAME DI “DINAMICA E CONTROLLO DEI PROCESSI ENERGETICI”

Studio di un CSTR in regime transitorio non isotermo che scambia con aria a temperatura ambiente o con un jacket di raffreddamento

Studenti:

Aldo Mottola

Gianmarco Aversano

Nicola Minutella

Stefano Guerriero

1: CSTR IN REGIME TRANSITORIO NON ADIABATICO CHE SCAMBIA CON ARIA A TEMPERATURA AMBIENTE

Si consideri un CSTR nel quale ha luogo la reazione irreversibile esotermica del primo ordine:

A Br(C, T) = - k(T)CA

Il sistema nella forma adimensionale che descrive la dinamica delle variabili di stato è il seguente:

In cui:

β = Entalpia di reazione adimensionale = ;

= Energia di attivazione adimensionale = ;

Da = numero di Damköhler = τkoe-γ = τkrif ;

ϕo = coefficiente di scambio termico adimensionale = ;

= temperatura dell’aria esterna adimensionale;

= temperatura adimensionale del fluido della corrente di alimentazione del CSTR;

= concentrazione adimensionale nella corrente di alimentazione al CSTR.

Lo scopo di quest’analisi è quello di osservare la dinamica nell’intorno del punto di regime che si ha per valori di:

β = 0.81;

= 16;

Da = 0.16;

ϕo = 13;

= 0;

= 0;

= 0.

Si è visto che per tali parametri nasce un regime oscillante, il che mostra la presenza di un ciclo limite. Utilizzando il codice “pplane8” implementato in Matlab è stato ricavato il diagramma delle fasi e le serie temporali delle variabili di stato del sistema per diversi set di condizioni iniziali.

Fig. 1.1: Diagramma delle fasi

Da questo diagramma si evince la presenza di un ciclo limite e di un punto di regime.

Tale punto compare per valori di:

Gli autovalori della matrice jacobiana sono complessi e coniugati con parte reale maggiore di 0, ciò indica che questo punto è un fuoco instabile.

Il ciclo limite, che ha un periodo di oscillazione 5.25τ, è invece un attrattore. Ciò si può vedere anche analizzando le traiettorie ottenute sul diagramma delle fasi per diverse condizioni iniziali.

Fig. 1.2: Traiettorie sul diagramma delle fasi

Notiamo come tutte le traiettorie convergano al ciclo limite, il che conferma la sua stabilità. Questo può essere apprezzato meglio rappresentando le serie temporali. In particolare, notiamo che se il punto iniziale è preso fuori da ciclo limite allora l’ampiezza delle oscillazioni si smorza durante il transitorio fino a raggiungere l’ampiezza del ciclo limite stesso. Se il punto è invece scelto all’interno del ciclo allora l’ampiezza delle oscillazioni si amplifica fino al valore di regime.

Fig. 1.3: Serie temporale variabili di stato con condizioni iniziali esterne al ciclo

Fig. 1.4: Serie temporale variabili di stato con condizioni iniziali interne al ciclo

2: CSTR IN REGIME TRANSITORIO CON JACKET DI RAFFREDDAMENTO

Si consideri un CSTR nel quale ha luogo la reazione irreversibile esotermica del primo ordine:

A Br(C,T) = - k(T)CA

Il calore generato dalla reazione è rimosso da una camicia di raffreddamento (jacket) di volume costante W percorsa da acqua di raffreddamento a flusso volumetrico con temperatura in ingresso Twin e di uscita Tw.

Nella trattazione si fanno le seguenti ipotesi:

· Continuità delle portate volumetriche nel reattore e nel jacket;

· Jacket perfettamente miscelato;

· Calori specifici costanti con la temperatura;

· Volume del reattore costante;

· Densità nel reattore e nel jacket costanti;

· Si trascurano gli effetti termici della parete metallica della camicia.

Iniziamo scrivendo l’equazione di bilancio di materia per un CSTR non isotermo con singola reazione in regime transitorio:

In cui

= Portata volumetrica in ingresso e uscita dal reattore;

= Concentrazione di A in ingresso al reattore;

= Concentrazione nel reattore = Concentrazione in uscita;

V = Volume del reattore;

= tempo dimensionale.

Utilizzando l’espressione di Arrhenius per la costante cinetica di reazione e portando al primo membro il termine differenziale si ottiene:

Abbiamo bisogno ora di scrivere altre 2 equazioni di bilancio, cioè l’equazione di bilancio di energia sul reattore e sul jacket. L’equazione di bilancio di energia sul reattore è:

In cui:

Ctot = Concentrazione totale;

= Calore specifico molare;

Tin = Temperatura della corrente in ingresso al reattore;

T = Temperatura nel reattore = Temperatura corrente in uscita dal reattore;

U = Coefficiente di scambio termico globale fra reattore e jacket;

S = Area superficie esterna del reattore;

Tw = Temperatura nel jacket (T water);

V(∆Hr)r(C,T) = Potenza termica liberata dalla reazione;

L’ultima equazione che ci resta da scrivere è il bilancio di energia sul jacket, che può essere scritto come:

In cui;

ρ = densità del fluido nel jacket;

cp,w = calore specifico del fluido;

Temperatura fluido in ingresso nel jacket;

Uest = Coefficiente di scambio termico globale fra jacket e ambiente;

= Area della superficie esterna del jacket;

= Temperatura ambiente;

= Portata di fluido in ingresso e in uscita al jacket;

W = volume del jacket;

Trascuriamo in via preliminare lo scambio fra jacket e ambiente esterno (scambio gas-solido, molto meno efficace dello scambio liquido-solido). Portando al primo membro il termine differenziale e definendo anche per il jacket un tempo di residenza τw = W / , ottengo:

A questo punto il sistema di equazioni dimensionali da risolvere è:

Essendo a conoscenza dei vantaggi dell’adimensionalizzazione, quali la riduzione del numero di parametri da controllare, quindi la maggior semplicità di analisi che ne consegue, nonché la universalità che il modello adimensionale assume, si procede con la ricerca di un sistema di equazioni adimensionali immagine di quello sopra riportato. Per fare ciò si definiscono delle grandezze di riferimento Crif e Trif scelte in maniera arbitraria. Definiamo quindi:

· ;

· = Temperatura nel reattore adimensionale =

in cui ∆Tad rappresenta il massimo incremento di temperatura raggiungibile nel reattore, in condizioni adiabatiche e per conversione totale a partire da una concentrazione di reagente uguale a quella di riferimento (caso ideale);

· = Temperatura nel jacket adimensionale = ;

·

Sostituendo nell’equazioni e raggruppando i termini si ottiene:

In cui:

β = Entalpia di reazione adimensionale = ;

= Energia di attivazione adimensionale = ;

Da = numero di Damköhler = τkoe-γ = τkrif ;

ϕo = coefficiente di scambio termico adimensionale = ;

Ω = Rapporto tra i tempi di residenza = ;

λ = Rapporto tra le capacità termiche dei due fluidi = .

ANALISI DEI RISULTATI

Utilizzando Matcont si procede al calcolo delle soluzioni di regime per le diverse variabili di stato variando i parametri adimensionali Ω e , perché sono questi due parametri che contengono informazioni riguardo la portata e la temperatura del fluido in ingresso al jacket.

Nelle simulazioni effettuate sono stati considerati valori costanti per gli altri parametri, perché non si vogliono variare né le condizioni di alimentazione del fluido nel reattore né il tipo di reazione.

Iniziamo l’analisi con il calcolo delle soluzioni di regime al variare di Ω, nei diagrammi che seguono riportiamo i risultati.

Fig 2.1. Diagramma delle soluzioni per x al variare di Ω. Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , =0.

In Fig. 2.1 si nota una diminuzione del valore di x all’aumentare di Ω , perché un aumento di Ω può rappresentare un aumento di portata alimentata al jacket e questo permette di aumentare la quantità di energia termica asportata al reattore con conseguente riduzione della temperatura nel CSTR e quindi riduzione della velocità di reazione, perché è chiaro che all’aumentare di Ω si limita la possibilità che la temperatura del jacket aumenti inseguendo quella del CSTR.

Nel diagramma viene evidenziata la presenza di un punto di biforcazione di Hopf, da cui nascono dei cicli limite che si conservano all’aumentare di Ω.

Fig 2.2. Diagramma delle soluzioni per θ al variare di Ω. Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , =0.

Il diagramma delle soluzioni di θ contro Ω si ripete in maniera analoga a x, in particolare la diminuzione di θ all’aumentare di Ω è sempre dovuta all’aumento dell’energia termica asportata al reattore.

Fig 2.3. Diagramma delle soluzioni per θw al variare di Ω. Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , =0.

Anche in questo caso ritroviamo un andamento simile ai precedenti, ma qui ci sono oscillazioni meno evidenti perché si considera un λ=0.01, ossia la capacità termica del fluido nel jacket è scelta circa 100 volte superiore la capacità termica del fluido nel reattore. La maggiore capacità termica consente di contenere in un range molto minore le oscillazioni di temperatura del fluido nel jacket.

Una volta visto che le variabili di stato assumono essenzialmente 2 comportamenti distinti al variare di Ω, cioè quello di punto fisso (per Ω<0.192) e quello di regime periodico (per Ω >0.192), passiamo ad analizzare il comportamento delle soluzioni di regime al variare di per 2 distinti valori di Ω.

Figura 2.4. Diagramma delle soluzioni per x al variare di . Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , Ω=0.01.

Nel diagramma possiamo individuare 3 zone distinte: una prima zona in cui ho un unico punto fisso stabile che si mantiene su valori di x bassi; una seconda zona in cui ho tre soluzioni di regime, due delle quali sono stabili e una terza, posta per valori intermedi di x, instabile. Su questa troviamo la nascita di un ciclo limite ‘half-stable’. Nella terza ed ultima zona abbiamo un unico punto fisso con valori di x elevati.

Tale andamento è conseguenza del fatto che il diagramma delle soluzioni presenta 2 biforcazioni sella-nodo che comportano la nascita di un ciclo di isteresi.

Figura 2.5. Diagramma delle soluzioni per θ al variare di . Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , Ω=0.01.

Nel grafico l’andamento di θ contro si ripete in maniera qualitativamente analoga a quello visto in figura 4.

Figura 2.6. Diagramma delle soluzioni per θw al variare di . Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , Ω=0.01.

Anche l’andamento di θw in funzione di segue lo stesso andamento del grafico in figura 4, in questo caso le oscillazioni sono piccole perché valgono le stesse osservazioni fatte per la figura 3.

Conclusa l’analisi per Ω =0.01 si propone una nuovo studio delle variabili di stato al variare di per un valore di Ω = 1 (ossia maggior del valore critico), che tra l’altro è il caso con τ = τw.

Figura 2.7. Diagramma delle soluzioni per x al variare di . Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , Ω=1.

La differenza che notiamo in questo caso rispetto al caso analogo per Ω = 0.01 descritto in Fig. 4, è che scompaiono le biforcazioni sella-nodo. Resta però la biforcazione di Hopf che ha come conseguenza la nascita di un ciclo limite, stavolta stabile.

L’andamento di θ e θw è qualitativamente lo stesso.

Figura 2.8. Diagramma delle soluzioni per θ al variare di . Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , Ω=1.

Figura 2.9. Diagramma delle soluzioni per θw al variare di . Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 , Ω=1.

In particolare in Fig. 9 notiamo che l’andamento di θw con è lineare e rappresenta la bisettrice del primo quadrante perché il fluido permane nel jacket un tempo insufficiente affinché esso possa subire variazioni di temperatura significative e quindi ne esce alla temperatura a cui entra.

ANALISI DEI REGIMI OSCILLANTI

Abbiamo ritenuto utile analizzare a questo punto le variazioni di periodo e ampiezza dei diversi regimi periodici per capire come variano i range di funzionamento delle diverse variabili di stato al variare dei parametri e Ω.

I risultati ottenuti con un codice scritto in Matlab, riportato in allegato alla presente relazione, sono i seguenti:

Figura 2.10. Serie temporale delle 3 variabili di stato. Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 ,=0, Ω=1.

Il diagramma rappresenta le serie temporali centrate rispetto al proprio valore medio. Per tutte le variabili di stato è stato calcolato il periodo di oscillazione e il ritardo tra le diverse grandezze. Il periodo risulta essere uguale per tutte le grandezze e pari a 4.9 volte τ. Mentre il ritardo tra le grandezze mostra che la variazione θw è in anticipo ed è seguita in ordine da una variazione di x e una di θ. In particolare x è in ritardo rispetto a θw di 0.06 τ; mentre il ritardo θ rispetto ad x è di 0.09 τ.

Figura 2.11.Diagramma Periodo di oscillazione in funzione di Ω. Con Da=0.16 , β=0.81 , γ = 16 , ϕo = 13 , λ= 0.01 , xin=0, θin=0 =0.

La prima zona rappresenta soluzioni di regime a punto fisso per cui non ha alcun senso definire il periodo di oscillazione. Il punto di minimo della curva si registra nel punto di biforcazione di Hopf. Si può osservare come il periodo di oscillazione sia crescente all’aumentare di Ω.

ANALISI DELLE SERIE TEMPORALI E DEI TRANSITORI

Analizzate le possibili soluzioni di regime raggiungibili del sistema CSTR-jacket per il considerato range di variazione dei parametri e Ω, si vogliono adesso simulare i regimi transitori e, quindi, le evoluzioni nel tempo del sistema, con cui evidentemente questo si porta a regime. Nelle immagini che seguono, la scala in ascissa è stata limitata, nonostante le grandezze di stato stiano ancora crescendo, per ragioni di visibilità delle curve.

Fig. 2.12 Andamento della variabile x nel caso di CSTR con jacket, per un valore di Ω lontano dal valore critico.

Fig. 2.13 Andamento della variabile ϑ nel caso di CSTR con jacket, per un valore di Ω lontano dal valore critico.

Fig. 2.14 Andamento della variabile ϑw nel caso di CSTR con jacket, per un valore di Ω lontano dal valore critico.

Nelle tre figure sovrastanti si può infatti vedere come, per il set di valori di parametri riportato in legenda, il sistema evolve da condizioni iniziali ‘spente’ fino alla soluzione di regime di punto fisso determinata anche dalla analisi parametrica delle soluzioni di regime esposta nei paragrafi precedenti. Il fatto che il sistema si porti, in generale, ad una condizione di funzionamento ‘acceso’ pur partendo da condizioni iniziali ‘spente’ (il sistema reagisce fortemente già a temperatura ambiente, ϑ=0) è causa dei valori impostati per i parametri Da, γ, β, la cui variazione non è interesse di questo studio.

È possibile notare un transitorio oscillante dovuto probabilmente ad un conflitto tra la temperatura dell’acqua nel jacket, bassa, e il calore sviluppato dalla reazione nel CSTR. Come evidente, le grandezze di stato tendono, comunque, già durante le oscillazioni verso il regime stazionario finale, a prova del fatto che è l’energia termica della reazione a governare maggiormente l’evoluzione del sistema, nonostante il raffreddamento del jacket, che comunque rappresenta un ‘ostacolo’ da superare negli istanti iniziali. Osservando l’andamento delle variabili di stato (Fig. successiva) nel caso di CSTR adiabatico (x che si porta con un gradino, come la temperatura, alla soluzione di regime stazionario), la presenza, invece, di un transitorio di questo tipo nel caso esaminato non può che confermare questa analisi.

Fig. 2.15 Andamento della variabile x nel caso di CSTR adiabatico.

Come già detto in precedenza, aumentando il valore del parametro Ω, il sistema passa dall’avere una soluzione stabile di punto fisso all’avere una soluzione dinamica oscillante stabile. È interessante allora vedere, con l’avvicinarsi di Ω al valore critico, come e se il transitorio o in generale la serie temporale della soluzione vari. Sono state a tal fine condotte delle simulazioni del sistema per un valore di Ω prossimo a quello critico, pari a circa 0.192, da cui si è notato che il sistema in prossimità di quel valore inizi ad assumere un transitorio anziché grossomodo crescente, come nel caso precedente, oscillante smorzato intorno al regime di punto fisso finale, quasi come se esso fosse ‘pronto’ ad accogliere quanto accade per Ω ≥ 0.192.

Fig. 2.16 Andamento della variabile di stato x nel caso di CSTR con jacket, per un valore di Ω prossimo a quello critico.

Nel passaggio, infatti, di Ω a ridosso del valore critico, quello che accade è che il tempo di smorzamento di questa soluzione oscillante inizia ad essere sempre più lungo, fino a diventare infinito.

Fig. 2.17 Andamento della variabile di stato x nel caso di CSTR con jacket, per un valore di Ω leggermente superiore di quello critico.

Superato il valore di Ω critico la soluzione di regime diventa periodica, e all’aumentare di Ω l’ampiezza dell’oscillazione del ciclo limite aumenta. Si noti infatti che all’aumentare di Ω la temperatura del jacket inizia a diventare costante (e sempre più pari a quella in ingresso al jacket) e pertanto il comportamento del sistema inizia, ovviamente, a imitare quello di un CSTR che scambia con l’aria ambiente, in quanto in entrambi i casi la temperatura della sorgente esterna è ininfluenzabile.

Fig. 2.18 Andamento delle variabili di stato x e ϑ nel caso di CSTR con jacket, per un valore di Ω molto superiore rispetto a quello critico.

Fig. 2.19 Andamento della variabile di stato ϑw nel caso di CSTR con jacket, per un valore di Ω molto superiore rispetto a quello critico.

clear all; close all; clc;

%%Time history of a CSTR in terms of conversion X, reactor temperature Theta and

%%jacket temperature Thetaw

%%

%%Parameters:

par.gamma=16; %16 Ea/RTrif

par.beta=0.81; %0.81 Crif*deltaHr/cp*Trif*Ctot

par.phi=13; %13 US/V*Ctot*cp*krif

par.omega=1; % tau/tauw

par.lambda=0.01; % V*Ctot*cp/W*rho*cw

par.Da=0.16; %0.16 tau*krif with krif=k0*exp(-gamma)

%%

%B.C.:

par.x=0;

par.theta=0;

par.thetaw=0;

%I.C.:

ic.x=0.6;

ic.theta=0;

ic.thetaw=0;

%%

%Solver tools:

par.tend=200; n=100;

%tspan=linspace(0,par.tend,n); %dimensionless time vector

tspan=[0 par.tend];

Y=[ic.x, ic.theta, ic.thetaw];

%%

%Solver:

options=odeset('RelTol',1e-6,'AbsTol',1e-12);

sol=ode45(@ODE,tspan,Y,options,par);

x=sol.y(1,:);

theta=sol.y(2,:);

thetaw=sol.y(3,:);

%%

%PLOT:

%figure(1);plot(sol.x,x);xlabel('t'); ylabel('x');

%figure(2);plot(sol.x,theta);xlabel('t'); ylabel('theta');

%figure(3);plot(sol.x,thetaw);xlabel('t'); ylabel('thetaw');

plot(sol.x,x,sol.x,theta,sol.x,thetaw); legend('x','theta','thetaw'); xlabel('time');

% %%

% %Post-processing:

% %evaluating means of outputsignals:

% ave.x=x(1,end/2:end)-mean(x(1,end/2:end));

% ave.theta=theta(1,end/2:end)-mean(theta(1,end/2:end));

% ave.thetaw=thetaw(1,end/2:end)-mean(thetaw(1,end/2:end));

%

% sol.x2=sol.x(1,end/2:end);

% plot(sol.x2,ave.x,sol.x2,ave.theta,sol.x2,ave.thetaw); legend('x','theta','thetaw'); xlabel('time');

%

% %Cheking periods of the output signals:

% % counter=0;

% % for i=1:length(ave.x)-1

% % if (ave.x(i)*ave.x(i+1)<0)

% % counter=counter+1;

% % end

% % end

% % counterx=counter; counter=0;

% %

% % for i=1:length(ave.x)-1

% % if (ave.theta(i)*ave.theta(i+1)<0)

% % counter=counter+1;

% % end

% % end

% % countertheta=counter; counter=0;

% %

% % for i=1:length(ave.x)-1

% % if (ave.thetaw(i)*ave.thetaw(i+1)<0)

% % counter=counter+1;

% % end

% % end

% % counterthetaw=counter; counter=0;

%

% %disp(counterx); disp(countertheta); disp(counterthetaw);

%

% %Finding the period:

% check=(ave.x(1:end-1)).*(ave.x(2:end));

% ind=find(check<0);

% stepsx=sol.x2(ind(:));

%

% check=(ave.theta(1:end-1)).*(ave.theta(2:end));

% ind=find(check<0);

% stepstheta=sol.x2(ind(:));

%

% check=(ave.thetaw(1:end-1)).*(ave.thetaw(2:end));

% ind=find(check<0);

% stepsthetaw=sol.x2(ind(:));

%

% period.x=round(mean(stepsx(3:end)-stepsx(1:end-2))*10)/10;

% period.theta=round(mean(stepstheta(3:end)-stepstheta(1:end-2))*10)/10;

% period.thetaw=round(mean(stepsthetaw(3:end)-stepsthetaw(1:end-2))*10)/10;

%

% %Evaluating the periods lag:

% lag.x_theta=mean(stepsx-stepstheta)/(period.x);

% lag.x_thetaw=mean(stepsx-stepsthetaw)/(period.x);

% lag.thetaw_theta=mean(stepsthetaw-stepstheta)/(period.x);

function ydot = ODE(t, Y, par)

% system dimensionless of cstr with jacket

ydot=zeros(3,1);

%disp(t/par.tend)

ydot(1,1)=(par.x-Y(1))+(1-Y(1))*par.Da*exp(par.gamma*par.beta*Y(2)/(1+par.beta*Y(2)));

ydot(2,1)=(par.theta-Y(2))+(1-Y(1))*par.Da*exp(par.gamma*par.beta*Y(2)/(1+par.beta*Y(2)))-par.Da*par.phi*(Y(2)-Y(3));

ydot(3,1)=(par.thetaw-Y(3))*par.omega+par.phi*par.Da*par.lambda*(Y(2)-Y(3));

end