Você está na página 1de 316

Escola de Engenharia de São Carlos - EESC

SIMULINK
Curso Básico
2011

Prof. Dr. Marcelo Becker


Abril / Maio de 2008
CONTATO

PROF. DR. MARCELO BECKER


Laboratório de Mecatrônica
SEM - EESC – USP
Prédio da Engª. Mecatrônica - Sala 29122
Av. do Trabalhador São-carlense, 400
São Carlos – SP, Brasil
13566-590

E-mail: m.becker.bh@gmail.com
becker@sc.usp.br
Homepage: http://m.becker.bh.googlepages.com/

 M. Becker 2008 2
BIBLIOGRAFIA RECOMENDADA

LIVRO EM PORTUGUÊS
Simulink 5 – Fundamentos, Élia Yathie Matsumoto,
Editora Érica, 204p., 2ª Edição, 2009.

OBS. - A maior parte do material deste curso foi baseado


nesse livro.

website

www.mathworks.com

 M. Becker 2008 3
SUMÁRIO

 INTRODUÇÃO
 AMBIENTE DO SIMULINK
 MANIPULAÇÕES DE BLOCOS
 EXIBIÇÃO DE GRÁFICOS E SIMULAÇÃO
 SOLVERS
 MODELOS, MÁSCARAS E SUBSISTEMAS
 SIMULINK E MATLAB
 BIBLIOTECAS DE BLOCOS
 EXERCÍCIOS
 M. Becker 2008 4
SUMÁRIO

 M. Becker 2008 5
INTRODUÇÃO:

O que é Simulink?

Aplicativo do MatLab que permite analisar o


comportamento de sistemas dinâmicos a partir da
construção do modelo matemático;

Utiliza-se diagramas de blocos que são simulados pelo


MatLab.

 M. Becker 2008 6
INTRODUÇÃO:

O que é Sistema Dinâmico?

Sistema cuja saída (resultado e estado) muda ao longo do


tempo. A maioria dos eventos do mundo real são sistemas
dinâmicos.

Ex.: Circuitos Elétricos, Sistemas de Amortecedor, Sistemas de


Freios, Sistemas Termodinâmicos, etc.

 M. Becker 2008 7
INTRODUÇÃO:

Onde se pode acionar o Simulink?

2 modos:

1. Através do ícone na barra de ferramentas do


MatLab.
2. Diretamente na linha de comando do MatLab

 M. Becker 2008 8
INTRODUÇÃO:

Onde se pode acionar o Simulink?

1. Através do ícone na barra de


ferramentas do MatLab.

2. Diretamente na linha de
comando do MatLab

 M. Becker 2008 9
SUMÁRIO




 M. Becker 2008 10
AMBIENTE DO SIMULINK:

Janela Inicial do Simulink

Simulink Library Browser

Barra de Ferramentas

Área de Descrição

Diagramas de Blocos
Disponíveis para a
montagem dos modelos

 M. Becker 2008 11
AMBIENTE DO SIMULINK:

Menus Pop-up

Na Janela Simulink Library Browser há


4 menus

[File]: manipulação de arquivos de


modelos e ambiente
[New]: cria novo modelo
[Open]: abre modelo existente
[Close]: fecha modelo corrente
[Preferences...]: abre janela
de configurações

 M. Becker 2008 12
AMBIENTE DO SIMULINK:

Menu Pop-up [Preferences...]

 M. Becker 2008 13
AMBIENTE DO SIMULINK:

Menus Pop-up

Na Janela Simulink Library Browser


há 4 menus

[Edit]: manipulação de blocos


[Add to the current model]: inclui um elemento no modelo corrente
[Find block...]: procura um bloco na biblioteca de blocos
[Find next block...]: repete a procura

 M. Becker 2008 14
AMBIENTE DO SIMULINK:

Menus Pop-up

Na Janela Simulink Library Browser


há 4 menus

[View]: modo de visualização do Simulink


[Toolbar]: ativa / desativa a visualização da barra de ferramentas
[Status bar]: ativa / desativa exibição da barra de status
[Description]: ativa / desativa exibição da barra de descrição
[Stay on top]: força a exibição da janela do Simulink sempre na frente
[Collapse entire Browser]: mostra apenas os títulos das bibliotecas

 M. Becker 2008 15
AMBIENTE DO SIMULINK:

Menus Pop-up

Na Janela Simulink Library Browser


há 4 menus

[View]: modo de visualização do Simulink


[Expand entire Browser]: mostra todos os ícones de todos blocos
[Large icons]: exibe ícones grandes
[Small icons]: xibe ícones pequenos
[Show Parameters for selected block]: exibe a janela de parâmetros do
bloco selecionado

 M. Becker 2008 16
AMBIENTE DO SIMULINK:

Menus Pop-up

Na Janela Simulink Library Browser


há 4 menus

[Help]: Textos de ajuda do Simulink


[Help on the selected block]: exibe texto de ajuda para o bloco
selecionado
[Simulink help]: exibe o help do Simulink
[Tip of the day]: exibe uma dica sobre o Simulink na Janela de Descrição

 M. Becker 2008 17
AMBIENTE DO SIMULINK:

Barra de Ferramentas

A Janela de Ferramentas apresenta


4 opções (já vistas nos Menus
Pop-up...):

[Find]
[Create a new Model]
[Open a Model] [Stay on top]

 M. Becker 2008 18
AMBIENTE DO SIMULINK:

Library Browser

Divide-se em 2 janelas:

Lado esquerdo: exibe


bibliotecas disponíveis

Lado direito: exibe


os blocos de cada
bibliotecas em
ordem alfabética

 M. Becker 2008 19
AMBIENTE DO SIMULINK:

Library Browser

Divide-se em 2 janelas:

Usando o botão direito


do mouse...

 M. Becker 2008 20
AMBIENTE DO SIMULINK:

Janela do Modelo

Criar um novo modelo

 M. Becker 2008 21
AMBIENTE DO SIMULINK:

Janela do Modelo

Expandir a biblioteca do
Simulink

 M. Becker 2008 22
AMBIENTE DO SIMULINK:

Janela do Modelo

Inserir bloco de osciloscópio no


modelo
Localizar o item [Sinks]
Localizar o bloco [Scope]

 M. Becker 2008 23
AMBIENTE DO SIMULINK:

Janela do Modelo

Inserir bloco de osciloscópio no


modelo
Clique e arraste o bloco
[Scope] para dentro da
janela do modelo...

 M. Becker 2008 24
AMBIENTE DO SIMULINK:

Janela do Modelo

Inserir bloco de gerador de


sinal senoidal
Localize o item [Sources]
Localize o bloco [Sine Wave] clique
e arraste-o para dentro da janela
do modelo...

 M. Becker 2008 25
AMBIENTE DO SIMULINK:

Janela do Modelo

Conecte os 2 blocos

Save o Modelo com o nome


tutorial_01

Dê um duplo clique no bloco


[Scope] para abris a tela de
exibição...

 M. Becker 2008 26
AMBIENTE DO SIMULINK:

Janela do Modelo

Simule o modelo (clique no


ícone [Start Simulation])

 M. Becker 2008
27
AMBIENTE DO SIMULINK:

Configurar Parâmetros de
Simulação
A opção [Configuration Parameters...]
abre a janela de parâmetros do
Simulink

 M. Becker 2008
28
AMBIENTE DO SIMULINK:

 M. Becker 2008
29
AMBIENTE DO SIMULINK:

Configurar Parâmetros de
Simulação

Altere o parâmetro [Stop Time]


para 50.0 e simule novamente
o modelo

Curva “dentada”...

Volte à Janela de Configurações


 M. Becker 2008
30
AMBIENTE DO SIMULINK:

Configurar Parâmetros de
Simulação
Altere o parâmetro [Refine factor] para 10.0 e
simule novamente o modelo

 M. Becker 2008
31
AMBIENTE DO SIMULINK:

 M. Becker 2008 32
AMBIENTE DO SIMULINK:

Configurar Parâmetros de
Simulação

Assim...

 M. Becker 2008 33
AMBIENTE DO SIMULINK:

Configurar Parâmetros de
Blocos

As características de cada loco


podem ser alteradas através de
um duplo clique no bloco...

Por exemplo, alterando a


freqüência e amplitude da
onda de seno

 M. Becker 2008 34
AMBIENTE DO SIMULINK:

Configurar Parâmetros de
Blocos
Configure os parâmetros [Amplitude]
de 1 para 5 e [Frequency] de 1 para 2

Simule o modelo...

 M. Becker 2008
35
AMBIENTE DO SIMULINK:

Configurar Parâmetros de
Blocos
Configure os parâmetros [Amplitude]
de 1 para 5 e [Frequency] de 1 para 2

