obsidian_backup/补课/多体动力学/16_generalized_forces.py

27 lines
504 B
Python
Raw Normal View History

2025-03-21 14:31:35 +08:00
import sympy as sm
import sympy.physics.mechanics as me
me.init_vprinting(use_latex='mathjax')
l = sm.symbols('l')
q1, q2, u1, u2 = me.dynamicsymbols('q1, q2, u1, u2')
N = me.ReferenceFrame('N')
A = me.ReferenceFrame('A')
B = me.ReferenceFrame('B')
A.orient_axis(N, q1, N.z)
B.orient_axis(N, q2, N.z)
O = me.Point('O')
P1 = me.Point('P1')
P2 = me.Point('P2')
O.set_vel(N, 0)
P1.set_pos(O, -l*A.y)
P2.set_pos(P1, -l*B.y)
P1.v2pt_theory(O, N, A)
P2.v2pt_theory(P1, N, B)
print(P1.vel(N).express(N))