Você está na página 1de 66

MATLAB Avanado - Simulink

Carlos Andr Vaz Junior


cavazjunior@gmail.com
http://www.eq.ufrj.br/links/h2cin/carlosandre

MATLAB Avanado - Simulink

Mais de 150 mil resultados

MATLAB Avanado - Simulink

http://newsreader.mathworks.com

MATLAB Avanado - Simulink

MATLAB Avanado - Simulink

A programao no Simulink segue uma interfa


grfica muito mais intuitiva e fcil de usar:

MATLAB Avanado - Simulink

Ambiente de Trabalho Simulink

MATLAB Avanado - Simulink

Exemplos

MATLAB Avanado - Simulink

Exemplo
1

MATLAB Avanado - Simulink

Biblioteca
Sources

Biblioteca
Math

MATLAB Avanado - Simulink

Ajuste automtico da escala do grfico:

MATLAB Avanado - Simulink

Ajuste manual da escala do grfico:

Agora quero multiplicar o resultado por -1:

MATLAB Avanado - Simulink

Biblioteca
Math

MATLAB Avanado - Simulink

Configurao do bloco Product:

Nmero de termos
da multiplicao.

Multiplicao
de matrizes ou
termo a termo.

MATLAB Avanado - Simulink

Alterando os parmetros de simulao:

Tempo inicial

Tempo final

Criando um sub-sistema:

MATLAB Avanado - Simulink

Sub-sistema

Editando um sub-sistema:

MATLAB Avanado - Simulink

Sub-sistema

Algumas vezes mais fcil tratar os dados gerados


no ambiente Matlab.

MATLAB Avanado - Simulink

Usamos o bloco to workspace:

Biblioteca
Sinks

Cria a varivel
A no workspace

Configurao do bloco To Workspace:

MATLAB Avanado - Simulink

Cria a varivel
A no workspace

Formato da varivel

No Workspace...

MATLAB Avanado - Simulink

>> plot(tout,A)

MATLAB Avanado - Simulink

Rodando um bloco:

CTRL R

Combinando dois sinais:

MATLAB Avanado - Simulink

Entre outras aplicaes, permite exibir duas


ou mais curvas no mesmo grfico.

Bloco MUX
Biblioteca Signals &

MATLAB Avanado - Simulink

Dois ou mais grficos:

Dois ou mais grficos:

MATLAB Avanado - Simulink

Configurando...

MATLAB Avanado - Simulink

Exemplo
2

Temos a simulao de um tanque de nvel sob a influncia de uma


perturbao degrau na vazo da alimentao. A figura descreve

MATLAB Avanado - Simulink

o sistema fsico que ser simulado.

q1

q2

h
q3

Deduzindo o modelo matemtico que descreve o tanque:

Assumindo que:

MATLAB Avanado - Simulink

- a densidade do lquido e a rea da seo transversal do


tanque A so constantes.
- a relao entre a vazo e a carga linear:

q3 h / R

O modelo descrito por uma equao de balano transiente de


massa no tanque:

MATLAB Avanado - Simulink

dh
A q1 q 2 q3
dt
Substituindo a hiptese ii na equao anterior ficamos com:

dh
h
A
q1 q 2
dt
R

Introduzindo as variveis-desvio e aplicando a


Transformada de Laplace, chegamos as funes de

MATLAB Avanado - Simulink

transferncia:

Kp
h' ( s )
G1 ( s )
'
s 1
q1 ( s )

Kp
h' ( s )
G2 ( s)
'
s 1
q 2 ( s)
onde:

Kp R

AR

Para o exemplo em questo considere um tanque de 0.5 m de dimetro


e uma vlvula na sada na linha atuando sob uma resistncia
linear (R) de 6.37 min/m2.
Sero simulados um degrau de 1 ft3 na vazo q1 a partir
MATLAB Avanado - Simulink

do tempo igual a 0 min (step) e um degrau de 1 ft3 na


vazo q2 a partir do tempo igual a 10 min(step1).

A = 3.1415 * (0.5/2)^2
A = 0.196