Simule o modelo...

 M. Becker 2008
SUMÁRIO




 M. Becker 2008 37
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações

Na Janela de Comando do MatLab:


Selecione corretamente o diretório de trabalho e digite tutorial_01

38
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações

Para visualizar o Library Browser:


Selecionar no Menu pop-up [View] a opção [Library Browser]

 M. Becker 2008 39
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações

1. Salvar o arquivo tutorial_01 como tutorial_02


2. Inserir um novo bloco [Sine Wave] no modelo
3. Apague a ligação existente entre os blocos [Sine Wave] e [Scope]
4. Localize no item [Math Operators] o bloco [Sum]
5. Insira o bloco [Sum] no modelo e faça as ligações conforme o
esquema do próximo slide...

 M. Becker 2008 40
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações

Dê um duplo clique no bloco


[Sum] para visualizar a janela de
parâmetros (2 principais)

[Icon Shape]: define o formato do


ícone
[round]: redondo
[rectangular]: retangular
[List of Signs]: define a operação
que será aplicada a cada entrada

 M. Becker 2008 41
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações

Dê um duplo clique no bloco


[Sum] para visualizar a janela de
parâmetros (2 principais)

[Icon Shape]: define o formato do


ícone
[round]: redondo
[rectangular]: retangular
[List of Signs]: define a operação
que será aplicada a cada entrada

 M. Becker 2008 42
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações
O gráfico exibido em [Scope] é a
soma de duas curvas de seno
com amplitude 1 e freqüência 1,
ou seja, uma curva com
amplitude 2 e freqüência 1...

Para visualizar cada onda seno,


salve o modelo como
tutorial_03, insira mais 2 blocos
[Scope] e faça as ligações
conforme o próximo slide...

 M. Becker 2008 43
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações

Clique os 2 novos blocos


[Scope] para visualizar os
sinais

Simule o modelo...

 M. Becker 2008 44
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações

Curva 1 Curva 2 Soma das Curvas

 M. Becker 2008 45
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações
Alterando o valor de amplitude da curva [Sine Wave 1] para 10 e
simulando...

Curva 1 Curva 2 Soma das Curvas


 M. Becker 2008 46
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações
Alterando o valor de freqüência da curva [Sine Wave 1] para 10 e
simulando...

Curva 1 Curva 2 Soma das Curvas


 M. Becker 2008 47
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações
Alterando o [Stop Time] para facilitar a visualização...

Curva 1 Curva 2 Soma das Curvas


 M. Becker 2008 48
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações
Alterando o valor de amplitude da curva [Sine Wave 1] para 1 e
simulando...

Curva 1 Curva 2 Soma das Curvas


 M. Becker 2008 49
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações
Utilizando um bloco [Gain] ao invés de alterar a amplitude do
sinal... No item [Math Operators] localize o bloco [Gain] e insira-o
no módulo.

50
MANIPULAÇÕES DE BLOCOS:

Blocos e Ligações
Alterando o valor fator de ganho do bloco [Gain] para 3 e
simulando...

Curva 1 Curva 2 Soma das Curvas


 M. Becker 2008 51
SUMÁRIO




 M. Becker 2008 52
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados

Salve o modelo tutorial_03 como tuturial_04


Insira um bloco [Mux] do item [Signal Routing] para combinar
várias entradas e gerar uma única saída

Elimine os blocos [Scope 1],


[Scope 2] e [Gain]

 M. Becker 2008 53
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados

O bloco [Mux] receberá os sinais das 2 senóides e da soma e


enviará os 3 sinais para o bloco [Scope]. Dê um duplo clique no
ícone do bloco [Mux] e configure [Number of inputs] para 3

 M. Becker 2008 54
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados

Faça as ligações conforme o esquema abaixo

Faça as seguintes configurações:


Bloco [Sine Wave] com
amplitude 3 e freqüência 1
Bloco [Sine Wave 1] com
amplitude 1 e freqüência 10

 M. Becker 2008 55
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados

Assim:

As curvas foram exibidas


simultaneamente no mesmo
gráfico com as seguintes cores:

[Sine Wave]: amarelo


[Sine Wave 1]: azul
[Sum]: púrpura

 M. Becker 2008 56
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados
Para obter vários gráficos em um único bloco [Scope], salve o
modelo tutorial_04 como tutorial_05

Elimine o bloco [Mux], dê um duplo


clique no bloco [Scope] e clique no
ícone [Parameters] para abrir a
Janela de Configurações

 M. Becker 2008 57
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados

Configure o parâmetro [Number of


axes], que determina o número de
eixos que serão exibidos, para 3

Clique em [Apply]

Conecte os blocos como o próximo


slide e execute a simulação...

 M. Becker 2008 58
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados

Curva 1

Soma das
Curvas

Curva 2

 M. Becker 2008 59
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados
Definindo os nomes dos sinais e rótulos para os gráficos: dê um
duplo clique na linha e escolha o nome desejado

 M. Becker 2008 60
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados

 M. Becker 2008 61
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados

Como configurar os parâmetros do bloco [Scope]?


[Print]: imprime o(s) gráfico(s) exibidos no bloco
[Parameters]: abre janela de configuração de parâmetros
[Zoom]: zoom-in
[Zoom X-axis]: zoom-in no eixo x
[Zoom Y-axis]: zoom-in no eixo y
[Autoscale]: ajusta a visualização
[Save current axes settings]: armazena configuração
[Restore saved axes settings]: restaura configuração

 M. Becker 2008 62
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados

Os eixos dos gráficos podem ser configurados individualmente... Por


exemplo, posicione o cursor no gráfico “Curva 2” e clique no botão
direito do mouse para abrir o menu flutuante
É possível configurar os valores mínimo e
máximo do eixo Y e o título

Reconfigure o título: Gráfico do


%<SignalLabel>

 M. Becker 2008 63
EXIBIÇÃO DE GRÁFICOS:

Gráficos e Resultados

Assim:

 M. Becker 2008 64
MECANISMOS DE SIMULAÇÃO
Introdução

O ambiente do Simulink é basicamente composto por 2


componentes:
1. Bibliotecas de Blocos: conjunto de símbolos
2. Editor de Diagrama de Blocos: ambiente no qual os blocos
são inseridos
O diagrama de blocos permite a visualização do sistema modelado
de forma modular, o que facilita a compreensão do fluxo do
processo estudado

 M. Becker 2008 65
MECANISMOS DE SIMULAÇÃO
Blocos

Representam elementos do sistema dinâmico cujo


comportamento está sendo simulado... Cada bloco é composto
por:
1. Representação visual (símbolo disponível na biblioteca)
2. Conjunto de dados de entrada
3. Conjunto de dados de saída
4. Conjunto de estados (opcional)

u x y
(entrada) (estados) (saída)

 M. Becker 2008 66
MECANISMOS DE SIMULAÇÃO
Estados

Blocos podem ou não ter estados. Se um bloco tiver estado, então


estado é uma variável cujo valor tem o seguinte comportamento:
1. É uma função de seus valores anteriores e/ou dos valores de entrada
do bloco
2. Determina o valor de saída do bloco
Quando um bloco possui estados que dependem de valores anteriores, esses
estados são chamados de “persistentes” (persistent states) e diz-se que o bloco
“possui memória”

Exemplo de bloco sem estado: bloco [Sum] usado nos tutoriais. Dados de
entrada: [Sin Wave] e [Sin Wave 1]. Dado de saída: soma dos valores de entrada

 M. Becker 2008 67
MECANISMOS DE SIMULAÇÃO
Estados

Exemplo de bloco com estado: bloco [Memory] que retorna o valor anterior
(item [Discrete]).
Conjunto de Dados de entrada: valor corrente
Conjunto de Dados de saída: valor anterior
Conjunto de Estados: estado anterior (t-1) e estado atual (t)
Inicial: armazena o valor inicial corrente
Próximos: armazena o valor corrente e retorna o valor armazenado anteriormente

tutorial_07: exemplo de aplicação. Usar o bloco [Memory] para gerar


um sinal Si tal que:
S0 = k, k constante
Si = Si-1+S0, para i>0

 M. Becker 2008 68
MECANISMOS DE SIMULAÇÃO
Estados
tutorial_07 - Traga os seguintes blocos para o modelo
[Constant] emite sinal constante (localizado no item [Sources])
[Sum] localizado no item [Math Operations]
[Scope] localizado no item [Sinks]

 M. Becker 2008 69
MECANISMOS DE SIMULAÇÃO

Estados
Execute o tutorial_07 e visualize o resultado

S0 = 1
Si = Si-1+S0, para i>0

