Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre
description
Transcript of Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre
![Page 1: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/1.jpg)
MA
TL
AB
Bás
ico
Carlos André Vaz Junior
http://www.eq.ufrj.br/links/h2cin/carlosandre
![Page 2: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/2.jpg)
MA
TL
AB
Bás
ico
Mais de 1 milhão de resultados
![Page 3: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/3.jpg)
MA
TL
AB
Bás
ico
?
http://newsreader.mathworks.com
![Page 4: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/4.jpg)
MA
TL
AB
Bás
ico
![Page 5: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/5.jpg)
MA
TL
AB
Bás
ico
![Page 6: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/6.jpg)
MA
TL
AB
Bás
ico
![Page 7: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/7.jpg)
MA
TL
AB
Bás
ico
![Page 8: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/8.jpg)
MA
TL
AB
Bás
ico
Agora a = 2, faço tudo de novo?!
![Page 9: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/9.jpg)
MA
TL
AB
Bás
ico
![Page 10: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/10.jpg)
MA
TL
AB
Bás
ico
![Page 11: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/11.jpg)
MA
TL
AB
Bás
ico
![Page 12: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/12.jpg)
MA
TL
AB
Bás
ico
Char ArrayMatriz
Tipos Básicos
Case Sensitive!
Estrutura
CaSe SeNsItIvE!
![Page 13: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/13.jpg)
MA
TL
AB
Bás
ico
Criando uma matriz:
![Page 14: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/14.jpg)
MA
TL
AB
Bás
ico
Criando um “char array”:
![Page 15: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/15.jpg)
MA
TL
AB
Bás
ico
Estrutura:
turma.alunos.nomes=strvcat( 'carla',’joao','bruno', ... 'luis', 'marcela‘ );turma.professor.nome=(‘Marcelo‘)turma.horario=1300turma.sala=221
Banco de Dados da “Turma”: Alunos: Carla, João, Bruno, Luis, Marcela Professor: Marcelo Horário: 13h Sala: 221
![Page 16: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/16.jpg)
MA
TL
AB
Bás
ico
Comando “who” e “whos”
![Page 17: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/17.jpg)
MA
TL
AB
Bás
ico
Use A=0:0.5:10 para gerar matrizes com dados em seqüência.
Use “;” para evitar que o resultado apareça na tela.
Dicas!
Use “clear A” para apagar a variável A.
Use “size(A) ” para identificar as dimensões da matriz. A maior dimensão é dada pelo comando “length(A) ”
Use “clear all” para apagar todas as variáveis armazenadas.
![Page 18: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/18.jpg)
MA
TL
AB
Bás
ico
i) Soma e subtração: soma (ou subtrai) elemento por elemento da matriz. A+B A-B ii) Multiplicação e Divisão de matrizes: atenção às regras da álgebra, pois as dimensões das matrizes têm que ser coerentes! A * B A / B iii) Multiplicação e divisão elemento por elemento:A .* BA ./ B
![Page 19: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/19.jpg)
MA
TL
AB
Bás
ico
iv) Matriz Transposta:A’ v) Cria Matriz Identidade:eye(número de linhas, número de colunas) vi) Cria Matriz Zeros:zeros(número de linhas, número de colunas)
vii) Cria Matriz Uns:ones(número de linhas, número de colunas) viii) Cria Matriz Randômica (composta de números aleatórios):rand(número de linhas, número de colunas)
![Page 20: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/20.jpg)
MA
TL
AB
Bás
ico
ix) Determinante:det(matriz) x) Inversa:inv(matriz) xi) Dimensões da matriz:size(matriz)lenght(matriz)numel(matriz)
Veja também: flipud e fliplr
![Page 21: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/21.jpg)
MA
TL
AB
Bás
ico
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Elemento = Matriz(2,3) ou Matriz(10)
![Page 22: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/22.jpg)
MA
TL
AB
Bás
ico
![Page 23: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/23.jpg)
MA
TL
AB
Bás
ico
A=1B=2global CC=100
Função Alfa
E=15F=55C=23
Função Beta
Programa Principal / Workspace
global CC=100D=22
![Page 24: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/24.jpg)
MA
TL
AB
Bás
ico
x=[1 2 3 4 5 6; 2 1 3 3 2 1];
%Forma linear: xmin=min(x); xmin=min(xmin); [i,j]=find(x==xmin);
Achando a posição do menor valor de uma matriz:
%Forma condensada: [i,j]=find(x==(min(min(x))));
![Page 25: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/25.jpg)
MA
TL
AB
Bás
ico
X = fzero('sin',2)
Achando o menor valor de uma função:
função estimativa inicial
Veja também: fsolve e fmin
![Page 26: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/26.jpg)
MA
TL
AB
Bás
ico
if:
![Page 27: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/27.jpg)
MA
TL
AB
Bás
ico
AND OR
![Page 28: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/28.jpg)
MA
TL
AB
Bás
ico
Falso Verdadeiro
AND
a b resultado
1 1 1
0 1 0
1 0 0
0 0 0
OR
a b resultado
1 1 1
0 1 1
1 0 1
0 0 0
![Page 29: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/29.jpg)
MA
TL
AB
Bás
ico
Case: switch I case 1, disp('I vale 1') case 2, disp('I vale 2') otherwise disp('I nao eh nem 1 nem 2') end
![Page 30: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/30.jpg)
MA
TL
AB
Bás
ico
While: while I < 10, disp(‘oi’); I=I+1; end
Manipule o ponteiro I na rotina executadapelo “while”
![Page 31: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/31.jpg)
MA
TL
AB
Bás
ico
For: for J = 1:100, A(1,J) = 1/(I+J-1); end
Incremento automático do ponteiro J a cada loop
![Page 32: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/32.jpg)
MA
TL
AB
Bás
ico
>> figure(1)
>> t=0:0.01:10;>> y=sin(t);>> plot(t,y)
>> figure(2)
>> z=cos(t);>> plot(t,z)
![Page 33: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/33.jpg)
MA
TL
AB
Bás
ico
Use “close all” para fechar todas as figuras
Dica!
Use “clf” para apagar a figura atual
Use “[x,y]=ginput(2)” para capturar dois pontos no gráfico
![Page 34: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/34.jpg)
MA
TL
AB
Bás
ico
>> figure(3)
>> subplot(1,2,1)
>> plot(t,y)
>> subplot(1,2,2)>> plot(t,z)
![Page 35: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/35.jpg)
MA
TL
AB
Bás
ico
>> t=0:0.25:10;>> y=sin(t);>> plot(t,y,'r+')>> xlabel('tempo')>> ylabel('seno')>> title('Seno vs. Tempo')>> Axis([0 10 -2 2])
![Page 36: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/36.jpg)
MA
TL
AB
Bás
ico
>> t=0:0.01:10;>> y=sin(t);>> z=cos(t);>> plot(t,y,'g-',t,z,'r-')>> legend('seno','cosseno')
Ou...
>> t=0:0.01:10;>> y=sin(t);>> z=cos(t);>> plot(t,y,'g-‘)>> hold on>> plot(t,z,'r-')>> legend('seno','cosseno')
![Page 37: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/37.jpg)
MA
TL
AB
Bás
ico
![Page 38: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/38.jpg)
MA
TL
AB
Bás
ico
xx=0:0.01:1;yy=0:0.01:1;[X,Y]=meshgrid(xx,yy);
Z=exp(-0.5*(X.^2+Y.^2));
colormap jetfigure(1);surf(X,Y,Z); rotate3d on; shading interp;
![Page 39: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/39.jpg)
MA
TL
AB
Bás
ico
![Page 40: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/40.jpg)
MA
TL
AB
Bás
ico
![Page 41: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/41.jpg)
MA
TL
AB
Bás
ico
%Malha triangular da base %malha da base xx=0:0.01:1; yy=0:0.01:1; [X,Y]=meshgrid(xx,yy); Z=1-X-Y; %aplica a restrição para usar só a base do triangulo %onde existe consistência física (o que nao tem vira "Not a Number") iz=find(Z<0);Z(iz)=nan;
![Page 42: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/42.jpg)
MA
TL
AB
Bás
ico
%Malha triangular da base %malha da base xx=0:0.01:1; yy=0:0.01:1; [X,Y]=meshgrid(xx,yy); Z=1-X-Y; %aplica a restrição para usar só a base do triangulo %onde existe consistência física (o que não tem vira "Not a Number") iz=find(Z<0);Z(iz)=nan;
Composição(3 componentes)
![Page 43: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/43.jpg)
MA
TL
AB
Bás
ico
%Malha triangular da base %malha da base xx=0:0.01:1; yy=0:0.01:1; [X,Y]=meshgrid(xx,yy); Z=1-X-Y; %aplica a restrição para usar só a base do triangulo %onde existe consistência física (o que não tem vira "Not a Number") iz=find(Z<0);Z(iz)=nan;
Alguns Z sãonegativos! Não pode!
![Page 44: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/44.jpg)
MA
TL
AB
Bás
ico
vv1=(X.*log(X))+(Y.*log(Y))+(Z.*log(Z));
%gráfico da superfíciecolormap jetfigure(1);surf(X,Y,vv1); rotate3d on; shading interp;xlabel('X1');ylabel('X2');zlabel('DeltaGi/RT');
![Page 45: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/45.jpg)
MA
TL
AB
Bás
ico
![Page 46: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/46.jpg)
MA
TL
AB
Bás
ico
Exemplos
![Page 47: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/47.jpg)
MA
TL
AB
Bás
ico
Exemplo1
![Page 48: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/48.jpg)
MA
TL
AB
Bás
ico
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 )
![Page 49: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/49.jpg)
MA
TL
AB
Bás
ico
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 )
![Page 50: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/50.jpg)
MA
TL
AB
Bás
ico
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 )
![Page 51: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/51.jpg)
MA
TL
AB
Bás
ico
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
RA
t
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 )
![Page 52: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/52.jpg)
MA
TL
AB
Bás
ico
% 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)');
![Page 53: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/53.jpg)
MA
TL
AB
Bás
ico
Verifique a consistência do calculo: a matriz “h” gerada também deve ser 1x1000, já que cada instante “t” gerou um valor “h”.
É sempre útil conferir a dimensão das variáveis, principalmente a medida que as
rotinas forem tornando-se complexas.
Dica!
![Page 54: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/54.jpg)
MA
TL
AB
Bás
ico
Exemplo2
![Page 55: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/55.jpg)
MA
TL
AB
Bás
ico
Muitas vezes é muito trabalhoso, ou mesmo impossível, encontrar a solução analítica para o conjunto de equações diferenciais. Nesse caso
temos que simular usando solução numérica das equações diferenciais. Vamos assumir que o
modelo do exemplo 1 não tivesse solução analítica, e então usar o Matlab para estudar o
comportamento da altura do nível com o tempo. A equação diferencial será:
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 )
![Page 56: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/56.jpg)
MA
TL
AB
Bás
ico
% Definição das constantes do modeloR = 1; % h/m2A = 2; % m2Fe = 10; % m3/h% Tempo de simulaçãot = 0.0 : 0.01 : 10.0; % h% Simulação da altura de líquido[t,h] = ode45('dhdt',t, 0,[],[R A Fe]);% Visualização da simulaçãoplot(t,h);title('Simulação do tanque de nível');xlabel('Tempo (h)');ylabel('Altura (m)');
function dh = dhdt(t,h,flag,par)R = par(1);A = par(2);Fe = par(3);dh = (Fe-(h/R))/A;
![Page 57: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/57.jpg)
MA
TL
AB
Bás
ico
Nesse caso temos uma equação diferencial, então deveremos usar uma função Matlab específica para a
resolução de eq. diferenciais. No caso temos a ODE45. A função ODE45 implementa um esquema de solução de
sistemas de EDO’s por método de Runge-Kutta de ordem média (consulte o help sobre ODE45 para
maiores detalhes).
[t,h] = ode45('dhdt',t, 0,[],[R A Fe]);
![Page 58: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/58.jpg)
MA
TL
AB
Bás
ico
Os parâmetros enviados entre parênteses são aqueles que devemos passar para a ODE45:
-1º argumento de ode45 é uma string contendo o nome do
arquivo .m com as equações diferenciais. Neste caso, o arquivo chama-se dhdt.m.
-2º argumento é um vetor que pode conter (i) dois elementos:
os tempos inicial e final da integração, ou (ii) todos os valores de tempo para os quais deseja-se conhecer o valor da variável
integrada.
-3º argumento é o vetor contendo as condições iniciais das variáveis dependentes das EDO’s. Os valores dos elementos do vetor de condições iniciais precisam estar na mesma ordem em
que as variáveis correspondentes são calculadas na função passada como 1º argumento para ode45 (neste caso, dhdt.m). Nesse caso em particular só temos uma variável dependente,
assim temos uma única condição inicial.
![Page 59: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/59.jpg)
MA
TL
AB
Bás
ico
-4º argumento é o vetor de opções de ode45. Há várias opções do método que podem ser ajustadas. Entretanto, não deseja-se alterar os valores-padrão. Neste caso, é passado um vetor vazio, apenas para marcar o lugar das opções.
-5º argumento é um vetor contendo parâmetros de entrada para a função dhdt.m. Observe que a função .m deve ler
esses parâmetros na ordem correta (recebe como variável local “par”).
Os resultados da simulação são obtidos nos dois parâmetros entre colchetes (t , h).
![Page 60: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/60.jpg)
MA
TL
AB
Bás
ico
A codificação do arquivo .m segue o mesmo formato já explicado para funções porém com algumas particularidades.
No caso específico de um arquivo .m que deve ser chamado por uma função de solução EDO’s (todas as ODExx), a declaração
deste arquivo deve seguir a sintaxe:
function dy = nomefun(t, y, flag, arg1, ..., argN)
onde •dy é o valor da(s) derivada(s) retornadas•t e y são as variáveis independente e dependente, respectivamente.•Opcional: caso deseje-se receber outros parâmetros, a função deve receber um argumento marcador de lugar chamado flag. Após este, ela recebe quaisquer outros parâmetros.
![Page 61: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/61.jpg)
MA
TL
AB
Bás
ico
Exemplo3
![Page 62: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/62.jpg)
MA
TL
AB
Bás
ico
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 3 T a n q u e d e a q u e c i m e n t o
1
h
F E , T E
F , T
A
T h
T h
h
F E , T E
F , T
A
T h
T h
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
t e m p e r a t u r a T h , o c o e fi c i e n t e g l o b a l d e t r a n s f e r ê n c i a d e c a l o r U e
a s p r o p r i e d a d e s d o fl u i d o e C p e q u e o s i s t e m a e s t á s u j e i t o à s
c o n d i ç õ e s i n i c i a i s :
00 hth 00 TtT
![Page 63: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/63.jpg)
MA
TL
AB
Bás
ico
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 - t a n q u e d e a q u e c i m e n t o
C o m o n o c a s o a n t e r i o r , o b a l a n ç o d e m a s s a p o d e s e r e s c r i t o
c o m o :
1
Rh
FAdt
tdhE
1( 6 )
O b a l a n ç o d e e n e r g i a é e s c r i t o c o m o :
QFHHFdtVTd
C EEp ( 8 )
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 - t a n q u e d e a q u e c i m e n t o
1
dtdh
Tdt
dThA
dtdV
Tdt
dTV
dtVTd
( 9 )
QFHHFRh
FA
Tdt
dThAC EEEp
( 1 0 )
p
E
p
hEE
CU
AF
TC
UTA
TFhdt
dT
1( 1 1 )
![Page 64: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/64.jpg)
MA
TL
AB
Bás
ico
Matlab Real
dy(1) dh/dt
y(1) h
dy(2) dT/dt
y(2) T
Traduzindo as equações diferenciais para o Matlab:
![Page 65: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/65.jpg)
MA
TL
AB
Bás
ico
% Definição das constantes do modeloR = 1; % h/m2A = 2; % m2Fe = 10; % m3/hCp = 0.75; % kJ/(kg . K)Ro = 1000; % kg/m3U = 150; % kJ/(m2 . s . K)Te = 530; % K Th = 540; % K % Tempo de simulaçãot = 0.0 : 0.01 : 10.0; % h % Simulação do modelo[t,y]=ode45('dydt',t,[(5/A) Th],[],[U A Ro Cp Fe R Te Th]);
![Page 66: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/66.jpg)
MA
TL
AB
Bás
ico
% Visualização da simulaçãofigure(1);plot(t,y(:,1)); title('Tanque de aquecimento');xlabel('Tempo (h)'); ylabel('Altura (m)');figure(2);plot(t,y(:,2)); title('Tanque de aquecimento');xlabel('Tempo (h)'); ylabel('Temperatura (K)');
![Page 67: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/67.jpg)
MA
TL
AB
Bás
ico
A única modificação em relação ao exemplo anterior é que estamos passando duas condições iniciais (pois
existem duas variáveis dependentes):
[t,y]=ode45('dydt',t,[(5/A) Th],[],[U A Ro Cp Fe R Te Th]);
![Page 68: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/68.jpg)
MA
TL
AB
Bás
ico
A função .m tem o código apresentado a seguir:
function dy = dydt(t,y,flag,par);U = par(1);A = par(2);Ro = par(3);Cp = par(4);Fe = par(5);R = par(6);Te = par(7);Th = par(8);dy(1) = (Fe-(y(1)/R))/A;dy(2) = (1/y(1))* ( ((Fe*Te/A)+(U*Th/(Ro*Cp)))... - ( y(2)*((Fe/A)+(U/(Ro*Cp)))) );dy = dy(:);
![Page 69: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/69.jpg)
MA
TL
AB
Bás
ico
O vetor dy é criado como vetor linha (dy(1)) e (dy(2)). Porém temos que retornar como vetor coluna.
Use o comando:matriz coluna = matriz linha (:)
Dica!
![Page 70: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/70.jpg)
MA
TL
AB
Bás
ico
figure(1);plot(t,y(:,1));title('Tanque de aquecimento');xlabel('Tempo (h)'); ylabel('Altura (m)');
Quando for fazer os gráficos no programa principal lembre-se que a primeira coluna de “dy”
refere-se a “h” e a segunda a “T”. Então para graficar h vs. tempo faça:
Dica!
![Page 71: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/71.jpg)
MA
TL
AB
Bás
ico
Exemplo4
![Page 72: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/72.jpg)
MA
TL
AB
Bás
ico
Na compra de uma calculadora gráfica, a loja ofereceu duas propostas de financiamento – proposta A e B. A proposta A é composta por 7 parcelas mensais iguais de 114 reais cada. Já a proposta B prevê 10 parcelas mensais iguais de 98 reais cada. Qual é a melhor opção de compra considerando a taxa de juros oferecida em investimentos denominados “renda fixa”?
A princípio poderia resolver o problema simplesmente multiplicado 114 x 7 e 10 x 98, achando o valor final pago. Os valores encontrados seriam 798 e 980. Logo, a Proposta A parece mais favorável para o comprador.
É importante lembrar, porém, que essa forma de resolução não considera que o dinheiro desvaloriza-se ao longo dos meses. Ou seja, o poder de compra de 100 reais hoje, é superior ao poder de compra de 100 reais daqui a 10 meses. Outra forma de pensar é considerar o “custo de oportunidade” – a taxa de retorno livre de que conseguiria para o meu dinheiro caso, ao invés de pagar agora, investisse. De uma forma ou de outra o que precisamos é do VALOR PRESENTE (VP) de cada série de pagamentos, sendo os pagamentos descontados a dada taxa de juros. Para trazer VALOR FUTURO (VF) para valor presente usa-se a fórmula:
VP = VF / ( 1 + i )n
Onde “i” é a taxa de juros mensal e “n” o número de meses entre o VF e o VP.
![Page 73: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/73.jpg)
MA
TL
AB
Bás
ico
![Page 74: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/74.jpg)
MA
TL
AB
Bás
ico
clcclose allclear all ivetor=0:0.01:0.50; VPvetor114=[];VPvetor98=[]; prompt{1}='Número de meses do pagamento da serie A:';prompt{2}='Número de meses do pagamento da serie B:';prompt{3}='Valor de cada parcela da serie A:';prompt{4}='Valor de cada parcela da serie B:';resposta=inputdlg(prompt,'Calculo da taxa de equilibrio');nummeses114=str2num(char(resposta(1)));nummeses98=str2num(char(resposta(2)));v114=str2num(char(resposta(3)));v98=str2num(char(resposta(4)));
![Page 75: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/75.jpg)
MA
TL
AB
Bás
ico
for J = 1:length(ivetor), i=ivetor(J); VP=[]; for K = 1:nummeses114, VP(K)=v114/(1+i)^K; end VPfinal=sum(VP); VPvetor114=[VPvetor114, VPfinal]; VP=[]; for K = 1:nummeses98, VP(K)=v98/(1+i)^K; end VPfinal=sum(VP); VPvetor98=[VPvetor98, VPfinal];end
![Page 76: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/76.jpg)
MA
TL
AB
Bás
ico
plot(ivetor*100,VPvetor114,'-b') hold on plot(ivetor*100,VPvetor98,'-r') title('Valor presente das parcelas a serem pagas') legend( [ num2str(nummeses114), ' parc de ', num2str(v114) ,' reais cada'] , ... [ num2str(nummeses98), ' parc de ', num2str(v98) ,' reais cada' ] ) xlabel('Taxa de juros mensal') ylabel('Valor presente em Reais') if (VPvetor114(1)<VPvetor98(1)), posicoes=VPvetor114<VPvetor98; achaZero=find(posicoes==0); achaPrimeiroZero=min(achaZero); plot(100*ivetor(achaPrimeiroZero),VPvetor114(achaPrimeiroZero),'ok') else posicoes=VPvetor98<VPvetor114; achaZero=find(posicoes==0); achaPrimeiroZero=min(achaZero); plot(100*ivetor(achaPrimeiroZero),VPvetor114(achaPrimeiroZero),'ok') end text(100*ivetor(achaPrimeiroZero),50+VPvetor114(achaPrimeiroZero), ... ['Juros de equilibrio (a.m.) = ',num2str(100*ivetor(achaPrimeiroZero)),' %'] )
![Page 77: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/77.jpg)
MA
TL
AB
Bás
ico
Exemplo5
![Page 78: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/78.jpg)
MA
TL
AB
Bás
ico
Determinado processo possui função custo definida pela equação:
Y=((x-3)2)-6
É necessário encontrar x que minimize o valor de Y. Não é
difícil de visualizar que a solução do problema é fazer x=3, de modo a levar Y um mínimo (-6). Mesmo sabendo previamente a solução, vamos resolver através do MATLAB. Utilizamos então a função “fminsearch”.
![Page 79: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/79.jpg)
MA
TL
AB
Bás
ico
%Calculo do valor de x que minimiza a funcao custoxmin = fminsearch('((x-3).^2)-6', 4) %Gráfico da funcao custox=0:0.01:5;y=((x-3).^2)-6;plot(x,y);hold on %Marca o ponto de minimo:ymin=((xmin-3).^2)-6;plot(xmin, ymin,'or')
![Page 80: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/80.jpg)
MA
TL
AB
Bás
ico
Ou...
![Page 81: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/81.jpg)
MA
TL
AB
Bás
ico
%Calculo do valor de x que minimiza a funcao custo %Gráfico da funcao custox=0:0.01:5;y=((x-3).^2)-6;plot(x,y);hold ondrawnow xmin = fminsearch('custo', 4) %Marca o ponto de minimo:ymin=((xmin-3).^2)-6;plot(xmin, ymin,'or')
function [y] = custo(x) y=((x-3).^2)-6; plot(x, y,'ob')hold onpause(0.1)
![Page 82: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/82.jpg)
MA
TL
AB
Bás
ico
Exemplo6
![Page 83: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/83.jpg)
MA
TL
AB
Bás
ico
Quando ajustamos uma curva a um conjunto de pontos experimentais, estamos minimizando a distância entre a curva e os dados. Definindo essa distância como “erro”, estamos manipulando os parâmetros que definem a curva de modo a minimizar o erro. Nesse caso “erro” é a minha “função objetivo” a ser minimizada. É através dessa ótica que se torna possível usar “fminsearch” para encontrar o valor ótimo dos parâmetros de ajuste de uma curva aos dados experimentais.
global yexp xexp %pontos experimentaisyexp=[1.1 2.12 2.85 4.4 5.0 6.5];xexp=[1 2 3 4 5 6]; Parametros = fminsearch('custo',[1,2]);
![Page 84: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/84.jpg)
MA
TL
AB
Bás
ico
function [saida] = custo(x)global yexp xexp a=x(1);b=x(2); yteo=a.*xexp + b; %calcula o valor teorico %para cada pto experimental yerro=abs(yexp-yteo); %calculo do errosaida=sum(yerro); plot(xexp,yexp,'r*',xexp,yteo,'b-')drawnowpause(0.3)
![Page 85: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/85.jpg)
MA
TL
AB
Bás
ico
Exemplo7
![Page 86: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/86.jpg)
MA
TL
AB
Bás
ico
![Page 87: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/87.jpg)
MA
TL
AB
Bás
ico
As equações diferenciais que descrevem o processo são:
O modelo matemático do nosso reator CSTR tende ao estado estacionário. Ou seja, seus parâmetros tendem a ficar constantes no tempo infinito. Seria interessante introduzir perturbações em
algumas variáveis e observar como o reator se comporta.
![Page 88: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/88.jpg)
MA
TL
AB
Bás
ico
Uma perturbação degrau em uma entrada u do sistema é tal que:
u = u0 , t < tdegrauu = u0 + du, t > tdegrau
Ou seja: antes do degrau a entrada u vale u0. Após o tempo determinado para que o degrau ocorra (tdegrau) temos que u
passa a valer u0 + du.
![Page 89: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/89.jpg)
MA
TL
AB
Bás
ico
% Definição das constantes do modeloU =50; % BTU/(h.ft2.R)A = 120; % ft2DH = -30000; % BTU/lbmRo = 50; % lb/ft3Cp = 0.75; % BTU/(lbm.R)E = 30000; % BTU/lbm R = 1.99; % BTU/(lbm.R)k0 = 7.08e10; % 1/h V =48; % ft3Te = 580; %R Th = 550; %RFe = 18; % ft3/h Cre = 0.48; % lbm/ft3 % Tempo de simulaçãot = 0.0 : 0.01 : 10.0; %h % Perturbação na vazão de entradatd = 5.0; %Tempo onde ocorre o degraufd = 2*Fe; %Valor assumido após o degrau
Programa principal:
continua...
![Page 90: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/90.jpg)
MA
TL
AB
Bás
ico
% Condições iniciaisCr0 = 0.16; % lbm/ft3T0 = 603; %R % Simulação do modelo[t,y] = ode45('dcstrdeg',t,[Cr0 T0],[],[U A DH Ro Cp E R k0 V Te Th … Fe Cre],[td fd]);% Visualização da simulaçãofigure(1);plot(t,y(:,1)); title('CSTR com Reação Exotérmica');xlabel('Tempo (h)'); ylabel('Concentração de Reagente (lbm/ft3)');figure(2);plot(t,y(:,2)); title('CSTR com Reação Exotérmica');xlabel('Tempo (h)'); ylabel('Temperatura (R)');
Programa principal (continuação):
![Page 91: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/91.jpg)
MA
TL
AB
Bás
ico
function dy = dcstrdeg(t,y,flag,par,deg); U = par(1); A = par(2);DH = par(3); Ro = par(4);Cp = par(5); E = par(6);R = par(7); k0 = par(8);V = par(9); Te = par(10);Th = par(11);
Função “dcstrdeg”:
continua...
![Page 92: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/92.jpg)
MA
TL
AB
Bás
ico
%Verifica a ocorrência de degrau:
if t >= deg(1)
Fe = deg(2);
else
Fe = par(12);
end;
Cre = par(13);
dy(1) = (Fe/V)*(Cre-y(1)) - k0*exp(-E/(R*y(2)))*y(1);
dy(2) = (Fe/V)*(Te-y(2)) + ((DH*k0*exp(-E/(R*y(2)))*y(1))/(Ro*Cp)) - ...
(U*A*(y(2)-Th)/(V*Ro*Cp));
dy = dy(:);
Função “dcstrdeg” (continuação):
![Page 93: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/93.jpg)
MA
TL
AB
Bás
ico
Exemplo8
![Page 94: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/94.jpg)
MA
TL
AB
Bás
ico
Uma das grandes vantagens no uso de ferramentas computacionais é reduzir o nosso esforço repetitivo, tarefa para a qual o computador é muito eficiente. Supomos que
temos um processo no qual gostaríamos de testar uma série de condições iniciais. Para cada nova condição inicial
teríamos de refazer todas as contas. Um esforço enorme! As linguagens de programação, e o Matlab em particular,
resolvem esse problema facilmente usando o já apresentado comando “for”.
Usaremos o mesmo reator CSTR do exemplo anterior.
![Page 95: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/95.jpg)
MA
TL
AB
Bás
ico
% Definição das constantes do modeloU =50; % BTU/(h.ft2.R)A = 120; % ft2DH = -30000; % BTU/lbmRo = 50; % lb/ft3Cp = 0.75; % BTU/(lbm.R)E = 30000; % BTU/lbm R = 1.99; % BTU/(lbm.R)k0 = 7.08e10; % 1/h V =48; % ft3Te = 580; %R Th = 550; %RFe = 18; % ft3/h Cre = 0.48; % lbm/ft3 % Tempo de simulaçãot = 0.0 : 0.01 : 10.0; %h % Condições iniciaisCr0 = [0.16 0.32 0.48 0.64]; % lbm/ft3T0 = 603; %R
Programa principal:
continua...
![Page 96: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/96.jpg)
MA
TL
AB
Bás
ico
% Simulação e visualização do modelo em bateladacor = 'brmk';leg = ['Cr0=0.16'; 'Cr0=0.32'; 'Cr0=0.48'; 'Cr0=0.64'];
for aux = 1 : length(Cr0) [t,y] = ode45('dcstr',t,[Cr0(aux) T0],[], [U A DH Ro Cp E R k0 V… Te Th Fe Cre]); % Visualização da simulação figure(1); hold on; plot(t,y(:,1),cor(aux)); title('CSTR com Reação Exotérmica'); xlabel('Tempo (h)'); ylabel('Concentração de Reagente (lbm/ft3)'); figure(2); hold on; plot(t,y(:,2),cor(aux)); title('CSTR com Reação Exotérmica'); xlabel('Tempo (h)'); ylabel('Temperatura (R)');end;
Programa principal (continuação):
continua...
![Page 97: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/97.jpg)
MA
TL
AB
Bás
ico
figure(1); legend(leg);figure(2); legend(leg);hold off;
Programa principal (continuação):
A seqüência de cores usadas é dada pelo vetor “cor”, “letra a letra” através da flag. Consulte o comando “plot” para detalhes.
Dica!
![Page 98: Carlos André Vaz Junior cavazjunior@gmail eq.ufrj.br/links/h2cin/carlosandre](https://reader035.fdocuments.in/reader035/viewer/2022062805/56814e4e550346895dbbdb77/html5/thumbnails/98.jpg)
MA
TL
AB
Bás
ico
Carlos André Vaz Junior
http://www.eq.ufrj.br/links/h2cin/carlosandre