Curso MATLAB 6 smlink

42
Curso MATLAB 6 Instrutor: Marcelo Escobar Simulink

Transcript of Curso MATLAB 6 smlink

Page 1: Curso MATLAB 6 smlink

Curso MATLAB 6

Instrutor: Marcelo Escobar

Simulink

Page 2: Curso MATLAB 6 smlink

Curso MATLAB 6

Exemplo: Simulação de um Reator

Page 3: Curso MATLAB 6 smlink

Simulink:

Referências:

Page 4: Curso MATLAB 6 smlink

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.

Page 5: Curso MATLAB 6 smlink

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.

Page 6: Curso MATLAB 6 smlink

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.

Page 7: Curso MATLAB 6 smlink

Criando Modelos:

Biblioteca Math

Biblioteca Sources

Exemplo: Adição de sinais

Page 8: Curso MATLAB 6 smlink

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

Page 9: Curso MATLAB 6 smlink

Plotando Resultados:

Dois ou mais gráficos:

Page 10: Curso MATLAB 6 smlink

Parâmetros de Simulação:

Tempo inicial

Tempo final

Page 11: Curso MATLAB 6 smlink

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.

Page 12: Curso MATLAB 6 smlink

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

Page 13: Curso MATLAB 6 smlink

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.

Page 14: Curso MATLAB 6 smlink

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.

Page 15: Curso MATLAB 6 smlink

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 queremosanalisar é o comportamento da variável de saída sujeita a um sinalde 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.

Page 16: Curso MATLAB 6 smlink

Exemplo de Modelo:Precisamos saber então como a partir das equações diferenciaisque governam o nosso processo, podemos fornecer esse modelo aoSimulink.Exemplo: Balanço de Massa em um tanque.

massa específica vazão volumétrica altura gravidade

Saídas: [ variáveis que queremos obter] -hEstados: [propriedades que variam com tempo nas edif]- hEntradas: [ propriedades que afetam nossas variáveis de saída]E variam com o tempo] -FiParâmetros: [ propriedades fixas do modelo] – A e k

hAm ..

se mmdt

dm

taxam

massam

g

h

F

ii Fm .

hkFs .

hkFdt

dhA in .

Page 17: Curso MATLAB 6 smlink

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, nessecaso, 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:

Page 18: Curso MATLAB 6 smlink

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 muitocomum, 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 m2.

Fi h

Page 19: Curso MATLAB 6 smlink

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

Modelo

A B

n- numero de saídas

m-numero de equações

p-numero de entradas

e

de

df

de

df

de

dfde

df

de

df

de

dfde

df

de

df

de

df

s

ds

df

ds

df

ds

dfds

df

ds

df

ds

dfds

df

ds

df

ds

df

dt

sd

p

mmm

p

p

n

mmm

n

n

..

21

2

2

2

1

2

1

2

1

1

1

21

2

2

2

1

2

1

2

1

1

1

),(

),(

segy

sefdt

ds

nn

nn

Page 20: Curso MATLAB 6 smlink

Representação em Espaço de Estados:

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

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.

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.

estsss

e

de

dg

de

dg

de

dgde

dg

de

dg

de

dgde

dg

de

dg

de

dg

s

ds

dg

ds

dg

ds

dgds

dg

ds

dg

ds

dgds

dg

ds

dg

ds

dg

y

p

mmm

p

p

n

mmm

n

n

..

21

2

2

2

1

2

1

2

1

1

1

21

2

2

2

1

2

1

2

1

1

1

Page 21: Curso MATLAB 6 smlink

Representação em Espaço de Estados:

Page 22: Curso MATLAB 6 smlink

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.

Page 23: Curso MATLAB 6 smlink

Funções de Transferência :

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

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 deProcessos, é 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 analisede dinâmica de sistemas,com um conhecimento teórico mais aprofundado sobre controle de processos tudo ficará muito mais claro.

Page 24: Curso MATLAB 6 smlink

Propriedades das Transformadas:

Page 25: Curso MATLAB 6 smlink

Representação em Funções de Transferência :

Page 26: Curso MATLAB 6 smlink

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

q3

q2

h

A

Page 27: Curso MATLAB 6 smlink

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:

Rhq /3

R

hqq

dt

dhA 21

Page 28: Curso MATLAB 6 smlink

Exemplo Funções de Transferência :

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

AR

RK p

onde:

Page 29: Curso MATLAB 6 smlink

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)^2A = 0.196

R = 6.37 25.1

37.6

AR

RK p

Page 30: Curso MATLAB 6 smlink

Exemplo Funções de Transferência :

Corrente q1

Corrente q2

Page 31: Curso MATLAB 6 smlink

Exemplo Funções de Transferência :

Degrau começano tempo zero

Degrau começaNo tempo dez

Bloco Funçãode Transferência

Page 32: Curso MATLAB 6 smlink

Exemplo Funções de Transferência :

Resultado obtido:

1º estadoestacionário 2º estado

estacionário

1ª perturbação

2ª perturbação

Page 33: Curso MATLAB 6 smlink

S-functions:

Equações para modelar um CSTR:

FFdtdV A

ARTE

AAA

AA CekCC

VF

dtdC

0

P

cARTE

AP

A

VCTTUACeHVkTTCF

dtdT

0

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 34: Curso MATLAB 6 smlink

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)

Page 35: Curso MATLAB 6 smlink

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

Page 36: Curso MATLAB 6 smlink

Exemplo S-function:

Parâmetrosfreqüentementealterados

Parâmetros raramente alterados(máscara)

Biblioteca Functions & Tables

Page 37: Curso MATLAB 6 smlink

Exemplo S-function:

Configurando o bloco S-function:

Nome do arquivo com as equações

Parâmetros alteradospela máscara

Page 38: Curso MATLAB 6 smlink

Exemplo S-function:

Criando uma máscara:

Page 39: Curso MATLAB 6 smlink

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]';

Page 40: Curso MATLAB 6 smlink

Exemplo S-function:

Criando o arquivo com as equações:

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

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

Page 41: Curso MATLAB 6 smlink

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

Page 42: Curso MATLAB 6 smlink

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