Escolar Documentos
Profissional Documentos
Cultura Documentos
SIMULINK
Curso Básico
2011
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.
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?
M. Becker 2008 6
INTRODUÇÃO:
M. Becker 2008 7
INTRODUÇÃO:
2 modos:
M. Becker 2008 8
INTRODUÇÃO:
2. Diretamente na linha de
comando do MatLab
M. Becker 2008 9
SUMÁRIO
M. Becker 2008 10
AMBIENTE DO SIMULINK:
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
M. Becker 2008 12
AMBIENTE DO SIMULINK:
M. Becker 2008 13
AMBIENTE DO SIMULINK:
Menus Pop-up
M. Becker 2008 14
AMBIENTE DO SIMULINK:
Menus Pop-up
M. Becker 2008 15
AMBIENTE DO SIMULINK:
Menus Pop-up
M. Becker 2008 16
AMBIENTE DO SIMULINK:
Menus Pop-up
M. Becker 2008 17
AMBIENTE DO SIMULINK:
Barra de Ferramentas
[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:
M. Becker 2008 19
AMBIENTE DO SIMULINK:
Library Browser
Divide-se em 2 janelas:
M. Becker 2008 20
AMBIENTE DO SIMULINK:
Janela do 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
M. Becker 2008 23
AMBIENTE DO SIMULINK:
Janela do Modelo
M. Becker 2008 24
AMBIENTE DO SIMULINK:
Janela do Modelo
M. Becker 2008 25
AMBIENTE DO SIMULINK:
Janela do Modelo
Conecte os 2 blocos
M. Becker 2008 26
AMBIENTE DO SIMULINK:
Janela do Modelo
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
Curva “dentada”...
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
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
38
MANIPULAÇÕES DE BLOCOS:
Blocos e Ligações
M. Becker 2008 39
MANIPULAÇÕES DE BLOCOS:
Blocos e Ligações
M. Becker 2008 40
MANIPULAÇÕES DE BLOCOS:
Blocos e Ligações
M. Becker 2008 41
MANIPULAÇÕES DE BLOCOS:
Blocos e Ligações
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...
M. Becker 2008 43
MANIPULAÇÕES DE BLOCOS:
Blocos e Ligações
Simule o modelo...
M. Becker 2008 44
MANIPULAÇÕES DE BLOCOS:
Blocos e Ligações
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...
Blocos e Ligações
Alterando o valor de freqüência da curva [Sine Wave 1] para 10 e
simulando...
Blocos e Ligações
Alterando o [Stop Time] para facilitar a visualização...
Blocos e Ligações
Alterando o valor de amplitude da curva [Sine Wave 1] para 1 e
simulando...
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...
M. Becker 2008 52
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados
M. Becker 2008 53
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados
M. Becker 2008 54
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados
M. Becker 2008 55
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados
Assim:
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
M. Becker 2008 57
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados
Clique em [Apply]
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
M. Becker 2008 62
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados
M. Becker 2008 63
EXIBIÇÃO DE GRÁFICOS:
Gráficos e Resultados
Assim:
M. Becker 2008 64
MECANISMOS DE SIMULAÇÃO
Introdução
M. Becker 2008 65
MECANISMOS DE SIMULAÇÃO
Blocos
u x y
(entrada) (estados) (saída)
M. Becker 2008 66
MECANISMOS DE SIMULAÇÃO
Estados
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
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:
M. Becker 2008 73
MECANISMOS DE SIMULAÇÃO
Estados
Execute a simulação e verifique
os valores armazenados na
janela [Workspace] do MatLab:
M. Becker 2008 75
MECANISMOS DE SIMULAÇÃO
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:
78
MECANISMOS DE SIMULAÇÃO
M. Becker 2008 79
MECANISMOS DE SIMULAÇÃO
11 divisões no eixo x
M. Becker 2008 80
MECANISMOS DE SIMULAÇÃO
M. Becker 2008 81
MECANISMOS DE SIMULAÇÃO
M. Becker 2008 82
MECANISMOS DE SIMULAÇÃO
M. Becker 2008 83
MECANISMOS DE SIMULAÇÃO
84
MECANISMOS DE SIMULAÇÃO
M. Becker 2008 85
MECANISMOS DE SIMULAÇÃO
Execute a simulação...
M. Becker 2008 86
MECANISMOS DE SIMULAÇÃO
M. Becker 2008 87
MECANISMOS DE SIMULAÇÃO
Sinais
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:
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
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:
Sinais
Elimine o bloco [Constant] chamado “R” e altere o bloco [Constant]
chamado “A0” para “S0” e reconfigure para o valor “100”
Sinais
Altere o valor da variável de saída do bloco [To workspace] para
“SeqMC”
Sinais
Assim, para implementar a seqüência Si, precisamos de 2 gerações de
números aleatórios, semelhantes ao tutorial_09:
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:
Sinais
Assim...
Cuidado com [Swtich]
106
MECANISMOS DE SIMULAÇÃO
Sinais
Acertando a formatação...
108
MECANISMOS DE SIMULAÇÃO
Sinais
Plotando os valores no MatLab...
Introdução
Introdução
Simulation Time
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...
Solver Options
Solver Options
Solver Options
Solver Options
Solver Options
Solver Options
dx = 1
dt
Acrescente o bloco [To workspace] para
poder observar os efeitos das alterações que
serão inseridas no modelo...
Solver Options
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”
Solver Options
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:
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”
Solver Options
tutorial_11: altere os seguintes parâmetros de simulação:
Solver Options
tutorial_11: Assim...
Solver Options
tutorial_11: configurando o [Fixed-step size] em “1”, tem-se:
Solver Options
tutorial_12: modelagem de um corpo em queda livre
Solver Options
tutorial_12: assim...
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.
Solver Options
tutorial_12: assim...
Solver Options
tutorial_13: modelo de um sistema massa-mola-amortecedor
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...
Solver Options
tutorial_13: Assim...
60 kg 80 kg
135
SOLVERS:
x= 1
u s” + a.s’ + b
Implementando o modelo desta equação para os valores a = 1 e b = 2...
x= 1
u s” + a.s’ + b assim:
148
MODELOS:
149
MODELOS:
150
MODELOS:
151
MODELOS:
162
MODELOS:
167
MODELOS:
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
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]...
tutorial_15:
6. Para visualizar os blocos de subsistema, basta dar um duplo-
clique no bloco [Subsystem]
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]
Introdução
O Simulink permite definir uma janela para interface
para os subsistemas chamada máscara (mask). Essa
janela permite:
Introdução
O Simulink permite definir uma janela para interface
para os subsistemas chamada máscara (mask). Essa
janela permite:
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
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
tutorial_16:
tutorial_16:
Assim...
tutorial_16:
7. Com a máscara, um duplo clique no
bloco [Subsystem] abre a janela de
parâmetros.
tutorial_16:
tutorial_16:
Assim...
tutorial_16:
tutorial_16:
Execute a simulação...
Introdução
O Simulink permite definir uma janela para interface
para os subsistemas chamada máscara (mask). Essa
janela permite:
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
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]
tutorial_18 :
3. Selecione com o mouse o bloco
[SubSystem] e clique no menu
pop-up [Edit] e selecione a
opção [Subsystem
Parameters...]
tutorial_18 :
4. No item [Parameters] selecione em
[Show port labels] a opção [none]
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
208
DEPURAÇÃO DE MODELOS:
Troca de Dados
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”.
[tutorial_19]:
4. Conferindo o Array no 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
[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
225
SIMULINK E MATLAB:
[tutorial_19]:
9. Conferindo o Array no 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...
[tutorial_19]:
Assim...
[tutorial_19]:
12. Para visualizar os dados no MatLab:
f(u) = sin(u)*exp(0.2*u)
N(t) = n0*S(t)
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.
Bloco [S-Function]
De modo simplificado, uma s-function implementa os estágios de
simulação de um bloco:
[Continuous]:
[Continuous]: Exemplo_06
[Discontinuities]:
[Discontinuities]: Exemplo_07
[Discrete]
[Discrete]: Exemplo_08
[Lookup Tables]
0 1 2 3 4 5
0 12 3 4 5
[Math Operations]
[Model Verification]
[Signal Attributes]
[Signal Routing]
[Sinks]
[Sinks]: Exemplo_18
[Sinks]: Exemplo_18
[Sinks]: Exemplo_18
[Sources]
[Sources]: Exemplo_19
283
BIBLIOTECAS DE BLOCOS:
[Sources]: Exemplo_19
[User-Defined Functions]
[Model-Wide Utilities ]
2–
• 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
3–
4–
• queda livre: y” = g;
• bungie-jump: y” = g – k/m * y – b/m * y’.
5–
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
312
EXERCÍCIOS:
9 – Cont.
316