1 Introduction

Multibody system dynamics methods (MSDM) have developed rapidly in the last 50 years [13] and provide powerful tools for studying dynamics of various mechanical systems. Although the various ordinary MSDMs have different styles, at the same time almost all of them share the following characteristics: firstly, it is necessary to develop the global dynamics equations of the system, and they have to be deduced again if the system’s topological structure is changed; secondly, the order of the global dynamics equations is not less than the number of degrees of freedom of the system, which may become very high for complex systems resulting in rather long computational time.

The approach proposed in the paper is different from this and has a different origin. In 1986, Kumar and Sankar developed a discrete time transfer matrix method (DTTMM) for structural dynamics of time-variant systems by combining the transfer matrix method with a numerical integration procedure [4]. In 1989, Rui and others extended the transfer matrix method to multibody systems (MSTMM) for vibration analysis of linear multi-rigid-flexible-body systems by developing new transfer matrices [5], where eigenvalues of linear multi-rigid-flexible-body systems can be computed easily and with high precision [6]. For general nonlinear multi-rigid-body and multi-rigid-flexible-body systems, the discrete time transfer matrix method of multibody systems (MSDTTMM) was developed by combining MSTMM with a numerical integration procedure [710]. In this case, however, linearization is mandatory to deduce the transfer equation of elements, which essentially describes the governing equation of motion represented by a linear relationship between the state vectors of inboard and outboard ends of an element. In [7], the Newmark-Beta numerical integration procedure is introduced, leading to only second-order computational precision. Although a higher order numerical integration procedure could be adopted, the deduction process is rather tedious.

This can be avoided with a new version of MSTMM presented in this paper. Translational and angular accelerations, together with internal forces and moments, are taken as new state variables instead of position coordinates as in the original MSDTTMM. This results in totally different transfer matrices of elements and algorithms compared with the original ones described in [710]. The proposed method expands the advantages of MSTMM by allowing more sophisticated numerical integration procedures such as any Runge–Kutta method to be used. Global dynamics equations of the system are still avoided. Instead, involved matrices have low order and the setup of the global transfer equation is highly programmable. The proposed method is simple, straightforward, efficient, practical, and provides a powerful tool for MSD. Numerical examples in Sect. 4 will show good agreement with simulation results obtained by an ordinary dynamics method.

2 General theorems and steps of the new version of MSTMM

Any complex multibody system may be divided into various elements including bodies (rigid bodies, elastic bodies, lumped masses, etc.) and hinges (joints, ball-and-socket, pins, linear and rotary springs, linear and rotary dampers, etc.), which are connected at intermediate points. The general idea of MSTMM is to use kinematic and kinetic quantities at these connection points as state variables which are related by the characteristics of the element in between. The characteristics are described by linear transfer equations from one connection point to the other, which are called input and output points \(I\) and \(O\) of the element, see, e.g., Fig. 1. For a specific multibody system, the element transfer equations are combined by simple matrix operations to an overall transfer equation which may be solved for given boundary states at the endpoints of the system. These steps will be explained in more detail in the following.

Fig. 1
figure 1

Rigid body moving in space

2.1 Coordinate systems and sign convention

In order to describe the position and orientation of connecting points, we assign a right-handed Cartesian reference frame \(K\) to each of them, see, e.g., input point \(I\) in Fig. 1. Its spatial position in the inertial Cartesian frame \(\{ oxyz \} \) is then given by coordinates \(x,y\), and \(z\), and its orientation by three space-angles \(\theta_{1}\), \(\theta_{2}\), \(\theta_{3}\) [10, 12] which describe successive rotations about the inertial \(x\)-, \(y\)-, and \(z\)-axes. The latter define the direction cosine matrix \(\boldsymbol{A}\) for coordinate transformations from \(K\) to \(\{ oxyz \} \), which can be built from the elementary rotation matrices \(\boldsymbol{A} _{x,\theta_{1}}\), \(\boldsymbol{A}_{y,\theta_{2}}\), \(\boldsymbol{A}_{z,\theta_{3}}\) as

$$\begin{aligned} \boldsymbol{A} = \boldsymbol{A}_{z,\theta_{3}}\boldsymbol{A}_{y,\theta _{2}} \boldsymbol{A}_{x,\theta_{1}} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad }c} c_{2}c_{3} & s_{1}s_{2}c_{3} - c_{1}s_{3} & c_{1}s_{2}c_{3} + s_{1}s _{3} \\ c_{2}s_{3} & s_{1}s_{2}s_{3} + c_{1}c_{3} & c_{1}s_{2}s_{3} - s_{1}c_{3} \\ - s_{2} & s_{1}c_{2} & c_{1}c_{2} \end{array}\displaystyle \right ] \end{aligned}$$
(1)

where \(s_{i} = \sin \theta_{i}\), \(c_{i} = \cos \theta_{i}\), \(i = 1,2,3\).

By differentiating \(\boldsymbol{A}\) with respect to time, we may deduce the skew-symmetric matrix of the angular velocity vector \(\boldsymbol{\varOmega } = [ \varOmega_{ x},\varOmega_{ y},\varOmega_{ z} ] ^{\mathrm{T}}\) of frame \(K\) about the inertial frame \(oxyz\) as \(\tilde{\boldsymbol{\varOmega }} = \dot{\boldsymbol{A}}A^{\mathrm{T}}\), which can be rearranged as \(\boldsymbol{\varOmega } = \boldsymbol{AH}\dot{\boldsymbol{\theta} }\). By further differentiation we find [12]

$$\begin{aligned} \ddot{\boldsymbol{\theta }} = \boldsymbol{H}^{ -1}\boldsymbol{A}^{ \mathrm{T}} \dot{\boldsymbol{\varOmega }} - \boldsymbol{H}^{ -1} \dot{\boldsymbol{H}} \dot{\boldsymbol{\theta }} \end{aligned}$$

where

$$\begin{aligned} \boldsymbol{H} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 1 & 0 & - s_{2} \\ 0 & c_{1} & s_{1}c_{2} \\ 0 & - s_{1} & c_{1}c_{2} \end{array}\displaystyle \right ] ,\qquad \dot{\boldsymbol{H}} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 0 & 0 & - c_{2}\dot{\theta }_{2} \\ 0 & - s_{1}\dot{\theta }_{1} & c_{1}c_{2}\dot{\theta }_{1} -s_{1}s_{2}\dot{\theta }_{2} \\ 0 & - c_{1}\dot{\theta }_{1} & - s_{1}c_{2}\dot{\theta }_{1} -c_{1}s_{2}\dot{\theta }_{2} \end{array}\displaystyle \right ] , \end{aligned}$$

and \(\boldsymbol{\theta } = [ \theta_{1},\theta_{2},\theta_{3} ]^{\mathrm{T}}\). It should be pointed out that any kind of Euler/Bryan angle formulation has its inherent singularity, which is why the angular acceleration \(\dot{\boldsymbol{\varOmega}}\) rather than \(\ddot{\boldsymbol{\theta }}\) is used in the state vector hereinafter. Once approaching a singular configuration, one can resort to another kind of Euler/Bryan angle to avoid the singularity problem. Alternatively, many other methods, such as Rodriguez parameters, Euler parameters, etc., can be also adopted to describe the orientation and avoid singular orientation. If not mentioned explicitly, all vectors are described w.r.t. the inertial frame.

