Baixe o app para aproveitar ainda mais
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 [ ]:
Compartilhar