Escolar Documentos
Profissional Documentos
Cultura Documentos
Simulink20 PDF
Simulink20 PDF
Curso de
SIMULINK 2.0
Modelagem, Simulao e Anlise de Sistemas Dinmicos
Faculdade de Laboratrio de
Engenharia Engenharia Eltrica
AGRADECIMENTOS
Estas breves notas sobre o SIMULINK verso 2.0 baseadas nas obras The Student Edition of
SIMULINK e Mastering SIMULINK dos autores James B. Dabney e Thomas L. Harman resultam
do trabalho dedicado de alunos da Faculdade de Engenharia da UERJ, tanto de forma direta como
indireta. De forma direta envolveu-se no trabalho o aluno e bolsista de Iniciao Tecnolgica do
Projeto REENGE Csar Cunha de Souza. Um extenso grupo de pessoas se envolveu tambm
ativamente dando suporte de hardware, software e ainda o valioso apoio pessoal nas tarefas dirias
do laboratrio. Neste grupo incluem-se no s alunos como os tambm bolsistas Hlio Justino
Mattos Filho e Karla Karraz Valder, os estagirios Fbio da Silva Porto, Flvia Delduque Lima,
Hellen Nathalia Trevisan, Marcos Paulo dos Santos, Valdeir Gomes de Arajo Filho, como tambm
os funcionrios do Laboratrio de Engenharia Eltrica, cujos membros contriburam valorosamente
dando suporte e infra-estrutura para que este trabalho fosse bem sucedido. Um muito obrigado
equipe do LEE formada por Alberto Avelar Santiago, Andr Vallim Stachlewski, Antnio Marcos
Medeiros Corra, Jos Emlio Gomes, Jair Medeiros Jnior, Joo Elias Souza da Costa, Luiz
Roberto Franco Fagundes Filho, Marcos Augusto Mafra, Paulo Bulkool Batalheiro, Sueli Ferreira dos
Santos e a Srta. Carla Aparecida Caldas de Almeida. Um reconhecimento especial deve ser feito ao
diretor da Faculdade de Engenharia Dr. Nival Nunes de Almeida, coordenador geral do REENGE
por ter possibilitado inmeras atividades no s no LEE em particular mas em toda a Faculdade de
Engenharia. Prof.a Maria Eugnia Mosconi de Gouveia, vice-diretora da Faculdade de
Engenharia, que em trabalho conjunto com o diretor vem se empenhando em viabilizar as
solicitaes de estgio interno no LEE. Um muito obrigado tambm aqueles colaboradores
silenciosos que de forma direta ou indireta contriburam para o xito deste trabalho. O nosso
agradecimento ao CNPq que mediante os recursos alocados pela FINEP, patrocinou as bolsas que
permitiram este trabalho.
I
Curso de Introduo ao SIMULINK
NDICE
Apresentao..................................................................................................... 1
I
ndice
Curso de Introduo ao SIMULINK
II
ndice
Curso de Introduo ao SIMULINK
Bibliografia........................................................................................................ 119
III
ndice
Curso de Introduo ao SIMULINK
Apresentao
SIMULINK um programa utilizado para modelagem, simulao e anlise de
sistemas dinmicos. O programa se aplica a sistemas lineares e no lineares,
contnuos e/ou discretos no tempo.
Utiliza uma interface grfica com o usurio para construo dos modelos a partir de
diagramas em blocos, atravs de operaes de clique-e-arraste do mouse. Com
esta interface podem-se criar modelos da mesma forma que se faz com papel e
caneta. SIMULINK o resultado de uma longa evoluo de pacotes de simulao
anteriores que necessitavam a formulao de equaes diferenciais ou de
equaes de diferenas em linguagens de programao. Inclui bibliotecas de blocos
contendo fontes, visualizadores, componentes lineares, no lineares e conectores,
com a opo de criao ou personalizao de blocos.
Aps a definio do modelo, a simulao pode ser feita com diferentes algoritmos
de resoluo, escolhidos a partir dos menus do SIMULINK ou da linha de comando
do MATLAB. Os menus so particularmente convenientes para o trabalho interativo,
enquanto a linha de comando tem sua utilidade na simulao repetitiva a qual se
deseja somente mudar parmetros. Usando osciloscpios (Scopes) ou outros
visualizadores, tm-se o resultado grfico da simulao enquanto esta est sendo
executada. Os resultados da simulao podem ser exportados para o MATLAB
para futuro processamento ou visualizao.
1
Curso de Introduo ao SIMULINK
2
Cap.1 - Introduo Terica
Curso de Introduo ao SIMULINK
1.1.1 - Smbolos
X(s)
Varivel X(s)
Operador
Somador
X(s) F(s)
+ Relao representada
F(s) = X(s) Y(s)
Y(s)
3
Curso de Introduo ao SIMULINK
L[ f (t )] = f (t )e st dt = F (s )
0
O valor da integral resulta numa funo F(s), tendo s como varivel. Este parmetro
s uma grandeza complexa da forma + j . Deve-se ressaltar que os limites de
integrao so zero e infinito e que, portanto, no interessam os valores de f(t) para
instantes negativos ou nulos.
f (t ) = L1 [F ( s)]
pode ser efetuada por referncia direta a tabelas de transformadas ou por meio de
programas de computador. Quando no possvel encontrar em tabelas a
transformada da resposta, a tcnica geral consiste em exprimir F(s) sob a forma de
uma soma de fraes parciais com coeficientes constantes. As fraes parciais
apresentam no denominador monmios ou binmios e suas transformadas so
encontradas diretamente em tabelas. A transformada inversa completa a soma
das transformadas inversas das fraes.
P( s ) a w s w + a w 1 s w1 + ... + a1 s + a 0
F ( s) = =
Q( s ) s n + bn 1 s n1 + ... + b1 s + b0
4
Cap.1 - Introduo Terica
Curso de Introduo ao SIMULINK
Os valores s1, s2 ... sn, finitos que anulam o denominador, so chamados zeros do
denominador. Estes valores de s, que podem ser reais ou complexos, tambm
tornam |F(s)| infinito e, e decorrncia so chamados plos de F(s). Em
conseqncia, os valores s1, s2 ... sn so referidos como zeros do denominador ou
plos finitos da funo completa, isto , h n plos de F(s).
A transformada F(s) pode ser expressa como uma soma de fraes. Se os plos
so simples (no repetidos), o nmero de fraes igual a n (nmero de plos de
F(s)). Em tais casos a funo F(s) pode ser expressa sob a forma
P(s) A1 A2 Ak An
F ( s) = = + + ... + + ... +
Q ( s ) s s1 s s 2 s sk s sn
Funo Transformada
Af(t) AF(s)
d sF(s)-f(0)
f (t )
dt
d2 s2F(s)-sf(0)-f(0)
f (t )
dt 2
dn n (k 1)
dt n
f (t ) SnF(s)- s
k =1
n k
f (0 )
f (t )dt F ( s) 1
s
+
s
[ f (t )dt ] t =0
t F ( s)
0
f (t )dt
s
e at f (t ) F(s+a)
f(t-a)1(t-a), e as F (s )
1, t > a
1(t-a)=
0, t a
5
Curso de Introduo ao SIMULINK
tf(t) dF ( s )
ds
t2f(t) d2
F (s)
ds 2
t
f (t )
F ( s)ds
s
t aF(as)
f( )
a
f 1(t)*f 2(t)= F1(s).F2(s)
t
f (t ) f
0
1 2 ( ) d =
t
= f1 (t ) f 2 (t )d
0
f(t).g(t) 1
F ( s) * G (s)
2j
1.3 - Transformada Z
Os problemas de engenharia que utilizam a transformada Z surgiram da anlise de
sistemas de controle a dados amostrados, durante a Segunda Guerra Mundial,
quando tais sistemas adquiriram proeminncia. Sistemas a dados amostrados
operam com funes discretas no tempo (ou amostrados), pou uma ou duas razes.
Pode ser que os dados sejam disponveis somente em instantes discretos (como
num radar de explorao). possvel, por outro lado, que o uso dos dados
amostrados permita projetar um sistema desempenho dinmico melhor que o
possvel com dados contnuos no tempo. Como a transformada de Laplace era a
principal ferramenta para estudar sistemas de controle contnuos no tempo, sua
extenso a sistemas de dados amostrados era inteiramente natural.
6
Cap.1 - Introduo Terica
Curso de Introduo ao SIMULINK
LII[f(n)]=FII(z)= f (n) z
n= 0
n
Para ser til em anlise de sistemas, desejvel que estas sries sejam exprimveis
em forma fechada. Como o coeficiente de z-n no desenvolvimento em srie f(n),
segue-se que o desenvolvimento da forma fechada em uma srie de potncias em
-n
z gerar o sinal. Portanto, a transformada Z pode ser descrita como a funo
geratriz do sinal discreto no tempo ao qual ela corresponde. As potncias negativa
-n n
z so mais usadas que as positivas z porque isso est de acordo com o uso mais
freqente em engenharia. Na literatura matemtica sobre funes geratrizes e em
alguma literatura sobre sistemas de controle a dados amostrados, os coeficientes
das potncias positivas de z, geralmente correspondem aos valores de f(n) para
n>0.
7
Curso de Introduo ao SIMULINK
(n k ) z 1 0
1 (n) 1
1 z 1 1
an 1
1 az 1 a
n z 1
(1 z 1 ) 2 1
Para determinar o sinal f(n) correspondente a uma dada F(z), isto , para gerar f(n),
necessrio desenvolver F(z) em srie de potncias de z-1. Como, em qualquer
regio de convergncia, o desenvolvimento em srie de potncias nica. O
mtodo a empregar uma questo de convenincia.
1
f (n) =
2j C
F ( z ) z n 1dz
Observe que, quando n = 0, F(z) zn-1 pode ter um plo na origem mesmo quando
F(z) no tem o resduo de F(z) z-1 deve ser a calculado.
8
Cap.1 - Introduo Terica
Curso de Introduo ao SIMULINK
Um terceiro mtodo, que pode ser aplicado quando F(z) racional, exprimir
numerador e denominador de F(z) em polinmios em z-1; ento, usando a diviso
contnua da lgebra, dividir o numerador pelo denominador, e assim obter uma
srie em potncias z-1. Este mtodo que no tem similar na transformada de
Laplace muito eficiente quando falta conhecimento dos plos de F(z) e as tabelas
de transformada Z ou a frmula de inverso no podem ser usadas. Somente os
valores de f(n), e no sua expresso geral, podem ser assim obtidos.
(1 z 1 ) k F ( z )
b. atrasadas k f (n)
k 1
(1 z 1 ) k j 1 j f (1)
j =0
Somas n
1
f (k )
k = 1 z 1
F ( z) +
1
1
+ f (k )
1 z 1 k =
Translao F (n + k ) k >0 k 1
z k F ( z) z k f ( j) z j
j =0
n
Multiplicao por a n 1
a f (n) f (a z)
k
Multiplicao por n n k f (n) 1 d
z F ( z)
dz 1
Convoluo n Y ( z ) = H ( z ) X ( z)
y ( n) = h( n k ) x( k )
k =0
Produto de duas f (n) g (n) 1 F ( w)G ( zw 1 )
2j C
funes dw
w
Mudana de escala f (an) a = inteiros F ( z a )
Valor inicial f (0) = lim F ( z )
z
Valor final f () = lim (1 z 1 ) F ( z )
z 1
1
se (1 z ) F ( z ) analtico para z 1
9
Curso de Introduo ao SIMULINK
H(z) = Z[h(n)]
Y(z)=H(z)Z(z)
n
y ( n) = h( n k ) z
k =
k
.
resposta z n
H ( z) = .
zn
10
Cap.1 - Introduo Terica
Curso de Introduo ao SIMULINK
A partir do Windows 95/98, deve-se clicar duas vezes no cone do MATLAB. Aberto
o programa deve-se ento clicar no cone Start Simulink na barra de ferramentas
do MATLAB ou digitar simulink na linha de comando e pressionar enter logo em
seguida, como mostrado a seguir:
x& = sen(t ) ,
onde x( 0) = 0 .
Sendo o SIMULINK uma extenso do MATLAB, este deve ento ser carregado a
partir do MATLAB. Inicie o SIMULINK clicando no seu cone na barra de
ferramentas do MATLAB, como mostrado na figura :
11
Curso de Introduo ao SIMULINK
Arraste o bloco de onda senoidal (Sine Wave) para a janela do modelo. Uma cpia
deste bloco deve ser criada nesta janela.
12
Cap.2 Conhecendo o SIMULINK
Curso de Introduo ao SIMULINK
13
Curso de Introduo ao SIMULINK
x(t ) = 1 cos(t ) ,
Taxa de Natalidade = bx
Taxa de Mortalidade = px
2
x& = bx px 2
14
Cap.2 Conhecendo o SIMULINK
Curso de Introduo ao SIMULINK
Partindo disto ser ento construdo o modelo do sistema dinmico supondo que
b=1 bactria/hora e p=0,5 bactria/hora. Ser determinado o nmeros de bactrias
contidas no pote aps 1 hora, admitindo que inicialmente existiam 100 bactrias
presentes.
Este um sistema de 1a ordem, o que quer dizer que requer somente um integrador
para resolver a equao diferencial. A entrada do integrador x& e a sada x. Abra
o biblioteca linear e arraste o integrador para a janela do modelo, seguindo a
posio mostrada na figura:
Ainda na biblioteca Linear arraste dois blocos de ganhos (Gain) para a janela do
modelo e posicione-os como na figura. O SIMULINK exige que cada bloco tenha
seu nome nico. Devido a isto, o segundo bloco de ganho ser nomeado GAIN1.
Arraste ainda um bloco de soma (Sum) e a seguir feche a janela da biblioteca linear.
15
Curso de Introduo ao SIMULINK
16
Cap.2 Conhecendo o SIMULINK
Curso de Introduo ao SIMULINK
Trace agora uma linha de sinal da sada do bloco de soma para a entrada do
integrador e outra da sada do integrador para a entrada do SCOPE.
Se o mouse possuir trs botes as operaes de clicar e arrastar podem ser feitas
utilizando o boto direito.
17
Curso de Introduo ao SIMULINK
18
Cap.2 Conhecendo o SIMULINK
Curso de Introduo ao SIMULINK
19
Curso de Introduo ao SIMULINK
sempre aconselhvel
salvar o modelo antes de
executar a simulao.
20
Cap.2 Conhecendo o SIMULINK
Curso de Introduo ao SIMULINK
O modelo agora est completo e pronto para ser executado. Para salvar na barra de
menu clique em File:Save e entre com o nome desejado. O modelo ser salvo com
o nome digitado e a extenso .mdl, e seu nome aparecer na barra de ttulo da
janela de edio.
Abra agora o SCOPE com um duplo clique e a seguir na barra de menu, clique em
Simulation:Start para iniciar a execuo.
O SCOPE nem sempre mostra a figura numa boa escala para visualizao. O boto
Autoscale na barra de ferramentas do SCOPE redimensiona a escala para
acomodar todos os valores.
21
Curso de Introduo ao SIMULINK
Outra boa prtica o uso do notebook em anotaes durante a aula. Isto facilita a
execuo de certas rotinas, por muitas vezes modificando somente parmetros de
configurao.
22
Cap.2 Conhecendo o SIMULINK
Curso de Introduo ao SIMULINK
23
Curso de Introduo ao SIMULINK
24
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
25
Curso de Introduo ao SIMULINK
3.3 - Fontes
As entradas de um modelo so chamadas fontes (Sources) e podem ser
encontradas na biblioteca de fontes. Um bloco de fonte no possui entrada e deve
possuir pelo menos uma sada. A documentao detalhada de cada fonte pode ser
encontrada no help do SIMULINK. No texto que segue sero mencionadas somente
os tipos mais comuns e utilizados de fontes. Sero ainda discutidas as operaes
de importao do MATLAB e de arquivos que contenham dados os quais se deseja
inserir no modelo. Tal facilidade permite que se tenha qualquer tipo de sinal de
entrada, exista ele no SIMULINK ou no.
O bloco Degrau (Step) produz uma funo degrau. Pode-se configurar o instante em
que se aplica o degrau, assim como sua magnitude antes e depois da transio.
O bloco de Onda Senoidal (Sine Wave) permite que se configure a amplitude, a fase
e a freqncia da onda senoidal.
(t a ) = 0, ta
(t )dt = 1
Embora o impulso unitrio seja um sinal que teoricamente no existe, existem boas
aproximaes do caso ideal que so muito comuns. Exemplos fsicos so colises,
como uma roda se chocando com o meio-fio ou um basto rebatendo uma bola ou
ainda mudanas instantneas de velocidade como a de uma bala sendo disparada
de um rifle. Outra utilidade da funo impulso a determinao da dinmica do
sistema. O movimento causado em um sistema que sofre uma fora impulsional
unitria a prpria dinmica inerente ao sistema. Partindo disto, pode-se utilizar a
26
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
O modelo na figura acima deve ser ajustado para simular um impulso unitrio
ocorrido aos 0.5 segundos de simulao com uma durao de 0.01 segundos e a
magnitude de 100. A fonte degrau na parte superior deve ter a seguinte
configurao: Step time: 0.5, Initial value: 0, Final value: 100. J a fonte situada
na parte inferior deve ser configurada da seguinte forma: Step time: 0.51, Initial
value: 0, Final value: 100. A simulao deve ser configurada para terminar em 1
segundo. O grfico gerado no SCOPE mostrado na figura abaixo. A sada do
integrador contm o valor da integral do impulso no decorrer do tempo e mostrada
no bloco Display. Se a simulao foi correta tal valor deve ser 1, o que condiz com o
valor terico.
27
Curso de Introduo ao SIMULINK
Este bloco permite ao usurio criar seu prprio sinal de entrada. O bloco e sua caixa
de dilogo so mostrados em sua figura a seguir.
Exemplo
Para ilustrar o uso do bloco vamos supor que se deseja gerar um sinal definido por:
u (t ) = t 2
importante notar que os sinais devem ser carregados em colunas, o que exige
que se tenha a matriz A composta das matrizes transpostas de u e t.
Criada a tabela, deve-se agora configurar o bloco para que este receba os valores
desejados. Com um duplo clique sobre o bloco, deve-se digitar o nome da matriz
definida no MATLAB, neste caso A, e a seguir clicar no boto Close. O nome da
matriz aparecer sobre o bloco e este est pronto para ser usado como uma fonte
no SIMULINK.
28
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
Este bloco muito similar ao anterior. A diferena bsica que a matriz agora
carregada a partir de um arquivo gerado no MATLAB, podendo agora o sinal de
entrada ser salvo para diversos usos posteriores. Outra diferena importante que
os sinais devem agora ser carregados em linhas ao invs do caso anterior, em que
eram carregados em colunas.
Agora pode-se configurar o bloco para receber os valores digitando no campo File
Name o nome completo do bloco, inclusive sua extenso (.mat), no nosso caso
exemp.mat.
29
Curso de Introduo ao SIMULINK
Pode-se inserir o SCOPE no modelo sem qualquer conexo em sua entrada e deve
ser configurado como Bloco SCOPE Flutuante (Floating Scope Block). Este SCOPE
flutuante ser ento usado para se visualizar qualquer sinal do modelo durante a
execuo da simulao com um simples clique sobre a linha em que se deseja
conhecer o sinal.
A figura abaixo ilustra o bloco SCOPE. Nota-se que h uma barra de ferramentas
que contm seis cones ao longo do topo da janela. Esses botes permite dar um
zoom numa poro da figura, autodimensionar a figura, salvar a configurao para
futuro uso e abrir a caixa de dilogo com as propriedades do bloco SCOPE.
Abre-se a tela do Osciloscpio com um duplo clique sobre ele. Executa-se ento a
simulao e o resultado obtido deve ser semelhante ao mostrado na figura. Pode-se
30
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
A escala de tempo (Time Range) pode ser configurada para um valor particular ou
para seu modo automtico. Se o modo automtico for escolhido, a escala de tempo
ter o mesmo tamanho da durao da simulao especificada na caixa de dilogo
Simulation:Parameters.
31
Curso de Introduo ao SIMULINK
Se a opo escolhida for Decimation o campo que contm o fator deve ser um
nmero inteiro. Escolhendo-se Decimation e definindo-se 1 no campo ao lado da
caixa, todo os pontos na entrada do bloco sero plotados. Se define-se 2 para o
campo, a plotagem feita com pontos alternados e assim por diante.
32
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
3.4.2 - Grfico XY
33
Curso de Introduo ao SIMULINK
x& = 2
Defini-se para condio inicial do integrador valor 1 no campo Initial condition. A
seguir, escolhe-se no menu da janela do modelo Simulation:Parameters e
configura-se o tempo inicial para 0 e o tempo final para 5. A seguir se executa a
simulao. O SIMULINK determinar numericamente os valores da integral para
resolver
x( ) = 1 + 2dt
0
Esta pgina consiste em trs sees. A primeira, Simulation time, contm campos
para se definir o tempo inicial e final da simulao. Os valores default so 0 e 10.
34
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
35
Curso de Introduo ao SIMULINK
MTODO DE CARACTERSTICAS
SOLUO
ODE45 Excelente mtodo de propsito geral de passo
simples. baseado nos mtodos de Dormand-
Prince e de Runge-Kutta para Quarta/Quinta ordem.
ODE45 o mtodo default e geralmente uma boa
primeira opo.
ODE23 Usa os mtodos Bogacki-Shampine e Runge-Kutta
de Segunda/Terceira ordem. s vezes funciona
melhor do que ODE45 na presena de pouca
flexibilidade. Geralmente requer um passo menor do
que ODE45 para atingir a mesma preciso.
ODE113 Utiliza o mtodo de ordem varivel de Adams-
Bashforth-Moulton. J que ODE113 utiliza as
solues de pontos em tempos anteriores para se
determinar a soluo do tempo corrente, deve ento
produzir a mesma preciso dos mtodos ODE45 ou
ODE23 com menor nmero de clculos e com isto
tendo uma melhor performance. No apropriado
para sistemas com descontinuidades.
ODE15S Sistema de ordem varivel de multi passos para
sistemas inflexveis. baseado em pesquisas
recentes que utilizam frmulas numricas de
diferena. Se a simulao executar lentamente
utilizando ODE45, tente ODE15S.
ODE23S Ordem fixa de passo simples para sistema
inflexveis. Devido ao fato de ser um mtodo de
passo simples, em muitas das vezes mais rpido
do que ODE15S. Se um sistema parecer inflexvel
uma boa idia tentar ambos os mtodos para este
tipo de sistema para se determinar qual dos dois
tem melhor performance.
Fixed-and- Mtodo especial para sistemas que contm estados
Variable-Step descontnuos.
Discrete
ODE5 Verso de passo fixo de ODE45.
ODE4 Frmulas clssicas de Quarta ordem de Runge-
Kutta utilizando passo de tamanho fixo.
ODE3 Verso de passo fixo de ODE23.
ODE2 Mtodo de Runge-Kutta de passo fixo de Segunda
ordem, tambm conhecido por Mtodo de Heun.
ODE1 Mtodo de Euler utilizando passo de tamanho fixo.
36
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
A opo de produzir uma sada adicional (Produce additional output) permite forar
o SIMULINK a incluir certos pontos de tempo na trajetria de sada, em adio aos
pontos da soluo no fim de cada intervalo de integrao. Se esta opo for
selecionada, deve-se ento preencher o campo entitulado Tempos De Sada
(Output times). Este campo deve conter um vetor que lista os tempos adicionais
para os quais se deseja conhecer a sada. Se se deseja, por exemplo, incluir a
sada a cada 10 segundos de intervalo e o tempo inicial 0 e o final 100, o vetor
deve ser [0:10:100].
37
Curso de Introduo ao SIMULINK
A segunda pgina permite obter e enviar dados para rea de trabalho do MATLAB.
38
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
Esta seo contm trs campos, cada um ativado com a caixa correspondente.
A opo Tempo (Time) envia a varivel indenpendente para a rea de trabalho com
um nome definido (o default tout).
A opo Estados (States) envia todas as variveis de estado dos modelos para a
rea de trabalho do MATLAB numa matriz especificada (o default xout).
Na caixa Save Final possvel fazer com que o SIMULINK salve os valores finais
das variveis de estado num vetor especificado (default xFinal) para a rea de
trabalho do MATLAB. A sada desta opo um vetor que pode ser utilizado no
futuro como condies iniciais numa outra simulao, o que corresponde a
continuar de onde a anterior foi interrompida.
Esta seo da pgina contm dois campos e trabalham em conjunto com a seo
Save to workspace.
O primeiro campo (Limit rows to last) define-se o nmero de pontos que ser
enviado para o MATLAB. Por exemplo, se no campo for definido 1000, os ltimos
1000 pontos sero enviados para a rea de trabalho do MATLAB. O campo
Decimation configura o intervalo entre os pontos que sero enviados. Este campo
s deve conter nmeros inteiros. Se, por exemplo, for definido o valor 1 neste
campo, todos os pontos sero enviados para o MATLAB.
39
Curso de Introduo ao SIMULINK
Uma violao de tamanho do passo mnimo (Min step size violation) ocorre quando
a soluo tende a usar um passo de integrao menor do que o passo mnimo.
Como nem sempre possvel modificar o tamanho do passo mnimo em muitos
mtodos de passo varivel deve-se ento trocar para um mtodo de ordem
superior ao utilizado, que em geral utiliza um maior passo de integrao. Uma outra
opo aumentar o valor da tolerncia absoluta e relativa na primeira pgina de
configurao. Este tipo de erro deve ser sempre configurada para Warning ou Error
porque este tipo de erro indica que a simulao no est produzindo a preciso
desejada.
40
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
Esta deteco melhora a preciso da simulao, mas pode ocasionar uma lentido
da mesma. Ocasionalmente um sistema pode flutuar rapidamente pela
descontinuidade, um fenmeno conhecido por reticncia (chatter). Quando isto
ocorre, o progresso da simulao pode efetivamente parar, j que o passo de
integrao reduzido a valores muito pequenos. O modelo ento ser executado
lentamente quando o mesmo incluir um ou mais blocos com este tipo de deteco
intrnseca. Ao selecionar a opo Disable zero crossing detection na pgina de
diagnsticos pode aumentar significativamente a velocidade de execuo, mas
pode tambm reduzir drasticamente a preciso da simulao. Tal ao deve ento
ser utilizada somente como uma ferramenta para se verificar se est ocorrendo a
reticncia. Se a opo for selecionada e a velocidade de execuo aumentar
consideravelmente, deve-se ento localizar a causa da reticncia e corrigir o
problema.
41
Curso de Introduo ao SIMULINK
Os modelos podem ainda ser salvos como arquivos bitmaps, Windows metafiles ou
EPS.
Para se obter uma figura como arquivo bmp ou wmf, primeiro se deve clicar
Edit:Copy Model na barra de menu da janela do modelo. A seguir deve-se inserir a
figura no documento desejado de acordo com o programa utilizado.
Para se utilizar a opo de arquivo EPS deve-se primeiro salvar a imagem como um
arquivo EPS utilizando o comando print brevemente discutido a seguir. A seguir
inser-lo no documento desejado utilizando procedimentos padres de cada
programa utilizado.
Este comando permite enviar a imagem de modelos para uma impressora, para a
rea de transferncia ou para um arquivo numa variedade de formatos. A sintaxe do
comando
42
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
Model uma string do MATLAB que contm o nome do modelo SIMULINK que
deve estar aberto. O modelo mostrado no ttulo da janela do modelo. Se o nome
do modelo contiver espaos, deve ento estar entre apstrofos ( ):
Se o nome do modelo tiver um Enter deve ento estar entre colchetes ([ ]) com o
Enter separado por apstrofos ( ) e representado pelo seu cdigo ASCII (13):
device uma string MATLAB que especifica o tipo de dispositivo de sada. Pode
incluir impressoras, arquivos e a rea de transferncia do Windows. A tabela a
seguir inclui os dispositivos e seus cdigos.
ps PostScript
Filename uma string do MATLAB que deve conter o nome do arquivo que ser
salvo. opcional, j que nem sempre se salva como arquivo no disco.
43
Curso de Introduo ao SIMULINK
Exemplo
print sxydemo
A seguir digita-se:
O modelo ento ser salvo como um arquivo EPS e poder ser importado por
qualquer programa que aceite este tipo de arquivo.
44
Cap.3 Construindo Modelos SIMULINK
Curso de Introduo ao SIMULINK
Um sistema contnuo um sistema dinmico que pode ser descrito por equaes
diferenciais. A maioria dos sistemas e processos so contnuos.
Este bloco pode ser configurado como um integrador simples ou um integrador com
reset. Um integrador com reset leva a sada condio inicial toda vez que seu
sinal de reset dispara. Pode-se tambm configurar o integrador de tal forma que sua
sada fique sempre dentro de certos limites pr-definidos. Pode-se ainda configurar
o integrador para que sua sada inicial seja um valor configurado na sua caixa de
dilogo ou que ele receba o valor inicial atravs de uma entrada adicional.
Com um duplo clique no integrador abre-se sua caixa de dilogo. Para se utilizar um
integrador padro a nica entrada requerida nesta caixa a condio inicial (Initial
Condition), que tem como default 0.
45
Curso de Introduo ao SIMULINK
46
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
Quando o sinal de reset cruza o zero, a sada do integrador retorna ao seu valor
inicial e a simulao continua.
A opo de limitar a sada (Limit output) faz com que o bloco funcione como um
integrador limitado. Nos campos Limite superior de saturao (Upper saturation
limit) e Limite inferior de saturao (Lower saturation limit) definem o intervalo no
qual o integrador ir funcionar. Os valores default so inf e inf.
A opo Mostrar porta de saturao (Show saturation port) habilita uma sada
adicional no bloco que indica o estado da saturao. Se este sinal for 1 a sada do
integrador esta abaixo do limite inferior de saturao, se for 1 est acima do limite
superior e se for 0 est dentro do intervalo de trabalho definido pelos limites.
A opo Mostrar porta de estado (Show state port) cria uma sada adicional no
bloco. Esta sada contm o estado do integrador que o mesmo sinal de sada do
integrador. Esta sada necessria em duas ocasies: se a sada de um bloco
integrador realimenta (feedback) o mesmo bloco como reset ou condio inicial, a
porta de estado usada ao invs da sada comum do bloco; e se deseja utilizar a
sada do integrador como acionador de um subsistema com execuo condicionada
a este bloco, deve-se ento usar a sada de estado para este acionamento.
47
Curso de Introduo ao SIMULINK
Exemplo
m&x& + cx& + kx = 0
Sendo um sistema de segunda ordem, necessita-se ento de dois integradores para
modelar seu comportamento. Abre-se ento uma nova janela de modelo para
iniciar a construo.
48
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
c k
&x& = x& x
m m
Substituindo os valores:
Deve-se agora acrescentar dois blocos de ganho para calcular a taxa em que ocorre
o amortecimento e a taxa com que a mola exerce fora sobre a massa.
necessrio ainda acrescentar as linhas de sinal como mostrado na figura a seguir:
49
Curso de Introduo ao SIMULINK
Falta ainda um dispositivo de sada para que se possa obter a resposta do sistema.
Acrescenta-se ento um osciloscpio. O modelo final deve ficar da seguinte forma:
50
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
O bloco Zeros-Plos possuem uma caixa de dilogo que contm trs campos:
Zeros, Plos e Ganhos. O campo Zeros contm os zeros do numerador da funo
de transferncia. O campo Plos contm os zeros do denominador da funo e o
Ganho ajusta a funo. O help do SIMULINK possui uma documentao detalhada
dos blocos.
Exemplo
m&x& + cx& + kx = F
ms 2 X (s ) + csX ( s ) + kX ( s ) = F ( s )
1
X ( s) m
G( s) = = .
F (s ) c k
s + s+
2
m m
A figura a seguir mostra um modelo SIMULINK deste sistema utilizando blocos
lineares primitivos:
51
Curso de Introduo ao SIMULINK
Mux
52
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
Mux Demux
Note agora que para o ganho configurado com o vetor [2,3,4], o primeiro elemento
da sada o primeiro elemento da entrada multiplicado por 2, o segundo elemento
da sada o segundo elemento da entrada multiplicado por 3 e o terceiro elemento
a terceira entrada multiplicada por 4.
53
Curso de Introduo ao SIMULINK
A expanso escalar somente se aplica a blocos com entrada escalar. Por exemplo,
se a entrada do bloco de ganho do exemplo anterior um sinal escalar, o primeiro
elemento da sada ser a entrada multiplicada por 2, o segundo ser a entrada
multiplicada por 3 e o terceiro multiplicada por 4.
Alguns blocos como o Bloco Funo (Fcn block) da biblioteca Nonlinear produzem
somente sadas escalares, independente da entrada. O help de cada bloco tem uma
explicao detalhada sobre o comportamento com sinais vetoriais.
x& = f ( x, u, t ),
onde x o vetor de estado, u o vetor de entrada e t o tempo. A equao chamada
equao de estado do sistema. Se define tambm a sada do sistema:
y = g ( x, u , t ).
54
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
Exemplo
O estado dinmico do pndulo definido pela sua posio e sua velocidade. Uma
escolha natural de variveis de estado o ngulo de deflexo e a taxa de mudana
de deflexo:
x1 =
x = &.
2
x1 = x
x 2 = x&
x&1 = x 2
k c 1
x& 2 = x1 x 2 + F
m m m
Estas equaes podem tambm ser escritas na notao matricial:
x& = Ax + Bu
55
Curso de Introduo ao SIMULINK
Onde
x
x = 1
x2
0 1
A= k c
m m
0
B = 1
m
u=F
A matriz A freqentemente chamada matriz de sistema. A matriz de sistema
sempre quadrada. A matriz B a matriz de entrada. O nmero de linhas na matriz
de entrada o nmero de variveis de estado, e o nmero de colunas o nmero
de entradas. A equao que envolve as matrizes acima a equao de estado do
sistema para um sistema linear. Note que as matrizes de sistema e de entrada no
so as caractersticas nicas do sistema. Diferentes escolhas de variveis de
estado resultam em diferentes matrizes de estado e de entrada.
y=Cx+Du
y = x1
C = [1 0]
D=0
C chamada matriz de sada. D chamada matriz de transmisso direta porque se
ela no for nula, a entrada ser diretamente transmitida para a sada.
56
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
Exemplo
x& 1 = x 2
x& 2 = 0.4 x1 0.2 x 2 + 0.2 (t ),
0 1
A= ,
0.4 0.2
e a matriz de entrada
0
B = .
0.2
Define-se como sada a posio do bloco,
C = [1 0].
D = 0.
Pode-se aproximar o impulso unitrio como sendo uma funo degrau positiva
seguida de uma funo degrau negativa:
57
Curso de Introduo ao SIMULINK
Exemplo
m&x& = F .
58
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
F
&x& =
m
Acrescentam-se agora um bloco Ganho que multiplica a fora motora do foguete por
1 . A entrada do bloco Ganho ser a fora motora F.
m
A fora motora F 1.0 se a soma da velocidade e posio for negativa e 1.0 se a
soma for positiva. Pode-se construir um conveniente Controlador Bang-Bang
utilizando um bloco de Soma (Sum) da biblioteca Linear e um Bloco Sign da
biblioteca Nonlinear. A sada de um bloco Sign 1.0 se a entrada for positiva, 1.0
se a entrada for negativa e 0.0 se a entrada for exatamente 0.
59
Curso de Introduo ao SIMULINK
No se sabe quanto tempo a soluo demora para atingir a origem, ento por
convenincia, adiciona-se uma lgica ao modelo que pare a simulao quando o
objetivo for atingido. Esta lgica ir parar a simulao quando a soma dos valores
absolutos da velocidade e da posio cair a um valor menor que 0.01. Isto pode ser
feito com xito adicionando um bloco de Parada da Simulao (Stop Block) da
biblioteca de dispositivos de sada (Sinks). Este bloco fora o SIMULINK parar a
simulao quando sua entrada for diferente de zero. Deseja-se que a entrada do
bloco seja zero at que
x + x& 0.01.
60
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
61
Curso de Introduo ao SIMULINK
com o incio (Start of dead zone) em 0.05 e fim (End of dead zone) em 0.05. Ao se
utilizar qualquer um destes dois blocos no lugar do bloco Sign pode-se ento
configurar a simulao para um mtodo de passo varivel j que nenhum bloco do
sistema muda instantaneamente de 1 para +1.
O SIMULINK executa o bloco Fcn muito mais rpido do que o MATLAB Fcn. Porm
o bloco Fcn no aceita operaes matriciais. Devido vantagem na velocidade,
sempre aconselhvel utilizar o bloco Fcn quando as capacidades especiais do bloco
MATLAB Fcn no forem necessrias.
A caixa de dilogo contm um nico campo que deve conter uma expresso na
sintaxe da linguagem C. A expresso ento executada nos elementos do vetor de
entrada do bloco u[n], onde n a posio do elemento desejado.
O bloco pode ainda utilizar como parmetro qualquer varivel previamente definida
na rea de trabalho do MATLAB. Se a varivel for um escalar, ela deve ento ser
referida pelo seu nome. Por exemplo, se h uma varivel escalar a e um vetor com
duas entradas no bloco Fcn, uma expresso vlida poderia ser a*(sin(u[1]+u[2]). Se
a varivel da rea de trabalho for um vetor ou matriz, deve-se ento utilizar para
esta varivel a sintaxe adequada ao MATLAB para se referir a esta varivel como
a(1) ou a(2,3).
62
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
O bloco Fcn pode executar todas as funes matemticas escalares padres como
sin, abs, tan etc, operaes relacionais com a sintaxe da linguagem C (==, !=, >, <,
>=, <=) e as operaes lgicas ainda na sintaxe C (&& - AND lgico e | | - OR
lgico). O bloco Fcn produz sempre uma sada escalar.
Este bloco mais poderoso do que o anterior pois pode executar operaes
matriciais e produzir sadas vetoriais. Em contrapartida muito mais lento do que o
bloco Fcn, sendo ento usado somente quando o bloco Fcn no for adequado.
A caixa de dilogo contm dois campos. O primeiro deve conter uma expresso
vlida com a sintaxe MATLAB. O valor da expresso a sada do bloco. O ensimo
elemento no vetor de entrada do bloco u(n), similar ao bloco Fcn. Se a funo
MATLAB no tiver argumentos como a da figura, a operao executada em todos
os elementos de entrada. O segundo campo especifica a dimenso do vetor de
sada. Entre com 1 se deseja que a sada tenha o mesmo tamanho da entrada.
Independentemente de se especificar explici9tamente a dimenso da sada ou de
se utilizar o valor default, a dimenso do vetor de sada com o resultado da
expresso no campo MATLAB function deve ser a mesma especificada em Output
Width.
63
Curso de Introduo ao SIMULINK
Exemplo
H trs foras agindo no carro: a fora motriz produzida pelo motor do carro e
transmitida aos pneus (ou fora de frenagem se esta for negativa) (Fe), a fora
aerodinnica (incluindo o vento) (Fw) e a componente tangencial da gravidade
quando o carro sobe ou desce as rampas (Fh). Aplicando a segunda lei de Newton,
a equao do movimento do automvel pode ser escrita da seguinte forma:
m&x& = Fe Fw Fh
V 2
P=
2
e representa a densidade do ar e V a soma da velocidade do automvel e do
vento (VW ). Supondo que
C D A
= 0.001
2
e que a velocidade do vento varia senoidalmente de acordo com a funo
VW = 20 sen( 0.01t )
= 0.0093 sen(0.001x ) .
64
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
Fh = 30 sen( 0.0001x ) .
65
Curso de Introduo ao SIMULINK
66
Cap.4 Sistemas Contnuos no Tempo
Curso de Introduo ao SIMULINK
O amostrador fecha uma chave periodicamente por um instante. Cada vez que a
chave fechada, um pulso de durao muito curta (teoricamente zero) e de
magnitude igual ao sinal de entrada produzido. O espaamento entre os pulsos
o perodo de amostragem (T).
67
Curso de Introduo ao SIMULINK
O extrapolador de ordem zero recebe este sinal e mantm na sada o ltimo valor
de sua entrada, produzindo um sinal em degraus. Um controlador discreto requer
uma seqncia de nmeros na entrada. Um conversor A/D (analgico digital)
um dispositivo que converte o sinal em degraus da sada do extrapolador de ordem
zero para uma seqncia de nmeros, representada pela seqncia de pulsos
representada na figura. A combinao do amostrador e extrapolador de ordem zero
mostrada na figura que segue com o bloco SIMULINK equivalente.
ZOH
O texto se refere a sinais que variam com o tempo utilizando a notao x(t). A
notao correspondente para sinais discretos x(k), onde k o nmero ordinal do
pulso. O mapeamento do espao amostrado para o tempo contnuo
x(t ) = x (kT ) ,
y (k ) = x (k 1)
68
Cap.5 Sistemas Discretos no Tempo
Curso de Introduo ao SIMULINK
Exemplo
b(k ) = rb(k 1) p (k )
onde r = 1 + i e i a taxa de juros mensal.
O bloco atraso unitrio calcula b(k-1). A condio inicial deste bloco o valor total
do financiamento (15.000). O Sample time do bloco atraso unitrio deve ser 1.
Para este sistema pode-se utilizar o mtodo de passo fixo Discreto (Sem estados
contnuos), o tempo inicial deve ser 0 e o tempo final 100. Depois da simulao
executada, o bloco Display ir mostrar o valor total do financiamento.
Tk
y (k ) = y (k 1) + u(t )dt
T ( k 1)
69
Curso de Introduo ao SIMULINK
u (Tk ) + u (T (k 1))
u (t ) =
2
A integrao trapezoidal aproxima ento
Tu (Tk ) + Tu (T (k 1))
y (k ) = y (k 1) + .
2
A funo de transferncia Z correspondente
Y ( z ) T ( z + 1)
= .
U ( z ) 2( z 1)
Exemplo
Tk
b(k ) = b(k 1) + (ib(k 1) p)dt
T ( k 1)
Examinando o integrando, pode-se ver que o problema pode ser resolvido utilizando
a Integrao de Euler adiantado (Foward Euler Integration). A figura mostra o
70
Cap.5 Sistemas Discretos no Tempo
Curso de Introduo ao SIMULINK
Exemplo
71
Curso de Introduo ao SIMULINK
>> [B,A]=butter(4,0.2)
B =
A =
O bloco de onda senoidal superior configurado para uma freqncia de 0.5 rad/s e
uma amplitude de 1. O bloco inferior tem freqncia 10 rad/s e amplitude 0.4 e
representa o rudo de alta freqncia indesejado.
>> t = ScopeData(:,1);
>> subplot(2,1,1)
72
Cap.5 Sistemas Discretos no Tempo
Curso de Introduo ao SIMULINK
>> plot(t,y_raw);
>> grid
>> subplot(2,1,2)
>> plot(t,y_filt);
>> grid
O bloco operador lgico pode ser configurado para executar qualquer operao
lgica: E (AND), OU (OR), NO (NAND), NO OU (NOR), OU EXCLUSIVO (XOR)
ou NO(NOT). Este bloco pode ser configurado para ter qualquer nmero de
entradas. Se os sinais de entrada forem vetores, todas as entradas devem ter o
mesmo tamanho e a sada tambm ser um vetor.
73
Curso de Introduo ao SIMULINK
Exemplo
Expresso Equivalente
a NO a (NOT a)
ab a E b (a AND b)
ab + bc (a AND b) OR (b AND c)
(a AND b) OU (b E c)
a Sada
0 1
1 0
74
Cap.5 Sistemas Discretos no Tempo
Curso de Introduo ao SIMULINK
a b Sada
0 0 0
0 1 0
1 0 0
1 1 1
a b c Sada
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
x (k + 1) = f ( x, u, k )
onde x, como antes o vetor de estado e u o vetor de entrada. A equao de
sada correspondente
y (k ) = g ( x , u, k )
75
Curso de Introduo ao SIMULINK
x (k + 1) = Ax (k ) + Bu(k )
e a equao de sada:
y (k ) = Cx (k ) + Du(k ) .
Uma vez obtida a equao no espao de estados, o modelo do sistema pode ento
ser implementado no SIMULINK utilizando o bloco Espao de Estado Discreto
encontrado na biblioteca Discreta. O uso deste bloco anlogo ao bloco Espao de
Estado discutido no captulo anterior.
Exemplo
y (k + 1) = y (k ) 2 y (k 1) + u (k ) .
x1 (k ) = y (k 1)
x 2 (k ) = y (k )
As equaes de estado so
x1 (k + 1) = x 2 (k )
x2 (k + 1) = x 2 (k ) 2 x1 (k ) + u (k )
0 1
A=
2 1
e a matriz de entrada
0
B = .
1
J que no h transmisso direta, D zero. Se a sada y(k), ento
C = [0 1] .
76
Cap.5 Sistemas Discretos no Tempo
Curso de Introduo ao SIMULINK
O SIMULINK utiliza cores diferentes para diferentes taxas, o que de muito ajuda
em sistemas multirate. Ele codifica em cores automaticamente as linhas de sinal
correspondente pelo menos cinco taxas de amostragem diferentes. Para ativar
esta funo clica-se no menu Format:Sample time colors na barra de menu. Se
for feita alguma mudana no modelo aps se ativar esta funo, deve-se ento
clicar em Edit:Update Diagram para atualizar as cores. A tabela a seguir lista as
cores disponveis e seus significados:
Cor Significado
77
Curso de Introduo ao SIMULINK
Somente os cinco sinais com taxas de amostragem mais rpidas recebem cores
prprias. Se houver mais de cinco sinais com diferentes taxas de amostragem,
todos os blocos alm do 5o recebero a cor amarela.
Exemplo
x1 (k + 1) = x1 (k ) + 0.1x2 (k )
78
Cap.5 Sistemas Discretos no Tempo
Curso de Introduo ao SIMULINK
Exemplo
79
Curso de Introduo ao SIMULINK
A seo integral do controlador PID tem por objetivo reduzir o erro estacionrio.
Este componente produz uma sada que proporcional integral no tempo do sinal
de erro:
t
u i = K i vdt
0
80
Cap.5 Sistemas Discretos no Tempo
Curso de Introduo ao SIMULINK
Neste exemplo a simulao foi configurada para um tempo final de 1000 segundos
e o ganho Slider foi ajustado para uma velocidade de 80 m/s. O osciloscpio deve
produzir ento a seguinte imagem:
81
Curso de Introduo ao SIMULINK
82
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
84
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
Para visualizar ou editar o subsistema deve-se dar um duplo clique no bloco. Uma
nova janela se abrir e o seu contedo ser o subsistema. Alm dos blocos originais
surgiro blocos Inport e Outport nos terminais de entrada e sada. Mudando o nome
destes blocos, pode-se mudar os nomes das entradas no cone do bloco. Feche
ento a janela quando terminar a edio do subsistema.
85
Curso de Introduo ao SIMULINK
um duplo clique sobre ele abre-se a janela do subsistema. Nesta janela deve-se
construir o subsistema utilizando os procedimentos padres para construo de
modelos. Utiliza-se blocos Inport para os sinais de entrada do sistema e blocos
Outport para os sinais de sada. Se desejado, pode-se mudar os nomes destes
blocos para identificar a finalidade de cada entrada e sada. Pode-se agora fechar o
subsistema quando este estiver concludo. No necessrio salv-lo antes de
fechar, pois o subsistema parte do modelo e salvo toda vez que o modelo for
salvo.
Exemplo
O modelo ser construdo a partir de blocos subsistemas que iro modelar cada
carro, como na figura:
&x&n =
1
[k n (x n 1 x n ) + k n +1 (x n x n +1 )]
mn
86
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
k1 = 1;
k2 = 2;
k3 = 4;
m1 = 1;
m2 = 3;
m3 = 2;
87
Curso de Introduo ao SIMULINK
deve ser configurado para ter o ganho 1/m1. A velocidade inicial deve ser 0 e a
posio inicial 1.
Para o carro 2, o valor de ganho para o bloco Mola da Esquerda deve ser k2 e o do
bloco Mola da Direita k3. O ganho do bloco 1/massa deve ser 1/m2. A velocidade
inicial deste bloco 0 e a posio inicial tambm 0.
Para o carro 3, o valor de ganho do bloco Mola da Esquerda deve ser k3 e o bloco
Mola da Direita 0, j que no h mola direita deste carro. O ganho do bloco
1/mass deve ser 1/m3. A velocidade inicial configurada para 0 e a posio inicial
0.
O bloco osciloscpio deve ser configurado para salvar os dados mostrados para a
rea de trabalho do MATLAB, com o tempo inicial 0 e o final 100. Aps executar a
simulao, os dados do osciloscpio podem ser plotados no MATLAB, resultando
na trajetria do carro 3 mostrado logo a seguir:
88
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
Este modelo equivalente ao modelo do exemplo anterior, porm muito mais fcil
de se entender. Um clique duplo no bloco de nome Massa-Mola 1 abre a caixa de
dilogo mostrada. Ao invs de se abrir a caixa de dilogo de cada bloco de ganho e
cada integrador para configurar os parmetros, o usurio pode entrar com todos os
parmetros do subsistema com a caixa de dilogo do prprio subsistema.
Abra o modelo do exemplo anterior. A seguir, abra uma nova janela de modelo.
Arraste uma cpia do bloco Massa-Mola 1 para a nova janela de modelo.
89
Curso de Introduo ao SIMULINK
90
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
Aps preencher os trs campos, clique em Close. A partir deste momento, um duplo
clique no bloco Massa-Mola ir abrir a caixa de dilogo mostrada na figura. Pode-se
retornar ao editor de mscaras clicando em Edit:Edit Mask na barra de menu.
O segundo campo mostrado na rea interna da caixa. Este campo deve conter
uma breve descrio do bloco, seu propsito e qualquer lembrete necessrio
utilizao do bloco.
O contedo do terceiro campo ser mostrado pelo help do MATLAB quando o boto
de help do bloco for pressionado. Este campo deve conter informaes detalhadas
a respeito do uso, configurao e limitaes do bloco com mscara e dos
subsistemas internos ao bloco.
91
Curso de Introduo ao SIMULINK
A seo inferior contm o campo Comandos de Inicializao. Este campo deve ser
usado para definir variveis adicionais para configurar parmetros na caixa de
dilogo ou na pgina de cone, discutida mais tarde.
A parte superior desta pgina contm o campo Tipo de Mscara, que idntico ao
campo de mesmo nome na pgina Documentao. Este campo pode ser definido
ou editado nesta pgina, ou em outras pginas do editor de mscara. Modificando
em qualquer pgina, a mudana ser feita em todas as outras pginas.
A seo central desta pgina usada para criar, editar e deletar campos da caixa
de dilogo que se abre quando se d um duplo clique no bloco. Contm uma lista
dos campos contidos na caixa, botes para adicionar, deletar e mover campos e
ainda mais cinco campos usados para configurar a caixa de dilogo.
92
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
No campo Variable field digite: k_esquerda. Note que o prompt e o nome da varivel
aparecem na lista de parmetros.
Clique a seguir em Close. Com um duplo clique no bloco Massa Mola a caixa de
dilogo ir abrir contendo agora o campo para a entrada da varivel k_esquerda.
93
Curso de Introduo ao SIMULINK
Acrescente agora as variveis massa com o prompt Massa, k_direita com o prompt
Constante da Mola Direita, x0 com o prompt Posio Inicial e x_dot0 com o prompt
Velocidade Inicial.
Os botes e campos desta pgina sero agora discutidos com mais detalhes.
94
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
O campo Control type uma lista que contm trs opes: Edit, Checkbox e
Popup. Edit produz um campo de entrada de dados. o tipo de campo mais
comum. Checkbox produz um campo que possui somente duas possibilidades de
valores, dependendo da condio da caixa, se est selecionada ou no. Popup
produz uma lista de escolhas contidas no campo Popup strings.
Escolher Checkbox no campo Control type produz uma caixa de checagem na caixa
de dilogo. A varivel associada ir assumir dois valores dependendo da escolha
feita em Assignment. Se a escolha for Evaluate a varivel poder assumir 0 se a
caixa no for marcada ou 1 se a caixa for marcada. Se a escolha for Literal a
varivel poder ento assumir no se a caixa no for marcada ou yes se a caixa
for marcada.
Exemplo
Suponha que se deseje configurar um subsistema com mscara de tal forma que
sua caixa de dilogo possua uma caixa de checagem permitindo especificar as
entradas angulares em graus ou radianos. O valor da varivel associada com a
caixa (c_stat) deve ser 0 se a caixa no for marcada e 1 se a caixa for marcada. A
figura que se segue mostra como deve ser a pgina de inicializao para produzir o
efeito desejado.
Neste exemplo o campo Mask type contm Exemplo Check box e o campo Block
description Este bloco ilustra uma opo em check box.
95
Curso de Introduo ao SIMULINK
Se o campo Control type for configurado para Popup, o campo Popup strings
usado para definir uma lista de escolhas. A varivel associada ao campo ir assumir
um valor dependendo da escolha em Assignment.
A lista de opes deve estar no campo Popup strings. As opes devem ser
digitadas em seqncia separados por |. Por exemplo se as opes forem muito
quente, quente, morno, frio e gelado, no campo Popup strings deve conter Muito
quente | Quente | Morno | Frio | Gelado.
Exemplo
Suponha que se deseja agora criar um bloco com mscara que produza um sinal de
sada definido numa lista que contenha as opes Muito quente, Quente, Morno,
Frio e Gelado.
96
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
Cada comando neste campo deve ser terminado por um ponto-e-vrgula ( ; ). Se for
omitido, em um comando, o resultado deste comando ser mostrado na rea de
trabalho do MATLAB cada vez que o comando for executado. Isto pode ser
conveniente para a depurao na execuo da simulao.
Exemplo
97
Curso de Introduo ao SIMULINK
Uma diferena importante entre subsistemas com e sem mscara est no conjunto
de variveis na caixa de dilogo para os blocos do subsistema.
98
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
Exemplo
Para ilustrar o uso de variveis internas num subsistema com mscara, considere a
atribuio de um valor constante da mola direita no subsistema do carro. Na caixa
de dilogo, o campo Constante da Mola da Direita est associado varivel interna
k_direita. Na figura que se segue tm-se o bloco Ganho de nome Mola da Direita
configurado como k_direita. Quando os comandos j mencionados forem
executados na rea de trabalho, o valor do ganho para o bloco de ganho Mola da
Direita assume o valor particular de 2.
99
Curso de Introduo ao SIMULINK
Exemplo
Quente 100
Morno 85
Frio 70
Gelado 50
temp_list = [120,100,85,70,50];
temp_val = temp_list(temp_des);
Esta pgina permite ao usurio personalizar cones para seus blocos com mscara.
usada para criar e personalizar o cone no bloco do carro para o sistema Massa-
Mola (lembrando que x e y foram definidos no campo Initialization Commands). Esta
pgina consiste de seis campos. O primeiro campo idntico ao campo Mask Type
j mencionado em outras pginas. Drawing commands um campo de linhas
mltiplas no qual devem ser digitados comandos do MATLAB para desenhar e
nomear o cone. A figura a seguir mostra os comandos necessrios para se
desenhar o cone do bloco Massa-Mola.
100
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
O segundo campo de configurao do cone uma lista tambm com duas opes:
Transparente e Opaco. A figura mostra o bloco com as duas configuraes
possveis para este cone. Note que com a opo transparente selecionada os
nomes dos blocos Inport e Outport aparecem. Ao selecionar Opaco, estes nomes
ficam escondidos.
101
Curso de Introduo ao SIMULINK
O terceiro campo uma lista com as opes: Fixo e Rotacionar. Este campo
determina o comportamento do cone quando os comandos Edit:Flip block e
Format:Rotate block so executados. Se a opo escolhida for fixa, quando o bloco
for rotacionado ou invertido o cone original conserva a mesma orientao do bloco.
A figura mostra as diferentes situaes. A opo Fixa a mais usada,
particularmente em blocos que contenham textos.
102
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
Normalized especifica que a escala do desenho assume de 0.0 a 1.0 tanto no eixo
vertical quanto no horizontal. As coordenadas do canto inferior esquerdo do cone
so (0,0) e do canto superior direito (1,1). Quando o bloco redimensionado, as
coordenadas tambm so redimensionadas. O texto no modifica com o tamanho
do cone.
Vrios comandos MATLAB podem ser inseridos neste campo para se personalizar o
cone do bloco. A tabela a seguir lista estes comandos:
Comando Descrio
disp(string) Mostra a string no centro do cone
text(x,y,string) Mostra a string com incio em (x,y)
fprintf(string,list) Mostra o resultado do comando fprintf no centro
do cone
plot(x_vetor,y_vetor) Desenha um grfico no cone
dpoly(num,denom) Mostra uma funo de transferncia no centro
do cone
dpoly(num,denom,z) Mostra uma funo discreta de transferncia em
potncias ascendentes de z
dpoly(num,denom,z-) Mostra uma funo discreta de transferncia em
potncias descendentes de z
droots(zeros,poles,gain) Mostra uma funo de transferncia no formato
zeros-plos-ganhos
103
Curso de Introduo ao SIMULINK
Trs dos comandos mostram textos no cone. O mais simples. disp(string), mostra
uma cadeia de caracteres (string) no centro do cone. Este comando muito til
para se inserir uma descrio simples no centro do cone. O comando
text(x,y,string) permite colocar uma string em qualquer lugar do cone, usando o
sistema de coordenadas especificado no campo Drawing coordinates. O terceiro
comando de texto, fprintf, idntico ao comando fprintf do MATLAB (veja no help do
MATLAB as opes deste comando). Usando este comando pode-se inserir strings
definidas nas caixas de dilogos ou no campo Initialization Commands na pgina de
inicializao. Para acrescentar uma nova linha de texto, pode-se usar a opo (\n),
produzindo textos de mltiplos linhas. Como o comando disp, fprintf coloca o texto
no centro do cone.
Uma cadeia de caracteres usada para visualizar um texto num cone deve ser uma
string literal ou ento uma varivel string do MATLAB. Uma string literal uma
seqncia de caracteres visualizveis cercado por apstrofos simples. Por exemplo,
para inserir o nome Bloco Especial no centro do cone do bloco, deve-se fazer uso
do comando
Disp(Bloco Especial)
Uma varivel string uma varivel do MATLAB que representa uma cadeia de
caracteres ao invs de um nmero. O MATLAB fornece vrias funes para criao
e manipulao de variveis strings. Estas funes podem ser usadas no campo
Initialization Commands na pgina de inicializao para criar strings para uso dos
comandos de exibio. Uma funo muito til sprintf. Este comando muito
similar ao fprintf, mas escreve a string em uma varivel ao invs de escrever na tela
ou em um arquivo.
Exemplo
Suponha que se deseja mudar o cone do carro no sistema Massa-Mola para que a
massa do carro seja mostrada no cone acima das rodas, em unidades de massa
(kg). Adiciona-se ento a seguinte linha de comando no campo Initialization
Commands na pgina de inicializao do editor de mscaras.
text(0.3,0.35,b_label);
104
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
Exemplo
Suponha que se deseja mostrar funes seno e coseno num cone. Os seguintes
comandos devem ento ser acrescentados no campo Initialization Commands para
produzirem os vetores necessrios.
x_vetor = [0:0.05:1] ;
plot(x_vetor,y_sin,x_vetor,y_cos)
Exemplo
O bloco operador lgico pode ser configurado para implementar portas AND ou OR,
mas o cone do bloco continua sendo um retngulo com a funo lgica descrita no
cone. Substituindo cpias destes blocos por subsistemas com mscaras, pode-se
produzir blocos com aparncia semelhante conveno utilizada para estas portas.
Para produzir a porta AND, deve-se iniciar com um bloco Operador Lgico
configurado para implementar a funo AND. Seleciona-se o bloco e clica-se em
Edit:Create subsystem na barra de menu da janela do modelo. A seguir clica-se em
Edit:Create mask. Na pgina de inicializao do editor de mscaras deves-e
acrescentar no campo Initialization Commands a seguinte linha:
t = -pi/2:0.1:pi/2;
O campo Icon Frame deve estar configurado como Invisible e Drawing coordinates
como Normalized. No campo Drawing commands deve conter as linhas:
105
Curso de Introduo ao SIMULINK
text(0.05,0.65,a);
text(0.05,0.2,b);
text(0.75,0.45,ab);
text(0.05,0.65,a);
text(0.05,0.2,b);
text(0.75,0.45,a+b);
Existem dois comandos adicionais para se lidar com mscaras. Eles permitem que
se observe um subsistema sob a mscara e que se apague a mscara.
106
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
O usurio pode criar suas prprias bibliotecas. A maneira mais simples de fazer isto
copiar blocos para uma janela de modelo vazia e salvar o modelo a seguir. Para
usar esta biblioteca deve-se clicar em File:Open no SIMULINK ou entrar com o
nome da biblioteca na rea de trabalho do MATLAB.
107
Curso de Introduo ao SIMULINK
calculados durante uma simulao particular. Isto pode significar uma melhoria
computacional significativa.
A caixa possui dois campos. O primeiro campo (States when enabling) permite
escolher a situao do subsistema quando este habilitado. uma caixa com duas
opes: reset e held. A primeira opo faz com que os estados internos do
subsistema seja resetado s suas condies iniciais cada vez que o bloco
habilitado. A segunda opo faz com que todas as variveis internas ao subsistema
assumam os valores da ltima vez que o sistema foi executado. O segundo campo
(Show output port) uma caixa de verificao. Quando selecionada, o bloco Enable
ter uma porta de sada. Esta porta passa adiante o sinal recebido na entrada de
Enable quando o bloco habilitado.
108
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
O primeiro campo (Port Number) determina a ordem que as portas iro aparecer no
cone do subsistema. O segundo campo (Output when disable) contm duas
opes: reset e held. A opo reset faz com que a sada seja resetada para o valor
contido no terceiro campo (Initial output). A opo held faz com que a sada
mantenha o seu ltimo valor de sada antes do sistema ser desabilitado.
Exemplo
for menor do que o limiar de 2 m/s e o valor absoluto da taxa de variao do erro
v&err , for menor que um limiar de 1m/s2, deseja-se que o controlador seja um
controlador Proporcional-Integral (PI). Uma vez que o controlador PI est habilitado,
v
este deve permanecer at err ser menor que um valor de limiar de 5 m/s. De outra
forma, o controlador proporcional (P) deve estar habilitado.
109
Curso de Introduo ao SIMULINK
110
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
111
Curso de Introduo ao SIMULINK
O primeiro campo da caixa (Trigger type) possui trs opes: rising, falling e either.
Se a opo escolhida for rising, um sinal de gatilho definido quando este cruzar o
zero enquanto estiver crescente. Se falling for escolhido, o sinal de gatilho passa a
ser definido quando a entrada Trigger cruzar o zero no sentido decrescente. Either o
sinal definido quando cruzar o zero em ambos os sentidos. O segundo campo
(Show output port) uma caixa de verificao que permite escolher se uma sada
de trigger ir aparecer no bloco. Esta sada, como no bloco de enable, passa
adiante o sinal gatilho de entrada do subsistema.
Um subsistema com gatilho mantm seu valor de sada aps o sinal de trigger ser
recebido. O valor inicial de sada de um subsistema com gatilho configurado nos
blocos Outport do subsistema.
O sinal de gatilho pode ser escalar ou vetor. Se o sinal for um vetor, o subsistema
disparado quando qualquer elemento satisfizer as condies selecionadas em
Trigger type.
Exemplo
112
Cap.6 Subsistemas e Mscaras
Curso de Introduo ao SIMULINK
113
Curso de Introduo ao SIMULINK
Para construir uma animao, deve-se copiar objetos grficos para a janela de
figuras e em seguida configurar as propriedades dos objetos usando suas caixas de
dilogos.
114
Cap.7 Animao no SIMULINK
Curso de Introduo ao SIMULINK
pelo co0ne. Uma caixa de dilogo do objeto se abrir. Deve-se ento entrar com os
dados de configurao nesta caixa de dilogo, clicar em Apply e a seguir fechar a
caixa. Deve-se repetir estes passos para cada objeto na figura de animao. O
usurio pode executar a simulao usando a barra de status clicando em Start ou
em Simulation:Start na barra de menu da janela do modelo.
Exemplo
115
Curso de Introduo ao SIMULINK
A caixa de dilogo do objeto pode ser aberta com um duplo clique sobre este.
Configura-se os campos desta caixa como mostrado na figura, clicando a seguir em
Ok.
116
Cap.7 Animao no SIMULINK
Curso de Introduo ao SIMULINK
Aps executar uma simulao o usurio pode adicionar objetos ou modificar alguns
j existentes. Antes de modificar a figura, deve-se clicar em Simulation:Reset na
barra de menu da janela de animao. Pode-se modificar um objeto j existente
com um duplo clique sobre o mesmo.
117
Curso de Introduo ao SIMULINK
Quando o usurio abre uma janela de animao com um duplo clique num bloco de
animao, e se pela ltima vez que o usurio acessou este bloco ele salvou uma
animao associada com o mesmo, haver um Prompt perguntando se o usurio
deseja usar a animao anterior ou iniciar uma nova.
118
Cap.7 Animao no SIMULINK
Curso de Introduo ao SIMULINK
Bibliografia
The Student Edition of SIMULINK
James B. Dabney / Thomas L. Harman
Mastering SIMULINK
James B. Dabney / Thomas L. Harman
119