O bloco [Memory]
implementou a seqüência
Si-1+S0

 M. Becker 2008 70
MECANISMOS DE SIMULAÇÃO

Estados
Altere o valor do bloco constante para 3, execute o tutorial_07 e
visualize o resultado

 M. Becker 2008 71
MECANISMOS DE SIMULAÇÃO

Estados
Para verificar os valore exatos, insira o bloco [To workspace] do item
[Sinks] que exporta os valores do Simulink para o MatLab e conecte os
blocos como mostrado na figura abaixo

 M. Becker 2008 72
MECANISMOS DE SIMULAÇÃO

Estados
Configure:

[Variable name]: “sequencia”


[Save format]: “Array”

Os valores salvos em MatLab


estão em um vetor chamado
sequencia

 M. Becker 2008 73
MECANISMOS DE SIMULAÇÃO

Estados
Execute a simulação e verifique
os valores armazenados na
janela [Workspace] do MatLab:

tout: vetor de tempo


sequencia: valor exportado

A seqüência gerada: [3,6,9,12,...]


satisfaz: S =3
0
Si = Si-1+S0, para i>0
 M. Becker 2008 74
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação

Abra a janela de configurações de parâmetro do modelo

[Simulation Time]: Tempo de Simulação


[Start time]: início
[Stop time]: fim

 M. Becker 2008 75
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação

[Solver options]: opções de solvers


[Type]: tipos
[Variable-step]: utilizar passo variado
[Fixed-step]: utilizar passo fixo

 M. Becker 2008 76
MECANISMOS DE SIMULAÇÃO
Tempo e Passos de Simulação
[Solver options]: opções de solvers
[ode45(Domand-Prince)], etc.: próximo tópico
[Max step size]: passo máximo
[Min step size]: passo mínimo
[Initial step size]: passo inicial
[Relative (Absolute) tolerance]: tolerância relativa (absoluta) a ser
empregada para monitorar e controlar o erro a cada passo
durante as interações

77
MECANISMOS DE SIMULAÇÃO
Tempo e Passos de Simulação
No caso do tutorial_07 não há interação. Logo, vamos alterar o
parâmetro [Max step size]. Configurá-lo de “auto” para:

[Max step size] = ([Stop time]-[Initial time])/50

Ou seja, tutorial_07 será simulado 51 vezes no intervalo de 0 a 10


unidades de tempo.

78
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


No bloco [Scope]:

Na Janela de Comando do MatLab:

 M. Becker 2008 79
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


Reconfigurando o parâmetro [Max step size] para 1 e executando a
simulação:

11 divisões no eixo x

 M. Becker 2008 80
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


Criar o modelo tutorial_08: gera uma P.A. tal que:
A0 = k, k constante (k = 10)
Ai = Ai-1+R, para i>0 e razão R = 5
Insira os seguintes blocos no modelo:
2 blocos [Constant], localizado no item [Sources];
[Sum], localizado no item [Math Operations];
[Scope], localizado no item [Sinks];
[Memory], localizado no item [Discrete];
[To workspace]: localizado no item [Sinks];
[Clock], localizado no item [Sources]: emite o tempo de simulação;
[Switch], localizado no item [Signal Routing]: controla o fluxo de sinais.

 M. Becker 2008 81
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


Assim, para a condição de “valor inicial” tem-se:

 M. Becker 2008 82
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


O bloco [Switch] recebe 3 sinais de entrada:
1. O 1º sinal de entrada é passado para a frente, caso o teste do 2º sinal
seja verdadeiro;
2. O 2º sinal de entrada é utilizado no teste condicional definido pelo
parâmetro [Criteria for passing first input];
3. O 3º sinal de entrada é passado para frente, caso o teste do 2º sinal
seja falso.
O algoritmo: se o valor do [clock] for maior ou igual ao menor número
positivo (eps), então “0” é passado para frente; caso contrário, “10”,
ou seja, A0 é passado para frente
Para implementar a condição da seqüência, o bloco [Constant] é
configurado de “0” para “5”

 M. Becker 2008 83
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


Assim, o algoritmo: se o valor do [clock] for maior ou igual ao menor
número positivo (eps), então “5” (R) é passado para frente; caso
contrário, “10”, ou seja, A0 é passado para frente”

84
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


O resto do algoritmo é implementado conforme a figura abaixo:

 M. Becker 2008 85
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


Configure o bloco [To workspace] com:

[Variable name]: “SeqPA”


[Save format]: “Array”

Configure o parâmetro de simulação [Max step size] com valor “1”

Execute a simulação...

 M. Becker 2008 86
MECANISMOS DE SIMULAÇÃO

Tempo e Passos de Simulação


No [Scope]: Na tela do MatLab:

 M. Becker 2008 87
MECANISMOS DE SIMULAÇÃO

Sinais

Os valores de saída de bloco são comumente denominados


“sinais”. Possuem como propriedades:
1. Nome
2. Tipo de dado (inteiro de 8-bits, 16-bits, etc.)
3. Tipo numérico (real ou complexo)
4. Dimensão / canal (vetor/matriz)
Alguns blocos aceitam qualquer tipo de dados, outros não...

 M. Becker 2008 88
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: utilização de sinais com mais de uma
dimensão. Crie um novo modelo com os seguintes locos:
[Random Number] do item [Sources]
[Scope]

 M. Becker 2008 89
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: no bloco [Random Number] configure as
propriedades:
[Mean]: média da distribuição normal
[Variance]: variância da distribuição normal
[Initial Seed]: número inteiro positivo que será a “semente” para
a geração da seqüência de números aleatórios. O ideal é que
esse número varie a cada execução: utilize a expressão do
MatLab: “100*rand”

 M. Becker 2008 90
MECANISMOS DE SIMULAÇÃO
Sinais
tutorial_09: Assim...

 M. Becker 2008 91
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: Executando várias vezes a simulação...

 M. Becker 2008 92
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: Para evitar a mensagem no MatLab:

Warning: Parameter Seed of 'tutorial_09/Random Number'specifies a negative or


non-integer value. However, this parameter expects an integer value that is greater
than or equal to zero. Simulink has converted the specified value of this parameter
to data type 'uint32'.

Utilizar a função “fix” do MatLab: fix(100*rand) pois ela


converte número real em inteiro

 M. Becker 2008 93
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: O parâmetro [Initial seed] pode ser um vetor
1xN, em que N representa a quantidade de números
aleatórios que devem ser gerados simultaneamente...

 M. Becker 2008 94
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: para visualizar as 3 curvas separadamente,
utiliza-se o bloco [Demux] do item [Signal Routing]...

 M. Becker 2008 95
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: Assim...

 M. Becker 2008 96
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: O simulink pode ser configurado para exibir
informações sobre as propriedades dos sinais

No menu pop-up [Format], ative as opções:


[Wide nonscalar lines]: para sinais com mais de um canal,
exibe a linha com espessura mais grossa
[Signal Dimensions]: para sinais com mais de um canal,
exibe o número de canais
[Port data types]: mostra o tipo numérico de cada sinal

 M. Becker 2008 97
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_09: Assim...

 M. Becker 2008 98
MECANISMOS DE SIMULAÇÃO

Sinais
tutorial_10: Composição dos tutorial_08 e tutorial_09 que
forma um modelo simplificado de simulação “Monte
Carlo”...

Modelo: S0 = Sinicial
Si,j = Si-1,j + k1*αi,j + k2*βi,j , j = 1:NS
Em que: k1 e k2 são constantes reais
αi,j e βi,j são variáveis aleatórias com distribuição normal
NS é o número de seqüências aleatórias a serem geradas

 M. Becker 2008 99
MECANISMOS DE SIMULAÇÃO

Sinais
salve o tutorial_08 como tutorial_10:

 M. Becker 2008 100


MECANISMOS DE SIMULAÇÃO

Sinais
Elimine o bloco [Constant] chamado “R” e altere o bloco [Constant]
chamado “A0” para “S0” e reconfigure para o valor “100”

 M. Becker 2008 101


MECANISMOS DE SIMULAÇÃO

Sinais
Altere o valor da variável de saída do bloco [To workspace] para
“SeqMC”

 M. Becker 2008 102


MECANISMOS DE SIMULAÇÃO

Sinais
Assim, para implementar a seqüência Si, precisamos de 2 gerações de
números aleatórios, semelhantes ao tutorial_09:

 M. Becker 2008 103


MECANISMOS DE SIMULAÇÃO

Sinais
Cuidado na configuração do bloco [Gain] para “Matrix Gain”:

104
MECANISMOS DE SIMULAÇÃO

Sinais
Utilize os seguintes dados numéricos para a simulação:

