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

http://newsreader.mathworks.com

MATLAB Avanado - Simulink

MATLAB Avanado - Simulink

A programao no Simulink segue uma interface grfica muito mais intuitiva e fcil de usar:

MATLAB Avanado - Simulink

Ambiente de Trabalho Simulink

MATLAB Avanado - Simulink

MATLAB Avanado - Simulink

Exemplos

MATLAB Avanado - Simulink

Exemplo 1

MATLAB Avanado - Simulink

Biblioteca Sources

Biblioteca Math

Ajuste automtico da escala do grfico:

MATLAB Avanado - Simulink

Ajuste manual da escala do grfico:

MATLAB Avanado - Simulink

Agora quero multiplicar o resultado por -1:


Biblioteca Math

MATLAB Avanado - Simulink

Configurao do bloco Product:

MATLAB Avanado - Simulink

Nmero de termos da multiplicao.

Multiplicao de matrizes ou termo a termo.

Alterando os parmetros de simulao:

MATLAB Avanado - Simulink

Tempo inicial

Tempo final

Criando um sub-sistema:

Sub-sistema

MATLAB Avanado - Simulink

Editando um sub-sistema:

Sub-sistema

MATLAB Avanado - Simulink

Algumas vezes mais fcil tratar os dados gerados no ambiente Matlab. Usamos o bloco to workspace:

MATLAB Avanado - Simulink

Biblioteca Sinks

Cria a varivel A no workspace

Configurao do bloco To Workspace:

Cria a varivel A no workspace


MATLAB Avanado - Simulink

Formato da varivel

No Workspace...

>> plot(tout,A)

MATLAB Avanado - Simulink

MATLAB Avanado - Simulink

Rodando um bloco:

CTRL R

Combinando dois sinais:


Entre outras aplicaes, permite exibir duas ou mais curvas no mesmo grfico.

MATLAB Avanado - Simulink

Bloco MUX Biblioteca Signals & Sys.

MATLAB Avanado - Simulink

Dois ou mais grficos:

Dois ou mais grficos: Configurando...

MATLAB Avanado - Simulink

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


o sistema fsico que ser simulado.

MATLAB Avanado - Simulink

q1

q2

h q3

Deduzindo o modelo matemtico que descreve o tanque:

Assumindo que: - a densidade do lquido e a rea da seo transversal do


MATLAB Avanado - Simulink

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:

dh A q1 q 2 q3 dt
MATLAB Avanado - Simulink

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 transferncia:

MATLAB Avanado - Simulink

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 do tempo igual a 0 min (step) e um degrau de 1 ft3 na vazo q2 a
MATLAB Avanado - Simulink

partir do tempo igual a 10 min(step1).

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

K p R 6.37

AR 1.25

MATLAB Avanado - Simulink

Corrente q1

Corrente q2

Biblioteca Source
MATLAB Avanado - Simulink

Biblioteca Continuous

Degrau comea no tempo zero

Degrau comea no tempo dez

MATLAB Avanado - Simulink

Bloco Funo de Transferncia

MATLAB Avanado - Simulink

A amplitude do degrau 1

Resultado obtido:

MATLAB Avanado - Simulink

1 estado estacionrio

2 estado estacionrio

1 perturbao

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 varivel perturbao (corrente chegando de outra unidade, no posso controlar essa corrente).
MATLAB Avanado - Simulink

q1

q2
hm LT LC

h q3

Considerando uma vlvula com a seguinte funo de transferncia:

Gv K v 0.0103 m 3 / min psi


Considerando um medidor com a seguinte funo de transferncia:

Gm K m 24 psi / m
MATLAB Avanado - Simulink

Erro: (sp - valor medido)

MATLAB Avanado - Simulink

Set-point

Valor medido

Vlvula Controlador

Processo

MATLAB Avanado - Simulink

Medidor

Bloco Ganho: Quando a funo de transferncia simplesmente uma constante, como no caso do medidor, podemos representa-l pelo bloco Gain.

MATLAB Avanado - Simulink

Gm K m 24 psi / m

Bloco PID: O controlador representado pelo bloco PID Controller. Podemos regular a sua ao proporcional, integral e derivativa.

MATLAB Avanado - Simulink

Ajuste de Controladores:

MATLAB Avanado - Simulink

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.

Ajuste de Controladores:

MATLAB Avanado - Simulink

Tente: P = ajuste 2 para 2 um 2 2 Na prtica o melhor controlador obtido pela combinao da ao 0 P (proporcional), I = 25 1 I (integral), 1 e D (derivativa). Podemos usar o D= 0 Simulink 0 para 0 obter uma 5
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

Exemplo 4

Equaes para modelar um CSTR:

dV FA F dt
MATLAB Avanado - Simulink
dC A FA A C A C A k0e RT C A dt V

dT F ACP T A T HVk0e dt VCP

E RT C

UAT Tc

Passando as equaes para o formato Matlab:

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


MATLAB Avanado - Simulink

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)) V: volume do reator
MATLAB Avanado - Simulink

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 R: constante dos gases = 1.99 BTU/lbm.R
MATLAB Avanado - Simulink

Legenda:

parmetros freqentemente alterados parmetros raramente alterados parmetros calculados

MATLAB Avanado - Simulink

Biblioteca Functions & Tables

MATLAB Avanado - Simulink

Parmetros freqentemente alterados

Parmetros raramente alterados (mscara)

MATLAB Avanado - Simulink

Parmetros calculados

Em resumo:

Fi
Cai Ca
MATLAB Avanado - Simulink

T
DeltaH U

Ko
V F

A
Tc E R

Cp
ro Ti

Configurando o bloco S-function:

MATLAB Avanado - Simulink

Nome do arquivo com as equaes

Parmetros alterados pela mscara

MATLAB Avanado - Simulink

Criando uma mscara:

Localizao do arquivo com as equaes:

O arquivo com as equaes deve estar localizado no mesmo local dos arquivos Simulink!
MATLAB Avanado - Simulink

O Current Directory do Matlab deve apontar para esse local!

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 0o % Dimensiona o sistema e inicializa osapenas estados case x0 vetor de condies iniciais (funciona quando flag = 0 ) t o tempo de simulao x% sys=[estados,0,sadas,entradas,0,0] o vetor de estados do modelo [3,0,3,5,0,0]; usys o= vetor de entradas do modelo (recebido do bloco Mux) % Condies iniciais que informa o tipo de informao que o integrador flag um parmetro ca = 0.1315; %lbm/ft3, espera receber a cada chamadoconcentrao inicial no reator T = 584.4115; temperatura do reator U,...,k0 so os parmetros%R, adicionais que podem ser passados funo V = 200; de uma mascara %ft3, (devem volume dodeclarados reator atravs estar na configurao x0 = [ca T V]'; do bloco S-function).

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 [sys,x0] nmero = dereator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0) sadas % nmero de entradas % Simulamarcador um reator CSTR (mistura direta perfeita) no qual se conduz uma de alimentao % reaotempo exotrmica (A->B), resfriado por serpentina 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] = para reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0) Estimativas iniciais 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...

MATLAB Avanado - Simulink

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...

case 3 % Calcula as sadas sys = [x(1) x(2) x(3)]; otherwise MATLAB Avanado - Simulink sys = []; end

MATLAB Avanado - Simulink

Carlos Andr Vaz Junior cavazjunior@gmail.com http://www.eq.ufrj.br/links/h2cin/carlosandre