Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Mini-curso de Simulink Controle Automático, Notas de estudo de Gestão da Qualidade

Arquivo que explica o funcionamento so simulink

Tipologia: Notas de estudo

2012

Compartilhado em 09/05/2012

pedro-alexandrino-bispo-neto-4
pedro-alexandrino-bispo-neto-4 🇧🇷

1 documento

1 / 46

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
CENTRO TECNOLÓGICO
DEPARTAMENTO DE INFORMÁTICA
Mini-curso de Simulink
Controle Automático I
Agosto de 2009
PET Engenharia de Computação
www.inf.ufes.br/~pet
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e

Pré-visualização parcial do texto

Baixe Mini-curso de Simulink Controle Automático e outras Notas de estudo em PDF para Gestão da Qualidade, somente na Docsity!

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO

CENTRO TECNOLÓGICO

DEPARTAMENTO DE INFORMÁTICA

Mini-curso de Simulink

Controle Automático I

Agosto de 2009

PET Engenharia de Computação www.inf.ufes.br/~pet

Sumário

1 Introdução

O SIMULINK é uma ferramenta utilizada para Modelagem, Simulação e Análise de Sistemas Dinâmicos. O programa se aplica a sistemas lineares e não lineares, discretos e contínuos no tempo. Ao contrário do MATLAB, que utiliza linha de comando, o Simulink utiliza uma interface gráfica amigável, representando o sistema por diagramas de blocos, no qual cada bloco re- presenta uma operação matemática de entrada e saída que chama-se função de transferência do bloco. Nos sistemas contínuos, estas relações são obtidas utilizando-se a transformada de La- place nas equações. Não podemos deixar de enfatizar que apesar do simulink ser uma aplicação específica, este não trabalha independentemente do MATLAB.

Curiosidade O Simulink é um programa para resolver sistemas dinâmicos, ele faz uso de algoritmos de integração para resolver as equações numericamente. Dos diversos algoritmos de integração, você provavelmente fará uso do Runge-Kutta de 4a^ e 5a^ ordens ou do algoritmo de Euller. Mais detalhes sobre algoritmos de integração podem ser obtidos no "Simulink User’s Guide".

2 Acessando o Simulink

Na linha de comando do MATLAB deve-se digitar:

Exemplo 1: Acessando o Simulink

1 >> s i m u l i n k

Ou pode-se clicar no seguinte ícone da barra de ferramentas toolbar:

Figura 1: Ícone do Simulink

A janela da biblioteca de blocos se abrirá como na Figura 2.

Figura 2: Biblioteca de Blocos

Para realizar uma construção da modelagem do sistema selecione FileNewModel, ou se preferir, utilize a tecla de atalho CTRL + N. Uma janela nomeada untitled como na Figura 3 se abrirá.

From Workspace Block Deve-se definir os pares coordenados em uma matriz no MATLAB, e importá-lo a partir do workspace através do bloco From Workspace Block. Este é o bloco que permite ao usuário criar seus próprios sinais de entrada. Nas propriedades deste bloco, devem-se definir quais serão as matrizes utilizadas como fonte de sinal. Estas matrizes devem ser previamente definidas no MATLAB antes da execu- ção da simulação, a primeira coluna da matriz deve ser preenchida com os valores da variável independente, que corresponde ao tempo da simulação. As colunas seguintes são variáveis re- ferentes à variável independente.

Exemplo Considere o sinal definido por:

u(t) = 2 × t;

Para gerar a matriz de pares coordenados, devemos digitar os seguintes comandos na área de trabalho do MATLAB: Exemplo 2: Matriz de pares coordenados

1 >> t = 0 : 0. 1 : 1 0 0 ; 2 >> u = 2 ∗ t ; 3 >> A = [ t ’ , u ’ ] ;

Definida a matriz a ser usada, deve-se adicionar o bloco From Workspace Block da biblio- teca Sources ao modelo. Com um duplo clique sobre o bloco deve-se digitar o nome da matriz definida no MATLAB no campo Data, neste caso “A”. Pronto, o bloco já está configurado e pode ser usado.

Caso o sinal de entrada tenha mais que uma dimensão, deve-se definir os valores de entrada usando-se uma struct. O tempo deve ser definido como um vetor no campo time, enquanto que os valores referentes à variável independente devem ser definidos como colunas no campo signals.values. Ainda deve ser informado o número de dimensões no campo signals.dimensions. Usando-se os mesmos valores do exemplo 2, pode-se definir uma struct “a” com os comandos apresentados no exemplo 3.

Exemplo 3: Matriz de pares coordenados

1 >> a. t i m e = t ; 2 >> a. s i g n a l s. v a l u e s = u ’ ; 3 >> a. s i g n a l s. d i m e n s i o n s = 1 ;

From File Input Block A matriz é agora carregada a partir de um arquivo gerado pelo MATLAB, assim o sinal de entrada pode ser salvo. Uma diferença importante é que é que os sinais devem agora ser carre- gados em linhas.