In contrast to the sign conventions of the original MSDTTMM [10], the following definition is used: positive translational and angular accelerations coincide with positive directions of the coordinate system; positive directions of inboard forces and outboard torques acting on the element coincide with positive directions, whereas positive outboard forces and inboard torques coincide with negative directions of the coordinate system.

2.2 New state vectors, transfer equations and transfer matrices of elements

In the original MSDTTMM [10], the position and orientation coordinates of the connection points have been used as state variables. For example, for spatial motion the state vector was summarized from coordinates of the connecting point, rotation angles, internal torques and forces, and an artificial one as

$$\begin{aligned} \boldsymbol{z} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} x & y & z & \theta_{x} & \theta_{y} & \theta_{z} & m_{x} & m_{y} & m _{z} & q_{x} & q_{y} & q_{z} & 1 \end{array}\displaystyle \right ] ^{\mathrm{T}}. \end{aligned}$$
(2)

However, since kinematics typically is nonlinear, linearization had to be involved in the derivation of the transfer equations and also an integration scheme had to be part of the final transfer relations.

In order to avoid all these drawbacks, the proposed approach combines kinematics and kinetics equations on the acceleration level. Therefore, the new state vectors summarize acceleration variables of connection points and forces and moments between any two multibody system elements moving in space:

$$\begin{aligned} \boldsymbol{z} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \ddot{x} & \ddot{y} & \ddot{z} & \dot{\varOmega }_{ x} & \dot{\varOmega } _{ y} & \dot{\varOmega }_{ z} &m_{x} & m_{y} & m_{z} & q_{x} & q_{y} & q_{z} & 1 \end{array}\displaystyle \right ] ^{\mathrm{T}}, \end{aligned}$$
(3)

or

$$\begin{aligned} \boldsymbol{z} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \ddot{\boldsymbol{r}}^{\mathrm{T}} & \dot{\boldsymbol{\varOmega }}^{ \mathrm{T}} & \boldsymbol{m}^{\mathrm{T}} & \boldsymbol{q}^{ \mathrm{T}} & 1 \end{array}\displaystyle \right ] ^{\mathrm{T}}, \end{aligned}$$
(4)

where

$$\begin{aligned} \ddot{\boldsymbol{r}} = \left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \ddot{z} \end{array}\displaystyle \right ] , \qquad \dot{ \boldsymbol{\varOmega }} = \left [\textstyle\begin{array}{c} \dot{\varOmega }_{ x} \\ \dot{\varOmega }_{ y} \\ \dot{\varOmega }_{ z} \end{array}\displaystyle \right ] , \qquad \boldsymbol{m} = \left [\textstyle\begin{array}{c} m_{x} \\ m_{y} \\ m_{z} \end{array}\displaystyle \right ] ,\qquad \boldsymbol{q} = \left [ \textstyle\begin{array}{c} q_{x} \\ q_{y} \\ q_{z} \end{array}\displaystyle \right ] . \end{aligned}$$
(5)

Here \(\ddot{\boldsymbol{r}}\) and \(\dot{\boldsymbol{\varOmega }}\) are accelerations and angular accelerations being correlated to internal forces \(\boldsymbol{q}\) and torques \(\boldsymbol{m}\), respectively, where all quantities are described in the inertial frame. The “1” at the end of the state vector (3) is used to account for external forces, as well as centrifugal and Coriolis forces, as will become clear in the following.

For a system moving in the \(x,y\)-plane, the state vectors reduce to

$$\begin{aligned} \boldsymbol{z} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \ddot{x} & \ddot{y} & \dot{\varOmega }_{ z} & m_{z} & q_{x} & q_{y} & 1 \end{array}\displaystyle \right ] ^{\mathrm{T}}, \end{aligned}$$
(6)

and for a one-dimensional motion the reduced state vector reads as

$$\begin{aligned} \boldsymbol{z} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} \ddot{x} & q_{x} & 1 \end{array}\displaystyle \right ] ^{\mathrm{T}}. \end{aligned}$$
(7)

As mentioned above, relations between translational and angular accelerations, on the one hand, and resulting forces and torques, on the other hand, are always related linearly by Newton’s second law and Euler’s theorem. Also relations between accelerations of different points resulting from rigid body kinematics are linear. Therefore, both types of relations qualify for expressing interrelations between state vectors \(\boldsymbol{z}_{j,I}\) and \(\boldsymbol{z}_{j,O}\) of the input end \(I\) and output end \(O\) of an element \(j\) by linear algebraic equations in matrix form

$$\begin{aligned} \boldsymbol{z}_{j,O} = \boldsymbol{U}_{j} \boldsymbol{z}_{j,I} \end{aligned}$$
(8)

where the element transfer matrix \(\boldsymbol{U}_{j}\) has to summarize all physically relevant characteristics of the considered element. For spatial motion the transfer matrix is typically a \(13\times 13\) matrix according to the state vectors (3), whereas for planar and one-dimensional problems the size reduces to \(7\times 7\) and \(3\times 3\), respectively, according to (6) and(7).

2.3 Transfer equation and transfer matrix of overall system

A multibody system is built up from elements by connecting output \(O\) of an element \(j\) with input \(I\) of another element \(k\). According to kinematics and Newton’s third law, and the specific sign conventions in Sect. 2.1, the state vectors of these coinciding output and input ends are equal. This allows substituting input states \(\boldsymbol{z}_{k,I}\) by output states \(\boldsymbol{z}_{j,O}\) and the associated transfer equation (8), i.e., \(\boldsymbol{z}_{k,O} = \boldsymbol{U}_{k}\boldsymbol{z}_{k,I} \equiv \boldsymbol{U}_{k} \boldsymbol{z}_{j,O} = \boldsymbol{U}_{k}\boldsymbol{U}_{j} \boldsymbol{z}_{j,I}\), which finally leads to products of element transfer matrices. Thus, element transfer matrices may be considered as building blocks which are assembled together according to the topology of the considered system by simple matrix multiplication. The transfer equations (8) exist or may be derived for rigid bodies, flexible bodies, gas, fluid, and all kind of joints and hinges. Some of them will be derived in Sect. 3.

For chain systems consisting of \(n\) elements, the overall transfer equation can be obtained until the final substitution of transfer equations relates the output state \(\boldsymbol{z}_{n,O}\) of the \(n\)th element to the input state \(\boldsymbol{z}_{1,I}\) of the first element by

$$\begin{aligned} \boldsymbol{z}_{n,O} = \boldsymbol{U}_{1 - n} \boldsymbol{z}_{1,I} \end{aligned}$$
(9)

where the overall transfer matrix is given by the product

$$\begin{aligned} \boldsymbol{U}_{1 - n} = \boldsymbol{U}_{n} \cdots \boldsymbol{U}_{2} \boldsymbol{U}_{1} \end{aligned}$$
(10)

of element transfer matrices.

By applying the boundary conditions, to eliminate the known boundary variables of state vectors from \(\boldsymbol{z}_{1,I}\) and \(\boldsymbol{z}_{n,O}\), summarizing the remaining unknown boundary states and constant scalar “1” in a vector \(\bar{\boldsymbol{z}}\), and re-ordering the equations, (9) can be re-written as

