«Matlab» бағдарламасында эйлер және рунге-кутта әдістерімен сандық шешімдер
Бірінші, шешімін алайық. Оның шешімін массасын, молярлық массасын, концентрацияларын тауып алып барып, ала аламыз. Ал, оны біз қалай алу керектігін, қандай формуланы пайдаланатынымызды негізгі алыну жолында айтып өткен болатынбыз. Сол бойынша біз «Matlab» программалау тіліне салып, есеп жүргіздік. Және графигін алдық. Ендеше кодын жазып, графигін салатын болсақ. Мынандай нәтижені алдық:
clear
clc
dt=0.1;
k=0.8;
for i = 1 : 100
C1(i) = 0;
C2(i) = 0;
C3(i) = 0;
end
C1(1) = 0.282;
C2(1) = 0;
C3(1) = 0;
for i = 1 : 99
C1(i+1) = C1(i) - 2.*k*dt*C1(i)
C2(i+1) = C2(i) + 2.*k*dt*C1(i)
C3(i+1) = C3(i) + 2.*k*dt*C1(i)
end
plot(1:100, C1, '-b', 'LineWidth', 4)
hold on
plot(1:100, C2, 'r-', 'LineWidth', 4)
hold on
plot(1:100, C3, 'k-', 'LineWidth', 4)
hold on
uakit=dt.*(1:100);
fig=figure();
set(gca,'FontSize', 18)
set(fig, 'color', 'white')
plot(uakit, C1, 'b-', 'LineWidth', 4)
xlabel('uakit [sec]')
ylabel('consentratcia) [mole/cm^3]')
title('jai himialik reakcia')
grid on
hold on
plot(uakit, C2, 'r-', 'LineWidth', 4)
Сурет 1. Эйлер әдісі бойынша жай химиялық реакцияның графигі
Өнеркәсіпте сутегі пероксиді бастапқыда күкірт қышқылының электролизімен немесе күкірт қышқылында аммоний сульфатының ерітіндісін алды. Бұл процестің нәтижесінде гидролизі пероксидтің және күкірт қышқылының пайда болуына әкеп соқтырады:
(4)
Кейіннен "антрахинон процесі" деп аталатын әзірленген; бұл процесте формальды түрде алкил туынды антрахинон катализімен ауа оттегімен сутегінің тотығуы жүреді.
Сурет 3. Антрахинон процесі
2-этилантрахинонды эфир және көмірсутек (немесе спирт және көмірсутек) қоспаларына ерітеді және катализаторда (никель Реней немесе Палладий) сутегімен қалпына келтіреді. Нәтижесінде хинол пайда болады, азық-түлік қоспасындағы сутегі пероксидінің жаппай құрамы шамамен 1% - ға жетеді. Процесс аяқталғаннан кейін катализаторды бөледі, өнімдерді бөледі. Хинол 2-этилантрахининге дейін қайта тотықтырады, ал төмен қысым кезінде айдауды шоғырландырады.
Сутегі пероксиді де изопропил спиртінің каталитикалық тотығымен алынуы мүмкін:
(5)
Зертханада сутегі пероксидін алу үшін барий пероксидінің тұз қышқылымен өзара әрекеттесу реакциясын пайдаланады:
(6)
Түзілетін барий хлориді сульфат түрінде тұндырады:
(7)
Әр түрлі көздерде зертханада сутегі пероксидін алу барий пероксидін күкірт қышқылымен өңдеу жолымен жүргізілетіні туралы ақпаратты табуға болады:
(8)
Екінші, сутегі асқын тотығының күрделі алыну жолдарына жататын Күкірт қышқылын гидролиздеу.
(9)
Оның математикалық моделі келесі түрде болады:
clear
clc
dt=0.03;
k=20;
x = 1:100;
c11=1:100;
c22=1:100;
c33=1:100;
c44=1:100;
for i=1:100
c11(i)=0.0;
c22(i)=0.0;
c33(i)=0.0;
c44(i)=0.0;
end
c11(1)=0.072;
c22(1)=0.477;
c33(1)=0.0;
c44(i)=0.0;
for i=1:99
a0=-k.*dt.*c11(i)*c22(i)*c22(i);
b0=-2.*k.*dt.*c11(i)*c22(i)*c22(i);
c0=k.*dt.*c11(i)*c22(i)*c22(i);
d0=2.*k.*dt.*c11(i)*c22(i)*c22(i);
a1=-k.*(c11(i)+(dt.*a0)./2)*((c22(i)^2)+(dt.*b0)./2);
b1=-2.*k.*(c11(i)+(dt.*a0)./2)*((c22(i)^2)+(dt.*b0)./2);
c1=k.*(c11(i)+(dt.*a0)./2)*((c22(i)^2)+(dt.*b0)./2);
d1=2.*k.*(c11(i)+(dt.*a0)./2)*((c22(i)^2)+(dt.*b0)./2);
a2=-k.*(c11(i)+(dt.*a1)./2)*((c22(i)^2)+(dt.*b1)./2);
b2=-2.*k.*(c11(i)+(dt.*a1)./2)*((c22(i)^2)+(dt.*b1)./2);
c2=k.*(c11(i)+(dt.*a1)./2)*((c22(i)^2)+(dt.*b1)./2);
d2=2.*k.*(c11(i)+(dt.*a1)./2)*((c22(i)^2)+(dt.*b1)./2);
a3=-k.*(c11(i)+(dt.*a2)./2)*((c22(i)^2)+(dt.*b2)./2);
b3=-2.*k.*(c11(i)+(dt.*a2)./2)*((c22(i)^2)+(dt.*b2)./2);
c3=k.*(c11(i)+(dt.*a2)./2)*((c22(i)^2)+(dt.*b2)./2);
d3=2.*k.*(c11(i)+(dt.*a2)./2)*((c22(i)^2)+(dt.*b2)./2);
c11(i+1)=c11(i)+(dt./6).*(a0+2.*a1+2.*a2+a3);
c22(i+1)=c22(i)+(dt./6).*(b0+2.*b1+2.*b2+b3);
c33(i+1)=c33(i)+(dt./6).*(c0+2.*c1+2.*c2+c3);
c44(i+1)=c44(i)+(dt./6).*(d0+2.*d1+2.*d2+d3);
end
fig=figure();
set(gca,'FontSize',18)
set(fig,'color','white')
xlabel('uakit')
ylabel('Concentration')
title('Zhai himialyk reakcya.Runge-Kutta')
grid on
hold on
plot(x,c11,'b-','LineWidth',3)
hold on
plot(x,c22,'r--','LineWidth',3)
hold on
plot(x,c33,'k-','LineWidth',3)
hold on
plot(x,c44,'g-','LineWidth',3)
legend('H2S2O8', 'H2O', 'H2O2','H2SO4')
c1=1:100;
c2=1:100;
c3=1:100;
c4=1:100;
for i=1:100
c1(i)=0.0;
c2(i)=0.0;
c3(i)=0.0;
c4(i)=0.0;
end
c1(1)=0.072;
c2(1)=0.477;
c3(1)=0.0;
c4(1)=0.0;
for i=1:99
c1(i+1)=-k.*dt.*c1(i)*c2(i)*c2(i)+c1(i);
c2(i+1)=-2.*k.*dt.*c1(i)*c2(i)*c2(i)+c2(i);
c3(i+1)=k.*dt.*c1(i)*c2(i)*c2(i)+c3(i);
c4(i+1)=2.*k.*dt.*c1(i)*c2(i)*c2(i)+c4(i);
end
fig=figure();
set(gca,'FontSize',18)
set(fig,'color','white ')
xlabel('uakit')
ylabel('Concentration')
title('Zhai himialyk reakcya. Euler')
grid on
hold on
plot(x,c1,'b-','LineWidth',3)
hold on
plot(x,c2,'r--','LineWidth',3)
hold on
plot(x,c3,'k-','LineWidth',3)
hold on
plot(x,c4,'g-','LineWidth',3)
legend('H2S2O8', 'H2O', 'H2O2','H2SO4')
fig3 = figure();
raznost1 = 1:100;
raznost2 = 1:100;
raznost3 = 1:100;
raznost4 = 1:100;
for i= 1:100
raznost1(i) = abs(c11(i)-c1(i));
raznost2(i) = abs(c22(i)-c2(i));
raznost3(i) = abs(c33(i)-c3(i));
raznost4(i) = abs(c44(i)-c4(i));
end
plot(x,raznost1, 'k*', 'LineWidth', 5)
hold on
plot(x,raznost2, 'r--', 'LineWidth', 5)
hold on
plot(x,raznost3, 'b:', 'LineWidth', 5)
hold on
plot(x,raznost4, 'g-', 'LineWidth', 5)
hold on
legend('H2S2O8', 'H2O', 'H2O2','H2SO4')
Достарыңызбен бөлісу: |