S0 = 100; k1 = 0.01; k2 = 0.02 e NS = 10 (os blocos [Random Number]


devem ser configurados com valor [Initial seed]:
“fix(100*rand(1,10))”)

 M. Becker 2008 105


MECANISMOS DE SIMULAÇÃO

Sinais
Assim...
Cuidado com [Swtich] 

106
MECANISMOS DE SIMULAÇÃO
Sinais
Acertando a formatação...

 M. Becker 2008 107


MECANISMOS DE SIMULAÇÃO

Sinais Cuidado com [Swtich]


Alterando NS para 100... 

108
MECANISMOS DE SIMULAÇÃO

Sinais
Plotando os valores no MatLab...

 M. Becker 2008 109


SUMÁRIO




 M. Becker 2008 110


SOLVERS:

Introdução

Um modelo do Simulink retorna os valores derivados no tempo de


seus estados (contínuos ou discretos) e não os valores de seus
estados propriamente ditos.

Logo, o Simulink, simulando um sistema, tem que calcular os


estados integrando numericamente os estados derivados...

→ Equações Diferenciais Ordinárias – ODE solvers

 M. Becker 2008 111


SOLVERS:

Introdução

Para selecionar o solver desejado deve-se acessar [Solver] em


[Confiuration Parameters]

 M. Becker 2008 112


SOLVERS:

Simulation Time

[Start time]: início


[Stop time]: fim

Pode-se configurar o instante inicial e final para a execução da simulação. Os


valores default são “0.0” e “10.0” unidades de tempo, respectivamente.

Deve-se observar que o tempo efetivamente gasto para executar a simulação não
é o simulation time, visto que depende de vários fatores relativos à configuração
do computador...

 M. Becker 2008 113


SOLVERS:

Solver Options

Solvers podem ter passo variável (variable-step) ou fixo (fixed-step).

O passo variável permite: modificar o intervalo de tempo entre as


interações (passo) e detectar estados de “error control” e “zero
crossing”.

No caso de passo fixo, não é possível alterar o passo, sendo este


constante e determinado automaticamente pela equação (Stop
time – Start time)/50.

 M. Becker 2008 114


SOLVERS:

Solver Options

Caso o usuário não queira definir o solver a ser empregado, os


solver default são:

ode45 – para modelos com estados contínuos


discrete – para modelos com estados não contínuos

 M. Becker 2008 115


SOLVERS:

Solver Options

Solvers de passo variável:

ode45 - Runge-Kutta(4,5) solver tipo non-stiff de ordem média


ode23 - Runge-Kutta(2,3) solver tipo non-stiff de ordem baixa
ode113 - Adams-Bahforth Moulton PECE solver tipo non-stiff de ordem variável
ode15s - NDF (Numerical Differentiation Formulas) solver
ode23s - solver Rosenblock de ordem 2
ode23t - solver de ordem baixa (regra trapezoidal / interpolação livre)
ode23tb - solver TR-BDF2 de ordem baixa
discrete - solver discreto

 M. Becker 2008 116


SOLVERS:

Solver Options

Solvers de passo fixo:

discrete - solver discreto


ode5 - versão discreta do solver Runge-Kutta(4,5)
ode4 - versão discreta do solver Runge-Kutta(2,3)
ode3 - versão discreta do solver Bogacki-Shampine
ode2 - método de Heun (Euler melhorado)
ode1 - método de Euler
ode14x - extrapolação

 M. Becker 2008 117


SOLVERS:

Solver Options

tutorial_11: exemplo de aplicação dos


solvers.

1. Inicie um novo modelo e insira os


seguintes blocos: [Integrator] localizado
no item [Continuous], [Constant] e
[Scope].
2. Configure o bloco [Scope] para 2 eixos
3. Crie os nomes dos sinais, conforme a
figura...

 M. Becker 2008 118


SOLVERS:

Solver Options

tutorial_11: executando, obtemos:

No 1º gráfico observamos o sinal constante


“1” e, no 2º, a sua integral que é a função
identidade, visto que:

dx = 1
dt
Acrescente o bloco [To workspace] para
poder observar os efeitos das alterações que
serão inseridas no modelo...

 M. Becker 2008 119


SOLVERS:

Solver Options

tutorial_11: faça a seguinte


configuração no bloco [To workspace]:

[Variable Name]: “Integral”


[Save format]: “Struct with Time”

Assim, o sinal gerado pelo bloco [Integrator] será armazenado em uma variável
no MatLab com o nome “Integral” tipo “struct” com os campos: “time” e
“signal.values”

 M. Becker 2008 120


SOLVERS:

Solver Options

tutorial_11: faça a seguinte configuração para os parâmetros de


simulação:

[Start Time]: “0.0”


[Stop Time]: “10.0”
Solver Options [Type]: “variable-step”
[Solver]: “ode45”
[Max step size]: “auto”

 M. Becker 2008 121


SOLVERS:

Solver Options
tutorial_11: executando a simulação, temos em:
Integral.time – 51 elementos, um para cada passo.
Usando o MatLab para visualizar os valores dos passos, temos:

 M. Becker 2008 122


SOLVERS:

Solver Options
tutorial_11: utilizando a função do MatLab “diff” para verificar a
diferença entre os passos empregados pelo solver “ode45”,
verificamos que o valor máximo do passo é: “0.2”

 M. Becker 2008 123


SOLVERS:

Solver Options
tutorial_11: altere os seguintes parâmetros de simulação:

Solver Options [Type]: “fixed-step”


[Solver]: “ode5”

Execute a simulação e gere os mesmos gráficos. É possível observar


que a diferença entre os valores do passo é “praticamente” fixa e
igual a “0.2”

 M. Becker 2008 124


SOLVERS:

Solver Options
tutorial_11: Assim...

 M. Becker 2008 125


SOLVERS:

Solver Options
tutorial_11: configurando o [Fixed-step size] em “1”, tem-se:

 M. Becker 2008 126


SOLVERS:

Solver Options
tutorial_12: modelagem de um corpo em queda livre

1. Salve o modelo em tutorial_11 como tutorial_12;


2. Restaure os parâmetros iniciais de simulação:
–[Start Time]: “0.0”
–[Stop Time]: “10.0”
–Solver Options [Type]: “variable-step”
–[Solver]: “ode45”
–[Max step size]: “auto”
3. Elimine o bloco [To workspace] e insira mais um bloco [Integrator] e
mais um eixo no bloco [Scope]
4. Faça as conexões conforme a figura a seguir...

 M. Becker 2008 127


SOLVERS:

Solver Options
tutorial_12: assim...

 M. Becker 2008 128


SOLVERS:

Solver Options
tutorial_12: podemos interpretar o sinal como a aceleração, sua
integral 1ª como a velocidade e sua integral 2ª como a posição de um
objeto.

Configurando o bloco [Constant] para o valor da aceleração da


gravidade “-9.81” e renomeando os sinais, conforme a figura a seguir,
concluímos o modelo desejado...

 M. Becker 2008 129


SOLVERS:

Solver Options
tutorial_12: assim...

 M. Becker 2008 130


SOLVERS:

Solver Options
tutorial_13: modelo de um sistema massa-mola-amortecedor

Equação: y” = g – (k/m).y – (b/m).y’


k
b Onde: m – massa do corpo
g – aceleração da gravidade
y m k – coeficiente de elasticidade
b – coeficiente de amortecimento
y – deslocamento do corpo

 M. Becker 2008 131


SOLVERS:

Solver Options
tutorial_13: modelando em Simulink, temos:

k
b

y m

y” = g – (k/m).y – (b/m).y’
 M. Becker 2008 132
SOLVERS:

Solver Options
tutorial_13: Configurando os blocos para os valores...

m: 60 kg
g: - 9.81 m/s2
k: 10 N/m
b: 5 N.s/m

y” = g – (k/m).y – (b/m).y’
 M. Becker 2008 133
SOLVERS:

Solver Options
tutorial_13: Configurando o [Stop time]
para “100” segundos e executando a
simulação...

Observa-se que o corpo desce aproximadamente


100 m, atingindo uma velocidade máxima
aproximada em módulo de 20 m/s e o movimento se
estabiliza em 60 m de altura.

Aumentando a massa para 80 kg...

 M. Becker 2008 134


SOLVERS:

Solver Options
tutorial_13: Assim...

60 kg 80 kg

135
SOLVERS:

Modelagem de Sistemas Contínuos Simples


exemplo_01: modelo desenvolvido a partir do tutorial_13.

Sistemas contínuos simples podem ser expressos pela seguinte


equação diferencial:

x”(t) = – a.x’(t) – b.x(t) + u(t)

Implementando o modelo desta equação para os valores a = 1 e b = 2...

 M. Becker 2008 136


