Cinetica Chimica Applicata Applicazione N. 1 (D. Dalle Nogare,
P. Canu; a.a. 2006-2007)
Slide 2
Dati del problema La produzione di P da A e B appare avvenire
secondo il meccanismo: Sono date le cinetiche k j + e k j + la
composizione in ingresso C IN [mol/L] la portata volumetrica
[L/s]
Slide 3
Richieste (i) i profili di concentrazione di tutte le specie
C(z) lungo un reattore tubolare di diametro 5 cm, levoluzione 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
Slide 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 V PFR e V CSTR 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.
Slide 5
Riassunto della teoria Reattore differenziale: Reattore CSTR
Velocit di produzione
Slide 6
Significato della formula (I) Velocit di produzione: Esempio
per C: (v C,1 =1, v C,2 =-2, v C,3 =-1) r C =R 1 -2R 2 -R 3 R 1 = k
1 + C A C B - k 1 - C C C D R 2 = k 2 + C C 2 - k 2 - C P R 3 = k 3
+ C C C A - k 3 - C R Specie con c.s.0
Slide 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
Slide 8
Significato della formula (II) Reattore differenziale: Noto
Vdot si conosce v. Noto C IN si calcola r ed quindi nota la
derivata della composizione in =0: dC/d | 0. Si pu integrare
numericamente il sistema di equazioni differenziali.
Slide 9
Applicazione numerica (II) Reattore differenziale: % nel
programma principale, si chiama lintegratore ode45 options=[];
[tau,C] = ode45(@BMidiff,[0 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
Slide 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.
Slide 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 C=
fsolve(@BMicstr,Cguess,options,CIN,thi,nu,k)
%-----------------------------------------------------------------------
% 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
Slide 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) |||| Corpo della funzione function r =
erre(C,nu,k) |||| Corpo della funzione
Slide 13
Nota Bene help Fare uso il pi possibile dellhelp 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.
Slide 14
Algoritmo Definire tutti i dati Chiamare lintegratore 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
Slide 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=..;
Slide 16
Algoritmo dettagli (2) Chiamare lintegratore 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 lintegratore di eq. differenziali ode45 (vedi reattore
differenziale) % Salvare i dati in una variabile dedicata CPFR=C;
tauPFR=tau;
Slide 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')
Slide 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)
Slide 19
Algoritmo dettagli (5) Calcolare le propriet richieste al pto 3
Massime C P S P Y PA X B % Trovare il massimo in un vettore %
Definire il vettore CP=CPFR(:,5); % SP=...; YPA=...; XB=...; %
Individuare il massimo e lindice 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
Slide 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);...
Slide 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
Slide 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