SIMULINK
Curso Bsico
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 PORTUGUS
Simulink 5 Fundamentos, lia Yathie Matsumoto,
Editora rica, 204p., 2 Edio, 2009.
website
www.mathworks.com
M. Becker 2008 3
SUMRIO
INTRODUO
AMBIENTE DO SIMULINK
MANIPULAES DE BLOCOS
EXIBIO DE GRFICOS E SIMULAO
SOLVERS
MODELOS, MSCARAS E SUBSISTEMAS
SIMULINK E MATLAB
BIBLIOTECAS DE BLOCOS
EXERCCIOS
M. Becker 2008 4
SUMRIO
M. Becker 2008 5
INTRODUO:
O que Simulink?
M. Becker 2008 6
INTRODUO:
M. Becker 2008 7
INTRODUO:
2 modos:
M. Becker 2008 8
INTRODUO:
2. Diretamente na linha de
comando do MatLab
M. Becker 2008 9
SUMRIO
M. Becker 2008 10
AMBIENTE DO SIMULINK:
Barra de Ferramentas
rea de Descrio
Diagramas de Blocos
Disponveis 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 Parmetros de
Simulao
A opo [Configuration Parameters...]
abre a janela de parmetros do
Simulink
M. Becker 2008
28
AMBIENTE DO SIMULINK:
M. Becker 2008
29
AMBIENTE DO SIMULINK:
Configurar Parmetros de
Simulao
Curva dentada...
Configurar Parmetros de
Simulao
Altere o parmetro [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 Parmetros de
Simulao
Assim...
M. Becker 2008 33
AMBIENTE DO SIMULINK:
Configurar Parmetros de
Blocos
M. Becker 2008 34
AMBIENTE DO SIMULINK:
Configurar Parmetros de
Blocos
Configure os parmetros [Amplitude]
de 1 para 5 e [Frequency] de 1 para 2
Simule o modelo...
M. Becker 2008
35
AMBIENTE DO SIMULINK:
Configurar Parmetros de
Blocos
Configure os parmetros [Amplitude]
de 1 para 5 e [Frequency] de 1 para 2
Simule o modelo...
M. Becker 2008
SUMRIO
M. Becker 2008 37
MANIPULAES DE BLOCOS:
Blocos e Ligaes
38
MANIPULAES DE BLOCOS:
Blocos e Ligaes
M. Becker 2008 39
MANIPULAES DE BLOCOS:
Blocos e Ligaes
M. Becker 2008 40
MANIPULAES DE BLOCOS:
Blocos e Ligaes
M. Becker 2008 41
MANIPULAES DE BLOCOS:
Blocos e Ligaes
M. Becker 2008 42
MANIPULAES DE BLOCOS:
Blocos e Ligaes
O grfico exibido em [Scope] a
soma de duas curvas de seno
com amplitude 1 e freqncia 1,
ou seja, uma curva com
amplitude 2 e freqncia 1...
M. Becker 2008 43
MANIPULAES DE BLOCOS:
Blocos e Ligaes
Simule o modelo...
M. Becker 2008 44
MANIPULAES DE BLOCOS:
Blocos e Ligaes
M. Becker 2008 45
MANIPULAES DE BLOCOS:
Blocos e Ligaes
Alterando o valor de amplitude da curva [Sine Wave 1] para 10 e
simulando...
Blocos e Ligaes
Alterando o valor de freqncia da curva [Sine Wave 1] para 10 e
simulando...
Blocos e Ligaes
Alterando o [Stop Time] para facilitar a visualizao...
Blocos e Ligaes
Alterando o valor de amplitude da curva [Sine Wave 1] para 1 e
simulando...
Blocos e Ligaes
Utilizando um bloco [Gain] ao invs de alterar a amplitude do
sinal... No item [Math Operators] localize o bloco [Gain] e insira-o
no mdulo.
50
MANIPULAES DE BLOCOS:
Blocos e Ligaes
Alterando o valor fator de ganho do bloco [Gain] para 3 e
simulando...
M. Becker 2008 52
EXIBIO DE GRFICOS:
Grficos e Resultados
M. Becker 2008 53
EXIBIO DE GRFICOS:
Grficos e Resultados
M. Becker 2008 54
EXIBIO DE GRFICOS:
Grficos e Resultados
M. Becker 2008 55
EXIBIO DE GRFICOS:
Grficos e Resultados
Assim:
M. Becker 2008 56
EXIBIO DE GRFICOS:
Grficos e Resultados
Para obter vrios grficos em um nico bloco [Scope], salve o
modelo tutorial_04 como tutorial_05
M. Becker 2008 57
EXIBIO DE GRFICOS:
Grficos e Resultados
Clique em [Apply]
M. Becker 2008 58
EXIBIO DE GRFICOS:
Grficos e Resultados
Curva 1
Soma das
Curvas
Curva 2
M. Becker 2008 59
EXIBIO DE GRFICOS:
Grficos e Resultados
Definindo os nomes dos sinais e rtulos para os grficos: d um
duplo clique na linha e escolha o nome desejado
M. Becker 2008 60
EXIBIO DE GRFICOS:
Grficos e Resultados
M. Becker 2008 61
EXIBIO DE GRFICOS:
Grficos e Resultados
M. Becker 2008 62
EXIBIO DE GRFICOS:
Grficos e Resultados
M. Becker 2008 63
EXIBIO DE GRFICOS:
Grficos e Resultados
Assim:
M. Becker 2008 64
MECANISMOS DE SIMULAO
Introduo
M. Becker 2008 65
MECANISMOS DE SIMULAO
Blocos
u x y
(entrada) (estados) (sada)
M. Becker 2008 66
MECANISMOS DE SIMULAO
Estados
Exemplo de bloco sem estado: bloco [Sum] usado nos tutoriais. Dados de
entrada: [Sin Wave] e [Sin Wave 1]. Dado de sada: soma dos valores de entrada
M. Becker 2008 67
MECANISMOS DE SIMULAO
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 sada: valor anterior
Conjunto de Estados: estado anterior (t-1) e estado atual (t)
Inicial: armazena o valor inicial corrente
Prximos: armazena o valor corrente e retorna o valor armazenado anteriormente
M. Becker 2008 68
MECANISMOS DE SIMULAO
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 SIMULAO
Estados
Execute o tutorial_07 e visualize o resultado
S0 = 1
Si = Si-1+S0, para i>0
O bloco [Memory]
implementou a seqncia
Si-1+S0
M. Becker 2008 70
MECANISMOS DE SIMULAO
Estados
Altere o valor do bloco constante para 3, execute o tutorial_07 e
visualize o resultado
M. Becker 2008 71
MECANISMOS DE SIMULAO
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 SIMULAO
Estados
Configure:
M. Becker 2008 73
MECANISMOS DE SIMULAO
Estados
Execute a simulao e verifique
os valores armazenados na
janela [Workspace] do MatLab:
M. Becker 2008 75
MECANISMOS DE SIMULAO
M. Becker 2008 76
MECANISMOS DE SIMULAO
Tempo e Passos de Simulao
[Solver options]: opes de solvers
[ode45(Domand-Prince)], etc.: prximo tpico
[Max step size]: passo mximo
[Min step size]: passo mnimo
[Initial step size]: passo inicial
[Relative (Absolute) tolerance]: tolerncia relativa (absoluta) a ser
empregada para monitorar e controlar o erro a cada passo
durante as interaes
77
MECANISMOS DE SIMULAO
Tempo e Passos de Simulao
No caso do tutorial_07 no h interao. Logo, vamos alterar o
parmetro [Max step size]. Configur-lo de auto para:
78
MECANISMOS DE SIMULAO
M. Becker 2008 79
MECANISMOS DE SIMULAO
11 divises no eixo x
M. Becker 2008 80
MECANISMOS DE SIMULAO
M. Becker 2008 81
MECANISMOS DE SIMULAO
M. Becker 2008 82
MECANISMOS DE SIMULAO
M. Becker 2008 83
MECANISMOS DE SIMULAO
84
MECANISMOS DE SIMULAO
M. Becker 2008 85
MECANISMOS DE SIMULAO
Execute a simulao...
M. Becker 2008 86
MECANISMOS DE SIMULAO
M. Becker 2008 87
MECANISMOS DE SIMULAO
Sinais
M. Becker 2008 88
MECANISMOS DE SIMULAO
Sinais
tutorial_09: utilizao de sinais com mais de uma
dimenso. Crie um novo modelo com os seguintes locos:
[Random Number] do item [Sources]
[Scope]
M. Becker 2008 89
MECANISMOS DE SIMULAO
Sinais
tutorial_09: no bloco [Random Number] configure as
propriedades:
[Mean]: mdia da distribuio normal
[Variance]: varincia da distribuio normal
[Initial Seed]: nmero inteiro positivo que ser a semente para
a gerao da seqncia de nmeros aleatrios. O ideal que
esse nmero varie a cada execuo: utilize a expresso do
MatLab: 100*rand
M. Becker 2008 90
MECANISMOS DE SIMULAO
Sinais
tutorial_09: Assim...
M. Becker 2008 91
MECANISMOS DE SIMULAO
Sinais
tutorial_09: Executando vrias vezes a simulao...
M. Becker 2008 92
MECANISMOS DE SIMULAO
Sinais
tutorial_09: Para evitar a mensagem no MatLab:
M. Becker 2008 93
MECANISMOS DE SIMULAO
Sinais
tutorial_09: O parmetro [Initial seed] pode ser um vetor
1xN, em que N representa a quantidade de nmeros
aleatrios que devem ser gerados simultaneamente...
M. Becker 2008 94
MECANISMOS DE SIMULAO
Sinais
tutorial_09: para visualizar as 3 curvas separadamente,
utiliza-se o bloco [Demux] do item [Signal Routing]...
M. Becker 2008 95
MECANISMOS DE SIMULAO
Sinais
tutorial_09: Assim...
M. Becker 2008 96
MECANISMOS DE SIMULAO
Sinais
tutorial_09: O simulink pode ser configurado para exibir
informaes sobre as propriedades dos sinais
M. Becker 2008 97
MECANISMOS DE SIMULAO
Sinais
tutorial_09: Assim...
M. Becker 2008 98
MECANISMOS DE SIMULAO
Sinais
tutorial_10: Composio dos tutorial_08 e tutorial_09 que
forma um modelo simplificado de simulao Monte
Carlo...
Modelo: S0 = Sinicial
Si,j = Si-1,j + k1*i,j + k2*i,j , j = 1:NS
Em que: k1 e k2 so constantes reais
i,j e i,j so variveis aleatrias com distribuio normal
NS o nmero de seqncias aleatrias a serem geradas
M. Becker 2008 99
MECANISMOS DE SIMULAO
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 varivel de sada do bloco [To workspace] para
SeqMC
Sinais
Assim, para implementar a seqncia Si, precisamos de 2 geraes de
nmeros aleatrios, semelhantes ao tutorial_09:
Sinais
Cuidado na configurao do bloco [Gain] para Matrix Gain:
104
MECANISMOS DE SIMULAO
Sinais
Utilize os seguintes dados numricos para a simulao:
Sinais
Assim...
Cuidado com [Swtich]
106
MECANISMOS DE SIMULAO
Sinais
Acertando a formatao...
108
MECANISMOS DE SIMULAO
Sinais
Plotando os valores no MatLab...
Introduo
Introduo
Simulation Time
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 alteraes que
sero inseridas no modelo...
Solver Options
Assim, o sinal gerado pelo bloco [Integrator] ser armazenado em uma varivel
no MatLab com o nome Integral tipo struct com os campos: time e
signal.values
Solver Options
Solver Options
tutorial_11: executando a simulao, 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 funo do MatLab diff para verificar a
diferena entre os passos empregados pelo solver ode45,
verificamos que o valor mximo do passo : 0.2
Solver Options
tutorial_11: altere os seguintes parmetros de simulao:
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 acelerao, sua
integral 1 como a velocidade e sua integral 2 como a posio 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
simulao...
Solver Options
tutorial_13: Assim...
60 kg 80 kg
135
SOLVERS:
x= 1
u s + a.s + b
Implementando o modelo desta equao 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:
Introduo
Um conjunto de blocos pode ser agrupado, gerando um
bloco nico denominado subsistema. Isso til para:
1. Reduzir o nmero de blocos exibidos na janela do modelo,
simplificando a sua visualizao;
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 opo [Create
Subsystem];
5. Todos os blocos selecionados
so substitudos 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 organizao dos subsistemas de um modelo pode ser
visualizada ativando a opo [Model Browser] no menu pop-
up [View]
Introduo
O Simulink permite definir uma janela para interface
para os subsistemas chamada mscara (mask). Essa
janela permite:
Introduo
O Simulink permite definir uma janela para interface
para os subsistemas chamada mscara (mask). Essa
janela permite:
tutorial_16:
3. Selecione a pasta [Parameters] para definir os parmetros de
entrada.
182
MSCARAS:
tutorial_16:
Os parmetros de entrada so:
S0: valor inicial;
K1: constante real 1;
K2: constante real 2
NS: nmero de seqncias
tutorial_16:
Deve-se fornecer:
[Prompt]: texto de chamada
[Variable]: nome da varivel
[Type]: tipo de entrada de varivel
[Edit]: caixa de edio de texto
[Checkbox]: opo ativa / desativa
[Pop-up]: lista de seleo
tutorial_16:
tutorial_16:
Assim...
tutorial_16:
7. Com a mscara, um duplo clique no
bloco [Subsystem] abre a janela de
parmetros.
tutorial_16:
tutorial_16:
Assim...
tutorial_16:
tutorial_16:
Execute a simulao...
Introduo
O Simulink permite definir uma janela para interface
para os subsistemas chamada mscara (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 descrio da
sintaxe desses comandos
tutorial_17 :
4. Usar a funo 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
opo [Subsystem
Parameters...]
tutorial_18 :
4. No item [Parameters] selecione em
[Show port labels] a opo [none]
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
[Simulink debugger]:
208
DEPURAO DE MODELOS:
Troca de Dados
219
SIMULINK E MATLAB:
[tutorial_19]:
2. Configure os parmetros de simulao 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 varivel entrada1 no workspace do MatLab, com o
seguinte formato:
A primeira coluna contm o vetor de tempo;
As demais colunas contm os valores dos dados para cada instante de
tempo
[tutorial_19]:
6. Para criar automaticamente a varivel 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 diretrio de trabalho). Caso esse arquivo no 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 caractersticas:
A primeira linha contm o vetor de tempo;
As demais linhas contm 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
varivel chamada sada e grav-
la em um arquivo chamado
saida.mat. Esse arquivo tem as
seguintes caractersticas:
A 1 linha contm o vetor de
tempo;
As demais linhas contm os
valores dos dados para cada
instante de tempo.
11. Execute a simulao...
[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 implementao de um bloco do Simulink em linguagem de
programao. Podem ser codificadas em:
m-file, ou seja, a linguagem de programao do MatLab;
C/C++;
Fortran;
ADA.
Vamos focar apenas aplicaes em m-file...
O uso de s-functions expande enormemente os recursos do Simulink,
pois com ela possvel modelar qualquer sistema dinmico,
customizando o modelo.
Bloco [S-Function]
De modo simplificado, uma s-function implementa os estgios de
simulao de um bloco:
Aqui so implementadas
as condies de corte de-
finidas pelos parmetros
lb e ub. Se o valor estiver
fora dos limites, a f retor-
na o valor 0, seno, o
prprio valor.
[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 ]
Valor inicial G0 = 3
Razo = 2
Seqncia da PG: GN = GN-1 * Q, para N > 0 e Razo Q
Frmula Geral da PG: GN = G0 * Q(N-1), para N > 0 e
Razo Q
queda livre: y = g;
bungie-jump: y = g k/m * y b/m * y.
310
EXERCCIOS:
9 Cont... Parmetros para Simulao.
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
EXERCCIOS:
9 Cont.
316