Você está na página 1de 5

Laboratório 2: Modelagem Matemática de Sistemas Fı́sicos - 1

FTP 037 — Segunda, 18:00 — K. Vinente (instrutor)

7 de junho de 2021
1 Introdução
Objetivo: Este laboratório tem como objetivo consolidar a importância dos modelos matemáticos na análise
e projeto de sistemas de controle. A ideia é utilizar o Python como ferramenta para auxiliar neste tópico.

2 Sistema massa-mola
Considere o sistema massa-mola descrito na Figura 2.1, em que Fs (x) é a força na mola, Ff (ẋ) é a força
devido ao atrito, x(t) é o deslocamento e Fa (t) é a força aplicada.

Figura 2.1: Sistema massa-mola

dv(t) d2 x(t) dx(t)


Ainda, a = dt = dt2 é a aceleração, v = dt é a velocidade. Com base nas leis da fı́sica, tem-se

M a + Ff (v) + Fs (x) = Fa (t) (2.1)


Considerando Ff (v) = Bv = B dx(t)
dt e Fs (x) = Kx(t), obtém-se o seguinte modelo por equação diferencial
ordinária (EDO) para o sistema massa-mola.

M ẍ + B ẋ + Kx = Fa (t) (2.2)
Em que B é o coeficiente de atrito e K é a costante da mola. A EDO linear de segunda ordem da
Equação (2.2) descreve a relação entre o deslocamento e a força aplicada. Esta EDO pode ser utilizada para
estudar o comportamento de x(t) sobre o efeito de várias mudanças na força aplicada. Para as simulações,
considere os seguintes parâmetros:

M = 750, B = 30, K = 15, F a = 300 (constante).

2.1 Resolvendo a EDO no Python


Calcule a solução da Equação (2.2) no Python, utilizando um pacote de resolução de EDO, e considerando
condições iniciais nulas. O script a seguir obtido no site apmonitor.com/pdc resolve uma EDO de 1a ordem
utilizando o pacote ODEINT. De fato, o código a seguir é a simulação do problema fı́sico de um tanque
sujeito a uma vazão na entrada. Adapte este script para este problema
import numpy a s np
import m a t p l o t l i b . p y p l o t a s p l t
from s c i p y . i n t e g r a t e import o d e i n t

# d e f i n e t a n k model
def tank ( Level , time , c , v a l v e ) :
rho = 1 0 0 0 . 0 # w a t e r d e n s i t y ( kg /mˆ3)

1
A = 1.0 # t a n k are a (mˆ2)
# c a l c u l a t e d e r i v a t i v e of the Level
d L e v e l d t = ( c / ( rho *A) ) * v a l v e
return d L e v e l d t

# time span f o r t h e s i m u l a t i o n f o r 10 sec , e v e r y 0 . 1 s e c


t s = np . l i n s p a c e ( 0 , 1 0 , 1 0 1 )

# valve operation
c = 50.0 # v a l v e c o e f f i c i e n t ( kg / s / %open )
u = np . z e r o s ( 1 0 1 ) # u = v a l v e % open
u [ 2 1 : 7 0 ] = 1 0 0 . 0 # open v a l v e b e t w e e n 2 and 7 s e c o n d s

# l e v e l i n i t i a l condition
Level0 = 0

# for storing the r e s u l t s


z = np . z e r o s ( 1 0 1 )

# s i m u l a t e w i t h ODEINT
f o r i in range ( 1 0 0 ) :
v a l v e = u [ i +1]
y = o d e i n t ( tank , Level0 , [ 0 , 0 . 1 ] , a r g s =(c , v a l v e ) )
L e v e l 0 = y [ = 1] # t a k e t h e l a s t p o i n t
z [ i +1] = L e v e l 0 # s t o r e t h e l e v e l f o r p l o t t i n g

# plot results
plt . figure ()
plt . subplot (2 ,1 ,1)
p l t . p l o t ( t s , z , ’ b= ’ , l i n e w i d t h =3)
p l t . y l a b e l ( ’ Tank L e v e l ’ )
plt . subplot (2 ,1 ,2)
p l t . p l o t ( t s , u , ’ r == ’ , l i n e w i d t h =3)
p l t . y l a b e l ( ’ Valve ’ )
p l t . x l a b e l ( ’ Time ( s e c ) ’ )
p l t . show ( )

