Professional Documents
Culture Documents
Felix Farias
http://felixfarias.googlepages.com/
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
k
A B
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
F0
CA0
T0 FJ
TJ
V
control
control
T
F
FJ CA
TJ0 T
Reator CSTR Não-Isotérmico
Q=U A H T −T f
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
Balanços de Massa:
dV
=F 0 −F
dt
d V CA
=F 0 C A0 −F C A −V k C A
dt
Reator CSTR Não-Isotérmico
Balanços de Energia:
dV T V k C A U AH
=F 0 T 0 −F T − − T −T J
dt CP C P
dTJ F J T J0 −T J U AH
= T −T J
dt VJ J V J C J
Reator CSTR Não-Isotérmico
Equações Algébricas:
−E / RT
k= e CINÉTICA
Q=U A H T −T f TROCA TÉRMICA
Reator CSTR Não-Isotérmico
Dados:
%alimentacao
CA0=0.5;
F0=40;
T0=530;
%fluido refrigerante
TJ0=530;
Reator CSTR Não-Isotérmico
Condições iniciais:
Reator CSTR Não-Isotérmico
Condições iniciais:
Reator CSTR Não-Isotérmico
% edit
Reator CSTR Não-Isotérmico
function saida=cstr_fb
Reator CSTR Não-Isotérmico
% Condições iniciais
CA=0.245;
T=600;
TJ=594.59;
V=48;
TIME=0;
VC=V*CA;
VT=V*T;
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
% LOOP principal
while(TIME<16.1)
...
end
Reator CSTR Não-Isotérmico
% Malha aberta
FJ=49.9;
F=40;
Reator CSTR Não-Isotérmico
% Equacoes algebricas:
% Taxa de reação
K=7.08E10*exp(-30000./(1.99*T));
% Calor trocado entre reator e jaqueta
Q=150.*250.*(T-TJ);
Reator CSTR Não-Isotérmico
% Equacoes diferenciais
VDOT=F0-F; dV
=F 0 −F
dt
VCDOT=F0*CA0-F*CA-V*K*CA;
d V CA
=F 0 C A0 −F C A −V k C A
dt
Reator CSTR Não-Isotérmico
% Equacoes diferenciais
VTDOT=F0*T0-F*T+(30000.*V*K*CA-
Q)/(0.75*50.);
dV T V k C A U AH
=F 0 T 0 −F T − − T −T J
dt CP C P
TJDOT=FJ*(TJ0-TJ)/3.85+Q/240.;
dTJ F J T J0 −T J U AH
= T −T J
dt VJ J V J C J
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
% incremento do tempo
TIME=TIME+DELTA;
Reator CSTR Não-Isotérmico
% armazenando resultados:
if(TIME>=TPRINT)
% disp([TIME,CA,T,V,F,TJ,FJ]);
saida(linha,:) = [TIME CA T V F TJ FJ];
TPRINT = TPRINT + 0.5;
linha=linha+1;
end
Reator CSTR Não-Isotérmico
% fim do LOOP
end
Reator CSTR Não-Isotérmico
>> x=cstr_fb
Reator CSTR Não-Isotérmico
tamanho da matriz x
>> size(x)
ou
>> [NL,NC]=size(x)
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
Reator CSTR Não-Isotérmico
gráfico de CA:
>> CA = x(:,2);
>> plot(CA)
ou simplesmente:
>> plot(x(:,2))
Reator CSTR Não-Isotérmico
ou simplesmente:
>> plot(x(:,1),x(:,2))
Malha Aberta
% Malha aberta:
FJ=49.9;
F=40;
Controlador Proporcional
% Controlador proporcional:
KC=1.;
FJ = 49.9-KC*(537.161-T);
F = 40.-10.*(48.-V);
Controlador Proporcional
% Controlador proporcional:
KC=1.;
FJ = 49.9-KC*(537.161-T);
if (TIME>5)
FJ = 49.9-KC*(570.-T);
end
F = 40.-10.*(48.-V);
Controlador PID
% Condições iniciais
CA=0.474;
T=537.16;
TJ=536.6;
Controlador PID
Controlador PID
% Controlador PID:
% Constantes do controlador:
KP=10.; % 10
KI=0.02; %0.02
KD=0.2; %0.1
Controlador PID
SETPOINT=537.161;
if (TIME>0.5)
SETPOINT=540;
end
ERRO=SETPOINT-T;
ERRORINT=ERRORINT+ERRO;
ERRODEV=(ERRO-ERROOLD)/DELTA;
ERROOLD=ERRO;
Controlador PID
FJ = 49.9-
KP*(ERRO+KI*ERRORINT+KD*ERRODEV);
TRESET=TRESET+DELTA;
if (TRESET>1/(KI+0.00001))
ERRORINT=0;
TRESET=0;
end
Apêndice
Funções Personalizadas
Formato geral:
function [r1,r2,...]=nome_funcao(p1,p2,...)
código que usa p1, p2,...
guarda resultados nas variáveis de saída
p1 = ...
p2 = ...
...
end
Funções Personalizadas
function ans=fatorial(x)
f=1;
if (x>1)
f=x*fatorial(x-1);
end
ans=f;
end
Funções Personalizadas
Exemplo: fatorial de uma matriz
function ans=mfatorial(x)
if (min(min(x))<0)
error('A matriz nao pode conter elementos
negativos');
end
[a,b]=size(x);
f=max(x,ones(a,b));
if(sum(sum(f-1))>0)
f=f.*mfatorial(f-1);
end;
ans=f;
end
Controle de Fluxo
if (condição)
bloco de comandos
else
bloco de comandos
end
Controle de Fluxo
if (x>0)
y=1;
else
y=0;
end
Controle de Fluxo
while (condição)
bloco de comandos
end
Controle de Fluxo
t=1.1;
while (t<10)
t=t*t;
end
Controle de Fluxo
Controle de Fluxo
for t = 1:1:10
y(t)=0.2*t^2;
end
Referências
http://www.mathworks.com/access/helpdesk/h
http://www.octave.org/
http://www.math.ubc.ca/~feldman/demos/dem