Você está na página 1de 6

Atividade_didatica_dinamicaEstrtural1

April 2, 2019

#
Atividade Didática - A

In [2]: import numpy as np


import matplotlib.pyplot as plt

In [3]: m = 1
k = 1
c = 0
gamma = 0.5
beta = 0.25
a = 0
b = 10*np.pi
n = 1000
h = (b-a)/n
f=np.zeros(n)
F=10
t = np.linspace(a,b,n)

for i in range(n):
if t[i] <= (5*np.pi/2):
f[i]=F

u = np.zeros(n)
udot = np.zeros(n)
u2dot = np.zeros(n)

u[1] = 0
udot[1] = 0
u2dot[1] = m**(-1)*(f[0]-c*udot[1]-k*u[0])

us = np.zeros(n); #u estrela
udots = np.zeros(n); #u ponto estrela

for i in range(1,n-1,1):

1
#preditores
udots[i+1]= udot[i] + (1-gamma)*h*u2dot[i]
us[i+1] = u[i] + h*udot[i]+(0.5-beta)*u2dot[i]*h**2
#parametros intermediarios
s = m + gamma*h*c+ beta*h**2*k
u2dot[i+1] = (f[i+1] - c*udots[i+1] - k*us[i+1])/s

udot[i+1] = udots[i+1] + gamma*h*u2dot[i+1]


u[i+1] = us[i+1] + beta*h**2*u2dot[i+1]

#
t < tp

* tp tempo de duração do pulso


* t tempo transcorrido

In [4]: plt.plot(t,f)
plt.grid()
plt.xlabel("Tempo[s]")
plt.ylabel("Força[N]")
plt.title("Forçante")

Out[4]: Text(0.5,1,'Forçante')

2
In [11]: plt.plot(t/5*np.pi/2,u/(F/k))
plt.grid()
plt.xlabel("Tempo[s]/tp")
plt.title("Fator de amplificação por tempo adimensional")
plt.ylabel("Deslocamento[m]/(Força/k)")

Out[11]: Text(0,0.5,'Deslocamento[m]/(Força/k)')

0.1 Discusão:
Para tp maior que meio período e t < tp obtem-se a vibração forçada (solução particular + solução
Homogênea da equação de movimento), ou seja, um sistema forçado onde a razão de respota
(fator de carregamento dinamico) R(t) terá valor máximo igual a 2. Sendo assim, quando o car-
regamento instantaneo é aplicado ao sistema não amortecido o dobro do deslocamento estáico é
então atenuado. Além disso, para t>tp vamos obter um sistema livre, a solução homogenea da
equação do movimento, um termo estacionário.

In [6]: m = 1
k = 1
c = 0
gamma = 0.5
beta = 0.25
a = 0
b = np.pi

3
n = 1000
h = (b-a)/n
f2=np.zeros(n)
F=10
t = np.linspace(a,b,n)

for i in range(n):
if t[i] <= (np.pi/5):
f2[i]=F

u2 = np.zeros(n)
udot = np.zeros(n)
u2dot = np.zeros(n)

u2[1] = 0
udot[1] = 0
u2dot[1] = m**(-1)*(f2[0]-c*udot[1]-k*u[0])

us = np.zeros(n); #u estrela
udots = np.zeros(n); #u ponto estrela

for i in range(1,n-1,1):
#preditores
udots[i+1]= udot[i] + (1-gamma)*h*u2dot[i]
us[i+1] = u2[i] + h*udot[i]+(0.5-beta)*u2dot[i]*h**2
#parametros intermediarios
s = m + gamma*h*c+ beta*h**2*k
u2dot[i+1] = (f2[i+1] - c*udots[i+1] - k*us[i+1])/s

udot[i+1] = udots[i+1] + gamma*h*u2dot[i+1]


u2[i+1] = us[i+1] + beta*h**2*u2dot[i+1]

#
t > tp

In [9]: plt.plot(t,f2)
plt.grid()
plt.xlabel("Tempo[s]")
plt.ylabel("Força[N]")
plt.title("Forçante")

Out[9]: Text(0.5,1,'Forçante')

4
In [12]: plt.plot(5*t/np.pi,u2/(F/k))
plt.grid()
plt.xlabel("Tempo[s]/tp")
plt.title("Fator de amplificação por tempo adimensional")
plt.ylabel("Deslocamento[m]/(Força/k)")

Out[12]: Text(0,0.5,'Deslocamento[m]/(Força/k)')

5
1 Discusão:
Para tp menor que meio período e t>tp temos uma vibração devido ao resíduo da força aplicada.
Nessa região tem-se que a máxima razão de resposta é dado em função o tempo de pulso tp e
duração do ciclo.
R = 2sin(pi*tp/T)

Você também pode gostar