Você está na página 1de 42

Curso MATLAB 6

Instrutor: Marcelo Escobar


Simulink
Curso MATLAB 6

Exemplo: Simulação de um Reator


Simulink:

Referências:
Apresentando o Simulink:

O simulink é um aplicativo do matlab que permite analisar o


comportamento dinâmico de sistemas a partir da construção de
um modelo matemático.
Como Acessar:
>>simulink na Comand Window.
Ou no ícone colorido na barra de ferramentas.
Ao abrir o simulink temos acesso ao Simulink Library Browser,
no qual ficam exibidos os ícones dos diagramas de blocos
disponíveis para a composição do modelo.
No menu file, temos a opção new model, no qual podemos criar
um modelo matemático para o nosso sistema.
Os ícones são inseridos no modelo com uma seleção seguida de
arraste.
Criando Modelos:

O tópico Sources nos fornece uma série de possíveis entradas


dos modelos.
O tópico Sink nos fornece uma série de possíveis retornos de
saídas dos modelos.

Um clique com o
mouse na fronteira
do bloco, nos permite
ligar os blocos entre si.
Criando Modelos:

Na barra de ferramentas do modelo, possui um ícone de play


que simula o modelo.
Na barra de ferramentas, no menu Simulation, podemos
acessar e editar os parâmetros da simulação.
Os ícones arrastados para o modelo são genéricos e podem ser
editados com um duplo clique sobre o ícone.
Como exemplo, o ícone
sin wave.
Criando Modelos:

Biblioteca Biblioteca
Sources Math

Exemplo: Adição de sinais


Ajuste de Escala:
Um autoscale pode ser acessado para ajustar o gráfico.
Se a curva parecer dentada aumente o fator de refino.

Exemplo: Ajuste de Escala


Plotando Resultados:

Dois ou mais gráficos:


Parâmetros de Simulação:

Tempo inicial

Tempo final
Manipulação de Blocos Simulink:

No tópico Math temos uma série de blocos pelos quais os


sinais podem passar, um dos mais comuns são os blocos de
ganho e o bloco de soma.

Soma de sinais: Math  bloco sum

Multiplicação do sinal por um ganho: Math  bloco gain

Obs: Os ícones inseridos no modelo podem ser editados na


sua aparência, assim como no Word, podemos ampliar e girar
o ícone como quisermos, um clique com o botão direito sobre
o ícone nos permite a edição e formatação.
Manipulação de Blocos Simulink:

No tópico Signals and Systens temos uma série de blocos


pelos quais os sinais podem passar, um dos mais comuns são os
blocos multiplexador e o demultiplexador.

Multiplexador de sinal: combina entradas fornecendo uma


saída, é como se tivéssemos dois sinais armazenados numa
mesma variável pós passagem no multiplexador.

Signals and Systens  Mux

Demultiplexador de sinal: faz o contrário, pega um sinal


múltiplo e divide em sinais únicos.

Signals and Systens  Demux


Manipulação de Blocos Simulink:

No tópico Functions & Tables temos uma série de blocos


pelos quais os sinais podem passar.Um dos mais importantes é
O matlab function, que permite que usemos qualquer função
do matlab ou mesmo uma que criamos. Com isso somos
capazes de gerar qualquer sinal.

O bloco S-function será visto com mais detalhes mais


adiante.

Por fim temos os tópicos de modelos contínuos e discretos


que podemos utilizar, nada impede que usemos um modelo em
arquivo m do matlab. Além disso temos uma série de outras
ferramentas com ícones que podem ser utilizados, esses
discutidos são os principais.
Exibição de Resultados:
O ícone scope permite que mais de um gráfico seja plotado no
mesmo eixo, basta usar um bloco Mux.

Além disso a barra de ferramentas do scope , permite a


edição de número de eixos por janela, podendo assim plotar
dois gráficos no mesmo scope com eixos diferentes.

