introdução ao simulink[1].pdf

37
Introdução ao Simulink Carlos André Vaz Junior [email protected] 2003

Upload: carolina-rodrigues

Post on 10-Aug-2015

146 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introdução ao Simulink[1].pdf

Introdução ao Simulink

Carlos André Vaz Junior [email protected]

2003

Page 2: Introdução ao Simulink[1].pdf

Objetivos

1) Iniciando o Simulink

1.1 A biblioteca Simulink/Continuous 1.2 A biblioteca Simulink/Math 1.3 A biblioteca Simulink/Sinks 1.4 A biblioteca Simulink / Sources

2) Exemplos

2.1 Exemplo: Criando uma simulação simples 2.2 Exemplo: Simulação usando modelo dinâmico 2.3 Exemplo: Controle (P) Feedback 2.4 Exemplo: Controle (PI) Feedback

3) Ajuste de controladores via método da sensibilidade limite

4) Ajuste de controladores via método da curva de reação do processo

Page 3: Introdução ao Simulink[1].pdf

1- Iniciando o Simulink

Use o botão “Simulink” ou o comando simulink.

A principal janela do Simulink, onde

estão dispostas as bibliotecas de blocos é

mostrada ao lado. Os blocos estão

agrupados por assunto. Para os propósitos

desta aula introdutória, serão necessários

apenas os blocos da biblioteca Simulink.

Expandindo a biblioteca Simulink,

encontra-se a sua lista de sub-bibliotecas.

Para esta introdução, utilizaremos apenas

as sub-bibliotecas Continuous (sistemas

contínuos), Math (Matemática), Sinks

(Saídas de simulação) e Sources (Entradas

de simulação).

Observe que as bibliotecas disponíveis variam em função das toolboxes

instaladas.

Page 4: Introdução ao Simulink[1].pdf

1.1- A biblioteca Simulink/Continuous

Expandindo a sub-biblioteca Continuous, encontra-se uma lista de blocos

de funções aplicáveis a sistemas contínuos. Entre estes blocos encontram-se

derivação e integração numéricas (fundamentais para a simulação de sistemas em

espaço de tempo), sistemas em espaço de estados, funções de transferência

(para a simulação de sistemas em espaço de frequências) e o bloco zeros-e-pólos

(funções de transferência com numerador e denominador fatorados).

Page 5: Introdução ao Simulink[1].pdf

1.2- A biblioteca Simulink/Math

Expandindo a sub-biblioteca Math, encontra-se uma lista de funções

matemáticas triviais, para utilização nos modelos. Todo o processamento das

entradas vai exigir a utilização de funções matemáticas. Muitas delas estão

contidas nesta biblioteca (por exemplo, somatório, funções trigonométricas, etc).

Page 6: Introdução ao Simulink[1].pdf

1.3- A biblioteca Simulink/Sinks

A sub-biblioteca Sinks possui uma lista de saídas de simulação

(visualização em display, em gráfico ou envio para variáveis do workspace).

Page 7: Introdução ao Simulink[1].pdf

1.4- A biblioteca Simulink/Sources

A sub-biblioteca Sources possui uma lista de entradas de simulação

(geradores de entradas na forma de rampa, pulsos, randômico, escala de tempo,

etc).

Page 8: Introdução ao Simulink[1].pdf

2 – Exemplos:

2.1) Exemplo: Criando uma simulação simples:

Para criar uma nova simulação do Simulink, clique no ícone de “criar

arquivo” no Library Browser (o ícone da folha em branco). A janela que surgirá

encontra-se abaixo. O simulador será construído de forma intuitiva, arrastando

para a janela de simulação blocos das bibliotecas do Library Browser. Após

construir o modelo, a simulação é executada.

Page 9: Introdução ao Simulink[1].pdf

Nesse primeiro exemplo vamos observar a geração de uma rampa e

observa-la:

O bloco de rampa possui três parâmetros de configuração:

Slope: taxa da rampa (slope=2: para cada 1 tempo, sobe 2 pontos)

Start time: tempo a partir do qual a rampa começa

Initial Output: valor inicial pra rampa

Page 10: Introdução ao Simulink[1].pdf