K p R 6.37

R = 6.37

AR 1.25

MATLAB Avanado - Simulink

Corrente q1

Corrente q2

MATLAB Avanado - Simulink

Biblioteca
Source

Biblioteca
Continuous

Degrau comea
no tempo zero

MATLAB Avanado - Simulink

Degrau comea
no tempo dez

Bloco Funo
de Transferncia

MATLAB Avanado - Simulink

A amplitude do
degrau 1

MATLAB Avanado - Simulink

Resultado obtido:

1 estado
estacionrio

1
perturbao

2 estado
estacionrio

2
perturbao

MATLAB Avanado - Simulink

Exemplo
3

Considerando um sistema de controle de nvel mostrado abaixo.


O nvel de lquido medido e a sada do transmissor de nvel (LT)
enviada para um controlador feedback (LC) que controla o nvel pelo
ajuste da vazo volumtrica q2. A segunda vazo de fluido, q1, corresponde

MATLAB Avanado - Simulink

varivel perturbao (corrente chegando de outra unidade,


no posso controlar essa corrente).

q1

q2

LT

hm

LC

q3

Considerando uma vlvula com a seguinte funo de


transferncia:
3

Gv K v 0.0103 m / min psi

Considerando um medidor com a seguinte funo de transferncia:

MATLAB Avanado - Simulink

Gm K m 24 psi / m

Erro:
(sp - valor medido)

MATLAB Avanado - Simulink

Set-point

Valor medido

Vlvula

MATLAB Avanado - Simulink

Controlador

Medidor

Processo

Bloco Ganho:

MATLAB Avanado - Simulink

Quando a funo de transferncia simplesmente


uma constante, como no caso do medidor, podemos
representa-l pelo bloco Gain.

Gm K m 24 psi / m

Bloco PID:

MATLAB Avanado - Simulink

O controlador representado pelo bloco


PID Controller. Podemos regular a sua ao proporcional,
integral e derivativa.

MATLAB Avanado - Simulink

Ajuste de Controladores:

Na prtica o melhor ajuste para um controlador


obtido pela combinao da ao P (proporcional), I (integral),
e D (derivativa). Podemos usar o Simulink para obter uma
estimativa inicial desse ajuste.

D
I
C
A

Nem todas as combinaes de valores para P, I e D so


possveis. As vezes o processamento numrico trava.

MATLAB Avanado - Simulink

Ajuste de Controladores:

Tente:
P = ajuste
2 para
2 um2controlador
2
Na prtica o melhor
obtido pela combinao da
ao0P (proporcional),
I (integral),
I =
25
1
1
e D (derivativa). Podemos
D usar
= o0Simulink
0 para
0 obter uma
estimativa inicial desse ajuste.
5

D
I
C
A

Nem todas as combinaes de valores para P, I e D so


possveis. As vezes o processamento numrico trava.

MATLAB Avanado - Simulink

Exemplo
4

Equaes para modelar um


CSTR:

MATLAB Avanado - Simulink

dV
FA F
dt

dC A
FA A

C A C A k0e RT C A
dt
V

dT
F C P T

dt

T HVk0e
VCP

E
RT C

UAT Tc

Passando as equaes para o formato


Matlab:

MATLAB Avanado - Simulink

dCa = (Fi*(cai-Ca)/V) - k*Ca;


dV = Fi-F;
dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /
(V*ro*Cp);

onde:
Fi: vazo de alimentao do reator (ft3/h)
Cai: concentrao da alimentao do reator (lbm/ft3)
Ca: concentrao no reator (varivel)
k: dado pela equao k = k0*exp(-E/(R*T))
MATLAB Avanado - Simulink

V: volume do reator
F: vazo de sada (ft3/h)
Cp: calor especifico = 0.75 btu/lbm.R
ro: densidade =50 lb/ft3
Ti: temperatura de alimentao (R)
T: temperatura do reator
DeltaH: calor de reao = -30000 BTU/ lbm
U: coeficiente de troca trmica =150 BTU/(h.ft2.R)
continua...