$$\begin{aligned} \bar{\boldsymbol{U}} \bar{\boldsymbol{z}} = \mathbf{0} \end{aligned}$$
(11)

in order to compute the unknown boundary states. As a result, the boundary state vectors are known completely and allow computing the remaining state vectors in between by successively applying the element transfer equations (8).

2.4 Simulation of system motion

It is maybe worthwhile mentioning that in general the transfer matrices depend on position (especially orientation) and/or velocity coordinates. Thus, the procedure in Sect. 2.3 has to be performed at any time instant \(t_{i}\) as follows:

  1. (i)

    For a time instant \(t_{i}\), position and velocity coordinates are given (especially from initial conditions in the beginning).

  2. (ii)

    With this information, transfer matrices in (8) can be computed for all elements of the system.

  3. (iii)

    The overall transfer matrix may be build up from element matrices according to the system topology; for chain systems by simple multiplication (10).

  4. (iv)

    Reduction and solution of (11) yields unknown boundary states.

  5. (v)

    Successive application of (8) yields all accelerations as part of state vectors (3).

  6. (vi)

    Any integration scheme may proceed to next time instant.

This solution procedure of the new version of MSTMM is somehow similar to the recursive solution schemes of multibody systems. However, the recursive method has two sweeps through the system, a backward sweep from terminal bodies to the root body to eliminate the bodies and constraints one by one, and a forward sweep from the root body to the terminal bodies to compute the unknown quantities (including the accelerations of bodies, the generalized acceleration of joints and the constraint forces) successively; whereas only the forward sweep is necessary in the proposed method. The backward sweep in the recursive method herein is replaced by the overall transfer equation (9), in which the overall transfer matrix (10) could be computed by a parallel algorithm, not necessarily by serial processing. If using the proposed approach, any chain system of any length with any boundary conditions reduces to small scale equations (9), (10); closed-loop systems can be handled like chain systems as is done in [11], and the difficulty and computational scale will not increase distinctly compared with the corresponding chain system; the state vector of any point in a system may be directly “transferred” from state vector of any boundary point or any point inside the system.

3 Transfer matrices of some typical elements

In the following, transfer matrices of some body and hinge elements will be developed with respect to the inertial reference frame respectively for the new version of MSTMM.

3.1 Transfer matrix of a rigid body moving in space

The transfer equation of a rigid body can be deduced directly from its kinematics and dynamics equations. It is taken as an example to sketch the idea of the proposed method for bodies. Transfer equations of flexible bodies can be deduced in a similar way. A rigid body moving in space with single input end \(I\) and single output end \(O\) is shown in Fig. 1, where \(C\) denotes the mass center; the subscript \(I\) denotes the body-fixed coordinate system with origin \(I\), while \(\{ oxyz \} \) is the inertial coordinate system.

The inertial position coordinates of output point \(O\) are given by

$$\begin{aligned} \boldsymbol{r}_{O} = \boldsymbol{r}_{I} + \boldsymbol{r}_{IO} = \boldsymbol{r}_{I} + \boldsymbol{A}_{I}\boldsymbol{l}_{IO} \end{aligned}$$
(12)

where \(\boldsymbol{r}_{I}\) is the position of the input point w.r.t. the inertial frame and \(\boldsymbol{l}_{IO}\) describes vector \(\vec{r} _{IO}\) in the body-fixed coordinate system. This formula also applies to point \(C\), where \(\boldsymbol{A}_{I}\) is the direction cosine matrix (1) of the body-fixed frame. By differentiation w.r.t. time, we find

$$\begin{aligned} \dot{\boldsymbol{r}}_{O} = \dot{\boldsymbol{r}}_{I} + \dot{\boldsymbol{A}}_{I}\boldsymbol{l}_{IO} = \dot{ \boldsymbol{r}} _{I} + \dot{\boldsymbol{A}}_{I} \boldsymbol{A}_{I}^{\mathrm{T}}\boldsymbol{A} _{I} \boldsymbol{l}_{IO} = \dot{\boldsymbol{r}}_{I} + \tilde{ \boldsymbol{\varOmega }}_{I}\boldsymbol{r}_{IO} \end{aligned}$$

and by further differentiation

$$\begin{aligned} \ddot{\boldsymbol{r}}_{O} = \ddot{\boldsymbol{r}}_{I} - \tilde{\boldsymbol{r}}_{IO}\dot{\boldsymbol{\varOmega }}_{I} + \tilde{\boldsymbol{\varOmega }}_{I}\tilde{\boldsymbol{\varOmega }}_{I} \boldsymbol{r}_{IO}. \end{aligned}$$
(13)

Using Newton’s law and Euler’s theorem and considering the sign convention in Sect. 2.1, the dynamics equations of the rigid body can be gained as

$$\begin{aligned} m\ddot{\boldsymbol{r}}_{C} =& \boldsymbol{q}_{I} - \boldsymbol{q}_{O} + \boldsymbol{f}_{C}, \end{aligned}$$
(14)
$$\begin{aligned} \dot{\boldsymbol{G}}_{I} =& - \tilde{ \boldsymbol{r}}_{IO} \boldsymbol{q}_{O} + \boldsymbol{m}_{O} - \boldsymbol{m}_{I} + \boldsymbol{m}_{C} - m\tilde{\boldsymbol{r}}_{IC} \ddot{ \boldsymbol{r}}_{I} + \tilde{\boldsymbol{r}}_{IC} \boldsymbol{f} _{C} \end{aligned}$$
(15)

where \(m\) is the body mass, \(\boldsymbol{q}_{I}\) and \(\boldsymbol{q} _{O}\) are the forces acting on \(I\) and \(O\), \(\boldsymbol{f}_{C}\) and \(\boldsymbol{m}_{C}\) denote external force and torque acting on the mass center of the rigid body, \(\boldsymbol{m}_{I}\) and \(\boldsymbol{m} _{O}\) are torques acting on the points \(I\) and \(O\), \(\boldsymbol{r} _{IO}\) and \(\boldsymbol{r}_{IC}\) are position vectors from \(I\) to \(O\) and \(C\), respectively, and \(\ddot{\boldsymbol{r}}_{I}\) is the absolute acceleration of point \(I\). All quantities are described in the inertial frame. The acceleration of the mass center \(\ddot{\boldsymbol{r}}_{C}\) can be substituted analogously to (13), where \(O \to C\). The moment of momentum is given as \(\boldsymbol{G} _{I} = \boldsymbol{A}_{I}\boldsymbol{J}_{I}\boldsymbol{A}_{I}^{ \mathrm{T}}\boldsymbol{\varOmega }_{I}\) where the inertia tensor w.r.t. \(I\) is described in the body-fixed frame. Later on, also the angular velocity \(\boldsymbol{\omega }_{I} = \boldsymbol{A}_{I}^{\mathrm{T}} \boldsymbol{\varOmega }_{I}\) in the body-fixed frame will be used, see (20).

Since the angular velocities and thus accelerations of body-fixed reference frames located at any point of the same rigid body are equal, we find

$$\begin{aligned} \dot{\boldsymbol{\varOmega}}_{O} = \dot{\boldsymbol{\varOmega }}_{I}. \end{aligned}$$
(16)

Equations (13)–(15) can be rewritten as

