Keywords

It was verified in the paragraph sections that the numerical solution of the dynamic equations of motion (12.3) requires a set of initial conditions on the positions and velocities. Moreover, this system of equations of motion does not use explicitly the position and velocity equations associated with the kinematic constraints. Consequently, for moderate and long time simulations, the original constraint equations start to be violated due to the integration process and inaccurate initial conditions. Therefore, special procedures must be followed to avoid or minimize this phenomenon. Several methods to deal with this problem have been suggested and tested over the last years (Blajer 2002; Zahariev and McPhee 2003; Nikravesh 2007; Masarati 2011).

It is well known that for a constrained multibody system, the kinematic constraints can be described by a set of linear and/or nonlinear algebraic equations as (Nikravesh 2008)

$$ {\varvec{\Phi}}({\mathbf{q}}) = {\mathbf{0}} $$
(14.1)

The time derivative of these constraints provide the velocity constraints that can be written as

$$ {\dot{\mathbf{\Phi }}}({\mathbf{q}},{\dot{\mathbf{q}}}) = {\mathbf{Dv}} = {\mathbf{0}} $$
(14.2)

Let consider that the initial conditions for positions (q 0) do not satisfy Eq. (14.1), then the corrected positions can be expressed as

$$ {\mathbf{q}}^{c} = {\mathbf{q}}^{0} +\updelta{\mathbf{q}} $$
(14.3)

where δq represents the set of corrections that adjusts the initial conditions, such that

$$ {\varvec{\Phi}}({\mathbf{q}}^{c} ) = {\varvec{\Phi}}({\mathbf{q}}^{0} ) +\updelta{\varvec{\Phi}} = {\mathbf{0}} $$
(14.4)

and, hence

$$ \updelta{\varvec{\Phi}} = - {\varvec{\Phi}}({\mathbf{q}}^{0} ) $$
(14.5)

For small δΦ, Eq. (14.1) can be expanded and the higher order terms can be neglected, yielding the variation of the constraint equations as (Flores et al. 2011)

$$ \updelta{\varvec{\Phi}} = \frac{{\partial {\varvec{\Phi}}}}{{\partial {\mathbf{q}}}}\updelta{\mathbf{q}} = {\mathbf{D}}\updelta{\mathbf{q}} $$
(14.6)

Substituting now Eq. (14.6) in Eq. (14.5) results in

$$ \updelta{\mathbf{q}} = - {\mathbf{D}}^{ - 1} {\varvec{\Phi}}({\mathbf{q}}^{0} ) $$
(14.7)

It must be noted that, in general, the Jacobian matrix, D, is not square, therefore, D −1 does not exist. However, the concept of the Moore-Penrose generalized inverse matrix can be employed as (Rao and Mitra 1971; Neto and Ambrósio 2003)

$$ {\mathbf{D}}^{ + } = {\mathbf{D}}^{T} ({\mathbf{DD}}^{T} )^{ - 1} $$
(14.8)

such that

$$ {\mathbf{DD}}^{ + } {\mathbf{D}} = {\mathbf{D}} $$
(14.9)
$$ {\mathbf{D}}^{ + } {\mathbf{DD}}^{ + } = {\mathbf{D}}^{ + } $$
(14.10)

and both D + D and DD + are symmetric matrices.

Consequently,

$$ {\mathbf{D}}^{T} ({\mathbf{DD}}^{T} )^{ - 1} = {\mathbf{D}}^{T} ({\mathbf{D}}^{ + } )^{T} {\mathbf{D}}^{ + } = ({\mathbf{D}}^{ + } {\mathbf{D}})^{T} {\mathbf{D}}^{ + } = {\mathbf{D}}^{ + } {\mathbf{DD}}^{ + } = {\mathbf{D}}^{ + } $$
(14.11)

Thus, Eq. (14.7) can be rewritten in the following form

$$ \updelta{\mathbf{q}} = - {\mathbf{D}}^{T} ({\mathbf{DD}}^{T} )^{ - 1} {\varvec{\Phi}}({\mathbf{q}}^{0} ) $$
(14.12)

Since the kinematic constraint equations at the position level are, in general, nonlinear, Eq. (14.12) must be solved iteratively by employing a numerical algorithm. A Newton-Raphson algorithm to solve the nonlinear position constraints can be stated, for i-th iteration, as (Nikravesh 2007)

This approach is effective in provide the correct initial positions, and, in general, only a few number of iterations is necessary to converge with this Newton-Raphson scheme.

In a similar manner, the corrected initial velocities can be written as

$$ {\mathbf{v}}^{c} = {\mathbf{v}}^{0} +\updelta{\mathbf{v}} $$
(14.13)

It must be stated that at this stage, the initial conditions for positions are already corrected. Thus, from Eq. (14.13) it can be verified that

$$ {\dot{\mathbf{\Phi }}}({\mathbf{q}}^{c} ,{\mathbf{v}}^{c} ) = {\dot{\mathbf{\Phi }}}({\mathbf{q}}^{c} ,{\mathbf{v}}^{0} ) +\updelta{\dot{\mathbf{\Phi }}} = {\mathbf{0}} $$
(14.14)

and, hence

$$ \updelta{\dot{\mathbf{\Phi }}} = - {\dot{\mathbf{\Phi }}}({\mathbf{q}}^{c} ,{\mathbf{v}}^{0} ) $$
(14.15)

Again, for small \( \updelta{\dot{\mathbf{\Phi }}} \), the variation of the constraint velocity equations can be obtained from Eq. (14.2) as

$$ \updelta{\dot{\mathbf{\Phi }}} = - {\mathbf{D}}\updelta{\mathbf{v}} $$
(14.16)

Combining Eqs. (14.15) and (14.16) yields

$$ \updelta{\mathbf{v}} = - {\mathbf{D}}^{ - 1} {\dot{\mathbf{\Phi }}}({\mathbf{q}}^{c} ,{\mathbf{v}}^{0} ) $$
(14.17)

Introducing now Eq. (14.8) in Eq. (14.17) results in

$$ \updelta{\mathbf{v}} = - {\mathbf{D}}^{T} ({\mathbf{DD}}^{T} )^{ - 1} {\dot{\mathbf{\Phi }}}({\mathbf{q}}^{c} ,{\mathbf{v}}^{0} ) $$
(14.18)

Finally, the correction of the initial velocities can be expressed as

$$ {\mathbf{v}}^{c} = {\mathbf{v}}^{0} - {\mathbf{D}}^{T} ({\mathbf{DD}}^{T} )^{ - 1} {\dot{\mathbf{\Phi }}}({\mathbf{q}}^{c} ,{\mathbf{v}}^{0} ) $$
(14.19)