Rigid Body

class uraeus.smbd.symbolic.components.bodies.body(name)[source]

A class that represents an un-constrained rigid body object in 3D in a symbolic form, where all the body parameters and equations are generated automatically in a symbolic format.

Parameters:name (str) – Name of the body instance. Should mimic a valid python variable name.

Note

An un-constraied body in space is typically defined using 6 generalized coordinates representing its’ location and orientation. In cartesian coordinate system, body location is simply defined by the \((x,y,z)\) coordinates of a reference point on the body -normally the center-of-mass - , where the body orientation can be defined in various ways, such as the directional cosines matrix, euler-angles and euler-parameters.

The package uses euler-parameters -which is a 4D unit quaternion- to represents a given body orientation in space. This makes the generalized coordinates used to fully define a body in space to be 7, instead of 6, it also adds an algebraic equation to the constraints that ensures the unity/normalization of the body quaternion.

Attributes

n

Number of generalized coordinates used to define the body configuration. Equals 7.

Type:int
nc

Number of scalar constraint equations (euler-parameters normalization).

Type:int
nve

Number of vetor constraint equations (euler-parameters normalization).

Type:int
A

The directional cosines matrix that represents the symbolic orientation of the body relative to the global_frame. This matrix is function of the body orientation parameters e.g. euler-parameters

Type:A
R

A symbolic matrix that represents the location of the body’s reference point relative to the global origin.

Type:vector
Rd

A symbolic matrix that represents the translational velocity of the body’s reference point relative to the global origin.

Type:vector
P

A symbolic matrix that represents the orientation of the body’s reference frame relative to the global frame in terms of euler-parameters.

Type:quatrenion
Pd

A symbolic matrix that represents the rotaional velocity of the body’s reference frame relative to the global frame in terms of euler_parameters time-derivatives.

Type:quatrenion
q

Blockmatrix containing the position-level coordinates of the body

Type:sympy.BlockMatrix
qd

Blockmatrix containing the velocity-level coordinates of the body

Type:sympy.BlockMatrix
normalized_pos_equation

The normalization equation of the euler-parameters quatrenion at the position level.

Type:sympy.MatrixExpr
normalized_vel_equation

The normalization equation of the euler-parameters quatrenion at the velocity level.

Type:sympy.MatrixExpr
normalized_acc_equation

The normalization equation of the euler-parameters quatrenion at the acceleration level.

Type:sympy.MatrixExpr
normalized_jacobian

The jacobian of the normalization equation of the euler-parameters quatrenion relative to the vector of euler-parameters.

Type:list (of sympy.MatrixExpr)
arguments_symbols

A list containing the symbolic mathematical objects that should be nuemrically defined by the user in a numerical simulation session.

Type:list (of symbolic objects)
runtime_symbols

A list containing the symbolic mathematical objects that changes during the run-time of a nuemric simulation’s “solve” method.

Type:list (of symbolic objects)
constants_symbolic_expr

A list containing sympy equalities representing the values of internal class symbolic constants that are evaluated from other symbolic expressions.

Type:list (of sympy.Equality)
constants_numeric_expr

A list containing sympy equalities representing the values of internal class symbolic constants that are evaluated directly from numerical expressions.

Type:list (of sympy.Equality)
constants_symbols

A list containing all the symbolic mathematical objects that represent constants for the given body instance.

Type:list (of symbolic objects)