Risolutore di semplici equilibri in JavaScriptSi consideri la seguente generica reazione dalla semplice stechiometria: A + B ==== C + D
Si supponga che essa si svolga in fase omogenea e che sia nota la sua Kc (costante di equilibrio). Nel recipiente di reazione siano inizialmente immesse 2 moli di A, 3 moli di B, una mole di C e zero moli di D. Mancando uno dei prodotti, è facile prevedere che il processo procederà verso la sua formazione, cioè verso destra. Lo schema stechiometrico prevederà quindi il consumo dei reattivi e la formazione dei prodotti. Trattandosi di un processo senza variazione del numero di moli, si possono utilizzare le moli al posto delle concentrazioni (i volumi, infatti, si semplificano completamente). Si ricorre al consueto schema che permette di dedurre facilmente la quantità base di sostanza "x" coinvolta nella reazione. Poi, dall'espressione della costante di equilibrio delle concentrazioni, si ottiene l'equazione la cui soluzione fornisce il valore di "x".
Gli esponenti delle singole concentrazioni sono fissati a 1 che è il valore di default. Supponiamo adesso di avere il seguente equilibrio e di porre inizialmente 2 e 3 moli dei reagenti con il prodotto C non presente (si conoscono Kc=0.25 ed il volume V=2 L) . In questo caso la somma dei coefficienti dei reagenti è diversa da quella dei prodotti per cui il volume non sarà completamente semplificabile:
Anche in questo caso gli esponenti delle singole concentrazioni sono fissati a 1 che è il valore di default. Si potrebbe decidere di "spostare" il volume nel termine destro dell'uguaglinza dividendo la Kc per il volume (il termine in questo caso diventa 0.125. Come conseguenza si avrà lo svuotamento di una casella di testo. Se un termine è mancante, come in questo caso, la casella di testo corrispondente deve essere riempita con il valore unitario "1". .
oppure può rimanere vuota se si impone un esponente nullo dal menu a discesa indicato dall'ovale rosso, ma in questo caso, durante il calcolo il valore viene imposto al valore unitario. La presenza dell'esponente nullo indica al programma di non utilizare la casella per l'elaborazione del risultato mentre il valore unitario serve per valutare il quoziente iniziale della reazione. Il problema del termine mancante si pone anche nel caso in cui, per lo stesso equilibrio studiato in precedenza, si decide di ragionare in termini di concentrazioni invece che di moli:
Si consideri adesso la reazione di formazione dell'ammoniaca ad una certa tmperatura alla quale Kc=0.022. Siano date le moli iniziali di azoto (1.2) e di idrogeno (2.2) ed il volume del reattore sia di 0.5 litri. Riferendoci alle moli, lo schema che illustra scomparsa dei reagenti con relativa formazione del prodotto è il seguente:
Questa tipologia di calcolo non può essere assegnata in un compito in classe, in quanto l'equazione che si dovrebbe risolvere risulta abbastanza complicata da eseguire a mano. Il calcolatore non ha di questi problemi. Prima di insrire i dati nel calcolatore è possibile calcolare 0.52=0.25, oppure lasciare che sia lui a sobbarcarsi il calcolo, utilizzando l'esponente come è illustrato nell'immagine seguente: Si consideri adeso la seguente reazione, con Kc=0.1 con i dati iniziali indicati. In questo caso il quoziente iniziale risulta 0.25, maggiore della Kc, e pertanto la reazione procederà verso sinistra
Il programma informa circa la direzione della reazione in base ai dati inseriti e prevede un eventuale errore da parte dell'operatore.
NOTA 1 : Come avete visto nel penultimo esempio per scrivere 2x o 3x nelle finestre di testo si dovrebbe utilizzare il segno di prodotto classico per i computer (asterisco) "*", in realtà il programma è progettato per permettere all'utente di scrivere 2x e 3x e 4x, ma durante il controllo dei dati inserisce l'asterisco. NOTA 2 : Avete certamente notato che per default tre check risultano settati. Il "CommaToDot" cambia tutte le virgole decimali in punto decimale; pertanto se nel vostro tastierino numerico compare la virgola, nessuna preoccupazione, usatela pure come se fosse un punto decimale. Il check "set fitting" velocizza il calcolo perchè lo blocca quando l'intervallo del fitting rimane costante. Il check logico individua inconvenienti riguardanti le reazioni chimiche e blocca il fitting anche se matematicamente andrebbe in porto (perlomeno lo spero se non ho commesso errori di programmazione). NOTA 3 : Per il buon funzionamento del programma in JavaScript e, per correttezza formale, siete pregati di non scrivere equazioni "a casaccio". L'algoritmo introdotto è specifico per le semplici reazioni che ci interessano. Per un risolutore più complesso rivolgetevi ad altre fonti. NO RIGHTS RESERVED by Antonino Giannetto |