2.2 Verificando propriedades deste sistema


Com base na simulação desenvolvida, prove que o sistema descrito na Equação (2.2) é linear e invariante no
tempo (faça simulações para comprovar este fato).
A seguir, considere um modelo para a força na mola como Fs (x) = Kxr (t). Neste caso, considere
r = [1, 2, 3]. Mostre que o sistema resultante é não-linear, através dos experimentos. Por fim, apresente a
prova matemática para este fato.

3 Equações Diferenciais
Considere o clássico problema do tanque apresentado na Figura 3.1.
O modelo matemático deste sistema é dado pelo conjunto de equações a seguir.

Fout = kh (3.1)
dh 1
= (Fin − Fout ) (3.2)
dt A

2
Figura 3.1: Problema de um tanque

Considerando K = 1, A = 1, Fin = 2, (constante), simule este sistema, considerando como variável de


saı́da a altura do tanque. Em seguida, considere que a cada 3 segundos, a válvula que controla a entrada de
vazão Fin é acionada (considere a válvula aberta em t = 0, fechada em t = 3, aberta em t = 6 e assim por
diante). Simule o sistema para esta condição.
A seguir, tem-se o script para resolver um modelo descrito pelo conjunto de EDOs:

dx(t)
2 = −x(t) + u(t) (3.3)
dt
dy(t)
5 = −y(t) + x(t) (3.4)
dt
u = 2δ−1 (t − 5), x(0) = 0, y(0) = 0 (3.5)

em que δ−1 (t − 5) é a função degrau aplicada em t = 5.


import numpy a s np
from s c i p y . i n t e g r a t e import o d e i n t
import m a t p l o t l i b . p y p l o t a s p l t

# f u n c t i o n t h a t r e t u r n s dz / d t
def model ( z , t , u ) :
x = z [0]
y = z [1]
dxdt = (= x + u ) / 2 . 0
dydt = (= y + x ) / 5 . 0
dzdt = [ dxdt , dydt ]
return dzdt

# i n i t i a l condition
z0 = [ 0 , 0 ]

# number o f time p o i n t s
n = 401

3
# time p o i n t s
t = np . l i n s p a c e ( 0 , 4 0 , n )

# step input
u = np . z e r o s ( n )
# change t o 2 . 0 a t time = 5 . 0
u [ 5 1 : ] = 2.0

# store solution
x = np . e m p t y l i k e ( t )
y = np . e m p t y l i k e ( t )
# record i n i t i a l conditions
x [ 0 ] = z0 [ 0 ]
y [ 0 ] = z0 [ 1 ]

# s o l v e ODE
f o r i in range ( 1 , n ) :
# span f o r n e x t time s t e p
t s p a n = [ t [ i = 1] , t [ i ] ]
# s ol v e for next step
z = o d e i n t ( model , z0 , tspan , a r g s =(u [ i ] , ) )
# store solution for plotting
x[ i ] = z [1][0]
y[ i ] = z [1][1]
# next i n i t i a l condition
z0 = z [ 1 ]

# plot results
p l t . p l o t ( t , u , ’ g : ’ , l a b e l= ’ u ( t ) ’ )
p l t . p l o t ( t , x , ’ b= ’ , l a b e l= ’ x ( t ) ’ )
p l t . p l o t ( t , y , ’ r == ’ , l a b e l= ’ y ( t ) ’ )
plt . ylabel ( ’ values ’ )
p l t . x l a b e l ( ’ time ’ )
p l t . l e g e n d ( l o c= ’ b e s t ’ )
p l t . show ( )
Simule este problema e faça a análise dos resultados.

4 Observações
O relatório produzido nesta atividade de simulação deve ser feito de maneira clara e objetiva. Apresente
cada resultado esperado e uma breve explicação, quando for conveniente. O relatório deve ser curto, não
ultrapassando 10 páginas. Sempre coloque o seu nome e número de matrı́cula. Anexe o relatório na turma
do classroom.

Você também pode gostar