Curso MATLAB 6 smlink
-
Upload
ngadelha2009 -
Category
Documents
-
view
58 -
download
7
Transcript of Curso MATLAB 6 smlink
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 Math
Biblioteca Sources
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 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.
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 .
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:
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
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
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
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 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.
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
q3
q2
h
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:
Rhq /3
R
hqq
dt
dhA 21
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:
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
Exemplo Funções de Transferência :
Corrente q1
Corrente q2
Exemplo Funções de Transferência :
Degrau começano tempo zero
Degrau começaNo tempo dez
Bloco Funçãode Transferência
Exemplo Funções de Transferência :
Resultado obtido:
1º estadoestacionário 2º estado
estacionário
1ª perturbação
2ª perturbação
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:
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:
Parâmetrosfreqüentementealterados
Parâmetros raramente alterados(máscara)
Biblioteca Functions & Tables
Exemplo S-function:
Configurando o bloco S-function:
Nome do arquivo com as equações
Parâmetros alteradospela 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:
• 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)
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