apostila matlab

66
MATLAB Avançado - Simulink Carlos André Vaz Junior [email protected] http://www.eq.ufrj.br/links/h2cin/carlosandre

Upload: lucas-maldonado-moreno

Post on 29-Nov-2015

37 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Carlos André Vaz Junior

[email protected]

http://www.eq.ufrj.br/links/h2cin/carlosandre

Page 2: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Mais de 150 mil resultados

Page 3: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link ?

http://newsreader.mathworks.com

Page 4: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Page 5: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

A programação no Simulink segue uma interface gráfica muito mais intuitiva e fácil de usar:

Page 6: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Ambiente de Trabalho Simulink

Page 7: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Exemplos

Page 8: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Exemplo

1

Page 9: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Biblioteca Math

Biblioteca Sources

Page 10: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Ajuste automático da escala do gráfico:

Page 11: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Ajuste manual da escala do gráfico:

Page 12: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Agora quero multiplicar o resultado por -1:

Biblioteca Math

Page 13: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Configuração do bloco Product:

Número de termosda multiplicação.

Multiplicaçãode matrizes outermo a termo.

Page 14: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Alterando os parâmetros de simulação:

Tempo inicial

Tempo final

Page 15: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Criando um sub-sistema:

Sub-sistema

Page 16: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Editando um sub-sistema:

Sub-sistema

Page 17: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Algumas vezes é mais fácil tratar os dados gerados no ambiente Matlab.

Usamos o bloco “to workspace”:

Cria a variávelA no workspace

Biblioteca Sinks

Page 18: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Configuração do bloco “To Workspace”:

Cria a variávelA no workspace

Formato da variável

Page 19: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

>> plot(tout,A)

No Workspace...

Page 20: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Rodando um bloco:

CTRL R

Page 21: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Combinando dois sinais:

Entre outras aplicações, permite exibir duas ou mais curvas no mesmo gráfico.

Bloco MUXBiblioteca Signals & Sys.

Page 22: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Dois ou mais gráficos:

Page 23: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Dois ou mais gráficos:

Configurando...

Page 24: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Exemplo

2

Page 25: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Temos a simulação de um tanque de nível sob a influência de uma

perturbação degrau na vazão da alimentação. A figura descreve

o sistema físico que será simulado.

q1

q3

q2

h

A

Page 26: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Assumindo que:

       - a densidade do líquido e a área da seção transversal do

tanque A são constantes.

- a relação entre a vazão e a carga é linear:

Deduzindo o modelo matemático que descreve o tanque:

Rhq /3

Page 27: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

O modelo é descrito por uma equação de balanço transiente de massa no tanque:

321 qqqdt

dhA

Substituindo a hipótese ii na equação anterior ficamos com:

R

hqq

dt

dhA 21

Page 28: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Introduzindo as variáveis-desvio e aplicando a

Transformada de Laplace, chegamos as funções de

transferência:

1)(

)(

)('1'

1 s

KsG

sq

sh p

1)(

)(

)('2'

2 s

KsG

sq

sh p

onde:

AR

RK p

Page 29: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Para o exemplo em questão considere um tanque de 0.5 m de diâmetro e uma válvula na saída na linha atuando sob uma resistência

linear (R) de 6.37 min/m2.

Serão simulados um degrau de 1 ft3 na vazão q1 a partir

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

vazão q2 a partir do tempo igual a 10 min(step1).

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

R = 6.37 25.1

37.6

AR

RK p

Page 30: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Corrente q1

Corrente q2

Page 31: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Biblioteca Source

Biblioteca Continuous

Page 32: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Degrau começano tempo zero

Degrau começano tempo dez

Bloco Funçãode Transferência

Page 33: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

A amplitude dodegrau é 1

Page 34: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Resultado obtido:

1º estadoestacionário 2º estado

estacionário

1ª perturbação

2ª perturbação

Page 35: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Exemplo

3

Page 36: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Considerando um sistema de controle de nível mostrado abaixo. O nível de líquido é medido e a saída do transmissor de nível (LT) é enviada para um controlador feedback (LC) que controla o nível pelo

ajuste da vazão volumétrica q2. A segunda vazão de fluido, q1, corresponde

à variável perturbação (corrente chegando de outra unidade, não posso controlar essa corrente).

q1

q3

q2

h

A

LT LChm

Page 37: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Considerando uma válvula com a seguinte função de transferência:

Considerando um medidor com a seguinte função de transferência:

psimKG vv min/0103.0 3

mpsiKG mm /24

Page 38: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Set-point

Valor medido

Erro: (sp - valor medido)

Page 39: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

ControladorProcesso

Medidor

Válvula

Page 40: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Bloco Ganho:

Quando a função de transferência é simplesmenteuma constante, como no caso do medidor, podemos

representa-lá pelo bloco Gain.

mpsiKG mm /24

Page 41: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Bloco PID:

O controlador é representado pelo blocoPID Controller. Podemos regular a sua ação proporcional,

integral e derivativa.

Page 42: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Ajuste de Controladores:

Na prática o melhor ajuste para um controladoré obtido pela combinação da ação P (proporcional), I (integral),

e D (derivativa). Podemos usar o Simulink para obter umaestimativa inicial desse ajuste.

Nem todas as combinações de valores para P, I e D são

possíveis. As vezes o processamento numérico trava.

DDIICCAA

Page 43: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Ajuste de Controladores:

Na prática o melhor ajuste para um controladoré obtido pela combinação da ação P (proporcional), I (integral),

e D (derivativa). Podemos usar o Simulink para obter umaestimativa inicial desse ajuste.

Tente: P = 2 2 2 2I = 0 25 1 1D = 0 0 0 5

Nem todas as combinações de valores para P, I e D são

possíveis. As vezes o processamento numérico trava.

DDIICCAA

Page 44: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Exemplo

4

Page 45: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Equações para modelar um CSTR:

FFdtdV A

ARTE

AAA

AA CekCC

VF

dtdC

0

P

cARTE

AP

A

VCTTUACeHVkTTCF

dtdT

0

Page 46: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

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);

