Table des matières Scilab

Oxydation du dioxyde de soufre

1. Hypothèses

La réaction d'oxydation du dioxyde de soufre intervient dans la synthèse industrielle de l'acide sulfurique. Elle se déroule en phase gazeuse :

2SO2(g)+O2(g)=2SO3(g)

On suppose que la réaction s'effectue à pression constante, avec des proportions initiales stoechiométriques (2 moles de dioxyde de soufre pour 1 mole d'oxygène). En écrivant la loi d'action de masse pour des gaz parfaits, on obtient l'équation vérifiée par l'avancement (x) à l'équilibre :

x2(3-x)(1-x)3=K0(T)PP0

P0=1 bar et K0(T) est la constante d'équilibre pour la température finale du mélange.

2. Constante d'équilibre et avancement

Avec le module scilab décrit ici, on calcule l'enthalpie standard et l'entropie standard de réaction :


getf('../equilibre/thermochim.sci') 
data=readData('../equilibre/thermodata.txt');
[DH,DS]=reaction(data,'2*SO_2(g)+O_2(g)=2*SO_3(g)')
            
-197.78003 -188.05798 

La réaction est exothermique, avec une influence défavorable de l'augmentation de température. Traçons le logarithme de la constante d'équilibre en fonction de la température :

plotA=scf();
plotK(DH,DS,500,1500,100)
../../../../figures/sciphys/thermochim/oxydationSO2/plotA.svgFigure pleine page

La fonction suivante calcule l'avancement en résolvant l'équation polynomiale avec la fonction roots. On retient la racine comprise entre 0 et 1.


function y=avancement(T,P)
 x=poly(0,'x');
 p=x^2*(3-x)-constanteK(DH,DS,T)*P*(1-x)^3;
 r=roots(p);
 a=0
 for i=1:length(r),
    if imag(r(i))==0 then 
        if ((real(r(i))<1)&(real(r(i))>0)) then 
            a=r(i)
        end,
    end,
 end,
 y=a
endfunction
            

La réaction industrielle démarre à 430 degrés celcius pour finir vers 600 celcius. Calculons l'avancement à 873 K et à 1 bar:

x1=avancement(873,1)
0.7662882 

Courbe donnant l'avancement en fonction de la température (1 bar et 10 bar):

 
n=30; Tmin=500; Tmax=1500;
temp=[Tmin:(Tmax-Tmin)/(n-1):Tmax];
a1=temp;
a2=temp;
for i=1:n,
    a1(i)=avancement(temp(i),1); 
    a2(i)=avancement(temp(i),10);            
end
            
plotB=scf();
plot2d(temp,a1,style=21)
plot2d(temp,a2,style=9)
legend(['1 bar';'10 bar'])
xtitle('Avancement','T (K)','x')
../../../../figures/sciphys/thermochim/oxydationSO2/plotB.svgFigure pleine page

3. Réaction adiabatique

On suppose que la réaction est effectuée de manière isobare et adiabiatique. Soit Ti la température initiale du mélange. La variation d'enthalpie du mélange est nulle, ce qui donne l'équation :

Cp(x)(TF-Ti)+xΔrH0=0

Cp(x) désigne la capacité thermique du mélange final. La température finale TF et l'avancement x sont inconnus. Pour déterminer la solution, on trace la température finale en fonction de l'avancement puis on repère l'intersection avec la courbe d'avancement en fonction de la température.

Voici un exemple pour une température initiale de 700 K :


function T=Tfinale(Ti,x)
    T=Ti-x*DH*1e3/(51*2*(1-x)+34*(1-x)+76*2*x)
endfunction
Ti=700
n=10;
av=[0:1/(n-1):1];
Tf=av;
for i=1:n,
    Tf(i)=Tfinale(Ti,av(i));
end

            
plotC=scf();
plot2d(Tf,av,style=21)
plot2d(temp,a1)
legend(['Bilan H','Equilibre'])
xtitle('Avancement','T(K)','x')
../../../../figures/sciphys/thermochim/oxydationSO2/plotC.svgFigure pleine page

La température finale est 1100 K et l'avancement environ 0.25.

Creative Commons LicenseTextes et figures sont mis à disposition sous contrat Creative Commons.