La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Cinetica Chimica Applicata

Presentazioni simili


Presentazione sul tema: "Cinetica Chimica Applicata"— Transcript della presentazione:

1 Cinetica Chimica Applicata
Applicazione N. 1 (D. Dalle Nogare, P. Canu; a.a )

2 Dati del problema La produzione di P da A e B appare avvenire secondo il meccanismo: Sono date le cinetiche kj+ e kj+ la composizione in ingresso CIN [mol/L] la portata volumetrica [L/s]

3 Richieste (i) i profili di concentrazione di tutte le specie C(z) lungo un reattore tubolare di diametro 5 cm, l’evoluzione della concentrazione di tutte le specie C(t) in un reattore batch, la lunghezza ottimale del reattore tubolare per avere: la massima concentrazione di P in uscita, la massima selettività a P (= P prodotto sul totale dei prodotti) la massima resa in P di A (= P prodotto per reagente A consumato) la massima conversione di B

4 Richieste (ii) concentrazione di P, selettività a P, resa in P di A e conversione di B (variabili usate ai punti A..D precedenti) in uscita da un reattore CSTR di volume pari al PFR dei casi A, B, C, D precedenti e confrontare con i corrispondenti valori dati dal PFR. [facoltativo] comparare VPFR e VCSTR a cui concentrazione di P, selettività a P, resa in P di A e conversione di B (variabili usate ai punti A..D precedenti) sono massime.

5 Riassunto della teoria
Reattore differenziale: Reattore CSTR Velocità di produzione

6 Significato della formula (I)
Velocità di produzione: Esempio per C: (vC,1=1, vC,2=-2, vC,3=-1) rC=R1-2R2-R3 R1 = k1+ ·CA·CB - k1- ·CC·CD R2 = k2+ ·CC2 - k2- ·CP R3 = k3+ ·CC·CA - k3- ·CR Specie con c.s.>0 Specie con c.s.<0

7 Applicazione numerica (I)
Velocità di produzione: function r = erre(C,nu,k) [Nc,Nr] = size(nu); nur = (nu-abs(nu))/2; % coeff. stech dei reagenti nup = (nu+abs(nu))/2; % coeff. stech dei prodotti for j = 1:Nr Rd = k(j,1)*prod(C.^abs(nur(:,j))) ; % vel. di reazione diretta Ri = k(j,2)*prod(C.^nup(:,j)) ; % vel. di reazione inversa R(j) = Rd-Ri; end r = nu*R'; % velocita' di produzione delle singole specie

8 Significato della formula (II)
Reattore differenziale: Noto Vdot si conosce v. Noto CIN si calcola r ed è quindi nota la derivata della composizione in τ=0: dC/dτ|0. Si può integrare numericamente il sistema di equazioni differenziali.

9 Applicazione numerica (II)
Reattore differenziale: % nel programma principale, si chiama l’integratore “ode45” options=[]; [tau,C] = tauf],C0,options,nu,k); % % bilancio materiale DIFF function Cprimo = BMidiff(tau,C,nu,k) r = erre(C,nu,k); % velocita' di produzione delle singole specie Cprimo = r; % BMi = derivate nel tempo delle concentrazioni

10 Significato della formula (III)
Reattore CSTR: Noto Vdot si conosce θ. Il bilancio è macroscopico: si possono calcolare solo le composizioni in uscita. Poiché r=r(C), si tratta di risolvere un sistema di equazioni algebriche non lineari: richiede una risoluzione numerica.

11 Applicazione numerica (III)
Reattore CSTR: % nel programma principale, si chiama il risolutore di equazioni algebriche non lineari “fsolve” options = optimset('Display','off'); Cguess = CIN./2; % stima della possibile soluzione % % bilanci materiali CSTR function err = BMicstr(C,CIN,th,nu,k) r = erre(C,nu,k); % velocita' di produzione delle singole specie DC = C-CIN; % differenza OUT-IN err = r*th - DC; % 0 = BMi

12 Struttura di un file matlab
Gli “script” di matlab, con estensione “.m”, si strutturano in questo modo: function applicazione1 % Cinetica Chimica Applicata – Appl. 1 – Programma principale |||| Corpo del programma principale: |||| vengono eseguiti tutti i comandi in succesione |||| e tutte le chiamate alle altre funzioni. |||| Solo alla fine del programma principale si posizionano le |||| funzioni chiamate dal programma stesso function Cprimo = BMidiff(tau,C,nu,k) |||| Corpo della funzione function err = BMicstr(C,CIN,th,nu,k) function r = erre(C,nu,k)

