Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Simulink 1
Apostila Simulink 1
SIMULINK 2.0
1 aa EDIO
Faculdade de
Engenharia
Laboratrio de
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.
NDICE
Apresentao..................................................................................................... 1
Captulo 1 Introduo Terica....................................................................... 2
1.1 Diagrama em Blocos................................................................................................ 2
1.1.1 Smbolos........................................................................................................ 3
1.2 Transformada de Laplace........................................................................................
1.2.1 Definio da Transformada de Laplace.........................................................
1.2.2 Transformao Inversa..................................................................................
1.2.3 Propriedades da Transformada de Laplace..................................................
3
4
4
5
6
7
8
8
9
10
ndice
3.3 Fontes......................................................................................................................
3.3.1 Fontes Comuns.............................................................................................
3.3.2 Importando do MATLAB................................................................................
3.3.3 Importando Arquivos Gerados no MATLAB..................................................
26
26
28
29
29
29
30
31
33
33
34
35
37
38
38
39
39
39
I
42
42
42
42
52
52
54
56
58
61
62
62
68
68
69
70
71
ndice
88
89
91
91
91
91
92
92
92
97
II
97
98
100
101
101
102
102
103
106
107
107
107
112
113
113
114
114
116
117
117
117
117
117
Bibliografia........................................................................................................ 119
ndice
III
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.
As ferramentas de anlise de modelos incluem ferramentas de linearizao e ajuste
(Trimming) que podem ser acessadas a partir da linha de comando do MATLAB,
assim como vrias ferramentas do MATLAB e suas TOOLBOXES especficas.
Sendo o MATLAB e o SIMULINK integrados, pode-se simular, analisar e revisar os
modelos em qualquer dos dois ambientes.
1.1.1 - Smbolos
Os smbolos utilizados na tcnica de diagramas de bloco so muito simples, e se
encontram representados a seguir:
X(s)
Varivel X(s)
Operador
X(s)
Y(s)
G(s)
X(s)
Y(s)
X(s)
F(s)
X(s)
Tomada de Varivel
X(s)
2.
3.
O trabalho sistematizado.
4.
A utilizao de tabelas de transformadas reduz o volume de trabalho
requerido.
5.
6.
Os componentes transitrio e de regime permanente da soluo so obtidos
simultaneamente.
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.
1.2.2 - Transformao Inversa
A aplicao da transformada de Laplace transforma uma equao diferencial em
equao algbrica. A partir da equao algbrica, obtm-se prontamente a
transformada da funo resposta. Para completar a soluo deve-se encontrar a
transformada inversa. Em alguns casos, a operao de transformao inversa
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.
A transformada da resposta F(s) pode ser expressa em geral atravs da relao
entre dois polinmios P(s) e Q(s). Considere-se que estes polinmios sejam de
graus w e n, respectivamente, e que so ordenados segundo as potncias
decrescentes da varivel s; assim,
F ( s) =
P( s ) a w s w + a w 1 s w1 + ... + a1 s + a 0
=
Q( s )
s n + bn 1 s n1 + ... + b1 s + b0
F ( s) =
P( s)
P( s)
=
Q( s ) ( s s1 )(s s 2 )...(s s k )...(s s n )
4
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
F ( s) =
Ak
An
A1
A2
P(s)
=
+
+ ... +
+ ... +
Q ( s ) s s1 s s 2
s sk
s sn
Funo
Transformada
Af(t)
AF(s)
f 1(t)+f 2(t)
F1(s)+F2(s)
d
f (t )
dt
sF(s)-f(0)
d2
f (t )
dt 2
s2F(s)-sf(0)-f(0)
dn
f (t )
dt n
f (t )dt
t
f (t )dt
SnF(s)-
n k
(k 1)
f (0 )
k =1
F ( s) 1
+
s
s
[ f (t )dt ]
t =0
F ( s)
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
tf(t)
t2f(t)
d2
F (s)
ds 2
1
f (t )
t
F ( s)ds
s
aF(as)
t
f( )
a
f 1(t)*f 2(t)=
dF ( s )
ds
F1(s).F2(s)
f (t ) f
1
( ) d =
= 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.
A introduo da transformada Z motivada pelas mesmas consideraes que
fazem a transformada de Laplace til: as equaes de diferenas que governam o
comportamento do sistema discreto so transformadas em equaes algbricas,
freqentemente mais simples de resolver que as equaes originais, e capazes de
dar melhor viso daquele comportamento.
LI[f(n)]=FII(z)=
f (n) z
n= 0
LII[f(n)]=FII(z)=
f (n) z
n= 0
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.
Se f(n) = 0 para n < 0, as transformadas unilateral e bilateral so idnticas; porm,
se f(n) 0 para algum n < 0 as duas definies produziro expresses diferentes. A
transformada Z bilateral obviamente incorpora informaes sobre os valores f(n) em
todos os instantes discretos em que definida. A unilateral, s nos instantes no
negativos.
Transformada Z
F(z)
Raio de
Convergncia
a
(n k )
z 1
1 (n)
1
1 z 1
1
1 az 1
z 1
(1 z 1 ) 2
an
n
f (n) =
1
F ( z ) z n 1dz
C
2j
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.3.4 - Propriedades da transformada Z
Propriedade
Linearidade
Funo do tempo
Transformada Z
af (n) + bg (n)
Diferenas
a. Avanadas
aF ( z ) + bF ( z )
( z 1) k F ( z )
f (n)
k
k 1
z ( z 1) k j 1 j f (0)
j =0
(1 z 1 ) k F ( z )
k f (n)
b. atrasadas
k 1
(1 z 1 ) k j 1 j f (1)
j =0
Somas
1
F ( z) +
1 z 1
1
1
+
f (k )
1 z 1 k =
f (k )
k =
F (n + k )
Translao
k >0
k 1
z k F ( z) z k f ( j) z j
j =0
Multiplicao por a
a f (n)
n k f (n)
Multiplicao por n
Convoluo
y ( n) = h( n k ) x( k )
f (a z)
1 d
z
F ( z)
dz 1
Y ( z ) = H ( z ) X ( z)
k =0
Produto de duas
funes
Mudana de escala
Valor inicial
1
F ( w)G ( zw 1 )
dw
2j C
w
a = inteiros
F ( z a )
f (0) = lim F ( z )
f (n) g (n)
f (an)
Valor final
f () = lim (1 z 1 ) F ( z )
z 1
se (1 z ) F ( z ) analtico para z 1
y ( n) = h( n k ) x( k )
k =0
y ( n) =
h( n k ) z
k =
y (n) = h(m) z n m = z n H ( z ).
m =0
H ( z) =
resposta z n
.
zn
10
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 :
(1)
(2)
Todos os comandos do
MATLAB so em letras
minsculas.
O MATLAB sensvel
ao tipo de fonte
(maisculo ou
minsculo). Por
exemplo: a varivel x
diferente varivel X.
11
Arraste o bloco de onda senoidal (Sine Wave) para a janela do modelo. Uma cpia
deste bloco deve ser criada nesta janela.
Cap.2 Conhecendo o SIMULINK
12
13
x(t ) = 1 cos(t ) ,
que corresponde ao grfico apresentado.
x& = bx px 2
Cap.2 Conhecendo o SIMULINK
14
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.
Crie uma nova janela de modelo na barra de menu escolhendo FILE:NEW.
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.
valor de x .
15
16
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.
18
19
A durao da simulao definida no tempo default de 0 a 10. Neste caso, desejase saber o resultado aps 1 hora. Para mudar este tempo, seleciona-se na barra de
menu a opo Simulation:Parameters e no campo Stop Time digita-se 1,
fechando em Close logo a seguir.
sempre aconselhvel
salvar o modelo antes de
executar a simulao.
20
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
22
Fontes
Diagrama
em Blocos
do Sistema
Dispositivos
de Sada
23
Rotacionar blocos
Redimensionar blocos
Adicionar sombra
Selecione o bloco e no
Format:Show Drop Shadow.
Clique no nome.
Apagar objetos
menu
Edit:Cut.
24
Mover um vertex
segmento.
de
25
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.
3.3.1 - Fontes Comuns
Muitos tipos de sinais de entrada utilizados em modelos de sistemas dinmicos
esto disponveis na biblioteca de fontes.
O bloco Constante (Constant) produz um sinal fixo que possui a magnitude
escolhida com um duplo clique sobre o bloco.
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.
O Gerador de Sinais (Signal Generator) pode produzir ondas senoidais, quadradas,
dente de serra ou sinais aleatrios.
Sinais mais complexos podem ser gerados a partir da combinao destes
apresentados.
Exemplo: Impulso Unitrio
Um sinal muito utilizado para determinar o comportamento dinmico de sistemas o
Impulso Unitrio, tambm conhecido como Funo Delta ou Funo Delta de Dirac.
O Impulso Unitrio ( (t a )) definido como um sinal de durao igual a zero,
tendo as seguintes propriedades:
(t a ) = 0,
(t )dt = 1
ta
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
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
u (t ) = t 2
Inicialmente deve-se gerar a tabela que contenha os valores da funo no MATLAB.
A seguir temos os comandos necessrios que devem ser executados na rea de
trabalho do MATLAB:
>> t=0:0.1:100;
% Varivel independente
>> u=t.^2;
% Varivel dependente
>> A=[t,u];
% Formato da tabela
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
% Varivel independente
% Varivel dependente
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.
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
Cap.3 Construindo Modelos SIMULINK
30
32
33
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
e plota os valores de
x( ) no intervalo de 0 a 5. Um algoritmo de integrao
numrica que resolve este tipo de problema (frequentemente chamado de problema
de valor inicial) chamado de algoritmo de resoluo de equaes diferenciais
ordinrias (Ordinary differential equation solver).
Para se configurar os parmetros da simulao escolhe-se Simulation:Parameters
na barra de menu da janela do modelo. A caixa de dilogo que se abrir contm trs
pginas: Solver, workspace I/O e Diagnostics.
Na primeira pgina (Solver) seleciona-se e configura-se o algoritmo de resoluo da
equao diferencial. A seguna pgina (Workspace I/O) contm parmetros
opcionais que permitem obter dados de inicializao da rea de trabalho do
MATLAB e enviar certos dados da simulao para variveis previamente definidas
da rea de trabalho do MATLAB. A terceira pgina (Diagnostics) usada para
selecionar alguns mtodos de diagnsticos muito utilizados para se determinar
problemas na simulao. Cada pgina ser discutida mais detalhadamente.
3.5.1 - Solver Page
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.
As opes Solver contm campos para se selecionar os algoritmos numricos de
integrao para se resolver as equaes diferenciais e configurar parmetros que
controlam o Step Size de integrao. Os mtodos de soluo so agrupados em
duas categorias: Passo varivel e passo fixo. Diferentes algoritmos esto
disponveis para cada categoria.
34
35
CARACTERSTICAS
ODE45
ODE23
ODE113
ODE15S
ODE23S
Fixed-andVariable-Step
Discrete
ODE5
ODE4
ODE3
ODE2
ODE1
36
37
38
39
40
42
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 ( ):
print sSpring Mass System ddevice filename
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):
print s[Damped 13 Spring Mass System] ddevice filename
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.
Device
Descrio do dispositivo
ps
PostScript
psc
PostScript Colorido
ps2
PostScrip Nvel 2
psc2
eps
epsc
eps2
epsc2
win
Impressora Padro
winc
meta
bitmap
setup
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
Exemplo
O objetivo deste exemplo primeiro imprimir na impressora padro um modelo
entitulado xydemo.mdl e a seguir salvar a imagem do modelo como um arquivo EPS
colorido.
Primeiro deve-se abrir o modelo no SIMULINK. A seguir, na rea de trabalho do
MATLAB digita-se:
print sxydemo
O modelo ser impresso na impressora padro do Windows.
A seguir digita-se:
print sxydemo depsc xydemo.eps
O modelo ento ser salvo como um arquivo EPS e poder ser importado por
qualquer programa que aceite este tipo de arquivo.
44
45
46
Quando o sinal de reset cruza o zero, a sada do integrador retorna ao seu valor
inicial e a simulao continua.
Configurando a Fonte de condio inicial para externa, surgir uma entrada
adicional no integrador. O valor contido neste entrada ser utilizado pelo integrador
como condio inicial quando a simulao for iniciada ou quando o integrador for
resetado.
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
Exemplo
Considere o sistema amortecido de segunda ordem
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
&x& =
c
k
x& x
m
m
Substituindo os valores:
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
m&x& + cx& + kx = F
ms 2 X (s ) + csX ( s ) + kX ( s ) = F ( s )
A razo da transformada de Laplace da sada (X(s)) pela transformada de Laplace
da entrada (F(s)) a funo de transferncia (G(s)):
X ( s)
G( s) =
=
F (s )
m
.
c
k
2
s + s+
m
m
51
Mux
52
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
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.
4.2.2 - Espao de Estados (State-Space)
Antes de se descrever o bloco Espao de Estados deve-se discutir o conceito de
variveis de estado. Um vetor de estado um conjunto de variveis de estado
suficiente para descrever o estado da dinmica de um sistema. A forma geral do
modelo espao de estado de um sistema dinmico :
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 ).
Esta equao chamada equao de sada. Observe-se que se utilizam caracteres
minsculos em negrito para destacar vetores e caractares mausculos em negrito
para representar matrizes.
As chamadas variveis de estado natural so quantidades simples como posio,
velocidade, temperatura ou corrente eltrica. Para sistemas mecnicos as variveis
de estado natural so posies e velocidades. Para circuitos eltricos podem ser
usadas tenses e correntes.
Porm as variveis de estado natural no so as nicas variveis de estado
disponveis. Pode-se ainda ter uma combinao linear independente de um grupo
de variveis de estado para se ter novas variveis de estado vlidas.
54
Exemplo
Considere o pndulo mostrado:
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&
As relaes entre as duas variveis de estado so
x&1 = x 2
x& 2 =
k
c
1
x1 x 2 + F
m
m
m
x& = Ax + Bu
55
Onde
x
x = 1
x2
1
0
c
A= k
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.
Para se definir as variveis de entrada deve-se considerar os estados internos de
um sistema. As variveis de estado no so necessariamente as sadas do sistema.
As sadas podem consistir num subconjunto de estados, ou podem consistir numa
combinao linear dos estados do sistema e suas entradas. A equao de sada
para um sistema linear :
y=Cx+Du
Se a escolha da sada do sistema como sendo a posio da massa (x), tem-se:
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.
4.2.3 - Bloco Espao de Estados (State-Space block)
Este bloco implementa um modelo linear de um sistema ou uma parte de um
sistema no espao de estados. A caixa de dilogo do bloco contm campos para
cada uma das quatro matrizes de espao de estados (A, B, C, D) e ainda um quinto
campo para condies iniciais. Cada campo deve conter uma matriz no formato
MATLAB.
56
Exemplo
Considere novamente o sistema massa mola comentado anteriormente. Deseja-se
agora conhecer a resposta do sistema ao impulso. Substituindo os parmetros do
modelo nas equaes, temos:
x& 1 = x 2
x& 2 = 0.4 x1 0.2 x 2 + 0.2 (t ),
onde (t ) a funo impulso unitrio. A matriz de sistema
1
0
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].
Neste caso no h transmisso direta, ento:
D = 0.
Pode-se aproximar o impulso unitrio como sendo uma funo degrau positiva
seguida de uma funo degrau negativa:
57
m&x& = F .
Cap.4 Sistemas Contnuos no Tempo
58
&x& =
F
m
Acrescentam-se agora um bloco Ganho que multiplica a fora motora do foguete por
59
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.
Acrescentam-se ento dois blocos de Mdulo (Abs) da biblioteca Nonlinear e um
bloco de soma da biblioteca Linear ao modelo. A seguir acrescenta-se um bloco
Operador Relacional (Relational Operator) e escolhe-se <= na lista Operator.
Insere-se agora um bloco Constante (Constant) da biblioteca de fontes e configurase seu valor para 0.01. Finalmente se acrescenta um bloco de Parada (Stop
Simulation) e conecta-se as linhas de sinais como mostrado na figura.
60
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.
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.
Vale lembrar que se devem utilizar os colchetes ([ e ]) no lugar dos parnteses
(( e )) utilizados no MATLAB.
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
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.
4.3.1.2 - Bloco MATLAB Fcn
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.
O exemplo a seguir ilustra o uso de blocos no lineares na construo de um
modelo simples de um carro e um controle de ganho proporcional. O modelo inclui
arraste aerodinmico, a fora gravitacional na subida de rampas e ainda o vento.
63
Exemplo
Considere o deslocamento do automvel numa pista montanhosa como mostrado
na figura que segue:
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
onde m representa a massa do automvel e x a distncia percorrida. Fe deve ter
limites mximos e mnimos. O limite mximo a mxima fora que o motor pode
transmitir pelas rodas para a pista e o limite mnimo a mxima fora de freio.
Ento 2000 Fe 1000 , sendo a massa do carro 100 N.
A fora aerodinmica o produto do coeficiente de arraste (CD), a rea frontal do
automvel (A) e a presso dinmica (P), onde
P=
V 2
2
C D A
= 0.001
2
e que a velocidade do vento varia senoidalmente de acordo com a funo
VW = 20 sen( 0.01t )
ento a fora aerodinmica pode ser aproximada para
= 0.0093 sen(0.001x ) .
Cap.4 Sistemas Contnuos no Tempo
64
Fh = 30 sen( 0.0001x ) .
O controlador utilizado ser do tipo controle proporcional com a seguinte lei de
controle
66
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 ) ,
onde T o perodo amostral (sampling).
y (k ) = x (k 1)
Cap.5 Sistemas Discretos no Tempo
68
b(k ) = rb(k 1) p (k )
onde r = 1 + i e i a taxa de juros mensal.
Sabe-se que o valor inicial do financiamento R$15.000,00, a taxa de juros 1% ao
ms (12% ao ano), e a mensalidade R$200,00. Calcule o valor do financiamento
para 100 pagamentos.
A figura a seguir mostra o modelo SIMULINK para este sistema.
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.
y (k ) = y (k 1) +
u(t )dt
T ( k 1)
u (t ) =
u (Tk ) + u (T (k 1))
2
y (k ) = y (k 1) +
Tu (Tk ) + Tu (T (k 1))
.
2
Y ( z ) T ( z + 1)
=
.
U ( z ) 2( z 1)
Isto est retratado a seguir
Exemplo
Considere o financiamento do automvel descrito no exemplo anterior. O balano
do financiamento pode ser calculado por
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
71
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.
O campo Numerador da caixa de dilogo do bloco Funo de Transferncia deve
conter o vetor [0.0048 0.0193 0.0289 0.0193 0.0048] e o denominador [1.0000
2.3695 2.3140 1.0547 0.1874]. Sample time pode ser 0.1. O modelo pode ser
configurado para um mtodo de resoluo discreto, j que no h nenhum estado
contnuo. O tempo final pode ser 20 para visualizao total da onda. O bloco Mux
cria um vetor contendo o sinal antes e depois da filtragem. Com a opo Salvar
dado para a rea de trabalho (Save data to workspace) assinalada no osciloscpio
os sinais exibidos na tela do mesmo podem ser plotados de maneira mais legvel
com o comando plot do MATLAB. Os comandos necessrios para isto so listados a
seguir:
>> t = ScopeData(:,1);
>> y_raw = ScopeData(:,2);
>> y_filt = ScopeData(:,3);
>> subplot(2,1,1)
72
>> plot(t,y_raw);
>> title(Sinal sem filtragem)
>> grid
>> subplot(2,1,2)
>> plot(t,y_filt);
>> title(Sinal filtrado)
>> xlabel(Tempo (s))
>> grid
73
Expresso
Equivalente
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
0
1
Sada
1
0
74
a
0
0
1
1
b
0
1
0
1
Sada
0
0
0
1
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
Sada
0
0
0
1
0
0
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 )
A notao matricial para sistemas discretos lineares similar ao modelo para
sistemas contnuos. As mesmas 4 matrizes (matriz de sistema, matriz de entrada,
matriz de sada e matriz de transmisso direta) so utilizadas. As equaes de
sistema passam a ser ento:
75
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
Este exemplo consiste em desenvolver matrizes no Espao de Estado para uma
sistema descrito pela funo de transferncia
y (k + 1) = y (k ) 2 y (k 1) + u (k ) .
As variveis de estado definidas so
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 )
Na forma matricial tem-se
0 1
0
x(k + 1) =
x ( k ) + u .
2 1
1
A matriz de sistema ento
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
Cor
Significado
Preto
Blocos Contnuos
Magenta
Blocos Constantes
Amarelo
Vermelho
Verde
Azul
Azul Claro
Verde Escuro
Ciano
x1 (k + 1) = x1 (k ) + 0.1x2 (k )
x 2 (k + 1) = 0.05 sen x1 (k ) + 0.094 x 2 (k ) + u (k )
onde u(k) a entrada. O processo possui um tempo de amostragem de 0.1
segundo. O processo ser controlado utilizando um controle proporcional com um
tempo de amostragem de 0.25 segundos, e atualizao do dispositivo de
visualizao de 0.5 segundo. Um modelo SIMULINK deste sistema mostrado na
figura que se segue.
78
79
u p = K pv
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
u d = K d v&
Num controlador PID discreto substitui-se a seo integral por um integrador
discreto e a seo derivativa por uma aproximao discreta da derivada. Um
aproximao numrica de primeira ordem da derivada
u d (k ) =
v (k ) v (k 1)
T
U d ( z) K d z 1
=
V ( z)
T z
Cap.5 Sistemas Discretos no Tempo
80
81
82
84
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.
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
Suponha que se deseja modelar um sistema massa-mola composto de carros
conectados como mostra a figura a seguir.
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
87
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
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.
Esta seo explica os passos para se criar um subsistema com mscara. Os
exemplos iro mostrar como criar um subsistema massa-mola com mscara.
Exemplos adicionais ilustraro outras caractersticas de mscaras.
O processo de produo de um bloco com mscara pode ser resumido em:
1. Construir um subsistema como j discutido.
2. Selecionar o bloco subsistema e clica-se em Edit:Create Mask na barra de
menu do modelo.
3. Utilizar o editor de mscara (Mask Editor) para configurar a documentao da
mscara, a caixa de dilogo e opcionalmente um cone prprio para o bloco.
6.2.1 - Convertendo um Subsistema em um Sistema com Mscara.
O primeiro passo na criao de um subsistema com mscara criar um subsistema
utilizando procedimentos descritos anteriormente. Para ilustrar o processo, ser
construdo um bloco Massa-Mola com mscara a partir de um dos subsistemas no
modelo do exemplo anterior.
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
90
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.
Cada campo desta pgina ser detalhado a seguir.
6.2.2.1 - Campo Tipo de Mscara
O contedo deste primeiro campo ser mostrado no ttulo da caixa de dilogo do
bloco com mscara. Deve-se notar que h dois ttulos na parte superior esquerda
da caixa. O nome na barra de ttulo o nome do bloco selecionado. O nome na
parte interna da caixa o tipo do bloco.
6.2.2.2 - Campo Descrio do Bloco
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.
6.2.2.3 - Bloco de Auxlio (Help)
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
92
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
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.
H quatro botes esquerda da lista. Estes botes so usados para adicionar,
apagar e reorganizar a caixa de dilogo. Para criar um novo prompt deve-se clicar
na posio em que se deseja que a nova varivel seja criada antes anteriormente
esta posio. Se o novo prompt deve ser criado no fim da caixa de dilogo basta
clicar em <<end of parameter list>> e a seguir clicar em Add. Uma linha em branco
ir aparecer na lista. O boto Delete apaga a linha selecionada. Os botes Up e
Down so utilizados para mover as linhas para se encontrar a disposio adequada
dos campos na caixa de dilogo.
Cap.6 Subsistemas e Mscaras
94
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.
O valor atribudo varivel interna associada com o campo na caixa de dilogo do
bloco depender do contedo do campo Assignment. Deve ser configurado como
Evaluate ou Literal. Se a primeira opo for a escolhida, a varivel associada com o
campo ir conter o valor da expresso no campo. Por exemplo, se o campo contiver
k1 e esta varivel for definida na rea de trabalho do MATLAB com o valor 2.0, a
varivel associada com este campo ir assumir o valor 2.0. Se for escolhida a
segunda opo, a varivel associada com o campo assumir a string k1.
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
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.
Se Assignment for configurado para Evaluate, a varivel associada ao campo
assumir o nmero ordinal selecionado. Se, por exemplo, for selecionada a primeira
opo, o valor da varivel ser 1. Se a escolha for a segunda opo, a varivel
assumir ento 2. Se Assignment for configurado para Literal, a varivel ir conter o
valor correspondente opo selecionada.
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.
Inicialmente abre-se uma nova janela de modelo e arrasta-se um bloco Constante
para a janela do modelo. Seleciona-se ento o bloco e clicando a seguir em
Edit:Create Subsystem na barra de menu da janela. Seleciona-se agora o
subsistema e clicando em seguida em Edit:Create Mask. O campo Mask type deve
conter exemplo Popup e Block description: Este bloco ilustra a opo Popup.
Configura-se ento a pgina de Inicializao do editor de mscara como mostra a
figura:
96
97
98
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
Exemplo
Para o subsistema com mscara do exemplo das temperaturas, deseja-se
configurar o valor da varivel temp_val como a seguir:
Opo do Menu
Temp_val
Muito quente
120
Quente
100
Morno
85
Frio
70
Gelado
50
100
101
102
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.
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.
b_label = sprintf(%1.1f kg,m);
A seguir adiciona-se a seguinte linha de comando no campo Drawing Commands na
pgina de cone.
text(0.3,0.35,b_label);
O bloco deve ento ficar como o da figura:
104
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
106
calculados durante uma simulao particular. Isto pode significar uma melhoria
computacional significativa.
Um subsistema convertido em um subsistema com opo de habilitao com a
adio do bloco Enable da biblioteca de Conexes. A figura que se segue ilustra um
controlador proporcional simples convertido em um subsistema com opo de
habilitao.
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.
tambm de vital importncia configurar os blocos de sada (Outport) de um
subsistema . A caixa de dilogo do bloco tem trs campos:
108
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.
Um subsistema com enable habilitado quando o sinal de entrada na porta de
enable for positivo. Se o sinal for um vetor, o subsistema habilitado se qualquer
dos elementos do vetor for positivo.
Exemplo
Para ilustrar o uso de subsistemas com opo de habilitao, suponha que se
deseja modificar o controlador de velocidade do automvel do exemplo j citado
para um controlador que possui dois modos de operao, dependendo do erro da
velocidade. Se o valor absoluto 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,
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.
O modelo SIMULINK mostrado na figura a seguir:
109
110
111
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
O subsistema com gatilho ilustrado na figura anterior transmite a entrada para a
sada quando um sinal de gatilho for recebido, e est configurado (bloco Outport)
para manter sua sada at um outro sinal de trigger ser recebido. O bloco Outport
inicializado com 0. A figura a seguir ilustra o exemplo anterior com a adio deste
subsistema com sua sada ligada a um bloco Display da biblioteca de dispositivos
de sada (Sinks). O sinal de gatilho conectado ao sinal de habilitao do
controlador PI. O Display ir mostrar 0 at que o controlador PI seja ativado, e a
seguir, mostrar o tempo da mais recente habilitao deste controlador.
112
113
114
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
Deseja-se criar uma animao usando a Toolbox de Animao utilizando o modelo
o modelo a seguir;
115
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
117
118
Bibliografia
Mastering SIMULINK
James B. Dabney / Thomas L. Harman
119