onde:
A: rea de troca trmica = 250 ft2
Tc: temperatura do fluido de alimentao (R)
E: energia de ativao = 30000 BTU/lbm

MATLAB Avanado - Simulink

R: constante dos gases = 1.99 BTU/lbm.R

Legenda:
parmetros freqentemente alterados
parmetros raramente alterados
parmetros calculados

MATLAB Avanado - Simulink

MATLAB Avanado - Simulink

Biblioteca
Functions & Tables

Parmetros
freqentemente
alterados

Parmetros raramente alterados


(mscara)

MATLAB Avanado - Simulink

Parmetros
calculados

MATLAB Avanado - Simulink

Em resumo:

Fi

Cai

DeltaH

Ca

Ko

V
F
Cp

Tc

ro
Ti

E
R

MATLAB Avanado - Simulink

Configurando o bloco S-function:

Nome do arquivo com as


equaes

Parmetros alterados
pela mscara

MATLAB Avanado - Simulink

Criando uma mscara:

Localizao do arquivo com as equaes:

MATLAB Avanado - Simulink

O arquivo com as equaes deve estar localizado no mesmo


local dos arquivos Simulink!

O Current Directory do Matlab deve apontar para


esse local!

MATLAB Avanado - Simulink

Criando o arquivo com as equaes:


function [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
% reao exotrmica (A->B), resfriado por serpentina

%
switch flag
case 0 % Dimensiona o sistema e inicializa os estados
% sys=[estados,0,sadas,entradas,0,0]
sys = [3,0,3,5,0,0];
% Condies iniciais
ca = 0.1315;
%lbm/ft3, concentrao inicial no reator
T = 584.4115;
%R,
temperatura do reator
V = 200;
%ft3,
volume do reator
x0 = [ca T V]';
continua...

MATLAB Avanado - Simulink

Criando o arquivo com as equaes:


function [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
% reao exotrmica (A->B), resfriado por serpentina

%
switch flag
sys a sada do modelo, cujo significado depende de flag
Dimensiona
o sistema
e inicializa
osapenas
estados
case
x0 0o%vetor
de condies
iniciais
(funciona
quando flag
= 0)
t% sys=[estados,0,sadas,entradas,0,0]
o tempo de simulao
[3,0,3,5,0,0];
xsys
o=vetor
de estados do modelo
u%Condies
o vetor deiniciais
entradas do modelo (recebido do bloco Mux)
ca =
%lbm/ft3,
concentrao
inicial no
reator
flag
0.1315;
um parmetro que
informa o
tipo de informao
que
o
T = 584.4115;
%R,
temperatura do reator
integrador
V =
200; receber a cada
%ft3,chamado
volume do reator
espera
x0 = [caso
T V]';
U,...,k0
os parmetros adicionais que podem ser passados
funo
atravs de uma mascara (devem estar declarados na

MATLAB Avanado - Simulink

Criando o arquivo com as equaes:


function [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
% reao exotrmica (A->B), resfriado por serpentina

%
switch flag
case 0 % Dimensiona o sistema e inicializa os estados
% sys=[estados,0,sadas,entradas,0,0]
sys = [3,0,3,5,0,0];
% Condies iniciais
ca = 0.1315;
%lbm/ft3, concentrao inicial no reator
T = 584.4115;
%R,
temperatura do reator
V = 200;
%ft3,
volume do reator
x0 = [ca T V]';
continua...

MATLAB Avanado - Simulink

sys = [ nmero de estados contnuos


nmero de estados discretos
function nmero
[sys,x0]de
= reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
sadas
%
nmero de entradas
% Simula
um reator
(misturadireta
perfeita) no qual se conduz uma
marcador
deCSTR
alimentao
% reao
exotrmica
(A->B), resfriado
por serpentina
tempo
de amostragem
]

%
switch flag
case 0 % Dimensiona o sistema e inicializa os estados
% sys=[estados,0,sadas,entradas,0,0]
sys = [3,0,3,5,0,0];
% Condies iniciais
ca = 0.1315;
%lbm/ft3, concentrao inicial no reator
T = 584.4115;
%R,
temperatura do reator
V = 200;
%ft3,
volume do reator
x0 = [ca T V]';
continua...

MATLAB Avanado - Simulink

function [sys,x0]
= reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
Estimativas
iniciais
para o clculo do sistema de equaes
%
diferenciais
(clculo numrico)
% Simula um reator CSTR (mistura perfeita) no qual se conduz uma
% reao exotrmica (A->B), resfriado por serpentina

%
switch flag
case 0 % Dimensiona o sistema e inicializa os estados
% sys=[estados,0,sadas,entradas,0,0]
sys = [3,0,3,5,0,0];
% Condies iniciais
ca = 0.1315;
%lbm/ft3, concentrao inicial no reator
T = 584.4115;
%R,
temperatura do reator
V = 200;
%ft3,
volume do reator
x0 = [ca T V]';
continua...

case 1 % Calcula as derivadas


% Atualiza entradas
cai = u(1);
%lbm/ft3, concentrao da alimentao=0.5;
Fi = u(2);
%ft3/hr, vazo de alimentao=40
F = u(3);
%vazo de retirada=40
Tc = u(4);
%R, temperatura do fluido de refrigerao=594.6
Ti = u(5);
%R, temperatura da alimentao=530
% Clculo das derivadas
MATLAB Avanado - Simulink

Ca = x(1);
T = x(2);
V = x(3);

k = k0*exp(-E/(R*T));

dCa = (Fi*(cai-Ca)/V) - k*Ca;


dV = Fi-F;
dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

sys = [dCa; dT; dV];


continua...

case 1 % Calcula as derivadas


% Atualiza entradas
cai = u(1);
%lbm/ft3, concentrao da alimentao=0.5;
Fi = u(2);
%ft3/hr, vazo de alimentao=40
F = u(3);
%vazo de retirada=40
Tc = u(4);
%R, temperatura do fluido de refrigerao=594.6
Ti = u(5);
%R, temperatura da alimentao=530
% Clculo das derivadas
MATLAB Avanado - Simulink

Ca = x(1);
T = x(2);
V = x(3);

k = k0*exp(-E/(R*T));

dCa = (Fi*(cai-Ca)/V) - k*Ca;


dV = Fi-F;
dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

sys = [dCa; dT; dV];


continua...

case 1 % Calcula as derivadas


% Atualiza entradas
cai = u(1);
%lbm/ft3, concentrao da alimentao=0.5;
Fi = u(2);
%ft3/hr, vazo de alimentao=40
F = u(3);
%vazo de retirada=40
Tc = u(4);
%R, temperatura do fluido de refrigerao=594.6
Ti = u(5);
%R, temperatura da alimentao=530
% Clculo das derivadas
MATLAB Avanado - Simulink

Ca = x(1);
T = x(2);
V = x(3);

k = k0*exp(-E/(R*T));

dCa = (Fi*(cai-Ca)/V) - k*Ca;


dV = Fi-F;
dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

sys = [dCa; dT; dV];


continua...

case 1 % Calcula as derivadas


% Atualiza entradas
cai = u(1);
%lbm/ft3, concentrao da alimentao=0.5;
Fi = u(2);
%ft3/hr, vazo de alimentao=40
F = u(3);
%vazo de retirada=40
Tc = u(4);
%R, temperatura do fluido de refrigerao=594.6
Ti = u(5);
%R, temperatura da alimentao=530
% Clculo das derivadas
MATLAB Avanado - Simulink

Ca = x(1);
T = x(2);
V = x(3);

k = k0*exp(-E/(R*T));

dCa = (Fi*(cai-Ca)/V) - k*Ca;


dV = Fi-F;
dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

sys = [dCa; dT; dV];


continua...

MATLAB Avanado - Simulink

case 3 % Calcula as sadas

sys = [x(1) x(2) x(3)];

otherwise

sys = [];

end

MATLAB Avanado - Simulink

Carlos Andr Vaz Junior


cavazjunior@gmail.com
http://www.eq.ufrj.br/links/h2cin/carlosandre