$$\begin{aligned} \ddot{\boldsymbol{r}}_{O} &= \ddot{ \boldsymbol{r}}_{I} + \boldsymbol{E}_{1}\dot{\boldsymbol{ \varOmega }}_{I} + \boldsymbol{E}_{2}, \end{aligned}$$
(17)
$$\begin{aligned} \boldsymbol{q}_{O} &= \boldsymbol{q}_{I} + \boldsymbol{E}_{3} \ddot{\boldsymbol{r}}_{I} + \boldsymbol{E}_{4} \dot{\boldsymbol{\varOmega }}_{I} + \boldsymbol{E}_{5}, \end{aligned}$$
(18)
$$\begin{aligned} \boldsymbol{m}_{O} &= \boldsymbol{m}_{I} + \boldsymbol{E}_{6} \boldsymbol{q}_{O} + \boldsymbol{E}_{7}\ddot{\boldsymbol{r}}_{I} + \boldsymbol{E}_{8}\dot{\boldsymbol{\varOmega }}_{I} + \boldsymbol{E}_{9} \end{aligned}$$
(19)

where

$$\begin{aligned} \begin{aligned} &\boldsymbol{E}_{1} = - \tilde{\boldsymbol{r}}_{IO}, \qquad \boldsymbol{E}_{2} =\tilde{\boldsymbol{\varOmega }}_{I} \tilde{\boldsymbol{\varOmega }}_{I}\boldsymbol{r}_{IO}, \qquad \boldsymbol{E}_{3} = - m\boldsymbol{I}_{3}, \\ &\boldsymbol{E}_{6} = \tilde{\boldsymbol{r}}_{IO}, \qquad\ \ \ \boldsymbol{E}_{7}= m\tilde{\boldsymbol{r}}_{IC}, \qquad\qquad \boldsymbol{E}_{8} = \boldsymbol{A}_{I}\boldsymbol{J}_{I} \boldsymbol{A}_{I}^{\mathrm{T}}, \\ &\boldsymbol{E}_{4} = m\tilde{\boldsymbol{r}}_{IC},\qquad\, \boldsymbol{E}_{5} = \boldsymbol{f}_{C} -m\tilde{\boldsymbol{\varOmega }}_{I} \tilde{\boldsymbol{\varOmega }}_{I}\boldsymbol{r}_{IC}, \\ &\boldsymbol{E}_{9} = - \boldsymbol{m}_{C} - \tilde{\boldsymbol{r}}_{IC}\boldsymbol{f}_{C} + \boldsymbol{A}_{I}\tilde{\boldsymbol{\omega }}_{I}\boldsymbol{J}_{I} \boldsymbol{\omega }_{I}. \end{aligned} \end{aligned}$$
(20)

With state vector (4), (16)–(19) can be combined in a transfer equation (8) with the \(13 \times 13\)-transfer matrix of a rigid body

$$\begin{aligned} \boldsymbol{U}_{j} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \boldsymbol{I}_{3} & \boldsymbol{E}_{1} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{E}_{2} \\ \boldsymbol{O}_{3 \times 3} & \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{E}_{6}\boldsymbol{E}_{3} + \boldsymbol{E}_{7} & \boldsymbol{E}_{6}\boldsymbol{E}_{4} + \boldsymbol{E}_{8} & \boldsymbol{I}_{3} & \boldsymbol{E}_{6} & \boldsymbol{E}_{6} \boldsymbol{E}_{5} + \boldsymbol{E}_{9} \\ \boldsymbol{E}_{3} & \boldsymbol{E}_{4} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{I}_{3} & \boldsymbol{E}_{5} \\ \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & 1 \end{array}\displaystyle \right ] _{j}. \end{aligned}$$
(21)

3.2 Transfer equation of a smooth ball-and-socket hinge

For a smooth ball-and-socket hinge \(j\), its mass and size are neglected. Therefore, the position coordinates, as well as the corresponding time derivatives, and internal forces and torques are equal. This results in the following equations:

$$\begin{aligned} \ddot{\boldsymbol{r}}_{j,O} =& \ddot{ \boldsymbol{r}}_{j,I}, \end{aligned}$$
(22)
$$\begin{aligned} \boldsymbol{q}_{j,O} =& \boldsymbol{q}_{j,I}, \end{aligned}$$
(23)
$$\begin{aligned} \boldsymbol{m}_{j,O} =& \boldsymbol{m}_{j,I}. \end{aligned}$$
(24)

If its outboard body’s outboard hinge is also a smooth ball-and-socket hinge \(j + 2\), the internal torques of \(j + 2\) vanish since the friction is neglected. This results in

$$\begin{aligned} \boldsymbol{m}_{j + 1,O} = \mathbf{0} \end{aligned}$$
(25)

where \(j + 1\) is the corresponding outboard body of the smooth ball-and-socket hinge \(j\).

The transfer equation for the outboard rigid body of the acceleration hinge \(j\) is

$$\begin{aligned} \boldsymbol{z}_{j + 1,O} = \boldsymbol{U}_{j + 1} \boldsymbol{z}_{j + 1,I} \end{aligned}$$
(26)

where the transfer matrix (21) may be partitioned as

$$\begin{aligned} \boldsymbol{U}_{j + 1} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \boldsymbol{u}_{1,1} & \boldsymbol{u}_{1,2} & \boldsymbol{u}_{1,3} & \boldsymbol{u}_{1,4} & \boldsymbol{u}_{1,5} \\ \boldsymbol{u}_{2,1} & \boldsymbol{u}_{2,2} & \boldsymbol{u}_{2,3} & \boldsymbol{u}_{2,4} & \boldsymbol{u}_{2,5} \\ \boldsymbol{u}_{3,1} & \boldsymbol{u}_{3,2} & \boldsymbol{u}_{3,3} & \boldsymbol{u}_{3,4} & \boldsymbol{u}_{3,5} \\ \boldsymbol{u}_{4,1} & \boldsymbol{u}_{4,2} & \boldsymbol{u}_{4,3} & \boldsymbol{u}_{4,4} & \boldsymbol{u}_{4,5} \\ \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & 1 \end{array}\displaystyle \right ] _{j + 1}. \end{aligned}$$
(27)

Then the third row yields a relation of the input and output state variables of this rigid body as

$$\begin{aligned} \boldsymbol{m}_{j + 1,O} = \boldsymbol{u}_{3,1} \ddot{\boldsymbol{r}} _{j + 1,I} + \boldsymbol{u}_{3,2}\dot{ \boldsymbol{\varOmega }}_{j + 1,I} + \boldsymbol{u}_{3,3} \boldsymbol{m}_{j + 1,I} + \boldsymbol{u}_{3,4} \boldsymbol{q}_{j + 1,I} + \boldsymbol{u}_{3,5}. \end{aligned}$$
(28)

Solving the above equation for \(\dot{\boldsymbol{\varOmega }}_{j + 1,I}\) with relation (25) yields

$$\begin{aligned} \dot{\boldsymbol{\varOmega }}_{j + 1,I} = - \boldsymbol{u}_{3,2}^{ - 1} \boldsymbol{u}_{3,1}\ddot{ \boldsymbol{r}}_{j + 1,I} - \boldsymbol{u} _{3,2}^{ - 1} \boldsymbol{u}_{3,3}\boldsymbol{m}_{j + 1,I} - \boldsymbol{u}_{3,2}^{ - 1} \boldsymbol{u}_{3,4}\boldsymbol{q}_{j + 1,I} - \boldsymbol{u}_{3,2}^{ - 1} \boldsymbol{u}_{3,5}. \end{aligned}$$
(29)

