Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Расчет кинетики химических реакций методом Эйлера



Program kin;

type arr=array[1..4] of real;

const Ca0=0.8;Cb0=0.0;Cc0=0.0;Cd0=0;

k1=0.38;k2=0.27;

tk=10.0;h=1.0;

var

c,f:arr;

t:real;

i:integer;

F1:text;

Procedure pr(c:arr;var f:arr);

begin

f[1]:=-k1*c[1];

f[2]:=k1*c[1]-k2*c[2]*c[3]*c[3];

f[3]:=2*(k1*c[1]-k2*c[2]*c[3]*c[3]);

f[4]:=k2*c[2]*c[3]*c[3];

end;

begin assign(F1,'rkin.pas');

rewrite(F1);

t:=0.0;

c[1]:=Ca0;c[2]:=Cb0;c[3]:=Cc0;c[4]:=Cd0;

writeln(F1,'Таблица 1 – Расчет кинетики гомогенной химической');

writeln(F1,' реакции ');

writeln(F1,'Время,c Ca Cb Cc Cd');

writeln(F1,t:5:0,c[1]:6:2,c[2]:6:2,c[3]:6:2,c[4]:6:2);

while t<tk do

begin

t:=t+h;

pr(c,f);

for i:=1 to 4 do

c[i]:=c[i]+h*f[i];

writeln(F1,t:5:0,c[1]:6:2,c[2]:6:2,c[3]:6:2,c[4]:6:2);

end;

close(f1);

end.

Расчет температурной зависимости скоростей химических реакций с использованием метода Эйлера

Program kinel;

type mas=array[1..2] of real;

arr=array[1..4] of real;

const Ca0=0.8;Cb0=0.0;Cc0=0.0;Cd0=0;

k1:mas=(0.38,0.27);T1=580.0;

E:mas=(75000.0,56000.0);

R=8.314; Tn=550.0;Tk=600.0;

hT=10.0;ttk=10.0;h=0.05;

var

c,f:arr;

k,k0:mas;T,tt:real;i,j,n,jn:integer;

F1:text;

Procedure pr(c:arr;k:mas;var f:arr);

begin

f[1]:=-k[1]*c[1];

f[2]:=k[1]*c[1]-k[2]*c[2]*c[3]*c[3];

f[3]:=2*(k[1]*c[1]-k[2]*c[2]*c[3]*c[3]);

f[4]:=k[2]*c[2]*c[3]*c[3];

end;

begin assign(F1,'rel.pas');

rewrite(F1);n:=Trunc(Round(ttk/h/10));

for i:=1 to 2 do

k0[i]:=k1[i]*exp(E[i]/R/T1);

T:=Tn;jn:=1;

repeat tt:=0.0;j:=0;

c[1]:=Ca0;c[2]:=Cb0;c[3]:=Cc0;c[4]:=Cd0;

for i:=1 to 2 do

k[i]:=k0[i]*exp(-E[i]/R/T);

writeln(F1,'Таблица ',jn,' – Расчет кинетики гомогенной химической');

writeln(F1,' реакции при температуре T=',T:4:0,' C');

writeln(F1,'Константы k1=',k[1]:4:2);

writeln(F1,' k2=',k[2]:4:2);

writeln(F1,'Время,c Ca Cb Cc Cd');

writeln(F1,tt:5:0,c[1]:6:2,c[2]:6:2,c[3]:6:2,c[4]:6:2);

while tt<=ttk do

begin

tt:=tt+h;j:=j+1;

pr(c,k,f);

for i:=1 to 4 do

c[i]:=c[i]+h*f[i];

if j=n then

begin

writeln(F1,tt:5:0,c[1]:6:2,c[2]:6:2,c[3]:6:2,c[4]:6:2);

j:=0;

end;

end;

writeln(F1,'Степень превращения Ха=',((Ca0-c[1])/Ca0):6:2);

writeln(F1);

T:=T+hT;jn:=jn+1;

until T>Tk;

close(f1);

end.





Дата публикования: 2015-03-26; Прочитано: 329 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...