This content is specific to Simscape™ Multibody™ First Generation software. First-generation features are slated to be deprecated and should be avoided.

Machines are composed of bodies, which have relative degrees of freedom (DoFs). Bodies have positions, orientations, mass properties, and sets of Body coordinate systems. Joints represent the motions of the bodies.

A machine's

*geometry*consists of its static body features before starting a simulation: positions, orientations, and**Body coordinate systems**.A machine's

*kinematics*consist of all degrees of freedom (DoFs) of all bodies: the positions/orientations and their derivatives of at any instant during the machine's motion.

The full description of a machine's motion includes not only
its kinematics, but also specification of its observers, who define **reference frames**(RFs) and **coordinate systems** (CSs) for
measuring the machine motion.

All vectors and tensors, unless otherwise noted, are represented by Cartesian matrices with three and nine, respectively, spatial components measured by rectangular coordinate axes.

The *reference frame* of an observer is an
observer's state of motion, which has to be measured by other observers.
A Simscape
Multibody model simulates a machine's motion using its Newtonian
dynamics, which takes its simplest form in the set of *inertial* RFs,
the set of all frames unaccelerated with respect to inertial space.
Within an RF, you can pick any point as a *coordinate system* origin,
then set up Cartesian (orthogonal) axes there.

The master Simscape
Multibody inertial RF is called * World*.
A CS origin and axis triad are also defined in World. World can mean
either the RF or the CS, although in most contexts, it means the World
coordinate system. World defines absolute rest and a universal coordinate
origin and axes independent of any bodies and grounds in a machine.

A common synonym for coordinate system is *working
frame*.

Now add a second CS, called *O*, whose origin
is translating with respect to the World origin and whose axes are
rotating with respect to the World axes. Later in this section, this
second CS is identified with a CS fixed in a moving body. (See Representing Body Translations and Rotations.)

A vector ** C** represents the origin
of

The orthogonal unit vectors {*u**(x)*, *u**(y)*, *u**(z)*}
define the coordinate axes of *O*.

This set is oriented with respect to the World coordinate axes

*X*,*Y*,*Z*, with unit vectors {*e**(x)*,*e**(y)*,*e**(z)*}. The orientation changes with time.You can express the set {

*u**(x)*,*u**(y)*,*u**(z)*} as a linear combination of the basis {*e**(x)*,*e**(y)*,*e**(z)*} in terms of nine coefficients. These are relationships between*vectors*(not vector*components*) and are independent of the reference frame and coordinate system.You obtain the

*components*of the's in World by projecting the*u*'s on to the*u*'s by scalar products. The time-dependent*e**R*coefficients represent the orientation of the's with respect to the*u*'s. You can use the labels (1,2,3) as equivalents for*e**(x,y,z)*.The

*components*of any vectormeasured in World are*v*(i)*e*. Represent them by a column vector,*·v**v*_{World}. The components ofin*v**O*are(i)*u*. Represent them by a column vector,*·v**v*_{O}. The two sets of components are related by the matrix transformation*v*_{World}=*R*_{WO}*·v*_{O}. The coefficients*R*form a matrix whose*columns*are the components of the's in World:*u*The orthogonality and unit length of the

's guarantee that*u**R*is an orthogonal rotation matrix satisfying*RR*^{T}=*R*^{T}*R*=*I*, the identity matrix.*R*^{T}is the transpose of*R*(switch rows and columns). Thus*R*^{-1}=*R*^{T}.Rotations always follow the

, so that det(**right-hand rule***R*) = +1.You use rotation matrices in general to transform the components of any vector from one CS representation to another, rotated CS representation.

To the two observer CSs, World and *O*, now
add a third point ** p** in arbitrary
motion.

The components of ** p** are given
by projecting it on to some CS axes. The components of

Thus the motion as measured by *p*_{World},
when transformed and observed by *O* as *p*_{O},
has additional time dependence arising from the motion of C and *R*.

Differentiate the relationship between *p*_{World} and *p*_{O} once with respect
to time. The result relates the velocity of ** p** as
measured by

The section The Angular Velocity of a Body from Its Rotation Matrix explains how to express the third term in a simpler form.

Next consider the special case essential for describing the
rigid body motions: the moving point ** p** is
fixed in the body itself. Let

The rotation matrix *R* now describes the rotational
motion of the body in terms of the rotation of the CG CS axes with
respect to the World axes. Furthermore, because ** b** is
now fixed in the body itself, it does not move in

Continue to identify *O* with the body CG CS
and ** b** as a point fixed in the body.
The vector components of

Because *RR*^{T} = *I*, (*dR/dt)*****R*^{T} + *R*(**dR*^{T}*/dt*) = 0. Insert *R*^{T}*R* = *I* to the left of *b*_{Body} and
define an antisymmetric matrix Ω = +*(dR/dt)***R*^{T} = -*R**(*dR*^{T}*/dt*).
Its components are Ω_{ik} =
+Σ_{j} ɛ_{ijk}ω_{j}.

where ω is the body's angular velocity in the World CS.

The motion of *b*_{Body} decomposes
into the motion of the body's CG plus the angular rotation of *b*_{Body} relative to the
CG, all measured in World.

The relationship between time derivatives of a vector measured in World and measured in the body holds generally. For any vector V,

The derivative of the angular velocity ω is the angular acceleration. It is the same, whether measured in World or in the body, because = 0.

The permutation symbol ɛ_{ijk }is
defined by

ɛ_{ijk}= +1 if *ijk* is
an even permutation (123 or any cyclic permutation thereof)

ɛ_{ijk}= -1 if *ijk* is
an odd permutation (321 or any cyclic permutation thereof)

ɛ_{ijk} changes sign upon switching
any two indices and vanishes if any two indices are equal. The components
of the cross (vector) product ** c** =

`X`

*c*_{i} =
Σ_{jk} ɛ_{ijk}*a*_{j}*b*_{k}