With \(\boldsymbol{z}_{j + 1,I} = \boldsymbol{z}_{j,O}\) and (22)–(24), (29) may be reformulated as

$$\begin{aligned} \dot{\boldsymbol{\varOmega }}_{j,O} = - \boldsymbol{u}_{3,2}^{ - 1} \boldsymbol{u}_{3,1}\ddot{ \boldsymbol{r}}_{j,I} - \boldsymbol{u}_{3,2} ^{ - 1} \boldsymbol{u}_{3,3}\boldsymbol{m}_{j,I} - \boldsymbol{u}_{3,2} ^{ - 1}\boldsymbol{u}_{3,4}\boldsymbol{q}_{j,I} - \boldsymbol{u}_{3,2} ^{ - 1}\boldsymbol{u}_{3,5}. \end{aligned}$$
(30)

By combining (22)–(24) and (30), the transfer matrix of smooth ball-and-socket hinge \(j\) can be obtained as

$$\begin{aligned} \boldsymbol{U}_{j} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 1} \\ - \boldsymbol{u}_{3,2}^{ - 1}\boldsymbol{u}_{3,1} & \boldsymbol{O} _{3 \times 3} & - \boldsymbol{u}_{3,2}^{ - 1}\boldsymbol{u}_{3,3} & - \boldsymbol{u}_{3,2}^{ - 1}\boldsymbol{u}_{3,4} & - \boldsymbol{u} _{3,2}^{ - 1}\boldsymbol{u}_{3,5} \\ \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & 1 \end{array}\displaystyle \right ] _{j}. \end{aligned}$$
(31)

3.3 Transfer equation of smooth pin hinge moving in space

A smooth pin hinge \(j\) with inboard rigid body \(j - 1\) and outboard rigid body \(j + 1\) is shown in Fig. 2. The position coordinates coincide as well as the corresponding time derivatives, and internal forces and torques are equal:

$$\begin{aligned} \ddot{\boldsymbol{r}}_{j,O} =& \ddot{ \boldsymbol{r}}_{j,I}, \end{aligned}$$
(32)
$$\begin{aligned} \boldsymbol{q}_{j,O} =& \boldsymbol{q}_{j,I}, \end{aligned}$$
(33)
$$\begin{aligned} \boldsymbol{m}_{j,O} =& \boldsymbol{m}_{j,I}. \end{aligned}$$
(34)

In the direction of the rotation axis \(\zeta_{j,O}\), the torque vanishes. By transforming \(\boldsymbol{m}_{j,I}\) to the outboard frame with \(\boldsymbol{A}_{j,O}^{\mathrm{T}}\) and projecting it with \(\boldsymbol{H}_{2} = [ \begin{array}{c@{\ }c@{\ }c} 0 & 0 & 1 \end{array} ] \) onto the \(\zeta \)-axis, this may be expressed by

$$\begin{aligned} \boldsymbol{H}_{2}\boldsymbol{A}_{j,O}^{\mathrm{T}} \boldsymbol{m}_{j,I} = 0. \end{aligned}$$
(35)

From kinematics we find for the angular velocities \(\boldsymbol{\varOmega }_{j,O} = \boldsymbol{\varOmega }_{j,I} + \boldsymbol{A}_{j,O}\boldsymbol{\omega }_{r}\) where \(\boldsymbol{\omega }_{r} = [ \begin{array}{c@{\ }c@{\ }c} 0 & 0 & \dot{\varTheta }_{j} \end{array} ] ^{\mathrm{T}}\). By differentiation we get

$$\begin{aligned} \dot{\boldsymbol{\varOmega }}_{j,O} = \dot{\boldsymbol{ \varOmega }}_{j,I} + \tilde{\boldsymbol{\varOmega }}_{j,O} \boldsymbol{A}_{j,O} \boldsymbol{\omega }_{r} + \boldsymbol{A}_{j,O} \dot{\boldsymbol{\omega }}_{r}. \end{aligned}$$
(36)

The last term of the above equation can be eliminated by premultiplication with \(\boldsymbol{H}_{1}\boldsymbol{A}_{j,O}^{ \mathrm{T}}\) which is firstly a coordinate transformation to the outboard reference frame and then a projection onto directions perpendicular to the rotation axis. By this we finally get

$$\begin{aligned} \boldsymbol{H}_{1}\boldsymbol{A}_{j,O}^{\mathrm{T}} \dot{\boldsymbol{\varOmega }}_{j,O} = \boldsymbol{H}_{1} \boldsymbol{A} _{j,O}^{\mathrm{T}}\dot{\boldsymbol{\varOmega }}_{j,I} + \boldsymbol{H} _{1}\boldsymbol{A}_{j,O}^{\mathrm{T}} \tilde{\boldsymbol{\varOmega }}_{j,O} \boldsymbol{A}_{j,O} \boldsymbol{\omega }_{r} \end{aligned}$$
(37)

where

$$\begin{aligned} \boldsymbol{H}_{1} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 1 & 0 & 0 \\ 0 & 1 & 0 \end{array}\displaystyle \right ] . \end{aligned}$$
Fig. 2
figure 2

Smooth pin hinge moving in space

Similar to Sect. 3.2 we now have to take into account outboard body \(j + 1\). We assume that its outboard element is also a pin hinge, where we have according to (35)

$$\begin{aligned} \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{m} _{j + 1,O} = 0. \end{aligned}$$
(38)

By substituting (28) into (38), we obtain

$$\begin{aligned} \begin{aligned}[b] &\boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u} _{3,1}\ddot{\boldsymbol{r}}_{j + 1,I} + \boldsymbol{H}_{2} \boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u}_{3,2} \dot{\boldsymbol{\varOmega }}_{j + 1,I} + \boldsymbol{H}_{2} \boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u}_{3,3} \boldsymbol{m}_{j + 1,I} \\ &\quad {}+\boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O} ^{\mathrm{T}}\boldsymbol{u}_{3,4}\boldsymbol{q}_{j + 1,I} + \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u} _{3,5} = 0. \end{aligned} \end{aligned}$$
(39)

With \(\boldsymbol{z}_{j + 1,I} = \boldsymbol{z}_{j,O}\) and (32)–(34), this may be reformulated as

$$\begin{aligned} - \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u}_{3,2}\dot{\boldsymbol{\varOmega }}_{j,O} =& \boldsymbol{H} _{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u}_{3,1} \ddot{\boldsymbol{r}}_{j,I} + \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O} ^{\mathrm{T}} \boldsymbol{u}_{3,3}\boldsymbol{m}_{j,I} \\ & {}+ \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u} _{3,4}\boldsymbol{q}_{j,I} + \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O} ^{\mathrm{T}} \boldsymbol{u}_{3,5}. \end{aligned}$$
(40)

In combination with (37), we get