SOLVERS:

Modelagem de Sistemas Contínuos Simples


exemplo_01: assim... x”(t) = – a.x’(t) – b.x(t) + u(t)

 M. Becker 2008 137


SOLVERS:

Modelagem de Sistemas Contínuos Simples


exemplo_02: modelo semelhante ao exemplo_01 mas muito mais
compacto...

Substituindo na equação x”(t) = – a.x’(t) – b.x(t) + u(t)


x”(t) por s”.x, obtemos a equação no formato de função de
transferência:

x= 1
u s” + a.s’ + b
Implementando o modelo desta equação para os valores a = 1 e b = 2...

 M. Becker 2008 138


SOLVERS:

Modelagem de Sistemas Contínuos Simples


exemplo_02: o Simulink possui o bloco [Transfer Fcn] localizado
no item [Continuous] que implementa diretamente funções de
transferência

x= 1
u s” + a.s’ + b assim:

 M. Becker 2008 139


SOLVERS:

Modelagem de Sistemas Contínuos Simples


exemplo_02: configurando [Transfer Fcn] x= 1
u s” + a.s’ + b

 M. Becker 2008 140


SOLVERS:

Modelagem de Sistemas Contínuos Simples


exemplo_02: executando a simulação...

Idêntico ao modelo anterior...


 M. Becker 2008 141
SUMÁRIO




 M. Becker 2008 142


MODELOS:

Menus de Modelos do Simulink

Ícones relativos a procura de erros, visualização de modelos


grandes, etc.:

 M. Becker 2008 143


MODELOS:

Menus de Modelos do Simulink


[Print]: Impressão

 M. Becker 2008 144


MODELOS:

Menus de Modelos do Simulink


[Simulation Mode]: configura a velocidade de simulação

 M. Becker 2008 145


MODELOS:

Menus de Modelos do Simulink


[Toggle Model Browser]: ativa / desativa a janela “browser” que
permite visualizar o detalhamento do modelo

 M. Becker 2008 146


MODELOS:

Menus de Modelos do Simulink


[Debug]: depura o diagrama a procura de erros

 M. Becker 2008 147


MODELOS:

Propriedades dos Modelos


No menu [File], a opção [Model properties] mostra a janela de
propriedades do modelo composta por 4 pastas:

148
MODELOS:

Propriedades dos Modelos


[Model properties], pasta [Main]: informações principais

149
MODELOS:

Propriedades dos Modelos


... pasta [Callbacks]: chamada de funções ou m.files em pontos
específicos da execução da
simulação do modelo...

150
MODELOS:

Propriedades dos Modelos


[Callbacks]: salve o tutorial_13 como tutorial_14

151
MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: para testar o modelo com dados
diferentes, ao invés de alterar os parâmetros de cada bloco, pode-
se configurar esses parâmetros com nomes de variáveis

Dessa forma, vamos definir 3 variáveis:

Massa – massa do bloco


Coef_k – coeficiente de rigidez da mola
Coef_b – coeficiente de amortecimento do amortecedor

Configure os blocos [Gain] com essas variáveis...


 M. Becker 2008 152
MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: assim...

 M. Becker 2008 153


MODELOS:
Propriedades dos Modelos
[Callbacks] - tutorial_14: Para definir os valores das 3
variáveis, podemos criar um “m.file” no MatLab e
configurá-lo em um dos campos da pasta [Callbacks].
Assim:

1º arquivo: tutorial14_inic que chama uma interface gráfica para


permitir ao usuário fornecer os dados
2º arquivo: tutorial14_dados que é uma callback function da
tutorial14_inic que cria as variáveis desejadas (Massa, Coef_k e
Coef_b) a partir dos dados fornecidos na janela exibida pela
tutorial_14_inic.
 M. Becker 2008 154
MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: 1º arquivo
Ele é criado pelo comando GUIDE do MatLab e contém uma
chamada para a função / m-file “tutorial14_dados.m”

 M. Becker 2008 155


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: 2º arquivo
“tutorial14_dados.m”

 M. Becker 2008 156


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: para fazer com que a função
“tutorial14_inic” seja chamada quando o modelo é carregado:

• Configure a opção [Model pre-load function] do modelo:


Menu pop-up [File], item [Model Properties], [Callbacks]...

 M. Becker 2008 157


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: Execute o modelo. Caso as variáveis
Coef_k, Coef_b e Massa não tenham sido declarados no MatLab,
aparecerá uma janela de erro...

Para corrigir esse erro...


 M. Becker 2008 158
MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14:

• Configure a opção [Model pre-load function] do modelo:


Menu pop-up [File], item [Model Properties], [Callbacks]...

 M. Becker 2008 159


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14:

• Configure a opção [Model Initialization function] do modelo:


Menu pop-up [File], item [Model Properties], [Callbacks]...

 M. Becker 2008 160


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14:

• Configure a opção [Simulation Start function] do modelo:


Menu pop-up [File], item [Model Properties], [Callbacks]...

 M. Becker 2008 161


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: quando o modelo é executado, o
Simulink automaticamente utiliza os dados iniciais para a 1ª
simulação. Os dados inseridos no modelo através da interface GUI
serão empregados nas simulações seguintes...

162
MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: Assim...

 M. Becker 2008 163


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: Assim...

 M. Becker 2008 164


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: Assim...

 M. Becker 2008 165


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14: Assim...

 M. Becker 2008 166


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14b: salve o tutorial_14 como tutorial_14b e
insira 2 blocos [To Workspace], configurando-os para exportarem
os dados em formato tipo “Array”.

167
MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14b:

• Configure a opção [Simulation Stop function] do modelo:


Menu pop-up [File], item [Model Properties], [Callbacks]...

 M. Becker 2008 168


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14b: o arquivo m-file: tutorial14_final...

 M. Becker 2008 169


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14b: o arquivo m-file: tutorial14_final...

 M. Becker 2008 170


MODELOS:

Propriedades dos Modelos


[Callbacks] - tutorial_14b: Assim...

 M. Becker 2008 171


MODELOS:

Propriedades dos Modelos


... pasta [History]: permite registrar e exibir o histórico do
modelo...

 M. Becker 2008 172


MODELOS:

Propriedades dos Modelos


... pasta [Description]: permite registrar uma descrição do
modelo...

 M. Becker 2008 173


SUBSISTEMAS:

Introdução
Um conjunto de blocos pode ser agrupado, gerando um
bloco único denominado subsistema. Isso é útil para:
1. Reduzir o número de blocos exibidos na janela do modelo,
simplificando a sua visualização;
2. Agrupar um conjunto de blocos relacionados por
funcionalidade;
3. Criar uma hierarquia de diagrama de blocos para modelos
mais complexos

 M. Becker 2008 174


SUBSISTEMAS:

Criar o tutorial_15 a partir do tutorial_10


1. Abra o modelo tutorial_10 e salve-o como tutorial_15;
2. Crie um subsistema composto pelos blocos incluídos no
retângulo em evidência na figura abaixo...

 M. Becker 2008 175


SUBSISTEMAS:

tutorial_15:
3. Selecione a área demarcada
na figura anterior com o
mouse;
4. No menu pop-up [Edit]
selecione a opção [Create
Subsystem];
5. Todos os blocos selecionados
são substituídos por um
único bloco [Subsystem]...

 M. Becker 2008 176


SUBSISTEMAS:

tutorial_15:
6. Para visualizar os blocos de subsistema, basta dar um duplo-
clique no bloco [Subsystem]

 M. Becker 2008 177


SUBSISTEMAS:

tutorial_15:
7. A organização dos subsistemas de um modelo pode ser
visualizada ativando a opção [Model Browser] no menu pop-
up [View]

 M. Becker 2008 178


MÁSCARAS:

Introdução
O Simulink permite definir uma janela para interface
para os subsistemas chamada máscara (mask). Essa
janela permite:

1. Criar uma janela de interface;


2. Definir os parâmetros de entrada para o subsistema;
3. Criar um ícone especial para o subsistema;
4. Definir a função de inicialização.

 M. Becker 2008 179


MÁSCARAS:

Introdução
O Simulink permite definir uma janela para interface
para os subsistemas chamada máscara (mask). Essa
janela permite:

1. Criar uma janela de interface;


2. Definir os parâmetros de entrada para o subsistema;
3. Criar um ícone especial para o subsistema;
4. Definir a função de inicialização.

 M. Becker 2008 180


MÁSCARAS:

Criar o tutorial_16 a partir do


tutorial_15:
1. Abra o modelo tutorial_15 e salve-
o como tutorial_16;
2. Selecione o bloco [Subsystem] que
nomeamos como “Dados de
Entrada”, clique com o botão direito
do mouse para abrir o menu
flutuante de edição e selecione a
opção [Mask subsystem].

 M. Becker 2008 181