Podemos enviar os dados também para o workspace com o


bloco to workspace fornecendo o nome da variável na qual o
sinal vai ser armazenado.

Podemos simular o modelo através da Comand Window:


>>sim(‘nome do modelo’)

Cada bloco permite a chamada de uma função do matlab,é só


fornecer o nome da função em propriedades. A função é
executada com um clique sobre o ícone.
Tipos de Modelos:

Modelos dinâmicos são equações diferencias que nos permitem


avaliar de que forma uma dada propriedade varia com o tempo.

Um vez obtido o modelo do processo, a resolução da equação ou do


sistema de equações diferenciais nos fornece as variáveis de saída
do modelo.
Se usarmos os comandos ode vistos anteriormente estamos
considerando as entradas constantes. Na verdade o que queremos
analisar é o comportamento da variável de saída sujeita a um sinal
de entrada(dinâmica).Podemos fazer isso usando ode, mas isso vai
requerer um Loop, e o cálculo de um ode a cada iteração.

A vantagem do Simulink é que com a adição de blocos no modelo


, podemos analisar facilmente os resultados.
Exemplo de Modelo:
Precisamos saber então como a partir das equações diferenciais
que governam o nosso processo, podemos fornecer esse modelo ao
Simulink.
Exemplo: Balanço de Massa em um tanque.

m  massa dm  
  me  m s
m taxa dt

m   . A.h m i   .Fi Fs  k . h
 massa específica
F vazão volumétrica dh
h altura A  Fin  k . h
g gravidade dt
Saídas: [ variáveis que queremos obter] -h
Estados: [propriedades que variam com tempo nas edif]- h
Entradas: [ propriedades que afetam nossas variáveis de saída]
E variam com o tempo] -Fi
Parâmetros: [ propriedades fixas do modelo] – A e k
Modelo do tanque:
Os estados são identificados pela derivada em relação ao tempo.
Em muitas vezes, os estados, são as nossas variáveis de saída.
Os parâmetros são as propriedades que não variam com o tempo, nesse
caso, a área do tanque não varia com o tempo.
A vazão de entrada é uma entrada do sistema, pois esta sujeito a
perturbações externas.
Podemos construir o modelo, usando por exemplo a álgebra de blocos:
Simulando o Modelo:
Precisamos fornecer os valores para as variáveis Fi, k e A.
K=1.2m2/s; A=28m2; Fi=10m3/s;
O bloco utilizado para Fi é um bloco degrau, é uma entrada muito
comum, na qual em um dado instante,a variável de entrada assume um
novo valor.Vamos editar um degrau no instante 2, de 10 para 12 m 2.

Fi h
Linearização do Modelo:
Uma outra forma muito comum de tratar o modelo é linearizando
utilizando a expansão em série de Taylor :

dsn
Modelo  f n (e, s)
dt
yn  g n (e, s )

 df1 df1 df1   df1 df1 df1 


   
 ds1 ds2 dsn   de1 de2 de p 
ds  df 2 df 2 df 2   df df 2 df 2 
 .s   2 .e
dt  ds1 ds2 dsn 
 df   de1 de2 de p 
 m df m df m   df m df m df m 
 ds1 ds2 dsn   de de2 de p 
 1
A B
n- numero de saídas
m-numero de equações

p-numero de entradas
Representação em Espaço de Estados:

Agora as variáveis são variáveis desvio em relação ao estacionário. s  s  sest


As matrizes jacobianos, são aplicadas no ponto estacionário de operação,
assim todas os elementos das matrizes são numéricos e o nosso modelo
agora é linear.  
 dg1 dg1 dg1  dg1 dg1 dg1
   
 ds1 ds2 dsn   de1 de2 de p 
dg dg 2 dg 2   dg dg 2 dg 2 
y 2 .s   2 .e
 ds1 ds2 dsn   de1 de2 de p 
 dg dg m 