$$\begin{aligned} \boldsymbol{E}_{0}\dot{\boldsymbol{\varOmega }}_{j,O} = \boldsymbol{E} _{1}\ddot{\boldsymbol{r}}_{j,I} + \boldsymbol{E}_{2} \dot{\boldsymbol{\varOmega }}_{j,I} + \boldsymbol{E}_{3}\boldsymbol{m} _{j,I} + \boldsymbol{E}_{4}\boldsymbol{q}_{j,I} + \boldsymbol{E}_{5}, \end{aligned}$$
(41)

or

$$\begin{aligned} \dot{\boldsymbol{\varOmega }}_{j,O} = \boldsymbol{E}_{0}^{ - 1} \boldsymbol{E}_{1}\ddot{\boldsymbol{r}}_{j,I} + \boldsymbol{E}_{0} ^{ - 1}\boldsymbol{E}_{2}\dot{ \boldsymbol{\varOmega }}_{j,I} + \boldsymbol{E}_{0}^{ - 1} \boldsymbol{E}_{3}\boldsymbol{m}_{j,I} + \boldsymbol{E}_{0}^{ - 1} \boldsymbol{E}_{4}\boldsymbol{q}_{j,I} + \boldsymbol{E}_{0}^{ - 1} \boldsymbol{E}_{5}, \end{aligned}$$
(42)

where

$$\begin{aligned} \boldsymbol{E}_{0} =& \left [ \textstyle\begin{array}{@{}c@{}} \boldsymbol{H}_{1}\boldsymbol{A}_{j,O}^{\mathrm{T}} \\ - \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}} \boldsymbol{u}_{3,2} \end{array}\displaystyle \right ] ,\qquad \boldsymbol{E}_{1} = \left [ \textstyle\begin{array}{@{}c@{}} \boldsymbol{O}_{2 \times 3} \\ \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}}\boldsymbol{u} _{3,1} \end{array}\displaystyle \right ] ,\qquad \boldsymbol{E}_{2} = \left [ \textstyle\begin{array}{@{}c@{}} \boldsymbol{H}_{1}\boldsymbol{A}_{j,O}^{\mathrm{T}} \\ \boldsymbol{O}_{1 \times 3} \end{array}\displaystyle \right ] , \\ \boldsymbol{E}_{3} =& \left [ \textstyle\begin{array}{@{}c@{}} \boldsymbol{O}_{2 \times 3} \\ \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}}\boldsymbol{u} _{3,3} \end{array}\displaystyle \right ] ,\qquad \boldsymbol{E}_{4} = \left [ \textstyle\begin{array}{@{}c@{}} \boldsymbol{O}_{2 \times 3} \\ \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}}\boldsymbol{u} _{3,4} \end{array}\displaystyle \right ] ,\qquad \boldsymbol{E}_{5} = \left [ \textstyle\begin{array}{@{}c@{}} \boldsymbol{H}_{1}\boldsymbol{A}_{j,O}^{\mathrm{T}} \tilde{\boldsymbol{\varOmega }}_{j,O}\boldsymbol{A}_{j,O} \boldsymbol{\omega }_{r} \\ \boldsymbol{H}_{2}\boldsymbol{A}_{j + 1,O}^{\mathrm{T}}\boldsymbol{u} _{3,5} \end{array}\displaystyle \right ] . \end{aligned}$$

Combining (32), (33), (34), and (42) and arranging them according to the configuration of state vector (4) yields the transfer matrix of a smooth pin hinge \(j\):

$$\begin{aligned} \boldsymbol{U}_{j} = \left [ \textstyle\begin{array}{@{}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{}} \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{E}_{0}^{ - 1}\boldsymbol{E}_{1} & \boldsymbol{E}_{0}^{ - 1} \boldsymbol{E}_{2} & \boldsymbol{E}_{0}^{ - 1}\boldsymbol{E}_{3} & \boldsymbol{E}_{0}^{ - 1}\boldsymbol{E}_{4} & \boldsymbol{E}_{0}^{ - 1} \boldsymbol{E}_{5} \\ \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{O}_{3 \times 3} & \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & \boldsymbol{O}_{1 \times 3} & 1 \end{array}\displaystyle \right ] _{j}. \end{aligned}$$
(43)

It should be noted the second time derivative of joint coordinate \(\ddot{\varTheta }_{j}\) can be obtained if the state vectors of the pin hinge’s input and output point are already known. This is achieved by premultiplying (36) with \(\boldsymbol{H}_{2}\boldsymbol{A}_{j,O} ^{\mathrm{T}}\), resulting in

$$\begin{aligned} \ddot{\varTheta }_{j} = \boldsymbol{H}_{2} \boldsymbol{A}_{j,O}^{ \mathrm{T}}\dot{\boldsymbol{\varOmega }}_{j,O} - \boldsymbol{H}_{2} \boldsymbol{A}_{j,O}^{\mathrm{T}} \dot{\boldsymbol{\varOmega }}_{j,I} - \boldsymbol{H}_{2} \boldsymbol{A}_{j,O}^{\mathrm{T}} \tilde{\boldsymbol{\varOmega }}_{j,O}\boldsymbol{A}_{j,O} \boldsymbol{\omega }_{r}. \end{aligned}$$
(44)

4 Numerical examples

In order to verify the proposed approach, the dynamics of several spatial pendulum systems and chain systems are simulated numerically by both the proposed method and the classical Newton–Euler method, respectively, where the latter sometimes is also called Lagrange method. For convenience only chain systems are considered in the following. However, the method is also applicable to closed-loop systems, tree systems, network systems, etc., analogously to the original MSDTTMM [10].

4.1 Dynamics of a spatial multibody system with ball-and-socket hinges

Let us firstly consider a pendulum system with three rigid bodies moving in space and connected by three smooth ball-and-socket hinges under the effect of gravity as shown in Fig. 3. The body and hinge elements are numbered successively, where 1, 3, 5 denote joints, 2, 4, 6 denote bodies, and 0 denotes the boundary ends of the system. The parameters of the three rigid bodies are identical, where the coordinates of the mass center and the output point and the moment of inertia relative to the input-end in the body-fixed frame are as follows:

$$\begin{aligned} \boldsymbol{r}_{IC} = [ 0.5\quad 0\quad 0 ]^{\mathrm{T}}~\mbox{m}, \qquad \boldsymbol{r}_{IO} = [ 1\quad 0\quad 0 ]^{\mathrm{T}}~\mbox{m}, \qquad \boldsymbol{J}_{I} = \operatorname{diag}\biggl( \frac{1}{6},\frac{5}{12}, \frac{5}{12}\biggr)~\mbox{kg}\,\mbox{m}^{2}. \end{aligned}$$

The space-angles given in Sect. 2.1 of bodies 2, 4, 6 are collected as the generalized coordinates of this system and the initial conditions of the system are

$$\begin{aligned} \boldsymbol{\theta }_{2,4,6} = \mathbf{0},\qquad \dot{\boldsymbol{ \theta }}_{2,4} = \mathbf{0},\qquad \dot{\boldsymbol{\theta }}_{6} = [0\quad 0.1\quad 0]^{\mathrm{T}}~\mbox{rad}/\mbox{s}. \end{aligned}$$
Fig. 3
figure 3

Spatial pendulum system

The overall transfer equation of the system is

