Upload
carolina-rodrigues
View
146
Download
2
Embed Size (px)
Citation preview
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
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.
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).
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).
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).
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).
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.
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
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!
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
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
=
=
τ
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
τ
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!
a) Bloco Step:
onde:
step time: determina o instante do degrau
initial value: valor antes do degrau
final value: valor depois de degrau
b) Bloco Transfer Function:
onde:
numerator: numerador (em potencias decrescentes de s)
denominator: denominador (em potencias decrescentes de s)
absolute tolerance: tolerância
c) Bloco Sum:
onde:
icon shape: formato do bloco
list of signs: sinais das entradas e suas posições
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
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).
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!
Bloco Gain2 (representa a função de transferência do sensor):
O bloco PID é o controlador, aqui configurado para ter apenas ação proporcional.
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:
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):
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).
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 é:
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.
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:
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:
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
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
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.
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.
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.
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.
De posse do Kclimite e do Plimite (período) o próximo passo é utilizar as
tabelas de ajuste Z-N de controladores.
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
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.