MÁSCARAS:

tutorial_16:
3. Selecione a pasta [Parameters] para definir os parâmetros de
entrada.

182
MÁSCARAS:

tutorial_16:
Os parâmetros de entrada são:
– S0: valor inicial;
– K1: constante real 1;
– K2: constante real 2
– NS: número de seqüências

4. Clique no botão [Add] para adicionar os parâmetros de


entrada...

 M. Becker 2008 183


MÁSCARAS:

tutorial_16:
Deve-se fornecer:
– [Prompt]: texto de chamada
– [Variable]: nome da variável
– [Type]: tipo de entrada de variável
– [Edit]: caixa de edição de texto
– [Checkbox]: opção ativa / desativa
– [Pop-up]: lista de seleção

5. Crie os 4 parâmetros com as seguintes propriedades...

 M. Becker 2008 184


MÁSCARAS:

tutorial_16:

Prompt Variable Type


Valor Inicial S0 edit
Constante Real K1 K1 edit
Constante Real K2 K2 edit
Número de Seqüências NS edit

6. Clique OK para fechar a janela...

 M. Becker 2008 185


MÁSCARAS:

tutorial_16:

Assim...

 M. Becker 2008 186


MÁSCARAS:

tutorial_16:
7. Com a máscara, um duplo clique no
bloco [Subsystem] abre a janela de
parâmetros.

8. Clique com botão direito do mouse no


bloco [Subsystem] e selecione a opção
[Look under Mask]. Essa opção abrirá
uma nova janela contendo o diagrama
do subsistema

 M. Becker 2008 187


MÁSCARAS:

tutorial_16:

9. No diagrama do subsistema, configure os blocos com os nomes


das variáveis criadas na máscara

 M. Becker 2008 188


MÁSCARAS:

tutorial_16:

Assim...

 M. Becker 2008 189


MÁSCARAS:

tutorial_16:

10. Feche o subsistema e dê um duplo clique no bloco [Subsystem]


para configurar os parâmetros com os valores indicados...

 M. Becker 2008 190


MÁSCARAS:

tutorial_16:

Execute a simulação...

 M. Becker 2008 191


MÁSCARAS:

Introdução
O Simulink permite definir uma janela para interface
para os subsistemas chamada máscara (mask). Essa
janela permite:

1. Criar uma janela de interface;


2. Definir os parâmetros de entrada para o subsistema;
3. Criar um ícone especial para o subsistema;
4. Definir a função de inicialização.

 M. Becker 2008 192


MÁSCARAS:

Criar o tutorial_17 a partir do tutorial_16:


1. Abra o modelo tutorial_16 e salve-o como tutorial_17;
2. Clique no bloco [Subsystem] com o botão direito do mouse
para abrir o menu flutuante de edição e selecione a opção
[Edit Mask] para abrir a janela [Mask Editor].

 M. Becker 2008 193


MÁSCARAS:

tutorial_17 :
3. O campo [Drawing Commands] da pasta [Icon] aceita
comandos para criar ícones para subsistemas. O campo
[Examples of drawing Commands] fornece a descrição da
sintaxe desses comandos

 M. Becker 2008 194


MÁSCARAS:

tutorial_17 :
4. Usar a função “plot” no campo [Drawing Commands]. Digite
‘plot([0 1 2 3],[1 1.5 4 4.5])’ e clique [Apply]

 M. Becker 2008 195


MÁSCARAS:

tutorial_18 : [Show part labels] habilita / desabilita a


exibição de labels em blocos de subsistemas
1. Abra o modelo tutorial_17 e salve-o como tutorial_18;
2. Limpe a formatação feita anteriormente no campo [Drawing
Commands] da janela [Mask Editor].

 M. Becker 2008 196


MÁSCARAS:

tutorial_18 :
3. Selecione com o mouse o bloco
[SubSystem] e clique no menu
pop-up [Edit] e selecione a
opção [Subsystem
Parameters...]

 M. Becker 2008 197


MÁSCARAS:

tutorial_18 :
4. No item [Parameters] selecione em
[Show port labels] a opção [none]

 M. Becker 2008 198


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: disponibiliza recursos para auxiliar a


localização e diagnóstico de erros em modelos.
1. Configuração de breakpoints;
2. Simulação passo-a-passo;
3. Monitoramento de sinais de entrada e saída.

Pode ser acionado no menu pop-up [Tools] do modelo Simulink


que abre a janela [Simulink debugger]

 M. Becker 2008 199


DEPURAÇÃO DE MODELOS:

[Simulink debugger]:

 M. Becker 2008 200


DEPURAÇÃO DE MODELOS:

[Simulink debugger]:

Os comandos estão disponíveis nos ícones da barra de


ferramentas

 M. Becker 2008 201


DEPURAÇÃO DE MODELOS:

[Simulink debugger]:

Comandos que permitem o avanço da execução da simulação


para próximos passos, blocos, métodos, etc.

Ficam habilitadas apenas durante a execução da simulação

 M. Becker 2008 202


DEPURAÇÃO DE MODELOS:

[Simulink debugger]:

Comandos que permitem iniciar, pausar e finalizar a execução da


simulação.

Pausar e finalizar a simulação são habilitadas apenas durante a


execução da simulação

 M. Becker 2008 203


DEPURAÇÃO DE MODELOS:

[Simulink debugger]:

Comandos que permitem mostrar ou não dados I/O de blocos


selecionados e parar a simulação em um bloco selecionado.

 M. Becker 2008 204


DEPURAÇÃO DE MODELOS:

[Simulink debugger]:

Comandos que permitem alterar parâmetros de animação.

Habilitar ou Desabilitar a animação da simulação é possível


apenas durante a execução da simulação

 M. Becker 2008 205


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo

1. No modelo tutorial_18, abra a janela do [Simulink debugger] e selecione


o bloco [Sum];

2. Clique no ícone para configurar um breakpoint;

3. Clique no ícone para habilitar a exibição dos sinais de entrada e


saída do bloco;

4. O bloco [Sum] aparecerá na área [Break/Display points]

 M. Becker 2008 206


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Assim...

 M. Becker 2008 207


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo


5. Clique no ícone para iniciar o processo de Debug;

208
DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo


6. Observa-se que:
• O modelo é executado até o breakpoint (um passo antes da 1ª
passagem pelo bloco [Sum]);

 M. Becker 2008 209


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo


6. Observa-se que:
• A pasta [Outputs] exibe as mensagens do sistema apresentadas
durante a execução e os valores dos sinais de entrada e saída;

 M. Becker 2008 210


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo


6. Observa-se que:
• A pasta [Sorted List] exibe a ordem de execução dos blocos durante a
simulação;

 M. Becker 2008 211


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo


6. Observa-se que:
• A pasta [Status] exibe informações do sistema e da simulação, p.e.:
tempo de simulação, status, etc.

 M. Becker 2008 212


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo


7. Clique no ícone para avançar a execução para o próximo
bloco

 M. Becker 2008 213


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo


8. Elemime o breakpoint clicando no botão [Remove selected
point] e configure [Break at time] com valor “4”;

9. Clique no ícone para fazer a simulação prosseguir até o


instante “4”;

10. Observe o gráfico de [Scope]...

 M. Becker 2008 214


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo

 M. Becker 2008 215


DEPURAÇÃO DE MODELOS:

[Simulink debugger]: Exemplo

 M. Becker 2008 216


SUMÁRIO




 M. Becker 2008 217


SIMULINK E MATLAB:

Troca de Dados

A troca de dados entre MatLab e Simulink é realizada através de 4


blocos:
No item [Sources]:
[From Workspace]: traz o conteúdo de uma variável do workspace do
MatLab para o Simulink
[From File]: traz o conteúdo de um arquivo *.mat para o Simulink
No item [Sinks]:
[To workspace]: exporta o conteúdo de um sinal para uma variável no
workspace do MatLab
[To File]: exporta o conteúdo de um sinal para um arquivo *.mat

 M. Becker 2008 218


SIMULINK E MATLAB:

[tutorial_19]: troca de dados entre o MatLab e Simulink.


Baseado no tutorial_10, vamos modificar a geração de
números aleatórios.
1. Salve o tutorial_10 como tutorial_19, delete os dois blocos
[Random Number], substituindo-os pelos blocos [From Workspace]
e [From File], conforme a figura abaixo.

219
SIMULINK E MATLAB:

[tutorial_19]:
2. Configure os parâmetros de simulação como:
[Start time]: “0.0”;
[Stop time]: “10.0”;
[Solver Options]: “fixed-step”;
[Fixed step size]: “1”.

