ruletest3.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import sympy.physics.mechanics as _me
  2. import sympy as _sm
  3. import math as m
  4. import numpy as _np
  5. frame_a = _me.ReferenceFrame('a')
  6. frame_b = _me.ReferenceFrame('b')
  7. frame_n = _me.ReferenceFrame('n')
  8. x1, x2, x3 = _me.dynamicsymbols('x1 x2 x3')
  9. l = _sm.symbols('l', real=True)
  10. v1 = x1*frame_a.x+x2*frame_a.y+x3*frame_a.z
  11. v2 = x1*frame_b.x+x2*frame_b.y+x3*frame_b.z
  12. v3 = x1*frame_n.x+x2*frame_n.y+x3*frame_n.z
  13. v = v1+v2+v3
  14. point_c = _me.Point('c')
  15. point_d = _me.Point('d')
  16. point_po1 = _me.Point('po1')
  17. point_po2 = _me.Point('po2')
  18. point_po3 = _me.Point('po3')
  19. particle_l = _me.Particle('l', _me.Point('l_pt'), _sm.Symbol('m'))
  20. particle_p1 = _me.Particle('p1', _me.Point('p1_pt'), _sm.Symbol('m'))
  21. particle_p2 = _me.Particle('p2', _me.Point('p2_pt'), _sm.Symbol('m'))
  22. particle_p3 = _me.Particle('p3', _me.Point('p3_pt'), _sm.Symbol('m'))
  23. body_s_cm = _me.Point('s_cm')
  24. body_s_cm.set_vel(frame_n, 0)
  25. body_s_f = _me.ReferenceFrame('s_f')
  26. body_s = _me.RigidBody('s', body_s_cm, body_s_f, _sm.symbols('m'), (_me.outer(body_s_f.x,body_s_f.x),body_s_cm))
  27. body_r1_cm = _me.Point('r1_cm')
  28. body_r1_cm.set_vel(frame_n, 0)
  29. body_r1_f = _me.ReferenceFrame('r1_f')
  30. body_r1 = _me.RigidBody('r1', body_r1_cm, body_r1_f, _sm.symbols('m'), (_me.outer(body_r1_f.x,body_r1_f.x),body_r1_cm))
  31. body_r2_cm = _me.Point('r2_cm')
  32. body_r2_cm.set_vel(frame_n, 0)
  33. body_r2_f = _me.ReferenceFrame('r2_f')
  34. body_r2 = _me.RigidBody('r2', body_r2_cm, body_r2_f, _sm.symbols('m'), (_me.outer(body_r2_f.x,body_r2_f.x),body_r2_cm))
  35. v4 = x1*body_s_f.x+x2*body_s_f.y+x3*body_s_f.z
  36. body_s_cm.set_pos(point_c, l*frame_n.x)