Method Abstract Base Class (Docstrings)

class sympy.physics.mechanics.method.MethodBase[source]

Abstract Base Class for all methods for forming the equations of motion of multibody systems.

Minimal coordinate equations of motion take this form as first order ordinary differential equations.

Kinematical differential equations:

Mk(q, t) q' = Fk(u, q, t)

Dynamical differential equations:

Md(q, t) u' = Fd(u, q, t)

Combined they take this full form:

M = [Mk 0] [q'] = [Fk] = F
    [0 Md] [u']   [Fd]

If there are additional holonomic or nonholonomic constraints, these equations can be augmented with the Lagrange multipliers:

M = [Mk 0  0  ] [q'] = [Fk] = F
    [0  Md MjT] [u']   [Fd]
    [0  Mj 0  ] [j']   [Fj]

where Mj is the “Jacobian of the constraints” and MjT is its transpose. j'=lambda are the Lagrange multipliers representing the constraint forces and then j are generalized impulses of these forces.

The equations of motion can also be augmented to reveal any noncontributing force and take this form:

M = [Mk 0  0] [q'] = [Fk] = F
    [0  Md 0] [u']   [Fd]
    [0  Mj I] [j']   [Fj]

With j' being the measure number of a noncontributing force.

abstract property acceleration_constraints

m + M x 1 column matrix of acceleration constraint residual expressions fa where:

fv' = fa(q'', q', q, t) = fa(u', u, q, t) = 0

The twice time differentiated holonomic configuration constraints should be stacked on top of time-differentiated nonholonomic constraints.

abstract property bodies

List of Particle, RigidBody, or Body objects that make up the multibody system.

property constraints_jacobian

M + m x N coefficient matrix C which is the Jacobian of the constraints.

fv = C*q' + gv(q, t) = C*u + gv(q, t) = 0
abstract property forcing

Nonlinear forcing terms Fd in the dynamical differential equations:

Md q'' = Md u' = Fd
abstract property forcing_full

Nonlinear forcing terms F in the full first order form of the equations of motion:

M [q' ] = M [q'] =  F
  [q'']     [u']
abstract property frame

Inertial reference frame that the equations of motion were formulated with respect to.

abstract property holonomic_constraints

M x 1 column matrix of holonomic configuration constraint residual expressions fh where:

fh(q, t) = 0
abstract property loads

List of Force, Torque, tuple(Point, Vector), tuple(ReferenceFrame, Vector) loads applied to multibody system.

abstract property mass_matrix

Linear coefficient matrix Md for the second time derivative of the coordinates or the first time derivative of the speeds:

Md q'' = Md u' = Fd
abstract property mass_matrix_full

Linear coefficient matrix M for the full first order form of the equations of motion:

M [q' ] = M [q'] =  F
  [q'']     [u']
abstract property nonholonomic_constraints

m x 1 column matrix of nonholonomic residual expressions fn where:

fn(q', q, t) = fn(u, q, t) = 0
abstract property q

Column matrix of N functions of time that represent the multibody system’s (generalized) coordinates.

rhs(inv_method=None, **kwargs)[source]

Returns the right hand side of the full first order form of the equations of motion in explicit form:

rhs(u, q, t) = Inv(M) F
Parameters:

inv_method : str

The specific sympy inverse matrix calculation method to use. For a list of valid methods, see inv()

abstract property u

Column matrix of N functions of time that represent the multibody system’s (generalized) speeds.

abstract property velocity_constraints

m + M x 1 column matrix of motion/velocity constraint residual expressions fv where:

fv(q', q, t) = [fh'(q', q, t)] = fv(u, q, t) = [fh'(u, q, t)] = 0
               [fn(q', q, t) ]                 [fn(u, q, t) ]

The time differentiated holonomic configuration constraints should be stacked on top of the nonholonomic constraints.