Cinetica Chimica Applicata Applicazione N. 3
Applicazione numerica Utilizzando i dati ottenuti da tutti i gruppi nell’applicazione 2, studiare la cinetica della reazione fra etilacetato e soda per produrre alcol etilico e acetato di sodio, in acqua : EtAc + NaOH = EtOH + NaAc in reattori batch e CSTR.
Teoria Per i richiami di teoria, si veda la presentazione n° 1 In aggiunta si ricorda che la costante cinetica dipende dalla temperatura con una legge di tipo Arrhenius, ovvero:
Prime ipotesi sulla forma della cinetica EtAc + NaOH = EtOH + NaAc A + B = C + D Hyp.1: reazione elementare irreversibile Hyp.2: reazione irreversibile con ordini di reazione
L’idea CINETICA CONDIZIONI INIZIALI (in entrata) PROFILI DI CONC. (valori in uscita)
Batch I profili di concentrazione si calcolano integrando, date delle opportune condizioni inziali (C0): Variando la cinetica, cioè la k (hyp 1) oppure k, a, b (hyp 2), otteniamo diversi profili. Minimizziamo gli errori rispetto ai valori misurati, variando i parametri.
L’algoritmo di minimizzazione Fminsearch (non è l’unico) Find minimum of unconstrained multivariable function using derivative-free method k = fminsearch(@err,k0,options,a,b,c,..) Valori da passare Funzione che calcola l’errore Vettore di valori iniziali del parametro Opzioni dell’algoritmo di minimizzazione
Struttura Per ogni prova ho Cexp(t) e T. %-------------------------------- load Cexp,T,C0.. %---------------------------- for i=1:nprove k(i)=fminsearch(@err,k0,[],Cexp,C0,..) end %-------------------------- function f=err(k,Cexp,C0,..) [tau,Ccalc] = ode45(@BMidiff,[0 tauf],C0,options,..); f=norm(Ccalc-Cexp) %----------------------------- function dcdt=BMidiff(..) r=prodi(..).*nu dcdt=r function R=prodi(…)
err=norm(C(t)-Cexp(t)) Struttura k primo tentativo minimizzatore parametri condizioni iniziali condizioni operative ODE:Ccalc(t) err=norm(C(t)-Cexp(t)) err<tol? NO, cambio k Sì
Quindi.. Per ogni prova si ottiene un punto
Inoltre.. Fminsearch può minimizzare l’errore anche rispetto ad un vettore di parametri Es: par=[k a b] Odexx può risolvere anche n equazioni differenziali contemporanemante Fminsearch può minimizzare una matrice di errori.
Ottimizzazione globale Risolve contemporaneamente tutti i bilanci in tutte le condizioni operative, (C0 non è più uno scalare ma un vettore). Si possono stimare direttamente A ed E, i parametri su cui effettuare la minimizzazione degli errori sono: Par= [A E a b] La velocità di reazione dev’essere definita attraverso la definizione di k, ovvero Occorre passare la temperatura di ogni prova
E il CSTR? Dal CSTR otteniamo punti, non profili. Sempre fminsearch, perché dobbiamo minimizzare l’errore tra punti calcolati e punti sperimentali Ovviamente cambia la funzione che calcola i punti teorici Ricordo che: Batchodexx (eqz. Differenziale) CSTRfsolve (eqz. Algebrica)
Commenti Valutare l’errore sperimentale e l’errore fitting-esperimenti. Considerare criticamente le prove, anche in vista del confronto incrociato batch-CSTR.