MATLAB EM SIMULAÇÃO E CONTROLE DE PROCESSOS
PROFa. OFÉLIA DE Q.F. ARAÚJO [email protected]
www.eq.ufrj.br/links/h2cin/eqe487
Desafio
Desafio
Desafio
Caso I
Introdução à Engenharia Química:
rápido aprendizado na solução
de problemas introdutórios
Caso I
Caso IM o d e l a g e m & D i n â m i c a d e P r o c e s s o s
E x e m p l o 1 :M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
1
h
F E
F
A
h
F E
F
A
h
F E
F
A
C o n s i d e r a n d o c o n s t a n t e s a v a z ã o d e a l i m e n t a ç ã o F E , a
d e n s i d a d e e a t e m p e r a t u r a T , e q u e o s i s t e m a e s t á s u j e i t o à
c o n d i ç ã o i n i c i a l :
00 hth ( 1 )
Caso IM o d e l a g e m & D i n â m i c a d e P r o c e s s o s
E x e m p l o 1 :M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
1
h
F E
F
A
h
F E
F
A
h
F E
F
A
C o n s i d e r a n d o c o n s t a n t e s a v a z ã o d e a l i m e n t a ç ã o F E , a
d e n s i d a d e e a t e m p e r a t u r a T , e q u e o s i s t e m a e s t á s u j e i t o à
c o n d i ç ã o i n i c i a l :
00 hth ( 1 )
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
p o d e - s e e s c r e v e r o b a l a n ç o d e m a s s a d o s i s t e m a
1
FFdt
tdmE
dt
tdhA
dttdm
FFAdt
tdhE
1
A i n d a ,
e , p o r t a n t o ,
( 2 )
( 3 )
( 4 )
Caso IM o d e l a g e m & D i n â m i c a d e P r o c e s s o s
E x e m p l o 1 :M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
1
h
F E
F
A
h
F E
F
A
h
F E
F
A
C o n s i d e r a n d o c o n s t a n t e s a v a z ã o d e a l i m e n t a ç ã o F E , a
d e n s i d a d e e a t e m p e r a t u r a T , e q u e o s i s t e m a e s t á s u j e i t o à
c o n d i ç ã o i n i c i a l :
00 hth ( 1 )
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
F r e q ü e n t e m e n t e , c o n s i d e r a - s e a v a z ã o d e s a í d a d o t a n q u e
p r o p o r c i o n a l à a l t u r a d a c o l u n a d e l í q u i d o é i n v e r s a m e n t e
p r o p o r c i o n a l a u m a r e s i s t ê n c i a a o e s c o a m e n t o ( R ) :
1
Rh
F
Rh
FAdt
tdhE
1
L o g o ,
( 5 )
( 6 )
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
E s t e m o d e l o s i m p l e s d e u m t a n q u e d e n í v e l , s e m b a l a n ç o d e
e n e r g i a , p o s s u i u m a s o l u ç ã o a n a l í t i c a :
1
RAt
E eRFth 1
P a r a s i m u l a r e s t e m o d e l o , b a s t a e s c o l h e r o s v a l o r e s d a s
c o n s t a n t e s R , A e F E , d a s c o n d i ç õ e s i n i c i a i s h 0 e t 0 .
A s i m u l a ç ã o d a s o l u ç ã o a n a l í t i c a d o m o d e l o d o t a n q u e d e
n í v e l é m o s t r a d a a s e g u i r .
( 7 )
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
E s t e m o d e l o s i m p l e s d e u m t a n q u e d e n í v e l , s e m b a l a n ç o d e
e n e r g i a , p o s s u i u m a s o l u ç ã o a n a l í t i c a :
1
RAt
E eRFth 1
P a r a s i m u l a r e s t e m o d e l o , b a s t a e s c o l h e r o s v a l o r e s d a s
c o n s t a n t e s R , A e F E , d a s c o n d i ç õ e s i n i c i a i s h 0 e t 0 .
A s i m u l a ç ã o d a s o l u ç ã o a n a l í t i c a d o m o d e l o d o t a n q u e d e
n í v e l é m o s t r a d a a s e g u i r .
( 7 )
Caso I
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
E x e m p l o 1 :M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
1
h
F E
F
A
h
F E
F
A
h
F E
F
A
C o n s i d e r a n d o c o n s t a n t e s a v a z ã o d e a l i m e n t a ç ã o F E , a
d e n s i d a d e e a t e m p e r a t u r a T , e q u e o s i s t e m a e s t á s u j e i t o à
c o n d i ç ã o i n i c i a l :
00 hth ( 1 )
% Definição das constantes do modelo
R = 1; % h/m2
A = 2; % m2
Fe = 10; % m3/h
% Tempo de simulação
t = 0.0:0.01:10.0; % h
% Simulação da altura de líquido
h = R*Fe*(1 - exp(-t/(R*A))); % m
% Visualização da simulação
plot(t,h)
title('Simulação do tanque de nível')
xlabel('Tempo (h)')
ylabel('Altura (m)')
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
E s t e m o d e l o s i m p l e s d e u m t a n q u e d e n í v e l , s e m b a l a n ç o d e
e n e r g i a , p o s s u i u m a s o l u ç ã o a n a l í t i c a :
1
RAt
E eRFth 1
P a r a s i m u l a r e s t e m o d e l o , b a s t a e s c o l h e r o s v a l o r e s d a s
c o n s t a n t e s R , A e F E , d a s c o n d i ç õ e s i n i c i a i s h 0 e t 0 .
A s i m u l a ç ã o d a s o l u ç ã o a n a l í t i c a d o m o d e l o d o t a n q u e d e
n í v e l é m o s t r a d a a s e g u i r .
( 7 )
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
E s t e m o d e l o s i m p l e s d e u m t a n q u e d e n í v e l , s e m b a l a n ç o d e
e n e r g i a , p o s s u i u m a s o l u ç ã o a n a l í t i c a :
1
RAt
E eRFth 1
P a r a s i m u l a r e s t e m o d e l o , b a s t a e s c o l h e r o s v a l o r e s d a s
c o n s t a n t e s R , A e F E , d a s c o n d i ç õ e s i n i c i a i s h 0 e t 0 .
A s i m u l a ç ã o d a s o l u ç ã o a n a l í t i c a d o m o d e l o d o t a n q u e d e
n í v e l é m o s t r a d a a s e g u i r .
( 7 )
Caso I
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
E x e m p l o 1 :M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
1
h
F E
F
A
h
F E
F
A
h
F E
F
A
C o n s i d e r a n d o c o n s t a n t e s a v a z ã o d e a l i m e n t a ç ã o F E , a
d e n s i d a d e e a t e m p e r a t u r a T , e q u e o s i s t e m a e s t á s u j e i t o à
c o n d i ç ã o i n i c i a l :
00 hth ( 1 )
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
E s t e m o d e l o s i m p l e s d e u m t a n q u e d e n í v e l , s e m b a l a n ç o d e
e n e r g i a , p o s s u i u m a s o l u ç ã o a n a l í t i c a :
1
RAt
E eRFth 1
P a r a s i m u l a r e s t e m o d e l o , b a s t a e s c o l h e r o s v a l o r e s d a s
c o n s t a n t e s R , A e F E , d a s c o n d i ç õ e s i n i c i a i s h 0 e t 0 .
A s i m u l a ç ã o d a s o l u ç ã o a n a l í t i c a d o m o d e l o d o t a n q u e d e
n í v e l é m o s t r a d a a s e g u i r .
( 7 )
M o d e l a g e m & D i n â m i c a d e P r o c e s s o s
M o d e l o s s i m p l e s - o t a n q u e d e n í v e l
E s t e m o d e l o s i m p l e s d e u m t a n q u e d e n í v e l , s e m b a l a n ç o d e
e n e r g i a , p o s s u i u m a s o l u ç ã o a n a l í t i c a :
1
RAt
E eRFth 1
P a r a s i m u l a r e s t e m o d e l o , b a s t a e s c o l h e r o s v a l o r e s d a s
c o n s t a n t e s R , A e F E , d a s c o n d i ç õ e s i n i c i a i s h 0 e t 0 .
A s i m u l a ç ã o d a s o l u ç ã o a n a l í t i c a d o m o d e l o d o t a n q u e d e
n í v e l é m o s t r a d a a s e g u i r .
( 7 )
Caso II
Caso II
Modelagem e Dinâmica de Processos: como
rapidamente um aluno pode simular um
processo, avaliando comportamentos
dinâmicos complexos.
Caso II
Caso IIa
))()(()( tCtCFdt
dCV 2112
2
2 Tanques em série, volumes V1 e V2, vazão volumétrica F e concentração C
1)1(20
11 FCFCFC
dt
dCV
V 1
C 1
V 2
C 2
F
C 0 (t)
C 1 (t) F
C 2 (t)
F
Caso IIa
Caso IIa
Kss
K
sC
sCsG
))(()(ˆ
)(ˆ)(
12110
2Kss
K
sC
sCsG
))(()(ˆ
)(ˆ)(
12110
2
Caso IIaxsi=[0.2 0.6 0.9 1. 2]K=2;tau=10;for i=1:length(xsi) G(i)=tf([K],[tau^2 2*xsi(i)*tau 1]);endstep(G)
Caso IIb
)( FFdt
dVE
RRERER C
RT
EkVFCCF
dt
dC)exp(/)( 0,
phRrEERER CTTUAC
RT
EkHTFTF
dt
dTV /)()exp()( 0,
Caso IIbfunction [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)%% Simula um reator CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), resfriado por serpentina%% U = 150 BTU/(h.ft2.R), coeficiente de troca térmica% A = 250 ft2, área de troca térmica% DeltaH = -30000 BTU/lbm, calor de reação% ro = 50 lb/ft3, densidade% Cp = 0.75 BTU/(lbm.R), calor específico% E = 30000 BTU/lbm, energia de ativação% R = 1.99 BTU/(lbm.R), constante dos gases% k0 = 7.08e10 1/h, termo pré-exponencial da constante de reação%switch flag case 0 % Dimensiona o sistema e inicializa os estados % sys=[estados,0,saídas,entradas,0,0] sys = [3,0,3,5,0,0]; % Condições iniciais cr = 0.1315; %lbm/ft3, concentração inicial no reator T = 500; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [cr T V];
Parâmetros
Blá-blá-blá
Condições iniciais
Caso IIb case 1 % Calcula as derivadas % Atualiza entradas Cre = u(1); %lbm/ft3, concentração da alimentação Fe = u(2); %ft3/hr, vazão de alimentação F = u(3); %vazão de retirada Tc = u(4); %R, temperatura do fluido de refrigeração Te = u(5); %R, temperatura da alimentação % Cálculo das derivadas Cr = x(1); T = x(2); V = x(3); k = k0*exp(-E/(R*T)); dCr = (Fe*Cre-F*Cr)/V) - k*Cr; dV = Fe-F; dT = (Fe*Cp*ro*(Te-T) + DeltaH*k*Cr*V - U*A*(T-Tc)) /(V*ro*Cp); sys = [dCr; dT; dV];
case 3 % Calcula as saídas sys = [x(1) x(2) x(3)]; otherwise sys = [];end
)( FFdt
dVE
RRERER C
RT
EkVFCCF
dt
dC)exp(/)( 0,
phRrEERER CTTUAC
RT
EkHTFTF
dt
dTV /)()exp()( 0,
Entradas
O MODELO!!
Reator.m
Caso IIc
15
21
s
sG 1
12
s
sG
sU sY
sG1
sG2
demo
Caso IIc
15
21
s
sG
1
12
s
sG
G1=tf(2,[5 1]);G2=tf(-1,[1 1]);step(G1+G2)
Caso IId
Caso IId
“Experimento” para geracão de dados experimentais: Temperatura do Tanque 1 Temperatura do Tanquer 2
%Roda Laboratorio de EQsim('ldeq');dados=[T1 T2(:,2)];plot(T1(:,1),T1(:,2),'*b'), xlabel('Tempo'), ylabel('T1')save dados dados demo
Caso IId
demo
Caso IId%Obtenção de Funções de Transferência a partir de respostas%temporais a perturbação degrau.
%Carrega séries temporaisload dadostempo=dados(:,1);y=dados(:,2);degrau=2;
%Valor inicial para parâmetrosTau=10;Ganho=10;Tmorto=10;X0=[Tau Ganho Tmorto];
opcao=optimset('Display','iter');
Xotimo=fminsearch('fobj',X0,opcao,degrau,y,tempo)
Caso IIdfunction [f] = fobj(X,degrau,y,tempo)
Tau = abs(X(1)); Ganho = abs(X(2)); TM = abs(X(3));Tempo = max(0,(tempo-TM));ycalc = degrau*Ganho*(1-exp(-tempo/Tau));
%Somatório do quadrado dos errosf=(y-ycalc)'*(y-ycalc);
%DESENHA PARA ACOMPANHAR A OTIMIZAÇÃOplot(tempo,y,'*',tempo,ycalc,'m')
%ESCREVE NO GRÁFICO OS VALORES DOS PARÂMETROStitle(num2str(X))
%A rotina a seguir força o MATLAb a desenhar o gráfico imediatamentedrawnow
Caso IId
Caso III
Dinâmica e Controle de Processos: simular
estratégias de controle e sintonizar
controladores com MATLAB, SIMULINK e
Toolboxes de Controle e Otimização.
Caso III
Caso III
Caso IIIa
4
4
3
3
2
2
1
123
2
24 26s 9s s
11)(
Ps
R
Ps
R
Ps
R
Ps
Rss
ssX
Expansão em Frações Parciais ....
Caso IIIa
% Coeficientes de P(s) e Q(s) em ordem decrescente de potências de s
Den = [1 9 26 24 0];
Num = [1 1 1];
[R,P,K] = residue(Num,Den)
Expansão em Frações Parciais ....
4
4
3
3
2
2
1
1234
2
24s 26s 9s s
1)(
Ps
R
Ps
R
Ps
R
Ps
RsssX
Caso IIIaExpansão em Frações Parciais .... E inversão para o domínio do Tempo
0417,075,03333,2650,1)( 234 ttt eeetx4
4
3
3
2
2
1
1)(Ps
R
Ps
R
Ps
R
Ps
RsX
Caso IIIa% Simulação
Den = [1 9 26 24 0];
Num = [1 1 1];
[R,P,K] = residue(Num,Den)
Tempo=0:0.1:10;
X=zeros(size(Tempo));
for i=1:length(R)
X=X+R(i)*exp(P(i)*Tempo);
end
plot(Tempo,X)
Caso IIIa% Estabilidade
Den = [1 9 26 24 0];
Num = [1 1 1];
roots(Den)
ans =
0
-4.0000
-3.0000
-2.0000 ESTÁVEL
Caso IIIa
24 26s 9s s
11)(
23
2 ss
ssX
Caso IIIa
24 26s 9s s
123
2
ss
X(S)U(S)
s
1
Transfer Fcn
s +s+12
s +9s +26s+243 2Step Scope
demo
Caso IIIa
Transfer Fcn
s +s+12
s +9s +26s+243 2Step Scope
Caso IIIb
Estabilidade de Malha de Controle
demo
kc=[3 4 5 6 7 8];simb=['c', 'm', 'g', 'b', 'r', 'k'];Texto=[];kp=8;den=conv(conv([1 2],[1 2]),[1,2]);num=kp;Gp=tf(num,den);Gv=tf(1,1);Gm=tf(1,1);t=linspace(1,10,100);hold onfor i=1:length(kc) Gc=tf(kc(i),1); G=Gc*Gv*Gp/(1+Gc*Gv*Gp*Gm); [y,t]=step(G,t); Texto=[Texto; ['K_C = ' num2str(kc(i))]]; plot(t,y,simb(i),'LineWidth',2)endlegend(Texto)xlabel('Tempo')ylabel('Variável Controlada')
Caso IIIb
Estabilidade de Malha de Controle
)()()()(1
)()()()(
sGsGsGsG
sGsGsGsG
mpvc
pvc
Equação Característica
demo
tau = 0.5;cor=['m';'g';'k';'c';'y';'b';'r'];cor=[cor; cor; cor];xsi = 0 :0.2 :2;Raizes=[];for i=1:length(xsi) % Escreve-se a equação característica como: tau^2 + 2*xsi*tau +1 Raizes = [Raizes roots([tau^2, 2*xsi(i)*tau, 1])]; h=plot(real(Raizes(:,i)),imag(Raizes(:,i)),[cor(i,:) 's']);hold on set(h,'Markersize',10,'Markerfacecolor',cor(i,:),'Markeredgecolor','k'); legenda{i}=['xsi = ' num2str(xsi(i))];endh=legend(legenda);h=plot(real(Raizes(1,:)),imag(Raizes(1,:)));set(h,'Linestyle','-','LineWidth',2);h=plot(real(Raizes(2,:)),imag(Raizes(2,:)));set(h,'Linestyle','-','LineWidth',2);xlabel('Real');ylabel('Imaginário');grid on
)()()()(1
)()()()(
sGsGsGsG
sGsGsGsG
mpvc
pvc
xsi=[0.3 0.6 0.8 1 1.2];tau = 2;for i=1:length(xsi) den=[tau^2 2*xsi(i)*tau 1]; G(i)=tf([1],den);endbode(G(1),G(2),G(3),G(4),G(5))nyquist(G(1),G(2),G(3),G(4),G(5))
Demonstrações
demo
Demonstrações
demo
Sistemas Multicapacitivos
% Multicapacitivos
g1=tf(1,[10 1])
g2=g1*g1
g3=g1*g1*g1
g4=g1*g1*g1*g1
step(g1,g2,g3,g4)
legend({'g1'; 'g2'; 'g3'; 'g4'})
Sintonia de PID
Neste exemplo, aplica-se procedimento de sintonia baseado em otimização do critério de desempenho ISE. Utiliza-se modelo da malha feedback em ambiente SIMULINK para processo com resposta inversa descrito por:
))((
)()(
1512
31
ss
ssG
O denominador é reescrito para o formato polinomial, obtendo-se os coeficientes com a rotina de convolução (conv) do MATLAB:>> conv([2 1], [5 1])ans = 10 7 1
demo
otimiza.mwarning offglobal Kc TauI TauD% Abre o modelo do SIMULINKpid% Atribui valores iniciais aos parâmetros de sintoniaKc = 1;TauI = 1;TauD = 1;teta = [Kc; TauI; TauD];% Especifica a janela de otimização (tempo de simulação)tfinal=100;% Configura parâmetros do otimizador e chama otimizadoroptions=optimset('MaxFunEvals',200,'Display','iter');[tetaotim] = fminsearch('fob', teta, options, tfinal)
fob.mfunction f = fob(teta, tfinal)global Kc TauI TauD% Recebe o novo conjunto de parametrosKc = abs(teta(1));TauI = abs(teta(2));TauD = abs(teta(3));% Simula com os novos parametros[t,x,y] = sim('pid',tfinal);% Processa os resultados do após a simulação:% Integração empregando área de retânguloSE = y.*y;ISE = sum(SE(1:end-1).*(t(2:end)-t(1:end-1)));f=ISE;
demo
Parâmetros Valor Inicial Valor OtimizadoKc -1,0 -11,2I 1,0 8,1D 1,0 2,5
Demonstrações – Controle Cascata
demo
Top Related