Desenvolvendo aplicações em Simulink

97
EQ/UFRJ Carlos André Vaz Junior [email protected] http://www.eq.ufrj.br/links/h2cin/carlosandre

Transcript of Desenvolvendo aplicações em Simulink

Page 1: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Carlos André Vaz [email protected]

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

Page 2: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Mais de 150 mil resultados

Mundo Simulink

Page 3: Desenvolvendo aplicações em Simulink

EQ/UFRJ

?http://newsreader.mathworks.com

Ajuda

Page 4: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Acessando o Simulink

Page 5: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Ambiente Simulink

Page 6: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Ambiente de Trabalho Simulink

Ambiente Simulink

Page 7: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplos

Page 8: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo1

Page 9: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Biblioteca Math

Biblioteca Sources

Exemplo 1 – Comportamento Senoidal

Page 10: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Ajuste automático da escala do gráfico:

Exemplo 1 – Comportamento Senoidal

Page 11: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Ajuste manual da escala do gráfico:

Exemplo 1 – Comportamento Senoidal

Page 12: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Agora quero multiplicar o resultado por -1:

Exemplo 1 – Comportamento Senoidal

Biblioteca Math

Page 13: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Configuração do bloco Product:

Número de termosda multiplicação.

Multiplicaçãode matrizes outermo a termo.

Exemplo 1 – Comportamento Senoidal

Page 14: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Alterando os parâmetros de simulação:

Tempo inicial

Tempo final

Exemplo 1 – Comportamento Senoidal

Page 15: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Criando um sub-sistema:

Sub-sistema

Exemplo 1 – Comportamento Senoidal

Page 16: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Editando um sub-sistema:

Sub-sistema

Exemplo 1 – Comportamento Senoidal

Page 17: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 1 – Comportamento Senoidal

Page 18: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Configuração do bloco “To Workspace”:

Cria a variávelA no workspace

Formato da variável

Exemplo 1 – Comportamento Senoidal

Page 19: Desenvolvendo aplicações em Simulink

EQ/UFRJ

>> plot(tout,A)

No Workspace...

Exemplo 1 – Comportamento Senoidal

Page 20: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Rodando um bloco:

CTRL R

Exemplo 1 – Comportamento Senoidal

Page 21: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Combinando dois sinais:Entre outras aplicações, permite exibir duas

ou mais curvas no mesmo gráfico.

Bloco MUXBiblioteca Signals & Sys.

Exemplo 1 – Comportamento Senoidal

Page 22: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Dois ou mais gráficos:

Exemplo 1 – Comportamento Senoidal

Page 23: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Dois ou mais gráficos:Configurando...

Exemplo 1 – Comportamento Senoidal

Page 24: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo2

Page 25: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 2 – Simulação de um modelo dinâmico

Page 26: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 2 – Simulação de um modelo dinâmico

mmin

m2

m3

min=

Page 27: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

321 qqqdtdhA

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

Rhqq

dtdhA 21

Exemplo 2 – Simulação de um modelo dinâmico

m3

mingm3

mmin

gm3

m2

Page 28: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Introduzindo as variáveis-desvio e aplicando a Transformada de Laplace, chegamos as funções de

transferência:

