PME 2200
Mecnica Geral B
Gravao do Diagrama.
Neste contexto, as sees seguintes traro uma breve descrio destas etapas bsicas,
buscando tornar mais familiar a utilizao do Scicos como ferramenta de modelagem e anlise
de sistemas dinmicos. Cumpre destacar que as atividades possveis no se resumem ao elenco
listado anteriormente, podendo-se destacar ainda a criao de super blocos, a edio do
Diagrama, a edio e tratamento dos resultados, entre outras. Fica a critrio do usurio
incorporar, ou no, estas atividades complementares a sua anlise, bastando salientar ainda que
se tratam de tarefas de igual simplicidade e que, apesar de no serem todas abordadas nesta
oportunidade, podem ser empregadas pelo usurio sem maiores problemas.
ou selecionar em menu File a opo Change Directory e passar o novo diretrio. A instruo
pwd ecoar na rea de trabalho o diretrio corrente.
Para acessar o Scicos, digite ento a instruo:
--> scicos( );
Figura 3: Janela para Acesso aos 7 grupos de Palletes da Biblioteca de Blocos do SCICOS
5
Others: o bloco Scifunc que armazena a equao do sistema em modelagem (Figura 5b) e
Branching: o bloco Multiplexer ou simplesmente Mux, que tem a funo de concatenar suas
mltiplas entradas (eventualmente vetores) em um nico vetor (matriz) de sada (Figura 5c).
(5a)
(5b)
(5c)
Figura 5: Outros Blocos de Destaque
Se desejar mover os blocos, selecione a opo Move no menu Edit ou simplesmente tecle
<m>. Ativada a mensagem Click object to move, drag and click (left to fix, right to cancel),
clique sobre o bloco a ser movido, arraste-o para onde desejar e clique novamente para fix-lo
na nova posio. Enquanto no clicar o boto direito do mouse a instruo Move permanecer
ativa.
interessante que os blocos sejam alinhados e dispostos de forma a facilitar o processo
de conexo. Caso necessite o menu Edit conta ainda com as opes Delete, Flip e Align,
tambm ativadas pelas teclas <d> <f> e <a>, respectivamente. O funcionamento destas duas
instrues anlogo ao Copy e ao Move.
7
Edit. Outros parmetros passveis de declarao neste momento so as condies iniciais do
sistema (por ex.: velocidade inicial xp0 e a posio inicial x0), conforme apresentado na Figura
7, dada a seguir.
Tambm o bloco Multiplexer ou Mux conta com um nico parmetro que refere-se ao
nmero de entradas possveis. Como padro para este bloco o Scicos assume 2 entradas. A
Figura 9 mostra a janela de dilogo para a definio deste parmentro.
Por sua vez, o bloco Scifunc requer a definio dos seguintes parmetros:
1) Input ports sizes: nmero de variveis na porta de entrada do bloco. No caso exemplo
tem-se 2 variveis que so a velocidade e posio.
2) Output port sizes: nmero de variveis na porta de sada do bloco. Neste caso tem-se
uma nica varivel na sada, a acelerao.
9
Os demais parmetros geralmente no so modificados e, portanto, sero apenas citados:
3) Input event ports sizes.
4) Output events ports sizes.
5) Initial continuous state.
6) Initial discrete state.
7) System parameters vector.
8) Initial firing vector.
Alm destes parmetros necessria tambm a definio da funo que calcula a sada do
bloco Scifunc. No exemplo apresentado, utiliza-se a funo referente a um sistema massa/mola
amortecido, como se pode perceber pela Figura 10.
10
11
Para o Diagrama anterior, a Figura 12 traz um resultado parcial da simulao do sistema
massa/mola amortecido. No grfico apresentado tem-se o registro temporal do deslocamento.
2.1. Armazenamento
As variveis relevantes da simulao devem ser gravadas em arquivos texto atravs do
bloco Write to Output File, ligado a um relgio e varivel, conforme mostra a figura a seguir.
12
1/s
1/s
Tempo
Scifunc
M ux
w rite to
V arivel
output file
13
Coluna 1:
Tempo
Coluna 2:
Varivel
claro que se na entrada do bloco Write to Output File existissem duas variveis, o
arquivo de sada seria composto por 3 colunas, sendo a primeira o tempo e as duas ltimas as
variveis.
2.2. Ps-processamento
Deve-se carregar os dados do arquivo gerado na simulao no ambiente Scilab. Assim,
aps fechar o modelo, deve-se utilizar o comando
--> var = read(nome arquivo.txt,-1,numero de colunas);
sendo var o nome da varivel que voc quer criar (pode ser qualquer nome, no precisa ser var).
Utiliza-se 1 para indicar que se quer ler todo o arquivo (todas as linhas) e em seguida o nmero
de colunas a serem armazenadas. No caso da Figura 14, este campo valeria 2 (coluna do tempo
e da nica varivel armazenada).
Agora, a varivel var passa a ser uma matriz de 2 colunas, sendo a primeira coluna o
tempo e a segunda a varivel armazenada na simulao. Para fazer o grfico basta :
--> plot(var(:,1),var(:,2))
Note que var(:,1) refere-se 1a coluna de var e var(:,2) 2a coluna. Os dois pontos (:)
indicam que se quer considerar todas as linhas da matriz.
O grfico gerado tem o seguinte aspecto.
14
5
4
3
2
1
0
-1
-2
-3
-4
-5
0
12
16
20
24
28
32
Para copiar o grfico num editor de trextos como o Microsoft Word, utiliza-se a opo
File->Copy to clipboard (EnhMetafile) que existe na barra de menu da figura. Em
sendo:
1) rect : vetor [xmin,ymin,xmax,ymax]. Por exemplo, no caso da figura anterior, [0,32,5,5] (pode-se utilizar vrgulas ou espaos)
2) tics : vetor [nx,mx,ny,my] com mx, nx (resp. my, ny) o nmero de intervalos e
subintervalos para os eixos. x-axis (resp. y-axis). No geral, utiliza-se
arg_opt1=[%t,%t] e a varivel tics ajustada automaticamente pelo programa.
Assim no geral utiliza-se :
tics = [1,1,1,1];
arg_opt1=[%t,%t];
32
5],[1
1],[%t
ou alternativamente:
--> rect = [0 5 32 5]
--> tics = [1 1 1 1]
--> captions = [Resultado 1,Tempo,x(t)]
--> plotframe(rect,tics,[%t %t],captions);
%t],[Resultado
15
Resultado 1
x(t)
5
4
3
2
1
0
-1
-2
-3
-4
Tempo
-5
0
12
16
20
24
28
32
3. Exemplos
Neste captulo sero apresentados dois exemplos de simulao de sistemas dinmicos,
que podero ser utilizados como modelos para outros sistemas.
x(t)
m
c
k
F(t)
A fora de restituio da mola vale k.x e a fora de amortecimento vale cx& , sendo x(t)
o deslocamento da massa com relao posio de equilbrio e x& (t ) a velocidade da massa.
Assim, a equao dinmica que rege o sistema pode ser obtida facilmente:
m&x& + cx& + kx = F (t )
(1)
16
Para se montar o diagrama de simulao da equao acima, fica mais fcil isolar a
segunda derivada (acelerao) obtendo-se:
&x& =
1
(cx& kx + F (t ))
m
(2)
&x&(t )
1
s
x& (t )
x(t)
1
s
&x&(t )
1
s
x& (t )
1
s
x(t)
1
(cx& kx + F (t ))
m
F(t)
Figura 19 Diagrama de blocos do sistema
O bloco inferior possui uma funo (2) da posio (x(t)), da velocidade ( x& (t ) ) e da fora
externa (F(t)) obtida isolando-se a acelerao da equao original (1).
Para transpor o diagrama simplificado da Figura 19 para um diagrama em linguagem
Scilab/Scicos, alguns detalhes devem ser levados em conta, explicados a seguir, observando o
diagrama da Figura 20.
17
Os sinais de entrada do bloco que contm a equao (2) devem ser multiplexados (ou
seja, vrios sinais escalares transformados em um vetor de sinais) atravs do bloco Mux. Assim,
a sada do bloco Mux ser o vetor ( x& (t ), x(t ), F (t )) T , sendo a ordem dos elementos do vetor
determinada pela ordem da entrada dos sinais no bloco Mux.
O bloco Scifunc contm a equao (2). Este bloco possui diversos parmetros, entretanto,
os relevantes para o tipo de simulao que est-se tratando aqui so:
1) Input ports sizes: nmero de entradas (no caso, o bloco Mux gera um vetor com 3
elementos, logo este parmetro vale 3)
2) Output port sizes: nmero de variveis de sada (no caso, vale 1)
3) Function which computes the output: funo a ser calculada. A varivel de sada
denominada y1, e as variveis de entrada so denominadas u1(1), u1(2), etc.... No
nosso caso, u1(1) correponde ao primeiro elemento do vetor de sada do Mux, ou
seja, x& (t ) ; u1(2) corresponde x(t) e u1(3) F(t). A funo escrita para representar
equao (2) :
y1=1/m*(-c*u1(1)-k*u1(2)+u1(3))
Os outro parmetros do bloco podem ser deixados com o valor inicial, sem alteraes.
As condies iniciais do sistema dinmico (equivalente a velocidade e posio inicial da
massa) so especificadas nos blocos de integrao (1/s). Assim, no primeiro bloco (no qual entra
18
acelerao e sai velocidade) especifica-se a velocidade inicial (denominada de xp0). No
segundo, a posio inicial x0.
Finalmente, deve-se dar valores a todas as variveis alfanumricas utilizadas no diagrama
(a saber: m, k, c, x0, xp0). Isto feito atravs da opo Context (no menu Edit), que
fornece uma caixa de dilogo como a apresentada a seguir:
Para se fazer simulaes rpidas, pode-se utilizar o bloco Scope, que gera grficos sem
legenda ou grid, mas que permitem avaliaes preliminares dos resultado, conforme mostra a
figura a seguir:
19
Utilizando a opo Setup do menu Simulate, pode-se ajustar o tempo total de simulao,
que no caso foi ajustado para 30 (a unidade de tempo depende das unidades dos parmetro
utilizados, sendo omitida aqui).
Alm disso, pode-se alterar parmetros de tolerncia e passo de integrao, sendo que
normalmente os parmetros ajustados inicialmente satisfazem as aplicaes. Em sistemas com
alta rigidez, deve-se fazer alguns ajustes, recomendando-se a leitura do manual do programa
para tal.
Pode-se ento simular o sistema, utilizando-se a opo Run do menu Simulate. Com os
parmetros do modelo e condies iniciais mostradas na Figura 21 e com ausncia de forante
(anula-se a amplitude da senide que representa a forante), obtm-se o resultado Figura 23
(grfico da posio x(t) em funo do tempo). Note que o perodo prximo ao perodo natural
no amortecido do sistema (8.8), j que o amortecimento baixo.
15
12
9
6
3
0
-3
-6
-9
-12
-15
0
12
15
18
21
24
27
30
Utilizando-se agora uma rigidez maior (passando-se do valor inicial de 1 para 5), o
perodo diminui para aproximadamente 3.97, conforme mostra a figura a seguir:
15
12
9
6
3
0
-3
-6
-9
-12
-15
0
12
15
18
21
24
27
30
20
x1(t)
x2(t)
m1
c1
k1
m2
c2
k2
F(t)
&x&1 =
1
((k 2 k1 ) x1 + (c 2 c1 ) x&1 + k 2 x 2 + c 2 x& 2 )
m1
1
&x&2 =
(k 2 x1 + c 2 x&1 k 2 x 2 c 2 x& 2 + F (t ) )
m2
(3)
O diagrama Scicos que representa as equaes acima apresentado na Figura 26. Como o
sistema possui dois graus de liberdade ( representado por duas equaes diferenciais de 2a
ordem), o diagrama contm 2 loops anlogos ao do exemplo anterior, totalizando 4 integradores.
O loop superior est associado primeira equao (a de &x&1 (t ) ) e o inferior est associado
&x&2 (t ) .
21
Figura 26 Diagrama Scicos que representa as equaes da dupla massa mola amortecedor
x&1 (t )
x1 (t )
x& 2 (t )
x 2 (t )
Assim, no bloco funo1, a varivel u1(1) representa na verdade x&1 (t ) ; u1(2) representa
x1 (t ) , e assim por diante. Logo, a equao escrita no bloco funo1 (igual primeira equao
de (3), mas com os nomes das variveis alterados) :
y1=1/m1*((-k2-k1)*u1(2)+(-c1-c2)*u1(1)+k2*u1(4)+c2*u1(3))
22
O bloco Mux2, por sua vez, multiplexa as variveis que entraro no bloco funo2, na
seguinte ordem:
1
2
3
4
x&1 (t )
x1 (t )
x& 2 (t )
x 2 (t )
5
F(t)
A equao escrita no bloco funo2 (igual segunda equao de (3), mas com os nomes
das variveis alterados) :
y1=1/m2*(k2*u1(2)+c2*u1(1)-k2*u1(4)-c2*u1(3)+u1(5))
A simulao do sistema com as constantes e condies iniciais acima e com uma fora de
excitao nula apresentada na Figura 28. A curva pontilhada refere-se varivel x2(t).
23
m&x& + cx& + kx = F (t )
(4)
24
Para planejar o diagrama, primeiro avalia-se como se relacionam as variveis (x, x& , &x& e
t) e as constantes (c, k, m). Integrando-se a acelerao &x& ou xpp1 obtm-se a velocidade x& ou
xp2 ; integrando a velocidade obtm-se o deslocamento x, como mostrado na figura 30.
&x&
Integrao
x&
Integrao
&x& =
F
c
k
x& x + (t )
m
m
m
(5)
25
26
mouse em cima do bloco e teclando a letra d ou acessar ao menu Edit e acessar a opo Delete,
posteriormente de dando um clique na figura no desejada.
1/s
1/s
+
1
+
1/s
+
1
+
sinusoid
generator
Figura 32 blocos copiados da janela linear (a) janela principal (b) e Inputs_Outputs (c) em
(d)
Para mover os blocos, coloca-se o mouse no bloco que se deseja mover (sem clicar nele)
e tecla-se a letra m, depois se clica sobre o bloco a ser movido, arrastando-o para onde se deseja
e clica-se novamente para fix-lo na nova posio. Tambm se usa o menu Edit e acessa-se a
opo move.
27
Para facilitar a conexo pode-se necessitar alinhar os blocos, para isso entra-se no menu
Edit, colocando-se na opo Align e depois clicando no bloco que est na posio correta,
posteriormente clica-se sobre o bloco que deseja alinhar de outro modo e coloca-se o mouse no
bloco e tecla-se a letra a em cada um dos blocos por alinhar.
Uma vez que os blocos estejam bem configurados algumas das figuras podem ter o
sentido invertido, neste caso temos os blocos de ganho, adio e o que gera a fora. Para
inverter seu sentido de orientao coloca-se o mouse no bloco e tecla-se a letra f , clicando no
bloco ou ,usando o menu Edit, acesa-se a opo Flip. A figura 33 mostra a configurao dos
blocos obtidos.
1/s
1/s
+
1
+
sinusoid
generator
28
Para que o sistema reflita a equao da massa mola amortecedor, precisa-se colocar em
cada bloco os parmetros declarados na janela de Context. Deste modo se ativa no diagrama de
Scicos; se no so colocados esses parmetros, a simulao se d com os valores padres de
cada bloco, por exemplo, os blocos integrais assumem como velocidade inicial zero e espao
inicial tambm zero.
Para colocar os parmetros precisa-se ingressar na janela de dilogo de parmetros, e
substituir os valores padres de Scicos pelos declarados na janela Context; Para o bloco
integral de acelerao coloca-se xp0, e no segundo bloco integral de velocidade coloca-se x0.
Para os blocos de ganhos muda-se conforme mostrado na figura 35. Em caso de se clicar no
bloco e no aparecer a janela dilogo de parmetros onde se coloca os ganhos, coloca-se o
mouse em cima do bloco e tecla-se a letra s de Setup , clicando a seguir no bloco por ativar.
29
c/m
k/m
1/m
tambm necessrio colocar o tempo de durao
O bloco de adio possui duas entradas positivas e uma sada. Para mudar as condies
requeridas pela equao que modela o sistema, precisam-se de trs entradas, estas sendo
[ c / m.x& , k / m.x , F( t ) / m ], sendo duas delas negativas. Para modificar, clica-se no bloco de
adio e aparece a figura 36, dentro dele o parmetro de dilogo mostra o valor padro [1;1]
troca-se por [-1;-1;1] e, clicando-se em concluir, obtm-se as trs entradas desejadas, duas com
sinal negativo.
30
Para obter maior informao dos blocos pode-se usar a ajuda do programa, para isso
entra-se no menu Misc, acessando na opo help, clicando sobre ele, depois clicando no bloco
do qual se deseja obter informao. A figura 37 mostra a janela e o help por ativar, a figura 38
mostra uma mensagem de ajuda ativada com o bloco de relgio.
31
Para a conexo dos blocos, seleciona-se a opo link do menu Edit ou o coloque o
mouse no bloco que se deseja conectar e tecla-se a letra l; desde a sada do bloco arraste o
mouse at a entrada do outro bloco, com um clique para terminar a linha. A figura 39 mostra os
blocos conectados.
32
necessrio colocar o mouse dentro do bloco para iniciar a linha. Estando a linha em
execuo podem-se formar ngulos clicando o mouse onde se deseja mudar de direo. A
interrupo da linha feita clicando o lado direito do mouse. Para excluir a linha, pode-se usar a
opo Delete do menu Edit ou colocar o mouse na linha, depois teclar a letra d.
Para ajustar os parmetros de simulao do diagrama, primeiro se coloca o perodo de
durao da simulao. Para isso se ingressa no menu simulate, na opo Setup,e aparece a
janela Scilab mdialog. O primeiro parmetro de dialogo o final integration time, com o valor
padro de 100000 (seg). Este o tempo escolhido de simulao, que deve ser alterado para 100.
A figura 40 mostra a janela com o valor trocado.
33
O bloco gerador de senide gera uma fora de excitao varivel e tem a equao
Fora = M*sin(F*t+P), onde M a magnitude da fora com valor padro igual 1, F a
freqncia, t o tempo e P e o ngulo de fase. Se o valor da magnitude da fora for zero, isto
significa que no tem fora de excitao e a oscilao da massa produzida pelo deslocamento
inicial (neste caso assumimos 12). Se o valor da magnitude da fora fora 1 significa que tem
uma fora que periodicamente se modifica em concordncia com os valores do bloco que gera a
fora.
Para preparar a simulao do sistema ingressa-se no menu Simulate e clica-se na opo
Evaluate, depois de rod-lo clica-se na opo Compile. Para simular o sistema, utiliza-se a
opo Run do menu Simulate, o resultado uma janela onde se mostra o grfico da simulao.
A figura 42 mostra a simulao para uma fora com magnitude zero e a figura 43 com uma
fora com magnitude 10.
Figura 41 Grfico da simulao com fora de excitao com magnitude igual zero.
34
Figura 42 Grfico da simulao com fora de excitao com magnitude igual a dez.
Figura 43 Diagrama para obter um grfico que simule a fora a velocidade e o deslocamento.
35
Para obter o bloco multiplex entra-se no menu Edit, na opo Palette e seleciona-se a
biblioteca branching. Para modificar as entradas no bloco clica-se sobre ele e muda-se o valor
padro de 2 para 3. Desta vez a simulao ser para os seguintes valores: Magnitude da fora 3;
tempo de durao 150; escala no eixo X= 150.
A figura 44 mostra o grfico com 3 curvas: a verde representa o comportamento do
deslocamento, a negra representa o comportamento da velocidade, e a vermelha representa o
comportamento da fora. Pode-se observar da simulao da velocidade que, na medida que
transcorre o tempo, o comportamento se modifica, alm de diminuir a amplitude o pico inferior
mais diferenciado.
36
Tabela 1 Definio de cada bloco
Smbolo
1/s
Definio
Bloco Integrador simples (Integral_f): tem como objetivo integrar os dados fornecidos desde a
entrada. Precisa de uma condio inicial (escalar), assume zero como valor padro.
Parmetro de dialogo:
- Initial state (escalar): condio inicial da integrao.
Bloco de Ganho (Gainblk_f ): A sada o produto do ganho pelo vetor que ingressa. O ganho pode
ser um escalar ou matriz. As dimenses de ganho so determinadas como um produto de matriz, a
entrada (nmero de colunas) pela sada (nmero de filas) do tamanho da nova matriz.
Parmetro de dialogo:
- Gain: matriz real ou escalar.
+
+
Bloco de adio (Bigsom_f): Este bloco realiza a soma dos vetores que ingressam segundo o signo
atribudo. A sada um vetor com n elementos que resulta da somatria de todos os vetores
ingressados com n elementos cada vetor. Podem-se modificar o nmero de entradas e seu signo,
clicando no bloco e mudando o valor [1;1] (cada elemento deste vetor uma entrada e o signo
destas +) , pela quantidade necessria de entradas e designar o signo para cada vetor.
Parmetros de dialogo:
- Input signs: O vetor signo do fator (geralmente +1 ou -1) do nmero de entradas do bloco.
Bloco de relgio (Clock_f) ou gerador de eventos peridicos. Este bloco construdo para gerar o
tempo na sada do bloco, a durao do evento depende do tempo fornecido. A nica sada deste
bloco gera uma sucesso regular de eventos.
Os Parmetros de dialogo so:
- Period (escalar): o tempo que separa dois eventos (escalar)
- Init time (escalar): Marca o inicio do evento. Sendo negativo, o relgio nunca comea.
Bloco de grficos (Scope_f): Este bloco realiza a visualizao da evoluo dos sinais dos eventos
que so introduzidos de maneira simultnea. Podem ser uma matriz no mesmo instante obtendo-se
vrias curvas, uma por vetor.
Os parmetros de dilogos mais importantes so:
- Ymin, Ymax: Mnimo e mximo valor permitido no eixo Y; os valores usados limitam o eixo Y
nos grficos desta janela.
- Refresh perodo: Valor mximo no eixo X (tempo). Se o tempo de simulao for maior que o
valor mximo do eixo X a curva continuada em um novo desenho, mltiplo deste valor.
Bloco gerador de sinusoide (Ensin_f): Este bloco um gerador de onda sinusoidal: M*sin(F*t+P)
sinusoid
generator
37
Scifunc
Mux
Bloco multiplex (Mux_f): Este bloco fusiona n vetores de entrada em uma nica sada. Seja
y=[u1;u2..ui..;un], onde ui so numerados segundo o ordem das entradas desde o inicio at o final.
O tamanho da sada determinado pelo contexto.
Parmetro de dialogo:
-Number of output ports: Nmero de ingresso no bloco, inteiro maior que 1 e menor que 9.