Example #1
0
def test_linearmomentum():
    N = ReferenceFrame("N")
    Ac = Point("Ac")
    Ac.set_vel(N, 25 * N.y)
    I = outer(N.x, N.x)
    A = RigidBody("A", Ac, N, 20, (I, Ac))
    P = Point("P")
    Pa = Particle("Pa", P, 1)
    Pa.point.set_vel(N, 10 * N.x)
    BL = [A, Pa]
    assert linearmomentum(BL, N) == 10 * N.x + 500 * N.y
Example #2
0
def test_angularmomentum_and_linearmomentum():
    m, M, l1 = symbols("m M l1")
    q1d = dynamicsymbols("q1d")
    N = ReferenceFrame("N")
    O = Point("O")
    O.set_vel(N, 0 * N.x)
    Ac = O.locatenew("Ac", l1 * N.x)
    P = Ac.locatenew("P", l1 * N.x)
    a = ReferenceFrame("a")
    a.set_ang_vel(N, q1d * N.z)
    Ac.v2pt_theory(O, N, a)
    P.v2pt_theory(O, N, a)
    Pa = Particle("Pa", P, m)
    I = outer(N.z, N.z)
    A = RigidBody("A", Ac, a, M, (I, Ac))
    BL = [Pa, A]
    assert linearmomentum(BL, N) == 2 * m * q1d * l1 * N.y + M * l1 * q1d * N.y
    assert angularmomentum(BL, O, N) == 4 * m * q1d * l1 ** 2 * N.z + q1d * N.z