13 Nota Bene Fare uso il più possibile dell’help di Matlab, per capire come agiscono le varie funzioni e soprattutto per controllare la sintassi dei vari comandi Mettere “;” alla fine di ogni comando per evitare che vengano stampati tutti i risultati. Eliminarlo solo quando serve monitorare un calcolo.

14 Algoritmo Definire tutti i dati Chiamare l’integratore ODE
Graficare i risultati (pto 1) Rielaborare i risultati per ottenere il pto 2 Calcolare le proprietà richieste al pto 3 Calcolare i 4 CSTR relativi al pto 4 [facoltativo] Calcolare una serie di CSTR di dimensioni crescenti, analizzare i risultati come al pto 3 e confrontare

15 Algoritmo – dettagli (1)
Definire tutti i dati function gruppo1 % Cinetica Chimica Applicata – Appl. 1 – Programma principale % Definizione dati cinetici nu=[ ]; k=[.. .. .. ..]; % Definizione dati di ingresso C0=[..; ..]; Vdot=..;

16 Algoritmo – dettagli (2)
Chiamare l’integratore ODE N.B. A priori non si conosce il tempo di permanenza totale necassario al completarsi della reazione. Si fa un primo tentativo con 60s e si aumenta o diminuisce a seconda dei risultati. In questo ci si aiuta con il grafico. % Scegliere un tempo di permanenza totale tauf=..; % Chiamare l’integratore di eq. differenziali “ode45” (vedi “reattore differenziale”) % Salvare i dati in una variabile dedicata CPFR=C; tauPFR=tau;

17 Algoritmo – dettagli (3)
Graficare i risultati (pto 1) Poichè il testo richiede i profili di concentrazione, il modo più intuitivo di darli è attraverso un grafico. Attenzione: sono richiesti i profili C(z), e non C(τ)! % Grafico profili di concentrazione nel reattore tubolare figure plot(zPFR,CPFR) xlabel(‘z [cm]’),ylabel(‘C [mol/L]’),axis tight legend('A','B','C','D','P','R',-1) title('PFR')

18 Algoritmo – dettagli (4)
Rielaborare i risultati per ottenere il pto 2 Anche in questo caso si tratta di graficare i profili di concentrazione C(t). % Grafico profili di concentrazione nel reattore Batch figure plot(t,C) xlabel(‘t [s]’),ylabel(‘C [mol/L]’),axis tight legend('A','B','C','D','P','R',-1) title(‘Batch’)

19 Algoritmo – dettagli (5)
Calcolare le proprietà richieste al pto 3 Massime CP SP YPA XB % Trovare il massimo in un vettore % Definire il vettore CP=CPFR(:,5); % SP=...; YPA=...; XB=...; % Individuare il massimo e l’indice corrispondente nel vettore % con la funzione “max” di matlab [CPmax,ICPmax]=max(CP); % Trovare il corrispondente valore in z zCPmax=z(ICPmax); % Ripetere per SP, YPA e XB, ottenendo SPmax e zSPmax, % YPAmax e zYPAmax, XBmax e zXBmax

20 Algoritmo – dettagli (6)
Calcolare i 4 CSTR relativi al pto 4 % CSTR 1: thi=tauPFR(ICPmax); % Chiama il risolutore di eq. algebriche non lineari “fsolve” (vedi reattore CSTR) % Calcola CP,SP,YPA,XB per il CSTR CP1cstr=...; SP1cstr=...; YPA1cstr=...; XB1cstr=...; % Valuta CP,SP,YPA,XB per il PFR CP1pfr=CP(ICPmax); SP1pfr=SP(ICPmax); YPA1pfr=YP(ICPmax); XB1pfr=XBP(ICPmax); % CSTR 2: thi=tauPFR(ISPmax); ...

21 Algoritmo – dettagli (7) [facoltativo]
Calcolare una serie di CSTR di dimensioni crescenti, analizzare i risultati come al pto 3 e confrontare con il PFR % Ciclo CSTR: thf=...; % Massimo tempo di permanenza. A scelta, come nel PFR dth=...; % Incremento del theta da un CSTR al successivo th=1:dth:thf; Ccstr=[]; for i=1:length(th) thi=th(i); % Chiama il risolutore di eq. algebriche non lineari “fsolve” (vedi reattore CSTR) Ccstr=[Ccstr C]; end % Analizzare i risultati come in dettagli(5) e confrontare con PFR

22 Osservazioni sulla relazione
Stendere un sintetico resoconto, senza dilungarsi nella teoria Preferire le figure alle tabelle, laddove possibile, e ridurre al minimo la quantità di figure raggruppando il più possibile i risultati Allegare il programma


Scaricare ppt "Cinetica Chimica Applicata"

Presentazioni simili


Annunci Google