33
Matlab Simulink Prof José Luiz de Oliveira

Simulink -oliveira

Embed Size (px)

Citation preview

Page 1: Simulink  -oliveira

Matlab

Simulink

Prof José Luiz de Oliveira

Page 2: Simulink  -oliveira

2

Simulink

• O Simulink é um pacote de software para modelar, simular e analisar sistemas dinâmicos.

• É mais poderoso do que o ltiview, uma vez que o Simulink pode também analisar sistemas não-

lineares e variantes no tempo.

• Suporta sistemas lineares e não-lineares, modela no tempo contínuo, no tempo amostrado

ou num híbrido dos dois.

Page 3: Simulink  -oliveira

3

Exemplo de simulação de sistema • No Matlab, digite o comando “thermo”.

Page 4: Simulink  -oliveira

4

Simulação da termodinâmica de uma casa

O demo modela a termodinâmica de uma

casa. O termostato é ajustado para 70 graus

Fahrenheit pelo Set Point e é afetado pela

temperatura exterior Text, que varia pela

aplicação de uma onda senoidal (Daily

Temp Variation) com amplitude de 15 graus

numa temperatura base (Avg Outdoor

Temp) de 50 graus. Isto simula as flutuações

diárias de temperatura.

O modelo usa subsistemas para simplificar o

modelo do diagrama e cria sistemas que

podem ser reutilizados. Um subsistema é um

grupo de blocos que é representado por um

bloco Subsystem. Este modelo contém cinco

subsistemas: um nomeado House, outro

Thermostat, e três subsistemas conversores

de temperatura (dois convertem Fahrenheit

para Celsius e um converte Celsius para

Fahrenheit)..

Page 5: Simulink  -oliveira

5

Quando a simulação terminar as temperaturas

interna e externa aparecerão no plot Indoor

vs. Outdoor Temp do osciloscópio Thermo

Plots como sinais amarelo e magenta,

respectivamente. O custo cumulativo do

aquecimento aparece no plot Heat Cost ($).

Page 6: Simulink  -oliveira

6

Simulink• Para começar a usá-lo, digite o comando

simulink no Matlab ou clique no ícone

Page 7: Simulink  -oliveira

7

Grupo: Sources

Alguns blocos comumente usados em controle:

Chirp Signal gera uma onda senoidal cuja freqüência

aumenta numa taxa linear com tempo.

Clock determina o tempo atual da simulação para cada

etapa da simulação. Este bloco é útil para outros blocos

que necessitem do tempo da simulação.

Constant gera um valor constante real ou complexo. .

From Workspace lê dados do espaço de trabalho do

MATLAB.

Ramp gera um sinal que começa num tempo e valor

especificados e muda segundo uma taxa especificada.

Sine Wave fornece uma senoidal. O bloco pode operar

na modalidade baseada no tempo ou baseada em

amostras.

Step fornece um degrau entre dois níveis definíveis

num tempo especificado.

Page 8: Simulink  -oliveira

8

Grupo: Math Operations

Alguns blocos comumente usados em controle:

Nota: Muitas outras funções matemáticas estão disponíveis. Certifique-se

da descrição precisa de cada bloco antes de usá-lo.

Gain multiplica a entrada por um valor constante (ganho).

Product executa a multiplicação ou a divisão de suas entradas.

Sum executa a adição ou a subtração de suas entradas.

Trigonometric Function executa numerosas funções

trigonometricas comuns. Tais como: sin, cos, tan, asin, acos, atan,

atan2, sinh, cosh, tanh, asinh, acosh, e atanh.

Page 9: Simulink  -oliveira

9

Grupo: Sinks

Alguns blocos comumente usados em controle:

Nota: Ao usar-se o bloco To workspace, ajuste o “save format” à “Array” a

fim receber a variável como um vetor no workspace (espaço de trabalho).

Scope indica sua entrada em função do tempo de simulação.

To Workspace escreve sua entrada no espaço de trabalho.

Page 10: Simulink  -oliveira

10

Grupo: Sinks

• Pode-se salvar dados do bloco Scope no workspace (pode-se fazer isto com o bloco “Save to workspace” no grupo “Sinks”)

• Pode-se visualizar mais que um sinal no Scope no mesmo eixo ou em eixos separados.

Usando-se o bloco Scope

Page 11: Simulink  -oliveira

11

Grupo: Sinks

Usando-se o bloco Scope

• Setando o número de

eixos para o Scope

• Salvando os dados para

o espaço de trabalho

(workspace)

Page 12: Simulink  -oliveira

12

Usando o bloco Scope

• Setando o número de

eixos para o scope

• Salvando os dados para

o espaço de trabalho

(workspace)

Page 13: Simulink  -oliveira

13

Grupo: Signal Routing

Alguns blocos comumente usados em controle:

Bus Creator combina um conjunto de sinais em um bus (barra-

ônibus), isto é, um grupo de sinais representados por uma única

linha em um diagrama de bloco.

Bus Selector recebe sinal de um bus ou de um multiplexador e

separa-o em seus sinais originais.

Mux combina suas entradas em um único vetor de saída.

Demux extrai os componentes de um sinal de entrada e fornece os

componentes como sinais separados.

Page 14: Simulink  -oliveira

14

Grupo: Continuous

Alguns blocos comumente usados em controle:

Derivative aproxima a derivada de sua entrada computando

onde du é a mudança no valor da entrada e dt é a mudança do

tempo desde o passo precedente do tempo de simulação.

Integrator fornece a integral da entrada no tempo atual. A seguinte