1)(

)()('

1'1

sK

sGsqsh p

1)(

)()('

2'2

sK

sGsqsh p

onde:

AR

RK p

Exemplo 2 – Simulação de um modelo dinâmico

Page 29: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 2 – Simulação de um modelo dinâmico

Page 30: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Corrente q1

Corrente q2

Exemplo 2 – Simulação de um modelo dinâmico

Page 31: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Biblioteca Source

Biblioteca Continuous

Exemplo 2 – Simulação de um modelo dinâmico

Page 32: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Degrau começano tempo zero

Degrau começano tempo dez

Bloco Funçãode Transferência

Exemplo 2 – Simulação de um modelo dinâmico

Page 33: Desenvolvendo aplicações em Simulink

EQ/UFRJ

A amplitude dodegrau é 1

Exemplo 2 – Simulação de um modelo dinâmico

Page 34: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Resultado obtido:

1º estadoestacionário 2º estado

estacionário

1ª perturbação

2ª perturbação

Exemplo 2 – Simulação de um modelo dinâmico

Page 35: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo3

Page 36: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 3 – Controlando o tanque de nível

Page 37: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 3 – Controlando o tanque de nível

15psi

0psi

Linguagem de

engenharia

0 m

3,60 m

Linguagem de

máquina

Page 38: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Set-point

Valor medido

Erro: (sp - valor medido)

Exemplo 3 – Controlando o tanque de nível

Page 39: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 3 – Controlando o tanque de nível

ControladorProcesso

Medidor

Válvula

Page 40: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 3 – Controlando o tanque de nível

Page 41: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Bloco PID: O controlador é representado pelo bloco

PID Controller. Podemos regular a sua ação proporcional,integral e derivativa.

Exemplo 3 – Controlando o tanque de nível

Page 42: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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ãopossíveis. As vezes o processamento numérico trava.

DDIICCAA

Exemplo 3 – Controlando o tanque de nível

Page 43: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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ãopossíveis. As vezes o processamento numérico trava.

DDIICCAA

Exemplo 3 – Controlando o tanque de nível

Page 44: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Revisão defminsearch

Page 45: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Page 46: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 4

Exemplo 4

Page 47: Desenvolvendo aplicações em Simulink

EQ/UFRJ

A seguinte malha de controle foi elaborada no Simulink.Usar o Matlab para ajustar o controlador.

PID

degrau unitáriono instante 5

Exemplo 4

Page 48: Desenvolvendo aplicações em Simulink

EQ/UFRJ

clear allclose allwarning offoptions = optimset('display','iter');global P I D erroPmin = fminsearch('custo', [1 5 1],options)

Programa principal:

Exemplo 4

Page 49: Desenvolvendo aplicações em Simulink

EQ/UFRJ

function [erro] = custo(x)global P I D erroP=x(1);I=x(2);D=x(3);[T]=sim('malha',[0 65]);erro=sum(erro.^2);

Função “custo”:

Exemplo 4

Page 50: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Solução encontrada para degrau unitário no SP: Pmin = 4.5075 2.6329 -0.0000

Exemplo 4

Page 51: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Arquitetura Simulink usada para gerar o gráficodo slide anterior:

Exemplo 4

Page 52: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 4b

Exemplo 4b

Page 53: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Ao invés de minimizar o somatório quadrático do erro,posso minimizar o somatório quadrático ponderado com

o tempo. Ou seja, erros em tempos mais elevados são maissignificativos.

Exemplo 4b

Page 54: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 4b

Page 55: Desenvolvendo aplicações em Simulink

EQ/UFRJ

clear allclose allwarning offoptions = optimset('display','iter');global P I D erro tempoPmin = fminsearch('custo', [10 5 1],options)

Programa principal:

Exemplo 4b

Page 56: Desenvolvendo aplicações em Simulink

EQ/UFRJ

function [erro] = custo(x)global P I D erro tempoP=x(1);I=x(2);D=x(3);[T]=sim('malha',[0 65]);%erro=sum(erro.^2); % somatorio quadratico do erroerro=sum((erro.*tempo).^2); % somatorio quadratico

do erro ponderado com o tempo

Função custo:

Exemplo 4b

Page 57: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Resultado obtido:Pmin = 25.8333 5.3333 -0.0000

Chute inicial usado:10 5 1

Exemplo 4b

Page 58: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Ajuste de TF

Page 59: Desenvolvendo aplicações em Simulink

EQ/UFRJ

?

Page 60: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Page 61: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Page 62: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Ferramenta completa para treinamento...

Page 63: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Passando dados para o Simulink

Page 64: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Gerador de dados experimentais:

Page 65: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Page 66: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Usando os dados experimentais:

Page 67: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Page 68: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo5

Page 69: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Equações para modelar um CSTR:

FFdtdV A

ARTE

AAA

AA CekCC

VF

dtdC

0

P

cARTE

AP

A

VCTTUACeHVkTTCF

dtdT

0

Exemplo 5 – Bloco S-function

Page 70: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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:

Exemplo 5 – Bloco S-function

Page 71: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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 reatorF: vazão de saída (ft3/h)Cp: calor especifico = 0.75 btu/lbm.Rro: densidade =50 lb/ft3Ti: temperatura de alimentação (R)T: temperatura do reatorDeltaH: calor de reação = -30000 BTU/ lbmU: coeficiente de troca térmica =150 BTU/(h.ft2.R)

continua...

Exemplo 5 – Bloco S-function

Page 72: Desenvolvendo aplicações em Simulink

EQ/UFRJ

onde:

A: área de troca térmica = 250 ft2Tc: temperatura do fluido de alimentação (R)E: energia de ativação = 30000 BTU/lbmR: constante dos gases = 1.99 BTU/lbm.R

parâmetros freqüentemente alterados

parâmetros raramente alterados

parâmetros calculados

Legenda:

Exemplo 5 – Bloco S-function

Page 73: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 5 – Bloco S-function

Page 74: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Parâmetrosfreqüentementealterados

Parâmetros raramente alterados(máscara)

Biblioteca Functions & Tables

Exemplo 5 – Bloco S-function

Page 75: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Parâmetros calculados

Exemplo 5 – Bloco S-function

Page 76: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Fi

Cai

Ca

Ko

VFCp

ro

Ti

T

DeltaH

U

A

Tc

E

R

Em resumo:

Exemplo 5 – Bloco S-function

Page 77: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Configurando o bloco S-function:

Nome do arquivo com as equações

Parâmetros alteradospela máscara

Exemplo 5 – Bloco S-function

Page 78: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Criando uma máscara:

Exemplo 5 – Bloco S-function

Page 79: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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!

Exemplo 5 – Bloco S-function

Page 80: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 81: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 82: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 83: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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 ]

Exemplo 5 – Bloco S-function

Page 84: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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)

Exemplo 5 – Bloco S-function

Page 85: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 86: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 87: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 88: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 89: Desenvolvendo aplicações em Simulink

EQ/UFRJ

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

Exemplo 5 – Bloco S-function

Page 90: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 5

Bloco Integrador

Page 91: Desenvolvendo aplicações em Simulink

A outra técnica para resolver sistemas de equações diferenciais no Simulink é utilizando o bloco Integrator. A

vantagem dessa técnica é que podemos construir a equação de modo totalmente intuitivo,

como veremos abaixo.

Por simplicidade vamos trabalhar com uma única equação diferencial,

mas a técnica pode ser estendida para sistemas de equações.

Exemplo 5 – Bloco Integrador

*))((1 hhKFeAdt

dh

Page 92: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 5 – Bloco Integrador

1/A

( h-hestrela )

Page 93: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 5 – Bloco Integrador

Bloco Fcn(Functions

&Tables)

Page 94: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 5 – Bloco Integrador

K ( h - hestrela )

Page 95: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 5 – Bloco Integrador

Fe - K( h - hestrela )

Page 96: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Exemplo 5 – Bloco Integrador

(1/A) (Fe - K( h - hestrela ))

Page 97: Desenvolvendo aplicações em Simulink

EQ/UFRJ

Carlos André Vaz [email protected]

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