Você está na página 1de 4

// ______________________

// Modelagem Reator CSTR


// ______________________
//-------------------------------------------------------------//SUMRIO
//1) Condies de Operao:
// 1.1)Parmetros do Reator
//2)Definio dos Coeficientes da Reao: aA + bB <--> cC + dD <--> eE
//3)Parmetros da Concentraes
//4)Modelagem
// 4.1)Definio das Constantes da Reao
// 4.1.1)Para o usurio que deseja inserir as constantes cinticas da reao (para a dada
temperatura de operao)
// 4.1.2)Para o usurio que deseja inserir as energias de ativao e constantes de
proporcionalidade
//5)Equacionamento do CSTR
// 5.1)Equao Principal
// 5.2)Entrada de dados relativos ao tempo
// 5.3)Equao para clculo das derivadas
//6)Plotando o grfico de tempo X concentraes
//7)Fechando
//------------------------------------------------------------//1) Condies de Operao:
// 1.1)Parmetros do Reator
txt=['Volume do Reator (L):';'Vazo da Corrente (L/s):';'Temperatura de Operao (K):']
conditions=x_mdialog(['CONDIOES DE OPERAO';'';'Defina os
parmetros:'],txt,['';'';''])
Vol=evstr(conditions(1))
F=evstr(conditions(2))
T=evstr(conditions(3))
tau = Vol/F;
//2)Definio dos Coeficientes da Reao: aA + bB <--> cC + dD <--> eE
txt=['a';'b';'c ';'d'; 'e'];
coefficient=x_mdialog(['COEFICIENTES DA REAO';'';'Reao: aA + bB <-> cC + dD
<-> eE';'';'Defina os coeficientes a serem simulados:'],txt,['';'';'';'';''])
Coefa=evstr(coefficient(1))
Coefb=evstr(coefficient(2))
Coefc=evstr(coefficient(3))
Coefd=evstr(coefficient(4))
Coefe=evstr(coefficient(5))

//3)Parmetros da Concentraes

txt=['Concentraes Iniciais no Reator (mol/m3)';'Concentraes na Corrente de Entrada


(mol/m3)']
concentrations=x_mdialog(['CONDIES DE OPERAO';''],txt,['A';'B';'C';'D';'E'],['' '' '' ''
'';'' '' '' '' ''])
C_start(1)=evstr(concentrations(1,1))
C_start(2)=evstr(concentrations(1,2))
C_start(3)=evstr(concentrations(1,3))
C_start(4)=evstr(concentrations(1,4))
C_start(5)=evstr(concentrations(1,5))
Cin(1)=evstr(concentrations(2,1))
Cin(2)=evstr(concentrations(2,2))
Cin(3)=evstr(concentrations(2,3))
Cin(4)=evstr(concentrations(2,4))
Cin(5)=evstr(concentrations(2,5))

//4)Modelagem
// 4.1)Definio das Constantes da Reao
txt=['']
dados=x_mdialog(['ENTRADA DO USURIO';'';'Qual opo de entrada de dados ser
usada?';'';'[1] Constantes Cinticas da Reao (para a temperatura desejada)';'';'[2] Energias
de ativao e Constantes de Proporcionalidade'],txt,[''])
opcao=evstr(dados(1))
R=8.314;
// 4.1.1)Para o usurio que deseja inserir as constantes cinticas da reao (para a dada
temperatura de operao)
if (opcao==1)
txt=['1a REAO - Constante Cintica da Reao DIRETA:';'
Constante
Cintica da Reao INVERSA:';'2a REAO - Constante Cintica da Reao DIRETA:';'
Constante Cintica da reao INVERSA:'];
paramcin=x_mdialog(['CONSTANTES DA REAO';'';'Defina os parmetros de
constantes cinticas (SI):'],txt,['';'';'';''])
CKd1=evstr(paramcin(1))
CKi1=evstr(paramcin(2))
CKd2=evstr(paramcin(3))
CKi2=evstr(paramcin(4))

// 4.1.2)Para o usurio que deseja inserir as energias de ativao e constantes de


proporcionalidade
else
txt=['1a REAO - Energia de Ativao:';'
Constante de Proporcionalidade para a
reao DIRETA:';'
Constante de Proporcionalidade para a reao INVERSA:';'2a
REAO - Energia de Ativao:';'
Constante de Proporcionalidade para a reao
DIRETA:';'
Constante de Proporcionalidade para a reao INVERSA:'];
paramcin=x_mdialog(['CONSTANTES DA REAO';'';'Defina os parmetros para a
determinao das constantes cinticas (SI):'],txt,['';'';'';'';'';''])
Ea1=evstr(paramcin(1))

A1d=evstr(paramcin(2))
A1i=evstr(paramcin(3))
Ea2=evstr(paramcin(4))
A2d=evstr(paramcin(5))
A2i=evstr(paramcin(6))
CKd1 = A1d*exp(-1*Ea1/(R*T));
CKi1 = A1i*exp(-1*Ea1/(R*T));
CKd2 = A2d*exp(-1*Ea2/(R*T));
CKi2 = A2i*exp(-1*Ea2/(R*T));
end
//5)Equacionamento do CSTR
// 5.1)Equao Principal
mode(-1);
function [dC]=fun(t, C)
dC(1)=(1/tau)*Cin(1) - (1/tau)*C(1) - Coefa*(CKd1*(C(1)^Coefa)*(C(2)^Coefb) CKi1*(C(3)^Coefc)*(C(4)^Coefd)); // dC/dt = 1/tau.(Cin-C) - r1
dC(2)=(1/tau)*Cin(2) - (1/tau)*C(2) - Coefb*(CKd1*(C(1)^Coefa)*(C(2)^Coefb) CKi1*(C(3)^Coefc)*(C(4)^Coefd)); // dC/dt = 1/tau.(Cin-C) - r1
dC(3)=(1/tau)*Cin(3) - (1/tau)*C(3) + Coefc*((CKd1*(C(1)^Coefa)*(C(2)^Coefb) CKi1*(C(3)^Coefc)*(C(4)^Coefd))-(CKd2*(C(3)^Coefc)*(C(4)^Coefd) CKi2*(C(5)^Coefe))); // dC/dt = 1/tau.(Cin-C) + r1 - r2
dC(4)=(1/tau)*Cin(4) - (1/tau)*C(4) + Coefd*((CKd1*(C(1)^Coefa)*(C(2)^Coefb) CKi1*(C(3)^Coefc)*(C(4)^Coefd))-(CKd2*(C(3)^Coefc)*(C(4)^Coefd) CKi2*(C(5)^Coefe))); // dC/dt = 1/tau.(Cin-C) + r1 - r2
dC(5)=(1/tau)*Cin(5) - (1/tau)*C(5) + Coefe*(CKd2*(C(3)^Coefc)*(C(4)^Coefd) CKi2*(C(5)^Coefe)); // dC/dt = 1/tau.(Cin-C) + r2
endfunction
// 5.2)Entrada de dados relativos ao tempo
C0=C_start;
txt=['Tempo Inicial';'Passo';'Tempo Final '];
tempo=x_mdialog(['FORNEA AS INFORMAES DE TEMPO';''],txt,['';'';''])
t0=evstr(tempo(1))
passo=evstr(tempo(2))
tf=evstr(tempo(3))
t=[t0:passo:tf];
tpontos=(tf-t0)/passo + 1;
// 5.3)Equao para clculo das derivadas
%ODEOPTIONS=[1,0,0,%inf,0,2,500,12,5,1,-1,-1];
C=ode(C0,t0,t,fun);
//6)Plotando o grfico de tempo X concentraes
scf(1);

subplot(221),plot2d(t,C(1,:),3,leg='CA');
xtitle("","Tempo (s)", "Concentraes (mol/m3)");
subplot(222),plot2d(t,C(2,:),4,leg='CB');
xtitle("","Tempo (s)", "Concentraes (mol/m3)");
subplot(223),plot2d(t,C(3,:),5,leg='CC');
xtitle("","Tempo (s)", "Concentraes (mol/m3)");
subplot(224),plot2d(t,C(4,:),6,leg='CD');
xtitle("","Tempo (s)", "Concentraes (mol/m3)");
subplot(225),plot2d(t,C(5,:),7,leg='CE');
xtitle("","Tempo (s)", "Concentraes (mol/m3)");
//scf(2);
//*************************Colocar esses valores em janela para o
usurio**************************
xa=1-(C(1,tpontos)/Cin(1));
mprintf(' O valor da concentrao Ca : %f\n',C(1,tpontos));
mprintf(' O valor da converso xa : %f\n\n',xa);
xb=1-(C(2,tpontos)/Cin(2));
mprintf(' O valor da concentrao Cb : %f\n',C(2,tpontos));
mprintf(' O valor da converso xb : %f\n\n',xb);
mprintf(' O valor da concentrao Cc : %f\n\n',C(3,tpontos));
mprintf(' O valor da concentrao Cd : %f\n\n',C(4,tpontos));
mprintf(' O valor da concentrao Ce : %f\n\n',C(5,tpontos));
show_window()
//7)Fechando
clear
mclose('all');