equação representa a saída do bloco y em função de sua entrada u

de uma condição inicial y0, onde y e u são funções vetor do tempo

de simulação atual t.

State-Space Implementa um sistema linear de espaço de estados.

Transfer Fcn modela um sistema linear por uma função de

transferência no domínio s.

Transport Delay atrasa a entrada por uma quantidade de tempo

especificada.

Zero-Pole modela um sistema especificado pelos zeros, pólos e

ganho de uma função de transferência no domínio s que define o

relacionamento entre a entrada do sistema e as suas saídas.

Page 15: Simulink  -oliveira

15

Iniciando um novo modelo

• O Simulink Library Browser

é o toolbox para criação do

modelo.

• Inicie criando uma nova

janela de trabalho.

Page 16: Simulink  -oliveira

16

Iniciando um novo modelo

• O Simulink Library Browser

é o toolbox para criação do

modelo.

• Inicie criando uma nova

janela de trabalho.

Page 17: Simulink  -oliveira

17

• Arraste o bloco Constant do grupo Sources do Simulink para a janela de trabalho, depois arraste o bloco Scope do grupo Sinks.

• Clique agora, na saída do bloco (o pequeno triângulo á direita do bloco) Constant e enquanto mantém o botão do mouse abaixado, arraste o mouse para a entrada do bloco (a pequena seta á esquerda do bloco) Scope e então libere-o. Será visto uma seta apontada sendo desenhada.

• Dê um duplo clique no bloco Constant para abrir sua janela de parâmetros.

• Mude o Constant value para 5.

Iniciando um novo modelo

Page 18: Simulink  -oliveira

18

Iniciando um novo modelo

• Através de um duplo clique no bloco

Scope abre-se a janela do mesmo.

Page 19: Simulink  -oliveira

19

Iniciando um novo modelo

• Pode-se configurar os parâmetros da

simulação através do Configuration

Parameters…do menu Simulation.

• Assim, por exemplo, podemos mudar os

limites do tempo para a simulação.

Page 20: Simulink  -oliveira

20

Iniciando um novo modelo

• Clique Start do menu Simulation (alternativamente pressione Ctrl + T,

ou ainda clique o botão na barra de ferramentas) para iniciar a

simulação.

Page 21: Simulink  -oliveira

21

Iniciando um novo modelo

• Esta simulação é muito simples. O que

ela realiza é simplesmente fazer a saída

assumir o valor constante 5 o quê é

mostrada no bloco Scope (o eixo x

representa o tempo de simulação).

• Dê um clique direito na

janela Autoscale do

Scope

para obter o seguinte

resultado:

Page 22: Simulink  -oliveira

22

Iniciando um novo modelo

• Vamos incrementar um

pouco mais.

• Construa o seguinte

modelo, (pode-se encontrar

o bloco Clock no grupo

Sinks.

• Os blocos Trigonometric

Function e Sum ficam no

grupo Math:

• O resultado que se obtém é

o seguinte:

Page 23: Simulink  -oliveira

23

Iniciando um novo modelo

• Agora, vamos ver se a

derivada é realmente um

coseno.

• Construa o seguinte sistema

(o bloco Derivative esta

localizado no grupo

Continuous):

Nós podemos ver que o resultado

certamente é um coseno, mas

algo está errado no começo.

Page 24: Simulink  -oliveira

24

Iniciando um novo modelo

• Isto acontece porque no tempo 0, o bloco Derivative não tem nenhuma informação prévia para o cálculo.

• Não há nenhum valor inicial para a derivada.

• Assim para o primeiro passo, o bloco Derivative supõe que sua entrada tem um valor constante, assim sua derivada é 0, o quê justifica o início do gráfico.

Page 25: Simulink  -oliveira

25

Iniciando um novo modelo

• Desenhe o diagrama abaixo e simule-o:

• Simule também o sistema supondo

modificações na condição inicial do

integrador.

Page 26: Simulink  -oliveira

28

Setando preferências

• File --> Preferences\Simulink

Page 27: Simulink  -oliveira

29

Modelando Sistemas Dinâmicos

• Um diagrama de bloco Simulink é um modelo pictórico de um sistema dinâmico.

• Cada bloco representa um sistema dinâmico elementar que produz uma saída contínua (um bloco contínuo) ou pontos específicos do tempo (um bloco discreto).

• As linhas representam conexões de entradas ou

saídas do bloco.

Page 28: Simulink  -oliveira

31

Anotações

• Às vezes necessita-se identificar as ligações em

diagramas de bloco complexos

• Pode-se usar o formato do Latex para a

anotação

• Para usar o formato do Latex escolha Format

Enable Tex Commands

Page 29: Simulink  -oliveira

32

Criando-se um Subsistema

• Ajuda a reduzir o número de blocos indicados na janela do modelo.

• Permite manter junto os blocos funcionalmente relacionados.

• Permite estabelecer um diagrama de bloco hierárquico, onde um bloco de subsistema esta em uma camada e os blocos que o compõem em outro.

Page 30: Simulink  -oliveira

33

Antes - Depois

• Selecione com o browser a parte do modelo que se quer criar como sub-sistema na janela do Simulink

• Nomeie as portas do sub-sistema

Page 31: Simulink  -oliveira

Ajuda pela Web

Page 32: Simulink  -oliveira

40

http://www.mathworks.com/access/helpdesk/help/toolbox/simulink/gs/bqea1ff-1.html

Page 33: Simulink  -oliveira

41

Ajuda pela

Literatura