Exemplo A partir do mesmo exemplo, deve-se salvar a matriz gerada em um arquivo com extensão .mat (arquivo usado pelo MAtlab).

Exemplo 4: Salvando em um arquivo

1 >> B = A ’ ; 2 >> s a v e exemplo. mat B ;

No simulink, deve-se adicionar o bloco From File Input Block da biblioteca Sources. Com um duplo clique sobre o bloco deve-se digitar no campo File Name o nome do arquivo, neste caso “exemplo.mat”.

3.1.2 Combinando Entradas

Através de combinações de blocos da biblioteca pode-se obter sinais personalizados.

Exemplo Para criar uma simulação de um impulso unitário, podemos gerar um degrau crescente em um instante de tempo to tO seguido de um sinal degrau decrescente e com mesma magnitude em um instante posterior tf. Logo, devemos utilizar duas fontes de função degrau.

3.2 Diagrama de blocos

É a modelagem por meio de blocos utilizando-se a transformada de Laplace nas equações do sistema.

3.3 Saídas

Os dispositivos de saída são os blocos que permitem verificar o comportamento do sistema, estes blocos são encontrados na biblioteca de dispositivos de saída (Sinks).

Scope O osciloscópio produz gráficos a partir de dados do modelo. Não existem parâmetros a se- rem configurados.

XY Graph O bloco de XY Graph produz um gráfico idêntico ao gráfico produzido pelo comando plot do MATLAB. Para isso, devem-se configurar os valores de mínimos e máximos, da horizontal e vertical.

Display O bloco Display produz uma amostragem digital do valor de sua entrada.

To File Pode-se ainda armazenar os dados em arquivos do MATLAB para usos posteriores. Deve-se definir o nome do arquivo a ser criado.

To Workspace Pode-se ainda enviar os dados para a área de trabalho do MATLAB utilizando o bloco To Workspace Block. Deve-se definir o nome da matriz.

Stop Simulation O bloco de parada (Stop Simulation) causa a parada da simulação quando a sua entrada for diferente de zero.

  • Na barra de menu, selecione Simulation e escolha Configuration Parameters. Aqui são definidos, principalmente, o tempo inicial e final da simulação, assim como o passo da simulação. Em Stop Time, coloque 20. Clique em OK para confirmar as alterações.
  • Clique em Start Simulation para realizar a simulação;
  • Dê um duplo clique sobre o osciloscópio para visualizar a onda;
  • Para um melhor visualização da onda, clique no botão Autoscale, simbolizado por um binóculos. Também é possível dar um zoom num local específico usando-se as lupas.
  1. Armazenando o trabalho...
  • Para armazenar o trabalho clique em File/Save ou pressione CTRL+S;
  • E entre com o local e nome da simulação;
  • O tipo do arquivo é * mdl.

Ao final dos passos citados acima, o diagrama deverá estar descrito como na Figura 4. E a forma de onda observada em nosso exemplo deverá ser como na Figura 5.

Figura 4: Gerador de Sinais

Figura 5: Forma de Onda do Gerador de Sinais

4.2 Problema com uma Equação Diferencial

Vamos modelar a seguinte equação diferencial:

dx dt

= sen(t)

Com a seguinte condição inicial: x(0) = 0. Logo, teremos:

x(t) =

0

sen(t)dt

  1. Monte o diagrama de blocos como na Figura 6.
    • Insira o bloco Sine Wave (onda senoidal) da biblioteca Source;
    • Insira o bloco Integrator (integrador) da biblioteca Continuous (blocos lineares);
    • Insira o Scope (Osciloscópio) da biblioteca Commonly Used Blocks;

O figura 6 mostra o diagrama de blocos criados no simulink.

Figura 7: Forma de Onda da Integral do Seno

Abaixo outro exemplo para que o leitor se familiarize mais com o simulink.

4.3 Crescimento de Bactérias

Scheinerman descreveu um modelo simples do crescimento de bactérias isoladas do ambiente externo num pote. Admite-se que as bactérias nascem numa taxa proporcional ao número de bactérias presentes e que elas morrem a uma taxa proporcional ao quadrado do número de bactérias presentes. Sendo x o número de bactérias presentes no pote, a taxa em que as bactérias nascem é definida por:

T axa de Natalidade = n × x

E a taxa em que elas morrem:

T axa de Mortalidade = m × x^2

A taxa total de mudança na população de bactérias é a diferença entre a natalidade e a mortalidade de bactérias. O sistema pode ser então descrito pela equação diferencial a seguir:

dx dt

= n × x − m × x^2

Partindo disto será então construído o modelo do sistema dinâmico supondo que n = 1 bacteria/hora e m = 0 , 5 bacteria/hora. Será determinado o números de bactérias contidas no pote após 1 hora, admitindo que inicialmente existiam 100 bactérias presentes. O diagrama de blocos que representa essa modelo é mostrado na figura 8.

