Ceci est une ancienne révision du document !
Simultit
JBSim se contente de résoudre l'équation en fonction de [H+] (la concentration en ion hydrogène).
Pour une solution d'eau distillée on résout l'équation suivante :
[H+]=[OH-] ⇐⇒ [H+]-10E-14/[H+]=0
Si on rajoute un monoacide (HCl par exemple), il suffit de rajouter [Cl-]
[H+]=[OH-]+[Cl-] ⇐⇒ [H+]-10E-14/[H+]-Co=0
ou Co est la concentration de l'acide.
Chaque fois que l'on rajoute une espèce chimique dans la solution, on rajoute un terme a l'équation d'électroneutralité.
from scipy.optimize import fsolve #fonction pour résoudre une équation from math import log10 equation = 'x - (10 ** -14) / x' # électroneutralité def f(x): #fonction à résoudre pour trouver la concentration en ion hydrogène return eval(equation) c = input('Concentration acide fort ?') # on ajoute un acide fort de concentration c equation = equation + ' - ' + c #equation après ajout d'un acide fort print ('equation à résoudre : ' + equation) print(round(- log10(fsolve(f,0.5)),3)) #calcul du pH à partir de la concentration en ion hydogène #3 chiffres après la virgule
Electroneutralité :
'x - (10 -14) / x' Acide fort : '- C' Base forte : '+C' Acide faible/Base faible concentration AH : AH concentration en A- : A pKa : pKa '- ( AH + A ) / ( x * 10 pKa + 1) + A'
Acide faible/Base faible avec 2 pKa
AH2 AH A2 pKa1 pKa2
'- ( ( AH2 + AH + A ) * x * 10 pKa2 + 2 * ( AH2 + AH + A ) ) / (x 2 * 10 ( pKa1 + pKa2 ) + x * 10 pKa2 + 1 ) + AH + A * 2'
Acide faible/Base faible avec 2 pKa
AH3 AH2 AH A3 pKa1 pKa2 pKa3
'- ( AH3 + AH2 + AH + A3 ) / 10 pKa1 * ( x 2 + 2 * x / 10 pKa2 + 3 / 10 pKa2 / 10 pKa3 ) / ( x 3 + x 2 /10 pKa1 + x / 10 pKa1 / 10 pKa2 + 1 / 10 ** ( pKa1 + pKa2 + pKa3 ) ) + AH2 + AH * 2 + AH * 3'