O bloco scope dispensa configuração. Assim podemos rodar a simulação!

O resultado obtido é visto no bloco scope:

DICA: caso o gráfico esteja fora de escala, aperte sobre o ícone do “binóculo”

para corrigi-la.

Experimente outros blocos do Simulink e observe os resultados. A maior

parte dos blocos é bastante simples de ser compreendida. Acostume-se com o

ambiente, seus recursos e suas funcionalidades!

Page 11: Introdução ao Simulink[1].pdf

2.2) Exemplo: simulação usando modelo dinâmico:

Vamos exemplificar a simulação de modelos dinâmicos com o Simulink

através de exemplos. O primeiro corresponde à 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 a

seguir descreve o sistema físico que será simulado.

Assumindo que:

(i) a densidade do líquido ρ e a área da seção transversal do tanque A

são constantes.

(ii) a relação entre a vazão e a carga é linear, Rhq /3 = .

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

tanque:

321 qqqdtdh

A ρρρρ −+=

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

Rh

qqdtdh

A ρρρρ −+= 21

q1

q3

q2

h

A

Page 12: Introdução ao Simulink[1].pdf

Introduzindo as variáveis-desvio:

''2

'1

'hRqRq

dtdh

AR −+=

Aplicando a Transformada de Laplace nos termos da equação anterior:

)()()()(' ''2

'1 shsRqsRqshsAR −+=

)(1

)(1

)(' '2

'1 sq

sARR

sqsAR

Rsh

++

+=

Logo as funções de transferência são:

1)(

)()('

1'1 +

==s

KsG

sqsh p

τ

1)(

)()('

2'2 +

==s

KsG

sqsh p

τ

onde:

AR

RK p

=

=

τ

Page 13: Introdução ao Simulink[1].pdf

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

R = 6.37

25.1

37.6

==

==

AR

RK p

τ

Page 14: Introdução ao Simulink[1].pdf

O diagrama de blocos que representa o modelo a ser simulado neste

exemplo está mostrado na figura abaixo (arquivo exemplo1.mdl):

O propósito de cada um dos blocos é

• Step: gerar uma entrada-degrau

• Sum: calcular a soma de entradas

• Transfer Fcn: calcular o valor da função de transferência de uma entrada

• Scope: mostrar graficamente o resultado da simulação em gráfico XY, onde o

eixo X corresponde ao tempo de simulação (gerado automaticamente).

A seguir veremos em detalhes a configuração de cada bloco. Após montar o

simulador, execute e observe o resultado mostrado em forma de gráfico!

Page 15: Introdução ao Simulink[1].pdf

a) Bloco Step:

onde:

step time: determina o instante do degrau

initial value: valor antes do degrau

final value: valor depois de degrau

Page 16: Introdução ao Simulink[1].pdf

b) Bloco Transfer Function:

onde:

numerator: numerador (em potencias decrescentes de s)

denominator: denominador (em potencias decrescentes de s)

absolute tolerance: tolerância

Page 17: Introdução ao Simulink[1].pdf

c) Bloco Sum:

onde:

icon shape: formato do bloco

list of signs: sinais das entradas e suas posições

Page 18: Introdução ao Simulink[1].pdf

2.3) Exemplo: Controle (P) Feedback:

Considerando um sistema de controle de nível mostrado na figura a seguir.

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

As dinâmicas do medidor e da válvula de controle serão desconsideradas.

O propósito de cada um dos blocos é

• Step: gerar uma entrada-degrau

• Sum: calcular a soma de entradas

• Transfer Fcn: calcula o valor da função de transferência de uma entrada

• Scope: mostra graficamente o resultado da simulação em gráfico XY, onde o eixo

X corresponde ao tempo de simulação.

• Gain: ganho proporcional

• PID: calcula a função de transferência de um controlador PID

q1

q3

q2

h

A

LT LC hm

Page 19: Introdução ao Simulink[1].pdf

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

psimKG vv min/0103.0 3==

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

mpsiKG mm /24==

Inicialmente vamos simular sem variar o SP, para isso é necessária a seguinte

estrutura de blocos (ver arquivo exemplo2.mdl).

