Download - Simulink -oliveira
![Page 1: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/1.jpg)
Matlab
Simulink
Prof José Luiz de Oliveira
![Page 2: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/3.jpg)
3
Exemplo de simulação de sistema • No Matlab, digite o comando “thermo”.
![Page 4: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/6.jpg)
6
Simulink• Para começar a usá-lo, digite o comando
simulink no Matlab ou clique no ícone
![Page 7: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/18.jpg)
18
Iniciando um novo modelo
• Através de um duplo clique no bloco
Scope abre-se a janela do mesmo.
![Page 19: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/26.jpg)
28
Setando preferências
• File --> Preferences\Simulink
![Page 27: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/31.jpg)
Ajuda pela Web
![Page 32: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/32.jpg)
40
http://www.mathworks.com/access/helpdesk/help/toolbox/simulink/gs/bqea1ff-1.html
![Page 33: Simulink -oliveira](https://reader033.vdocuments.pub/reader033/viewer/2022052621/557ccb95d8b42a09218b5287/html5/thumbnails/33.jpg)
41
Ajuda pela
Literatura