Buscar

P2-DinamicaAplicada

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Integrantes do grupo:
Josimara da Silva Santos, Lucas Carrazedo Nogueira da Costa, Matheus Barbosa Leite e Renan dos Santos Carvalho Rezende.
Sistema
Importando as bibliotecas
Criar coordenadas e velocidades generalizadas
Funcionamento do Sistema
Equações diferenciais cinemáticas
Lista de coordenadas e velocidade generalizadas
Cinamática
Criando e orientando os referenciais
Criando ponto fixo
Definindo as constantes
Definindo CM, sua posição e velocidade
Criando P1 e P2 (molas)
Definindo a velocidade angular
Dinâmica
Criando o tensor de inércia do cilindo em relação ao seu centro de massa:
Modelando como um corpo rígido
Resultante das forças no corpo
Lista de forças ativas
Lista de Corpos
Método de Kane
Forças ativas e de inércia generalizadas
Simulação
C:\Users\Mocorongos\anaconda3\envs\DinAp\lib\site-packages\sympy\printing\ccode.py:12: SymPyDeprecationWarning: 
importing from sympy.printing.ccode has been deprecated since SymPy
1.7. Use Import from sympy.printing.c instead. See
https://github.com/sympy/sympy/issues/20256 for more info.
 deprecated_since_version="1.7").warn()
In [1]: from IPython.core.display import SVG
SVG(filename='imagem1.svg')
Out[1]:
In [1]: import sympy as sy
import sympy.physics.mechanics as me
In [2]: q1, q2, u1, u2 = me.dynamicsymbols ('q1 q2 u1 u2')
q1d, q2d = me.dynamicsymbols ('q1 q2',1)
u1d, u2d = me.dynamicsymbols ('u1 u2',1)
In [2]: from IPython.core.display import SVG
SVG(filename='imagem2.svg')
Out[2]:
In [3]: kde = [q1d-u1,q2d-u2]
In [4]: q_lista = [q1,q2]
u_lista = [u1,u2]
In [5]: A = me.ReferenceFrame('A')
B = me.ReferenceFrame('B')
In [6]: B.orient(A,'Axis',[q2,A.z])
In [7]: O = me.Point('O')
O.set_vel(A,0)
In [8]: m,L,r,k1,k2,g = sy.symbols('m L r k1 k2 g')
In [9]: dic={q1d:u1,q2d:u2}
In [10]: CM = me.Point('CM')
In [11]: p = q1*B.y
In [12]: CM.set_pos(O,p)
CM.set_vel(A,p.dt(A))
CM.vel(A).subs(dic)
Out[12]: − q1 (t) u2 (t)b̂x + u1 (t)b̂y
In [13]: P1 = me.Point('P1')
p_P1_O = q1*A.y-L/2*B.x
P1.set_pos(O,p_P1_O)
P1.set_vel(A,p_P1_O.dt(A))
P1.vel(A).subs(dic)
Out[13]:
u1 (t)ây − b̂y
L u2 (t)
2
In [14]: P2 = me.Point('P2')
p_P2_O = q1*A.y+L/2*B.x
P2.set_pos(O,p_P2_O)
P2.set_vel(A,p_P2_O.dt(A))
P2.vel(A).subs(dic)
Out[14]:
u1 (t)ây + b̂y
L u2 (t)
2
In [15]: omega = sy.symbols ('omega')
In [16]: B.set_ang_vel(A, omega*B.x)
B.ang_vel_in(A)
Out[16]: ωb̂x
I
∗
11 = I
∗
22 = + I
∗
33 =
mr
2
4
mL
2
12
mr
2
2
In [17]: Ix = m*r**2/4 + m*L**2/12
Iz = Ix
Iy = m*r**2/2
In [18]: I = me.inertia(B,Ix,Iy,Iz)
I
Out[18]:
( + )b̂x ⊗ b̂x + b̂y ⊗ b̂y + ( + )b̂z ⊗ b̂z
L2m
12
mr2
4
mr2
2
L2m
12
mr2
4
In [19]: Ci = me.RigidBody('Ci',CM,B,m,(I,CM))
In [20]: sin=sy.sin
In [21]: R=-m*g*B.y + (k2*L/2*sin(q2))*B.y + (-k1*L/2*sin(q2))*B.y
In [22]: F=[(P1,R),(P2,R),(CM,R)]
In [23]: B= [Ci]
In [24]: KM = me.KanesMethod(A, q_ind = q_lista, u_ind = u_lista ,kd_eqs = kde) 
In [25]: (fr, frstar) = KM.kanes_equations(B,F)
In [1]: import numpy as np
import pydy.system as dy
In [27]: from numpy import linspace
num = 3000
t0 = 0
tf = 30
t = np.linspace(t0,tf,num)
In [28]: constantes = {m:2.5,L:0.25,g:9.8,k1:100,k2:100}
In [29]: condi_ini = {q1:150,q2:np.pi/6,u1:0,u2:0}
In [30]: sistema = dy.System(KM, constants = constantes, initial_conditions = condi_ini, times = t)
In [31]: Q = sistema.integrate()
In [32]: import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize']=(6,4)
plt.rcParams['figure.dpi']=300
plt.figure()
plt.plot(sistema.times, Q)
plt.grid(True)
plt.legend(['q1','q2','u1','u2'])
plt.title('Resultados')
plt.show()
In [33]: plt.figure()
plt.plot(sistema.times,Q[:,0])
plt.grid(True)
plt.xlabel('Tempo[s]')
plt.ylabel('q1')
plt.show()
In [34]: plt.figure()
plt.plot(sistema.times,Q[:,1])
plt.grid(True)
plt.xlabel('Tempo[s]')
plt.ylabel('q2')
plt.show()
In [35]: plt.figure()
plt.plot(sistema.times,Q[:,0:2])
plt.grid(True)
plt.xlabel('Tempo[s]')
plt.ylabel('q1 e q2')
plt.legend(['q1','q2'])
plt.show()
In [36]: plt.figure()
plt.plot(Q[:,0],Q[:,2],'-')
plt.grid(True)
plt.xlabel('q1')
plt.ylabel('u1')
plt.title('Espaço de Fase')
plt.show()
In [37]: plt.figure()
plt.plot(Q[:,1],Q[:,3])
plt.grid(True)
plt.xlabel('q2')
plt.ylabel('u2')
plt.show()
In [ ]:

Continue navegando