Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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:
# 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
# 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
# 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 ( )
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
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)
# 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.