$$\begin{aligned} \boldsymbol{z}_{6,0} = \boldsymbol{U}_{2\text{--}6} \boldsymbol{z}_{2,1} \quad \mbox{where}\ \boldsymbol{U}_{2\text{--}6} = \boldsymbol{U}_{6} \boldsymbol{U}_{5}\boldsymbol{U}_{4} \boldsymbol{U}_{3}\boldsymbol{U} _{2}. \end{aligned}$$
(45)

The transfer matrices \(\boldsymbol{U}_{2},\boldsymbol{U}_{4}, \boldsymbol{U}_{6}\) referring to bodies correspond to (21), whereas \(\boldsymbol{U}_{3},\boldsymbol{U}_{5}\) result from (31). The ball-socket-hinge left to body 2 determines the boundary state

$$\begin{aligned} \boldsymbol{z}_{2,1} = \left[ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} 0 & 0 & 0 & \dot{\varOmega }_{ x} & \dot{\varOmega }_{ y} & \dot{\varOmega } _{ z} & 0 & 0 & 0 & q_{x} & q_{y} & q_{z} & 1 \end{array}\displaystyle \right]_{2,1}^{\mathrm{T}} \end{aligned}$$

whereas the output state of body 6 is free with zero forces and zero torques, but unknown accelerations:

$$\begin{aligned} \boldsymbol{z}_{6,0} = \left[ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \ddot{x} & \ddot{y} & \ddot{z} & \dot{\varOmega }_{ x} & \dot{\varOmega } _{ y} & \dot{\varOmega }_{ z} & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{array}\displaystyle \right]_{6,0}^{\mathrm{T}}. \end{aligned}$$

Thus, the reduced vector of unknown boundaries in (11) reads as

$$\begin{aligned} \bar{\boldsymbol{z}} = \bigl[& \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \dot{\varOmega }_{ x,2,1} & \dot{\varOmega }_{ y,2,1} & \dot{\varOmega }_{ z,2,1} & q_{x,2,1} & q_{y,2,1} & q_{z,2,1} \end{array}\displaystyle \\ & \quad \textstyle\begin{array}{ c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \ddot{x}_{6,0} & \ddot{y}_{6,0} & \ddot{z}_{6,0} & \dot{\varOmega }_{ x,6,0} & \dot{\varOmega }_{ y,6,0} & \dot{\varOmega }_{ z,6,0} & 1 \end{array}\displaystyle \bigr]^{\mathrm{T}}. \end{aligned}$$

The time histories of the rotation angles of rigid body 2 obtained by the proposed method and by Newton–Euler method are shown in Fig. 4 represented by ‘line’ and ‘×’, respectively. It can be seen clearly that the computational results of the two methods have good agreement, validating the correctness of the new formulation of the transfer matrix method for multibody systems.

Fig. 4
figure 4

Time history of the rotation angles of body element 2

4.2 Dynamics of a spatial multibody system with pin hinges

In the second example, the ball-and-socked hinges in Fig. 3 are substituted by three smooth pin hinges, leading to the spatial arm system in Fig. 5. The overall transfer equation is identical to (45), except that \(\boldsymbol{U}_{3},\boldsymbol{U}_{5}\) now have to be taken from (43) and the boundary conditions of the system are

$$\begin{aligned} \boldsymbol{z}_{2,1} =& \left[ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} 0 & 0 & 0 & 0 & 0 & \dot{\varOmega }_{ z} & m_{x} & m_{y} & 0 & q_{x} & q _{y} & q_{z} & 1 \end{array}\displaystyle \right]_{2,1}^{\mathrm{T}}, \\ \boldsymbol{z}_{6,0} =& \left[ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \ddot{x} & \ddot{y} & \ddot{z} & \dot{\varOmega }_{ x} & \dot{\varOmega } _{ y} & \dot{\varOmega }_{ z} & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{array}\displaystyle \right]_{6,0}^{\mathrm{T}}. \end{aligned}$$
Fig. 5
figure 5

Spatial 3-DOF arm

The joint coordinates (44) of pin hinges 1, 3, 5 are collected as the generalized coordinates of this system. Time histories of the relative rotation angles of these pin hinges with initial conditions

$$\begin{aligned} \varTheta_{1} = \varTheta_{3} = \varTheta_{5} = 0~\mbox{rad},\qquad \dot{\varTheta }_{1} = \dot{\varTheta }_{5} = 0~\mbox{rad}/\mbox{s},\qquad \dot{\varTheta }_{3} = 1~\mbox{rad}/\mbox{s} \end{aligned}$$

again coincide for the proposed and Newton–Euler method as shown in Fig. 6.

Fig. 6
figure 6

Time history of the relative rotation angles of the three pin hinges

4.3 Dynamics of a planer pendulum system

The dynamics of a single pendulum moving in plane is considered to illustrate the increased computational precision of the proposed approach compared to the original MSDTTMM. In Fig. 7, the \(\dot{\theta }\) reference trajectory is computed by solving the dynamics equation \(J\ddot{\theta } + mgl\cos \theta / 2 = 0\) with a 4th order Runge–Kutta (R–K) method with a constant step size of \(h = 1.0 \mathrm{E}\mbox{-}3~\mbox{s}\) for initial conditions \(\theta ( 0 ) = - \pi / 2~\mbox{rad}\) and \(\dot{\theta } ( 0 ) = - 5.4~\mbox{rad}/\mbox{s}\). Dynamics parameters are given as \(J = ml^{2} / 3\), \(m = 1~\mbox{kg}\), \(l = 1~\mbox{m}\).

Fig. 7
figure 7

Comparison on computational precision of the new version of MSTMM and MSDTTMM

In comparison, the simulation results of the proposed approach combined with 4th order R–K integration method and the original MSDTTMM with constant step size \(h = 1.0\mathrm{E}\mbox{-}1~\mbox{s}\) are drawn. Obviously, the error of the proposed method is smaller than that of the MSDTTMM even in the first three integration time steps, where computational errors at each time instant \(t\) are shown in Table 1. This demonstrates the higher precision of the proposed approach using exact acceleration computation over the original approach using local linearization.

Table 1 Computational error \(e ( t ) \) at each time instant

For computational speed assessment, we consider a planar pendulum system formed by homogeneous rods with length 1 m and mass 1 kg, which are connected by smooth hinges. The CPU used is an i7-3610QM processor with max frequency of 3.3 GHz. Firstly, both the proposed approach and Lagrange equations are computed by using a single thread. The global dynamics equation established by Lagrange method can be obtained as

$$\begin{aligned} \boldsymbol{A}\left [ \textstyle\begin{array}{c} \ddot{\theta }_{1} \\ \ddot{\theta }_{2} \\ \vdots \\ \ddot{\theta }_{n} \end{array}\displaystyle \right ] = - \boldsymbol{B} \left [ \textstyle\begin{array}{c} \dot{\theta }_{1}^{2} \\ \dot{\theta }_{2}^{2} \\ \vdots \\ \dot{\theta }_{n}^{2} \end{array}\displaystyle \right ] - \left [ \textstyle\begin{array}{c} gl_{1}(m_{1}/2 + m_{2} + \cdots + m_{n})\cos \theta_{1} \\ gl_{2}(m_{2}/2 + m_{3} + \cdots + m_{n})\cos \theta_{2} \\ \vdots \\ gl_{n}(m_{n}/2)\cos \theta_{n} \end{array}\displaystyle \right ] \end{aligned}$$
(46)