dg m 
 m  dg m dg m dg m 
 ds1 ds2 dsn   de de2 de p 
 1

C D
As matrizes A,B,C e D formam a chamada representação em espaço de
estados. No exemplo: A=[-k/(2A.sqrt(h)] B=[1/A] C=[1] D=[0]
O simulink possui um bloco no tópico Continuous em que podemos
fornecer as matrizes para simular o modelo.
Representação em Espaço de Estados:
Transformada de Laplace :

Transformada de Laplace:

A propriedade mais importante da transformada de Laplace:

L{ a.Dny/dtn}=sn.Y(s)

Podemos obter a transformada de laplace usando o symbolic toolbox:


>>help laplace

Aplicando a transformada de laplace no nosso exemplo linearizado:

A.s.Y(s)-k.Y(s)=Fi Fi=U(s) Y(s)/U(s)= Fi/(A .s –k)

Ou seja a função de transferência relaciona a entrada com a saída do sistema.


O simulink possui um bloco no tópico Continuous em que podemos fornecer
a função de transferência.
Funções de Transferência :

A função de transferência de um sistema é a razão de dois polinômios no domínio de


Laplace.

Podemos criar funções de transferência na Comand Window:

>>help tf

O conceito de função de transferência é muito importante no estudo de controle de


Processos, é uma forma simples de se representar um modelo.

Cada equação diferencial linearizada pode ser representada por uma função de
Transferência.Para um sistema com múltiplas entradas e múltiplas saídas, teremos
uma Função de transferência que relaciona cada uma delas.

Esse curso tem caráter de apenas fornecer as ferramentas necessárias para a analise
de dinâmica de sistemas,com um conhecimento teórico mais aprofundado sobre
controle de processos tudo ficará muito mais claro.
Propriedades das Transformadas:
Representação em Funções de Transferência :
Exemplo Funções de Transferência :

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 q2

h
q3

A
Exemplo Funções de Transferência :

Deduzindo o modelo matemático que descreve o tanque:

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: q3  h / R

dh h
A  q1  q 2  
dt R
Exemplo Funções de Transferência :

Introduzindo as variáveis-desvio e aplicando a Transformada de


Laplace, chegamos as funções de transferência:

h' ( s ) Kp
 G1 ( s ) 
'
q1 ( s )  s 1

h' ( s ) Kp
 G2 ( s) 
'
q 2 ( s)  s 1

onde:
Kp  R
  AR
Exemplo Funções de Transferência :

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)^2
A = 0.196
K p  R  6.37
R = 6.37
  AR  1.25
Exemplo Funções de Transferência :

Corrente q1

Corrente q2
Exemplo Funções de Transferência :

Degrau começa
no tempo zero

Degrau começa
No tempo dez

Bloco Função
de Transferência
Exemplo Funções de Transferência :

Resultado obtido:

1º estado
estacionário 2º estado
estacionário

1ª 2ª
perturbação perturbação
S-functions:

Equações para modelar um CSTR:


dV
 FA F
dt
E
dC A
dt

FA A
V
  
C A  C A  k0e RT C A

E
dT

 
F ACP T A  T  HVk0e

RT C
A  UAT  Tc 
dt VCP

Passando as equações para o formato Matlab:

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);
Exemplo S-function:
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)
Exemplo S-function:
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
Exemplo S-function:
Biblioteca
Functions & Tables

Parâmetros
freqüentemente
alterados

Parâmetros raramente alterados


(máscara)
Exemplo S-function:

Configurando o bloco S-function:

Nome do arquivo com as


equações

Parâmetros alterados
pela máscara
Exemplo S-function:

Criando uma máscara:


Exemplo S-function:
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]';
Exemplo S-function:
Criando o arquivo com as equações:

function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)

• 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 S-function:
Criando o arquivo com as equações:
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];
Exemplo S-function:
Criando o arquivo com as equações:

case 3 % Calcula as saídas


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

Você também pode gostar