3. Configure o bloco [From Workspace] para receber os dados da variável


“entrada1” que deve ser previamente armazenada no workspace do
MatLab.

 M. Becker 2008 220


SIMULINK E MATLAB:

[tutorial_19]:
4. Conferindo o Array no MatLab:

 M. Becker 2008 221


SIMULINK E MATLAB:

[tutorial_19]:
5. Gere os dados da variável “entrada1” no workspace do MatLab, com o
seguinte formato:
• A primeira coluna contém o vetor de tempo;
• As demais colunas contêm os valores dos dados para cada instante de
tempo

• Nesse caso, “entrada1” deve ser uma matriz 11x11:


o Vetor tempo: [0 1 2 3 4 5 6 7 8 9 10]
o Os dados são 11 seqüências de 10 números aleatórios
• No MatLab:

 M. Becker 2008 222


SIMULINK E MATLAB:

[tutorial_19]:
6. Para criar automaticamente a variável “entrada1” no MatLab,
reescreva os comandos do MatLab no item [Model pre-load
function] da pasta [Callback] da janela [Model Properties] do menu
pop-up [File]

223
SIMULINK E MATLAB:

[tutorial_19]:
7. Configure o bloco [From File] para receber os dados do arquivo
“entrada2.mat”, que deve estar previamente armazenado em disco
(no mesmo diretório de trabalho). Caso esse arquivo não exista, o
Simulink retorna uma mensagem de erro...

224
SIMULINK E MATLAB:

[tutorial_19]:
8. Para gerar o arquivo “entrada2.mat” deve-se ter em mente
que o mesmo deve ter as seguintes características:
• A primeira linha contém o vetor de tempo;
• As demais linhas contêm os valores dos dados para cada
instante de tempo

• Nesse caso, “entrada2.mat” deve ser uma matriz 11x11:


o Vetor tempo: [0 1 2 3 4 5 6 7 8 9 10]
o Os dados são 11 seqüências de 10 números aleatórios
• No MatLab:

225
SIMULINK E MATLAB:

[tutorial_19]:
9. Conferindo o Array no MatLab:

 M. Becker 2008 226


SIMULINK E MATLAB:

[tutorial_19]:
10. Configure o bloco [To File] para
armazenar os dados em uma
variável chamada “saída” e gravá-
la em um arquivo chamado
“saida.mat”. Esse arquivo tem as
seguintes características:
• A 1ª linha contém o vetor de
tempo;
• As demais linhas contêm os
valores dos dados para cada
instante de tempo.
11. Execute a simulação...

 M. Becker 2008 227


SIMULINK E MATLAB:

[tutorial_19]:
Assim...

 M. Becker 2008 228


SIMULINK E MATLAB:

[tutorial_19]:
12. Para visualizar os dados no MatLab:

 M. Becker 2008 229


SIMULINK E MATLAB:

Execução de Funções do MatLab


No item [User-defined functions] do [Library Browse] tem-se 6 blocos
que permitem executar funções do MatLab dentro do Simulink. As 4
mais importantes são:

• [Fcn]: executa uma expressão genérica do MatLab. Utiliza


a variável “u” como parâmetro de entrada;
• [S-Function]: executa uma s-function;
• [S-Function Builder]: utilitário que auxilia a construção de s-
functions ;
• [MATLAB Fcn]: aplica uma função ou expressão do MatLab
como sinal de entrada no Simulink.

 M. Becker 2008 230


SIMULINK E MATLAB:

Execução de Funções do MatLab

 M. Becker 2008 231


SIMULINK E MATLAB:

Bloco [Fcn]: exemplo_03


Utiliza o bloco [Fcn] para implementar a função:

f(u) = sin(u)*exp(0.2*u)

O sinal de entrada é gerado pelo bloco [Ramp] localizado no item


[Sources]. Este bloco gera uma seqüência de números

N(t) = n0*S(t)

Sendo: n0 o número inicial e S a inclinação da rampa (slope).

 M. Becker 2008 232


SIMULINK E MATLAB:

Bloco [Fcn]: exemplo_03


Assim...

 M. Becker 2008 233


SIMULINK E MATLAB:

Bloco [Fcn]: exemplo_04


Utiliza o bloco [Fcn] para implementar a função:

f(u) = u(1) + u(2)

O sinal de entrada é um sinal com 2 canais. Ele é gerado por um bloco


[Random Number] configurado com parâmetro:
[Initial Seed] = “fix(1000*rand(1,2))”

 M. Becker 2008 234


SIMULINK E MATLAB:

Bloco [Fcn]: exemplo_04


Assim:

 M. Becker 2008 235


SIMULINK E MATLAB:

Bloco [MATLAB Fcn]: exemplo_05


Esse bloco é empregado para implementar uma PG com valor inicial
A0 = 3 e razão Q = 2, codificada no “m-file” ‘pg_A0_3_Q_2.m’.
A função é codificada em um “m-file” que recebe um dado de entrada
e retorna um dado de saída para cada instante da simulação

 M. Becker 2008 236


SIMULINK E MATLAB:

Bloco [MATLAB Fcn]: exemplo_05


Assim...

 M. Becker 2008 237


SIMULINK E MATLAB:

Bloco [MATLAB Fcn]: exemplo_05


O gráfico:

 M. Becker 2008 238


SIMULINK E MATLAB:

Bloco [S-Function]
É a implementação de um bloco do Simulink em linguagem de
programação. Podem ser codificadas em:
• “m-file”, ou seja, a linguagem de programação do MatLab;
• C/C++;
• Fortran;
• ADA.
Vamos focar apenas aplicações em “m-file”...
O uso de s-functions expande enormemente os recursos do Simulink,
pois com ela é possível modelar qualquer sistema dinâmico,
“customizando” o modelo.

 M. Becker 2008 239


SIMULINK E MATLAB:

Bloco [S-Function]
De modo simplificado, uma s-function implementa os estágios de
simulação de um bloco:

• Conjunto de dados de entrada;


• Conjunto de dados de saída;
u x y
(entrada) (estados) (saída)
• Conjunto de estados.

 M. Becker 2008 240


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Função ‘Limited integrator’ localizado no item [S-function Examples],
subitem [M-files], subsubitem [Level 1 M-files].

 M. Becker 2008 241


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Função ‘Limited integrator’ localizado no item [S-function Examples],
subitem [M-files], subsubitem [Level 1 M-files].

 M. Becker 2008 242


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Este modelo implementa um
Integrador limitado por parâmetros
fornecidos pelo usuário.

O bloco [S-Function] está


“mascarado” e espera 3
parâmetros de entrada:
• lb: lower band
• ub: upper band
• xi: initial condition

 M. Becker 2008 243


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator

 M. Becker 2008 244


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Para visualizar a listagem do programa, dê um duplo clique na caixa de texto
destacada pela seta...

 M. Becker 2008 245


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Assim...

 M. Becker 2008 246


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Cont...

 M. Becker 2008 247


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Cont...

 M. Becker 2008 248


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Cont...

Estabelece o valor inicial

 M. Becker 2008 249


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Cont...

Aqui são implementadas


as condições de corte de-
finidas pelos parâmetros
lb e ub. Se o valor estiver
fora dos limites, a fç retor-
na o valor “0”, senão, o
próprio valor.

 M. Becker 2008 250


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Final...

 M. Becker 2008 251


SIMULINK E MATLAB:

Bloco [S-Function]: Limited integrator


Executando a função
para limites [-0.5, 0.5]...

 M. Becker 2008 252


SIMULINK E MATLAB:

Bloco [S-Function Builder]


É um utilitário que auxilia a
construção de s-functions

 M. Becker 2008 253


SIMULINK E MATLAB:

Bloco [S-Function Builder]

 M. Becker 2008 254


SUMÁRIO




 M. Becker 2008 255


BIBLIOTECAS DE BLOCOS:

Bibliotecas disponíveis na janela [Simulink Library


Browser]

 M. Becker 2008 256


BIBLIOTECAS DE BLOCOS:

[Continuous]:

 M. Becker 2008 257


BIBLIOTECAS DE BLOCOS:

[Continuous]: Exemplo_06

 M. Becker 2008 258


BIBLIOTECAS DE BLOCOS:

[Discontinuities]:

 M. Becker 2008 259


BIBLIOTECAS DE BLOCOS:

[Discontinuities]: Exemplo_07

 M. Becker 2008 260


BIBLIOTECAS DE BLOCOS:

[Discrete]

 M. Becker 2008 261


BIBLIOTECAS DE BLOCOS:

[Discrete]: Exemplo_08

 M. Becker 2008 262


BIBLIOTECAS DE BLOCOS:

[Lookup Tables]

 M. Becker 2008 263


BIBLIOTECAS DE BLOCOS:

[Lookup Tables]: Exemplo_09

0 1 2 3 4 5

0 12 3 4 5

 M. Becker 2008 264


BIBLIOTECAS DE BLOCOS:

[Lookup Tables]: Exemplo_10

 M. Becker 2008 265


BIBLIOTECAS DE BLOCOS:

[Math Operations]

 M. Becker 2008 266


BIBLIOTECAS DE BLOCOS:

[Math Operations]: Exemplo_11

 M. Becker 2008 267


BIBLIOTECAS DE BLOCOS:

[Math Operations]: Exemplo_12

 M. Becker 2008 268


BIBLIOTECAS DE BLOCOS:

[Math Operations]: Exemplo_13

 M. Becker 2008 269


BIBLIOTECAS DE BLOCOS:

[Math Operations]: Exemplo_14

 M. Becker 2008 270


BIBLIOTECAS DE BLOCOS:

[Model Verification]

 M. Becker 2008 271


BIBLIOTECAS DE BLOCOS:

[Model Verification]: Exemplo_15

 M. Becker 2008 272


BIBLIOTECAS DE BLOCOS:

[Model Verification]: Exemplo_15

 M. Becker 2008 273


BIBLIOTECAS DE BLOCOS:

[Signal Attributes]

 M. Becker 2008 274


BIBLIOTECAS DE BLOCOS:

[Signal Attributes ]: Exemplo_16

 M. Becker 2008 275


BIBLIOTECAS DE BLOCOS:

[Signal Routing]

 M. Becker 2008 276


BIBLIOTECAS DE BLOCOS:

[Signal Routing ]: Exemplo_17

 M. Becker 2008 277


BIBLIOTECAS DE BLOCOS:

[Sinks]

 M. Becker 2008 278


BIBLIOTECAS DE BLOCOS:

[Sinks]: Exemplo_18

 M. Becker 2008 279


BIBLIOTECAS DE BLOCOS:

[Sinks]: Exemplo_18

 M. Becker 2008 280


BIBLIOTECAS DE BLOCOS:

[Sinks]: Exemplo_18

 M. Becker 2008 281


BIBLIOTECAS DE BLOCOS:

[Sources]

 M. Becker 2008 282


BIBLIOTECAS DE BLOCOS:

[Sources]: Exemplo_19

283
BIBLIOTECAS DE BLOCOS:

[Sources]: Exemplo_19

 M. Becker 2008 284


BIBLIOTECAS DE BLOCOS:

[User-Defined Functions]

 M. Becker 2008 285


BIBLIOTECAS DE BLOCOS:

[User-Defined Functions]: Exemplo_04

 M. Becker 2008 286


BIBLIOTECAS DE BLOCOS:

[Logic and Bit Operations]

 M. Becker 2008 287


BIBLIOTECAS DE BLOCOS:

[Ports and Subsystems]

 M. Becker 2008 288


BIBLIOTECAS DE BLOCOS:

[Model-Wide Utilities ]

 M. Becker 2008 289


SUMÁRIO




 M. Becker 2008 290


EXERCÍCIOS:

1 – Elabore um diagrama que gere um sinal composto


por 3 harmônicos com freqüências diferentes que
seguem a seguinte equação:

S(t) = 4*sin(5*t) – cos(20*t) + sin(50*t)

 M. Becker 2008 291


EXERCÍCIOS:

2 – Elabore um diagrama que gere um sinal composto por 2 harmônicos


com freqüências diferentes que seguem a seguinte equação:
S(t) = 4*sin(5*t) – cos(20*t)
Acrescente um atraso de 1 unidade de tempo no primeiro harmônico
(4*sin(5*t))

 M. Becker 2008 292


EXERCÍCIOS:

2–

 M. Becker 2008 293


EXERCÍCIOS:

3 – Elabore um diagrama que implemente a PG com as


seguintes características:

• Valor inicial G0 = 3
• Razão = 2
• Seqüência da PG: GN = GN-1 * Q, para N > 0 e Razão Q
• Fórmula Geral da PG: GN = G0 * Q(N-1), para N > 0 e
Razão Q

 M. Becker 2008 294


EXERCÍCIOS:

3–

 M. Becker 2008 295


EXERCÍCIOS:

4 – Construa um diagrama que implemente o sorteio de


um número entre 1 e n, sendo n um parâmetro de
entrada:

• Sugestões: crie um subsistema com máscara para criar o


parâmetro de entrada n; utiliza o bloco [Scope] para exibir o
resultado do sorteio; utilize o bloco [Uniform Random Number]
para gerar os números aleatórios; utilize o bloco [MATLAB Fcn]
para obter um número entre 1 e n; e o bloco [Unit Delay] para
controlar a velocidade de sorteio.

 M. Becker 2008 296


EXERCÍCIOS:

4–

 M. Becker 2008 297


EXERCÍCIOS:

5 – Construa um diagrama que modele um corpo em


queda livre e em salto “bungie-jump” (semelhante ao
tutorial_18.mdl) utilizando o bloco [Transfer Fcn].

• queda livre: y” = g;
• bungie-jump: y” = g – k/m * y – b/m * y’.

 M. Becker 2008 298


EXERCÍCIOS:

5–

 M. Becker 2008 299


EXERCÍCIOS:

6 – Crie um subsistema e uma máscara para o modelo


criado no exercício anterior.

 M. Becker 2008 300


EXERCÍCIOS:

7 – Acrescente um bloco [S-Function] ao modelo criado


no exercício 6 para implementar a animação do corpo
em queda.

Sugestão: utilize o bloco [Unit Delay] para controlar a


velocidade de animação

 M. Becker 2008 301


EXERCÍCIOS:
8 – Exemplo de Aplicação de Simulink em Controle
(Capítulo 11 – Dorf and Bishop, 11ª Ed., p. 795) Um
sistema de teste e inspeção automático utiliza um
motor DC com encoder para mover a mesa (figuras nos
próximos slides) e medir o deslocamento e velocidade.
As variáveis de estado selecionadas são:
x1= θ, x2= dθ/dt e x3= if
E, as variáveis de controle:
u = [-K1 -K2 -K3 ]x + r → u = -K1x1 -K2x2 -K3x3 + r

 M. Becker 2008 302


EXERCÍCIOS:
8 – Cont... Sistema de Inspeção Automático

 M. Becker 2008 303


EXERCÍCIOS:
8 – Cont... Detalhe do Motor DC

 M. Becker 2008 304


EXERCÍCIOS:
8 – Cont... Malha Aberta do Sistema

x1= θ, x2= dθ/dt e x3= if

 M. Becker 2008 305


EXERCÍCIOS:
8 – Cont... Malha Fechada do Sistema

 M. Becker 2008 306


EXERCÍCIOS:
8 – Cont... Root Locus – Lugar das Raízes do Sistema

 M. Becker 2008 307


EXERCÍCIOS:
8 – Cont... Resposta a uma entrada Degrau.

 M. Becker 2008 308


EXERCÍCIOS:
9 – Exemplo de Aplicação de Simulink em Controle
(Capítulo 11 – Dorf and Bishop, 11ª Ed., p. 798) Uma
locomotiva diesel-elétrica é mostrada na figura da
próximo slide. A eficiência do motor a combustão
interna diesel é muito sensível às velocidades de
rotação dos motores elétricos. Deseja-se desenvolver
um controlador para os motores elétricos que permita
o emprego dessa locomotiva em trens. A locomotiva é
acionada por motores elétricos DC localizados em
cada um de seus eixos. Deseja-se controlar a rotação
ω0 para um dado valor de ωr.
 M. Becker 2008 309
EXERCÍCIOS:
9 – Cont... Esquema da locomotiva.

310
EXERCÍCIOS:
9 – Cont... Parâmetros para Simulação.

Km Kg Kb J b La Ra Rf Lf Kt Kpot Lg Rg
10 100 0.62 1 1 0.2 1 1 0.1 1 1 0.1 1

 M. Becker 2008 311


EXERCÍCIOS:
9 – Cont... Exemplo do
processo de projeto de
sistema de controle

312
EXERCÍCIOS:
9 – Cont.

Fluxo de Sinais do Controlador

Diagrama de Blocos do Controlador


313
EXERCÍCIOS:
9 – Cont... Diagrama de Blocos da Locomotiva

 M. Becker 2008 314


EXERCÍCIOS:
9 – Cont... Localização dos Polos desejada

 M. Becker 2008 315


Resposta do Sistema em Malha
9 – Cont...
Fechada a uma entrada degraus
EXERCÍCIOS:

316

Você também pode gostar