Page 20: Introdução ao Simulink[1].pdf

O bloco Step na verdade não está aplicando degrau algum, como mostra a

configuração abaixo (valor inicial e valor final idênticos):

DICA: estamos lidando com variável desvio!

Page 21: Introdução ao Simulink[1].pdf

Bloco Gain2 (representa a função de transferência do sensor):

O bloco PID é o controlador, aqui configurado para ter apenas ação proporcional.

Page 22: Introdução ao Simulink[1].pdf

O bloco Gain1 representa a função de transferência da válvula:

O bloco Transfer Fcn2 é a função de transferência que representa o processo:

Page 23: Introdução ao Simulink[1].pdf

O bloco SUM é a diferença entre o valor medido (-) e o SP (+). Ele informa

o erro para o PID.

DICA: para calcular o erro compare informações na mesma unidade (ou seja:

não esqueça de passar a saída do processo e o degrau do SP pelo sensor).

O resultado, como esperado, é um processo em estado estacionário (o

gráfico exibe o nível do tanque em variável desvio):

Page 24: Introdução ao Simulink[1].pdf

Agora quero aplicar um degrau no SP:

A resposta a uma perturbação degrau de 1m no SET-POINT para um

controlador puramente proporcional com constante Kc igual a 1 é mostrado a

seguir. O processo deveria atingir um novo estado estacionário, 1m acima do

anterior, mas por causa do off-set atingimos apenas 0.6m acima (gráfico sempre

em variável desvio).

Page 25: Introdução ao Simulink[1].pdf

A resposta a uma perturbação degrau de 1m no SET-POINT para um

controlador puramente proporcional com constante Kc igual a 2 é:

A resposta a uma perturbação degrau de 1m no SET-POINT para um

controlador puramente proporcional com constante Kc igual a 5 é:

Page 26: Introdução ao Simulink[1].pdf

Pode-se verificar que o aumento de Kc provoca uma redução do off-set e

do tempo necessário para o novo estado estacionário ser alcançado. No

entanto, para muitos problemas de controle, ao se elevar o valor de Kc pode-se

resultar em respostas oscilatórias e instáveis devido a efeitos adicionais como

lags e tempo morto que foram negligenciados na presente análise.

Page 27: Introdução ao Simulink[1].pdf

2.4) Exemplo: Controle (PI) Feedback:

Utilizando um controlador PI, pode-se verificar que a ação integral leva à

eliminação do offset para qualquer degrau em uma variável de entrada ou no set-

point. Porém, pode causar overshoot e alguma instabilidade. Testaremos primeiro

com o seguinte ajuste PID:

Page 28: Introdução ao Simulink[1].pdf

A resposta será:

Vemos que o tempo de simulação não foi suficiente para que o processo atingisse

um novo estado estacionário. Devemos aumentar o tempo de simulação:

Page 29: Introdução ao Simulink[1].pdf

O resultado então passa a ser:

Experimente outras combinações de valores para ação integral e

proporcional no seu controlador.

Neste momento torna-se necessário destacar que o bloco do controlador

PID expressa a função de transferência do controlador PID de uma forma diferente

do que é classicamente apresentado na disciplina de controle. Compare a seguir o

Gc usualmente utilizado e o apresentado pelo Simulink:

sDsI

PsGc ++=)( → Simulink

++= s

sKcsGc D

I

ττ

11)( → Forma clássica

Page 30: Introdução ao Simulink[1].pdf

Mantendo um mesmo valor de τI igual a 0.5 min e variando Kc, pode-se

observar que aumentando Kc a resposta dinâmica se torna mais rápida. Para

uma perturbação de 1m no SP, temos os seguintes perfis:

τI=0.5 min (I=2) τI=0.5 min (I=2) τI=0.5 min (I=2)

Kc=2 Kc=5 Kc=12.5

Além disso, a resposta dinâmica se torna mais oscilatória na medida que

se mantém Kc e reduz τI. (aumenta I):

τI=1.25 min (I=0.8) τI=0.5 min (I=2) τI=0.2 min (I=5)

Kc=5 Kc=5 Kc=5

Page 31: Introdução ao Simulink[1].pdf

3) Ajuste de controladores via método da sensibilidade limite