where \(\boldsymbol{A} = [a_{ij}]\), \(\boldsymbol{B} = [b_{ij}]\) with

$$\begin{aligned} a_{ij} =& \left \{ \textstyle\begin{array}{l@{\quad}l} (\frac{m_{j}}{4} + m_{j + 1} + \cdots + m_{n})l_{j}^{2} + J_{C_{j}} & \mbox{for}\ i = j, \\ l_{i}l_{j}(\frac{m_{j}}{2} + m_{j + 1} + \cdots + m_{n})\cos (\theta _{i} - \theta_{j}) & \mbox{for}\ i \ne j, \end{array}\displaystyle \right . \\ b_{ij} =& \left \{ \textstyle\begin{array}{l@{\quad}l} 0 & \mbox{for}\ i = j, \\ l_{i}l_{j}(\frac{m_{j}}{2} + m_{j + 1} + \cdots + m_{n})\sin (\theta _{i} - \theta_{j}) & \mbox{for}\ i < j, \\ - b_{ji} & \mbox{for}\ i > j, \end{array}\displaystyle \right . \end{aligned}$$

and \(l_{j}\), \(m_{j}\), \(\theta_{j}\), \(J_{C_{j}}\) are the length, mass, rotation angle and moment of inertial w.r.t. its mass center of rod \(j\), respectively.

As shown in Fig. 8(a), the time consumption of the proposed approach is much less than that of a classical Lagrange method, which demonstrates the high computational speed of the new version of MSTMM. Under the same computational condition, Fig. 8(b) shows a comparison with the order (n) recursive method [13] which has a similar speed.

Fig. 8
figure 8

Time cost of the new version of MSTMM compared to (a) Lagrange method and (b) recursive scheme

4.4 Dynamics of a planar multibody system with spring and damping hinges modeled by acceleration hinges

Figure 9 shows a chain multibody system composed of masses moving along the \(x\)-axis. The interactions among the body elements are due to spring and damper elements. The system parameters are

$$\begin{aligned} &m_{i} = 0.1~\mbox{kg}\quad (i = 2,4,6,8,10),\qquad k_{j} = 1000~\mbox{N}/\mbox{m}, \\ &c_{j} = 0~\mbox{N}/\bigl(\mbox{ms}^{ -1}\bigr)\quad (j =1,3,5,7,9). \end{aligned}$$

The displacements \(x_{i,I}\ (i = 2,4, \ldots, 10)\) of all the bodies are collected as generalized coordinates of the system and the initial conditions are

$$\begin{aligned} x_{i,I}(0) = \frac{i}{2} \cdot 0.1~\mbox{m}, \qquad \dot{x}_{i,I}(0) = 0 \quad (i = 2,4, \ldots, 10). \end{aligned}$$

The external forces are

$$\begin{aligned} f_{2} = 100~\mbox{N},\qquad f_{k} = 0~\mbox{N}\quad (k = 4,6,8,10). \end{aligned}$$
Fig. 9
figure 9

Chain system with springs and dampers

The overall transfer equation reads as

$$\begin{aligned} \boldsymbol{z}_{10,0} = \boldsymbol{U}_{2 - 10} \boldsymbol{z}_{2,1} \quad \mbox{where}\ \boldsymbol{U}_{2 - 10} = \boldsymbol{U}_{10} \boldsymbol{U}_{9}\boldsymbol{U}_{8} \boldsymbol{U}_{7}\boldsymbol{U} _{6}\boldsymbol{U}_{5} \boldsymbol{U}_{4}\boldsymbol{U}_{3} \boldsymbol{U}_{2} \end{aligned}$$

with \(\boldsymbol{U}_{i}\ (i = 2,4,6,8,10)\) denoting the transfer matrix of body elements and \(\boldsymbol{U}_{j}\ (j = 3,5,7,9)\) denoting the transfer matrix of hinge elements. The state vector \(\boldsymbol{z}\) in this example may be reduced according to (7). The transfer matrix of body elements \(\boldsymbol{U}_{i}\ (i = 2,4,6,8,10)\) can be obtained by reducing transfer matrix (21) of a spatial rigid body to a one dimensional problem, namely

$$\begin{aligned} \boldsymbol{U}_{i} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 1 & 0 & 0 \\ - m_{i} & 1 & F_{i} \\ 0 & 0 & 1 \end{array}\displaystyle \right ] \quad ( i = 2,4, \ldots ,10 ) \end{aligned}$$
(47)

where \(F_{i}\) is the summation of the external force and all the elastic and damping forces acting on body \(i\), i.e.,

$$\begin{aligned} &\begin{aligned}[b] F_{i} &= f_{i} + k_{i - 1}(x_{i - 2} - x_{i}) + c_{i - 1}( \dot{x}_{i - 2} - \dot{x}_{i}) \\ &\quad {}+ k_{i + 1}(x_{i + 2} - x_{i}) + c_{i + 1}(\dot{x}_{i + 2} - \dot{x}_{i}) \quad ( i = 2,4, \ldots ,8 ) , \end{aligned} \end{aligned}$$
(48)
$$\begin{aligned} &F_{10} = f_{10} + k_{9}(x_{8} - x_{10}) + c_{9}(\dot{x}_{8} - \dot{x}_{10}). \end{aligned}$$
(49)

The two adjacent rigid bodies of a hinge \(j\ (j = 3,5,7,9)\) in this example are relatively free, and such joints are called accelerations hinges in this paper. For such a hinge \(j\), we get

$$\begin{aligned} (\ddot{x})_{j,O} \equiv& (\ddot{x})_{j + 1,I} = F_{j + 1} / m_{j + 1}, \end{aligned}$$
(50)
$$\begin{aligned} (q_{x})_{j, O} =& (q_{x})_{j, I}. \end{aligned}$$
(51)

Collecting these two equations according to the state vector (7) yields the transfer matrix

$$\begin{aligned} \boldsymbol{U}_{j} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 0 & 0 & F_{j + 1} / m_{j + 1} \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\displaystyle \right ] \quad (j = 3,5,7,9) \end{aligned}$$
(52)

of this hinge element. The formulas of a generalized spatial elastic hinge and acceleration hinge are provided in the Appendix.

The boundary conditions of the system are

$$\begin{aligned} \boldsymbol{z}_{2,1} = [\ddot{x},0,1]_{2,1}^{\mathrm{T}}, \qquad \boldsymbol{z}_{10,0} = [\ddot{x},0,1]_{10,0}^{\mathrm{T}}. \end{aligned}$$

The time histories in Fig. 10 of the position coordinates of body element 2 and body element 10 again show good agreement between the proposed method and Newton–Euler method.

Fig. 10
figure 10

Times histories of bodies 2 and 10 in chain system

5 Conclusions

The new version of MSTMM presented in the paper improves the computational precision of the transfer matrix method to the same level as ordinary multibody system approaches based on global dynamics equations. This is achieved by formulating transfer equations between accelerations and forces instead of position coordinates and forces as in the original MSDTTMM. The new formulation avoids linearization and allows using any integration algorithm. Simultaneously it simplifies the transfer matrices compared to the original MSDTTMM, while keeping the features of transfer matrix method of avoiding global dynamics equations of the multibody system. For long chains the computational speed is comparable to that of recursive schemes.