140 likes | 301 Views
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
E N D
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(…)
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.