- Aplicado a sistemas de controle em malha fechada

- Controlador para aplicação deste método é considerado puramente

proporcional

- Perturbações degrau no SP

- Observar a resposta Ym(t)

- Variar os valores de Kc até a malha oscilar continuamente

- Determinar Kclim e o período limite Plim.

- Utilizar as correlações ZN para determinar parâmetros do controlador.

Seja um sistema de controle feedback com Gc=Kc (vou testar vários

valores), Gv=2, Gm=0.25 e 15

4 2

+=

se

Gps

O propósito de cada um dos blocos é

• Step: gerar uma entrada-degrau

• Clock: gerar um vetor de tempos de simulação

• Sum: calcular a soma de entradas

• Transfer Fcn: calcula o valor da função de transferência de uma entrada

• Scope: mostra graficamente o resultado da simulação em gráfico XY, onde o eixo

X corresponde ao tempo de simulação.

• To workspace: armazena a entrada em uma variável especificada

• Gain: ganho proporcional

• PID: calcula a função de transferência de um controlador PID

O ponto principal a ser destacado neste método, e que pode implicar em

erros durante a sua a implementação, é o fato do controlador ser puramente

proporcional.

Page 32: Introdução ao Simulink[1].pdf

A figura a seguir mostra o diagrama de blocos a ser construído no Simulink

(ver arquivo Verficando_DSM.mdl):

O método em questão é iterativo, ou seja, o usuário deve variar Kc até

encontrar uma “oscilação sustentada” na variável controlada. O valor de Kc que

implica neste tipo de comportamento é chamado Kc limite.

Nas figuras abaixo verifica-se que o Kc limite para essa malha é igual a 3.

Esse valor será utilizado nas correlações de Z-N modificado para obter, então, o

ajuste do controlador.

Page 33: Introdução ao Simulink[1].pdf

Kc=2.5 Kc=3 Kc=3.2

O próximo passo é obter o período limite de oscilação, que pode ser obtido

diretamente através do gráfico de Kc=3. Obter o período a partir do gráfico gera

perda de precisão.

Page 34: Introdução ao Simulink[1].pdf

Outra técnica, mais precisa, é obter através da função ginput do Matlab.

Para utilizar o Matlab, foi incluído no diagrama dois blocos de armazenamento de

variáveis (To Workspace). É importante lembrar de configurar o formato da

variável a ser criada que no caso deverá ser um vetor, para isso deve-se optar por

array na tela de configuração do bloco To workspace:

Tendo criado uma variável T correspondente ao tempo de simulação e uma

variável H correspondente à variável controlada deve-se então plotar H (eixo y)

contra T (eixo x).

Em seguida será redefinida a escala para facilitar a visualização de um

período. Use o comando axis.

O próximo passo é utilizar a função ginput que retorna as coordenadas de

pontos clicados sobre o gráfico T x Y. Serão obtidas as coordenadas para dois

pontos marcados, cada ponto representa os extremos de um período de oscilação.

Page 35: Introdução ao Simulink[1].pdf

De posse do Kclimite e do Plimite (período) o próximo passo é utilizar as

tabelas de ajuste Z-N de controladores.

Page 36: Introdução ao Simulink[1].pdf

4) Ajuste de controladores via método da curva de reação do processo

- Configurar o controlador para o modo manual (ver figura abaixo)

- Perturbar a saída de controle

- Registrar a variável medida

- Obter o valor da derivada no ponto de inflexão e determinar o tempo

correspondente ao ponto de interseção da tangente no ponto de inflexão

com o eixo do tempo.

- Aplicar as correlações de ZN para o método da curva de reação

Arquivo exemplo4.mdl:

Modo manual

Page 37: Introdução ao Simulink[1].pdf

Para uma perturbação degrau igual a 1 aplicado no bloco “step 1” temos a

seguinte curva de reação:

Duas informações devem ser obtidas do gráfico anterior:

a) S*: o coeficiente angular no ponto de inflexão (normalizado pela amplitude

do degrau)

b) θ: tempo morto do processo.