Passando as equações para o formato Matlab:

Page 47: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

onde:

Fi: vazão de alimentação do reator (ft3/h)

Cai: concentração da alimentação do reator (lbm/ft3)

Ca: concentração no reator (variável)

k: é dado pela equação k = k0*exp(-E/(R*T))

V: volume do reator

F: vazão de saída (ft3/h)

Cp: calor especifico = 0.75 btu/lbm.R

ro: densidade =50 lb/ft3

Ti: temperatura de alimentação (R)

T: temperatura do reator

DeltaH: calor de reação = -30000 BTU/ lbm

U: coeficiente de troca térmica =150 BTU/(h.ft2.R)

continua...

Page 48: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

onde:

A: área de troca térmica = 250 ft2

Tc: temperatura do fluido de alimentação (R)

E: energia de ativação = 30000 BTU/lbm

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

parâmetros freqüentemente alterados

parâmetros raramente alterados

parâmetros calculados

Legenda:

Page 49: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Page 50: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Parâmetrosfreqüentementealterados

Parâmetros raramente alterados(máscara)

Biblioteca Functions & Tables

Page 51: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Parâmetros calculados

Page 52: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Fi

Cai

Ca

Ko

V

F

Cp

ro

Ti

T

DeltaH

U

A

Tc

E

R

Em resumo:

Page 53: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Configurando o bloco S-function:

Nome do arquivo com as equações

Parâmetros alteradospela máscara

Page 54: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Criando uma máscara:

Page 55: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Localização do arquivo com as equações:

O arquivo com as equações deve estar localizado no mesmolocal dos arquivos Simulink!

O Current Directory do Matlab deve apontar para esse local!

Page 56: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Criando o arquivo com as equações:

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 % reação exotérmica (A->B), resfriado por serpentina %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 ca = 0.1315; %lbm/ft3, concentração inicial no reator T = 584.4115; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]';

continua...

Page 57: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Criando o arquivo com as equações:

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 % reação exotérmica (A->B), resfriado por serpentina %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 ca = 0.1315; %lbm/ft3, concentração inicial no reator T = 584.4115; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]';

• sys é a saída do modelo, cujo significado depende de flag• x0 é o vetor de condições iniciais (funciona apenas quando flag = 0 )• t é o tempo de simulação• x é o vetor de estados do modelo• u é o vetor de entradas do modelo (recebido do bloco Mux)• flag é um parâmetro que informa o tipo de informação que o integrador espera receber a cada chamado• U,...,k0 são os parâmetros adicionais que podem ser passados à função através de uma mascara (devem estar declarados na configuração do bloco S-function).

Page 58: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Criando o arquivo com as equações:

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 % reação exotérmica (A->B), resfriado por serpentina %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 ca = 0.1315; %lbm/ft3, concentração inicial no reator T = 584.4115; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]';

continua...

Page 59: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

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 % reação exotérmica (A->B), resfriado por serpentina %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 ca = 0.1315; %lbm/ft3, concentração inicial no reator T = 584.4115; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]';

continua...

sys = [ número de estados contínuosnúmero de estados discretosnúmero de saídasnúmero de entradasmarcador de alimentação diretatempo de amostragem ]

Page 60: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

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 % reação exotérmica (A->B), resfriado por serpentina %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 ca = 0.1315; %lbm/ft3, concentração inicial no reator T = 584.4115; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]';

continua...

Estimativas iniciais para o cálculo do sistema de equações diferenciais (cálculo numérico)

Page 61: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % Cálculo das derivadas  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...

Page 62: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % Cálculo das derivadas  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...

Page 63: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % Cálculo das derivadas  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...

Page 64: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % Cálculo das derivadas  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...

Page 65: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

case 3 % Calcula as saídas  sys = [x(1) x(2) x(3)];  otherwise  sys = []; end

Page 66: Apostila MATLAB

MA

TL

AB

Ava

nça

do

- S

imu

link

Carlos André Vaz Junior

[email protected]

http://www.eq.ufrj.br/links/h2cin/carlosandre