Figura 8: Diagrama de Blocos

Assim, siga os seguintes passos para montar o modelo da Figura 8.

  1. Novo Modelo
    • Clique na barra de Menu, escolhendo FILE: NEW;
  2. Abra a biblioteca linear Commonly Used Blocks
    • Arraste o integrador para a janela do modelo;
    • Insira dois blocos Gain (Ganho)
    • O Simulink não permite que exista mais de um bloco com o mesmo nome, renomeie um dos blocos Gain
    • Arraste ainda um bloco de Sum (Soma);
  3. Abra a biblioteca linear Commonly Used Blocks
    • Arraste o integrador para a janela do modelo;
    • Insira dois blocos Gain (Ganho);
    • E insira um bloco scope (osciloscópio);
  4. Abra a biblioteca Math Operations (Operações Matemáticas )
    • Insira o bloco Dot Product (Produto);
    • Insira o bloco Sum (Soma);
  5. Conexão dos blocos
    • Por fim, conecte os blocos.

Figura 10: Modelo do Ganho Proporcional

  1. Monte o diagrama de blocos como na Figura 10.
    • Insira o bloco Step (saída a um degrau) da biblioteca Source;
    • Insira o bloco Gain (elemento de ganho) da biblioteca Commonly Used Blocks;
    • Insira o Scope (Osciloscópio) da biblioteca Commonly Used Blocks;
    • Insira o To Workspace (Bloco de transferência entre simulação e workspace) da biblioteca Sinks (dispositivos de saída).
  2. Save format
    • Modifique a propriedade save format dos blocos To workspace para array. Por padrão o Matlab exportar os dados em structs ao invés de vetores.
  3. A variável Kp (ganho proporcional) utilizada no MATLAB pode ser utilizada como argu- mento do bloco de ganho. Ajuste o ganho Kp e verifique o conteúdo das variáveis u e y do MATLAB (variáveis referidas nos blocos To Workspace).
  4. Tome a seguinte situação, digite Kp = 3 na linha de comando do MATLAB:

Exemplo 5: Atribuição de Kp 1 >> kp = 3 ;

  1. Execute a simulação no Simulink.
  2. Volte para o MATLAB e trace o gráfico das variáveis u e y, estas variáveis foram criadas através do Simulink e estão presentes no workspace através dos comandos mostrados no exemplo 6. O gráfico gerado é mostrado na figura 11.

Exemplo 6: Plotando variáveis 1 >> p l o t ( u ) 2 >> hold on 3 >> p l o t ( y ) 4 >> g r i d 5 >> a x i s ( [ 0 50 −0.5 4 ] )

Figura 11: Gráfico das variáveis u e y

A forma de onda observada no osciloscópio é verificada na Figura 12. Percebe-se que é a mesma forma de onda da Figura 11.

Figura 13: Resposta verificada no osciloscópio

6 Sistemas Contínuos no Tempo

Sistemas contínuos são aqueles que são modelados por equações diferenciais. Os sistemas mais simples são escalares e pode-se dizer que são lineares e invariantes no tempo.

6.1 Sistemas Escalares Lineares

São modelados através de blocos da biblioteca linear.

6.1.1 Bloco Integrador

Os parametros do bloco integrador podem ser observados na Figura 14.

Figura 14: Parametros do Bloco Integrador

O bloco integrador pode ser utilizado com um sinal de reset, a saída sempre retorna à con- dição inicial toda vez que o sinal de reset dispara. As opções de reset externo (External reset) são:

  • None: O reset é desabilitado;
  • Rising: A saída é levada à condição inicial quando o sinal de reset passa pelo zero no sentido crescente;
  • Falling: A saída é levada à condição inicial quando o sinal de reset passa pelo zero no sentido decrescente;
  • Either: A saída é levada à condição inicial quando o sinal de reset passa pelo zero;

Quando o reset externo é ativado, aparece uma segunda entrada no bloco integrador (entrada de baixo). Conecte a essa entrada o sinal que irá controlar o reset. A saída do integrador pode ser limitada. Para tanto, deve-se habilitar o Limit output (limite de saída) e escolher o limite de saturação superior e inferior. Pode-se também configurar a saída inicial. Para isso deve-se escolher como fonte da condição inicial o parâmetro Internal (interno) e definir a condição inicial. A opção Show saturation port (mostrar porta de saturação) habilita uma saída adicional no bloco (saída de baixo) que indica o estado de saturação. A opção Show state port (mostrar porta de estado) cria uma saída adicional no bloco. Esta saída contém o mesmo sinal de saída do integrador. Deve-se então usar a saída de estado para este acionamento em duas ocasiões: se a saída do bloco integrador realimenta (feedback) o mesmo bloco como reset ou como condição inicial, e se deseja utilizar a saída do integrador como acionador de um subsistema com execução condicionada a este bloco. A Figura 15 ilustra um modelo de um bloco integrador com sinal de reset configurado para falling e limite de saturação superior igual a 5.