1 Introduction

Multibody system methods are important for design and analysis of modern complex mechanical systems [1,2,3,4], where improving computational speed and stability of algorithms has always been one of the key research directions. In order to increase computation speed and simplify modeling, one of the authors and his co-workers presented and perfected constantly the transfer matrix method for multibody systems (MSTMM) [4,5,6,7]. Especially, the Riccati transformation was introduced to deal with long body chains. Recently, the form of state vector has been changed from displacements and angles to translational and angular accelerations to allow for arbitrary integration algorithms [6], and the automatic deduction theorem was presented to obtain the overall transfer equation more easily [7], which now calls for an adaption of the Riccati approach to this new transfer matrix method.

In principle, the overall transfer matrix of a system is obtained by multiplying its element transfer matrices. Thereby truncation errors are accumulated which may lead to numerical failure of the algorithm. In order to improve computational stability of the classical transfer matrix method (TMM), Horner [8] introduced the Riccati transfer matrix method (RTMM) which turns the boundary conditions of two points in the original differential equation into an initial condition of one point only. As a result, the numerical stability is improved efficiently, where additionally the Riccati MSTMM [5] decreases the matrix size by half. Consequently, Riccati MSTMM keeps all the advantages of classical TMM and MSTMM, and simultaneously improves numerical stability. However, so far the RTMM is only applied to chain systems and cannot be used directly for the new version of MSTMM.

Therefore, both aspects will be addressed in this paper. The Riccati transformation is introduced on the basis of the new version of MSTMM for chain and branch systems. Compared with ordinary methods, the proposed method in this paper benefits from advantages such as no need of global system equations, low order of system matrices and high computational speed. Besides, the proposed method ensures that the overall transfer equation and transfer matrices of elements strictly satisfy system boundary conditions during the entire dynamics computation. The new version of MSTMM doesn’t need linearization, and consequently the new version of RTMM belongs to the accurate methods regarding equation setup like the new version of MSTMM. Examples of small and huge branch systems moving in plane and space are given to demonstrate and validate the proposed approach.

2 State vectors and transfer equations

For comprehension some basics of MSTMM will be provided in the following. Although the proposed Riccati approach is totally general, later application for validation will involve only spatial bodies and ball joints, which is why only those transfer matrices are provided.

2.1 Topology graph and general concept

A multibody system typically consists of bodies and hinges as shown in Fig. 1(a). The corresponding topology in Fig. 1(b) provides the transfer relationship among state vectors, element numbers, and transfer directions [7], where body elements are represented by circles, with inside numbers indicating the bodies’ sequence numbers, whereas arrows and numbers beside indicate hinge elements and hinge sequence numbers; the arrowhead shows the transfer direction of state vectors. Especially, the number 0 represents system boundaries. Body elements can be distinguished as single-input–single-output (SISO) or multiple-input–single-output (MISO) bodies, such as body 11 in Fig. 1(a).

Fig. 1
figure 1

Typical branch system (a), its topology graph (b), and a general subsystem (c)

At each connection point of two elements, the motion is described by position coordinates \(x,y,z\) and angles \(\theta _{x},\theta _{y},\theta _{z}\) w.r.t. an inertial frame. Internal cutting forces are denoted by \(q_{x},q_{y},q_{z}\) whereas moments are denoted as \(m_{x},m_{y},m_{z}\). At an input point of an element, forces are considered positive in the axis direction, whereas moments about negative frame axes are considered as positive. At an output point this sign convention is inverted [4].

According to the new version of MSTMM [6], the state vector of these points is defined as

$$ \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}} $$
(1)

where

$$ \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 ] $$
(2)

summarize absolute translational and angular accelerations, as well as internal moments and forces w.r.t. the inertial coordinate frame \(oxyz\). The basic principle of MSTMM is to provide transfer relations between input and output states as matrix products and then to derive the system equation from these element equations. The artificial “1” in state vector (1) accounts for terms not related to physical state variables (2).

2.2 Transfer equations of elements and subsystems

(1) Spatial rigid body with single input end and single output end

For a spatial rigid body \(i\) with single input end and single output end (e.g., body 3 in Fig. 1(b)), a transfer equation [6]

$$ \boldsymbol{z}_{i,O} = \boldsymbol{U}_{i} \boldsymbol{z}_{i,I} $$
(3)

may be set up between its input state \(\boldsymbol{z}_{i,I}\) and output state \(\boldsymbol{z}_{i,O}\). The transfer matrix

$$ \boldsymbol{U}_{i} = \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 ] $$
(4)

results from kinematical and kinetic equations of the spatial rigid body with mass \(m\) where

$$ \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},\qquad \boldsymbol{E}_{4} = m \tilde{\boldsymbol{r}}_{IC}, \\ \boldsymbol{E}_{5} &= \boldsymbol{f}_{C} - m\tilde{\boldsymbol{\varOmega }}_{I}\tilde{\boldsymbol{\varOmega }}_{I} \boldsymbol{r}_{IC},\qquad\boldsymbol{E}_{6} = \tilde{\boldsymbol{r}}_{IO}, \qquad \boldsymbol{E}_{7} = m\tilde{\boldsymbol{r}}_{IC}, \qquad \boldsymbol{E}_{8} = \boldsymbol{A}_{I} \boldsymbol{J}'_{I}\boldsymbol{A}_{I}^{T},\\ \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} $$
(5)

The input end \(I\) is the origin of a body-fixed coordinate system \(I\xi \eta \zeta \) used to describe the inertia tensor \(\boldsymbol{J}'_{I}\) and angular velocity \(\boldsymbol{\omega }_{\boldsymbol{I}} = \boldsymbol{A}_{I}^{\mathrm{T}}\boldsymbol{\varOmega }_{I}\), where \(\boldsymbol{A}_{I}\) is the direction cosine matrix transforming vectors from the body-fixed coordinate system \(I\xi \eta \zeta \) into the inertial frame \(oxyz\). All other quantities are described in the inertial frame like vectors \(\boldsymbol{r}_{IC},\boldsymbol{r}_{IO}\) from input point to mass center \(C\) and output point \(O\), respectively, external moments \(\boldsymbol{m}_{C}\) and external forces \(\boldsymbol{f}_{C}\); \(\boldsymbol{I}_{3}\) is the \(3 \times 3\) identity matrix and \(\boldsymbol{O}_{3 \times 3}\), \(\boldsymbol{O}_{3 \times 1}\) and \(\boldsymbol{O}_{1 \times 3}\) are zero matrix and zero vectors, respectively. The tilde operator on a vector denotes its skew-symmetric matrix utilized for cross-products.

(2) Spatial rigid body with multi-input ends

For a spatial rigid body with multiple input ends \(I_{1},I_{2}, \ldots ,I_{L}\), like body 11 in Fig. 1(b), the state vector (1) of input ends has to be extended as

figure b

Similar to Eq. (3), a transfer relation

$$ \boldsymbol{z}_{i,O} = \boldsymbol{U}_{i,I_{1} - I_{L}} \boldsymbol{z}_{i,I_{1} - I_{L}} $$
(7)

may be deduced from rigid body kinematics and kinetics resulting in an extended body transfer matrix

figure c

where the additional columns account for forces and moments acting on inputs \(I_{2}, \ldots ,I_{L}\). The abbreviations refer to Eq. (5) where \(I\) has to be substituted by \(I_{1}\) as origin of body-fixed coordinate system \(I_{1}\xi \eta \zeta \). Additionally, the skew-symmetric matrices

$$ \boldsymbol{E}_{I_{j}} = - \tilde{\boldsymbol{r}}_{I_{1}I_{j}} $$
(9)

are used. Note that Eq. (8) reduces to transfer matrix (4) of a single-input element after removing the middle part.

(3) Smooth ball-and-socket hinge

For a smooth ball-and-socket hinge \(i\), where its outboard element \(( i + 1 )\) is a spatial rigid body, the corresponding position coordinates, and thus accelerations, and the internal forces are respectively identical, whereas the internal moments are zero. The relation for the angular acceleration may be deduced from the transfer relations (3)–(4) of its outboard body [6]. The transfer equation of a smooth ball-and-socket hinge is then identical to Eq. (3) with transfer matrix

$$ \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 ], $$
(10)

where \(\boldsymbol{u}_{3,1} = \boldsymbol{E}_{6}\boldsymbol{E}_{3} + \boldsymbol{E}_{7}\), \(\boldsymbol{u}_{3,2} = \boldsymbol{E}_{6}\boldsymbol{E}_{4} + \boldsymbol{E}_{8}\), \(\boldsymbol{u}_{3,3} = \boldsymbol{I}_{3}\), \(\boldsymbol{u}_{3,4} = \boldsymbol{E}_{6}\) and \(\boldsymbol{u}_{3,5} = \boldsymbol{E}_{6}\boldsymbol{E}_{5} + \boldsymbol{E}_{9}\) refer to the particular submatrices in the third block row of the partitioned transfer matrix (4) of the outboard body, respectively.

(4) Multi-hinge subsystem

In a branch system, all hinges (e.g., hinges 4 and 10 in Fig. 1(b)) with the same MISO outboard body \(i\) (body 11 in Fig. 1(b)) are treated as a hinge subsystem \(j\) with multiple input and multiple output ends, named multi-hinge subsystem. Its transfer equation includes two parts, the main transfer equation and additional geometric equations. The main transfer equation describes the relation among the accelerations and the internal moments and forces, while the geometric equations describe kinematic relations among the first input end \(I_{1}\) and its output ends identified with the input state (6) of its outboard body \(i\), i.e., \(\boldsymbol{z}_{j,O} \equiv \boldsymbol{z}_{i,I_{1} - I_{L}}\). The state vector \(\boldsymbol{z}_{j,I_{k}}\) of each input end \(I_{k}\) (\(k = 1, \ldots ,L\)) is defined according to Eq. (1).

(a) Main transfer equation

Analogously to Eqs. (3) and (10), the main transfer equation describes the relationship among the comprehensive output state vector (6) and the state vectors (1) of all input ends, where just the additional moment (\(\boldsymbol{m}_{j,I_{k}}\)) and force (\(\boldsymbol{q}_{j,I_{k}}\)) impacts from \(I_{2}, \ldots ,I_{L}\) have to be accounted for. This can be achieved by the relation

$$ \boldsymbol{z}_{j,O} = \hat{\boldsymbol{U}}_{j,I_{1}} \boldsymbol{z}_{j,I_{1}} + \hat{\boldsymbol{U}}_{j,I_{2}} \boldsymbol{z}_{j,I_{2}} + \cdots + \hat{\boldsymbol{U}}_{j,I_{L}} \boldsymbol{z}_{j,I_{L}} $$
(11)

with an enlarged matrix (10), given as

Uˆj,I1=[I3O3×3O3×3O3×3O3×1u3,21u3,1O3×3u3,21u3,3u3,21u3,4u3,21u3,2L+3O3×3O3×3I3O3×3O3×1O3×3O3×3O3×3I3O3×1O3×3O3×3O3×3O3×3O3×1O3×3O3×3O3×3O3×3O3×1O1×3O1×3O1×3O1×31]12342L+22L+3
(12)

and additional matrices

Uˆj,Ik=[O3×3O3×3O3×3O3×3O3×1O3×3O3×3u3,21u3,2k+1u3,21u3,2k+2O3×1O3×3O3×3O3×3O3×3O3×1O3×3O3×3O3×3O3×3O3×1O3×3O3×3O3×3O3×3O3×1O3×3O3×3O3×3O3×3O3×1O3×3O3×3I3O3×3O3×1O3×3O3×3O3×3I3O3×1O3×3O3×3O3×3O3×3O3×1O3×3O3×3O3×3O3×3O3×1O1×3O1×3O1×3O1×30]12342k+12k+22L+3
(13)

where (\(k = 2,3, \ldots ,L\)). Similar to Eq. (10), the elements \(\boldsymbol{u}_{3,m}\) in matrices (12) and (13) refer to the third block row of the MISO outboard body transfer matrix (8).

(b) Geometric equation

We may notice in the main transfer equation that the quantity of unknowns is greater than the number of equations. Therefore, the geometric equations have to be supplemented by additional equations resulting from rigid body kinematics. Generally, the accelerations of an arbitrary point \(P\) of the rigid body are related to those of the input end \(I_{1}\) by [4] \(\ddot{\boldsymbol{r}}_{P} = \ddot{\boldsymbol{r}}_{I_{1}} - \tilde{\boldsymbol{r}}_{I_{1}P}\dot{\boldsymbol{\varOmega }}_{I_{1}} + \tilde{\boldsymbol{\varOmega }}_{I_{1}}\tilde{\boldsymbol{\varOmega }}_{I_{1}}\boldsymbol{r}_{I_{1}P}\). Since the output ends of a multi-hinge subsystem are identical with the input ends of its rigid outboard body, and since hinge positions of corresponding output and input ends are identical, these equations may be used to relate the accelerations of the hinge input ends to its first output end as

$$ \ddot{\boldsymbol{r}}_{I_{k}} = \ddot{\boldsymbol{r}}_{O_{1}} - \tilde{\boldsymbol{r}}_{O_{1}I_{k}}\dot{\boldsymbol{\varOmega }}_{O_{1}} + \tilde{\boldsymbol{\varOmega }}_{O_{1}}\tilde{ \boldsymbol{\varOmega }}_{O_{1}}\boldsymbol{r}_{O_{1}I_{k}}\quad (k = 2,3, \ldots ,L). $$
(14)

Additionally, the moments at input (and output) ends of smooth hinges vanish, i.e., \(\boldsymbol{m}_{i,I_{k}} = \boldsymbol{0}\)\(( k = 2, \ldots ,L )\). Combined with Eq. (14) and by using the extended state (6), this may be summarized as

$$ \boldsymbol{H}_{\ddot{\boldsymbol{r}},\boldsymbol{m}}\boldsymbol{z}_{j,I_{k}} = \boldsymbol{H}_{O_{1},I_{k}}\boldsymbol{z}_{j,O}\quad (k = 2,3, \ldots ,L) $$
(15)

where the matrices

figure d

extract the respective accelerations and the moments from the state vectors of the hinge input/output ends and

$$ \boldsymbol{E}_{1,I_{k}} = - \tilde{\boldsymbol{r}}_{O_{1}I_{k}}, \qquad \boldsymbol{E}_{2,I_{k}} = \tilde{\boldsymbol{\varOmega }}_{O_{1}}\tilde{\boldsymbol{\varOmega }}_{O_{1}} \boldsymbol{r}_{O_{1}I_{k}} $$
(17)

are the corresponding coefficients in Eq. (14).

3 Application of Riccati transformation to chain systems

The overall transfer equation of a chain system composed of \(n\) elements is [6]

$$ \boldsymbol{z}_{n,0} = \boldsymbol{U}_{1 - n} \boldsymbol{z}_{1,0} $$
(18)

where the overall transfer matrix is obtained by successive multiplication of element transfer matrices \(\boldsymbol{U}_{i}\), i.e.,

$$ \boldsymbol{U}_{1 - n} = \boldsymbol{U}_{n} \boldsymbol{U}_{n - 1} \cdots \boldsymbol{U}_{2} \boldsymbol{U}_{1} = \prod_{i = 1}^{n} \boldsymbol{U}_{i}. $$
(19)

The vectors \(\boldsymbol{z}_{1,0}\) and \(\boldsymbol{z}_{n,0}\) represent tip and root states of the chain, respectively. As the chain length \(n\) increases, the accumulated errors caused by successive multiplication of transfer matrices \(\boldsymbol{U}_{i}\) may increase and may probably result in complete failure, see [9] for classical MSTMM. The Riccati transfer matrix method has shown to be effective for overcoming such kind of numerical problems [4]. In the following, a new version of Riccati MSTMM based on the new version of MSTMM is established, where the computing procedure is rather similar to linear or classical MSTMM.

Usually, half of the state variables (2) in the boundary states of Eq. (18) are known while the other half is unknown. Let generally \(\boldsymbol{z}_{a}\) compose the known state variables while \(\boldsymbol{z}_{b}\) summarize the unknown ones, and terms associated with the artificial state “1” are separated. Then the transfer equation (3) of an element \(i\) can always be written as

$$ \left [ \textstyle\begin{array}{c} \boldsymbol{z}_{a} \\ \boldsymbol{z}_{b} \end{array}\displaystyle \right ]_{i,O} = \left [ \textstyle\begin{array}{c@{\quad}c} \boldsymbol{T}_{11} & \boldsymbol{T}_{12} \\ \boldsymbol{T}_{21} & \boldsymbol{T}_{22} \end{array}\displaystyle \right ]_{i}\left [ \textstyle\begin{array}{c} \boldsymbol{z}_{a} \\ \boldsymbol{z}_{b} \end{array}\displaystyle \right ]_{i,I} + \left [ \textstyle\begin{array}{c} \boldsymbol{f}_{a} \\ \boldsymbol{f}_{b} \end{array}\displaystyle \right ]_{i} $$
(20)

where \(\boldsymbol{T}_{11}\), \(\boldsymbol{T}_{12}\), \(\boldsymbol{T}_{21}\), \(\boldsymbol{T}_{22}\) are the rearranged submatrices of transfer matrix \(\boldsymbol{U}_{i}\) associated with physical state quantities and \(\boldsymbol{f}_{a}\) and \(\boldsymbol{f}_{b}\) correspond to the last column of \(\boldsymbol{U}_{i}\).

The assumption that \(\boldsymbol{z}_{a}\) is known from \(\boldsymbol{z}_{b}\) may be expressed by the Riccati transformation [4, 5]

$$ \boldsymbol{z}_{ai,I} = \boldsymbol{S}_{i} \boldsymbol{z}_{bi,I} + \boldsymbol{e}_{i} $$
(21)

based on input states. Substitution into Eq. (20) yields

$$ \boldsymbol{z}_{bi,O} = \boldsymbol{T}_{21i} \boldsymbol{z}_{ai,I} + \boldsymbol{T}_{22i} \boldsymbol{z}_{bi,I} + \boldsymbol{f}_{bi} = ( \boldsymbol{T}_{21i}\boldsymbol{S}_{i} + \boldsymbol{T}_{22i})\boldsymbol{z}_{bi,I} + \boldsymbol{T}_{21i}\boldsymbol{e}_{i} + \boldsymbol{f}_{bi}. $$
(22)

By rewriting it for the unknown input states, we obtain

$$ \boldsymbol{z}_{bi,I} = (\boldsymbol{T}_{21i} \boldsymbol{S}_{i} + \boldsymbol{T}_{22i})^{ - 1} \bigl[ \boldsymbol{z}_{bi,O} - (\boldsymbol{T}_{21i} \boldsymbol{e}_{i} + \boldsymbol{f}_{bi}) \bigr]. $$
(23)

With abbreviations

$$ \boldsymbol{P}_{i} = (\boldsymbol{T}_{21i} \boldsymbol{S}_{i} + \boldsymbol{T}_{22i})^{ - 1}, \qquad \boldsymbol{q}_{i} = - (\boldsymbol{T}_{21i} \boldsymbol{e}_{i} + \boldsymbol{f}_{bi}), $$
(24)

Eq. (23) may be rewritten as

$$ \boldsymbol{z}_{bi,I} = \boldsymbol{P}_{i} \boldsymbol{z}_{bi,O} + \boldsymbol{P}_{i} \boldsymbol{q}_{i}. $$
(25)

By substitution of Eqs. (21) and (25) into the first equation of Eq. (20), one obtains

$$ \boldsymbol{z}_{ai,O} = \boldsymbol{T}_{11i}\bigl[ \boldsymbol{S}_{i}(\boldsymbol{P}_{i} \boldsymbol{z}_{bi,O} + \boldsymbol{P}_{i} \boldsymbol{q}_{i}) + \boldsymbol{e}_{i}\bigr] + \boldsymbol{T}_{12i}(\boldsymbol{P}_{i} \boldsymbol{z}_{bi,O} + \boldsymbol{P}_{i} \boldsymbol{q}_{i}) + \boldsymbol{f}_{ai}. $$
(26)

This may be rearranged as

$$ \boldsymbol{z}_{ai,O} = (\boldsymbol{T}_{11i} \boldsymbol{S}_{i} + \boldsymbol{T}_{12i}) \boldsymbol{P}_{i}\boldsymbol{z}_{bi,O} + \boldsymbol{T}_{11i}\boldsymbol{e}_{i} + \boldsymbol{f}_{ai} + (\boldsymbol{T}_{11i} \boldsymbol{S}_{i} + \boldsymbol{T}_{12i}) \boldsymbol{P}_{i}\boldsymbol{q}_{i}, $$
(27)

which relates the known (\(\boldsymbol{z}_{ai,O}\)) and unknown (\(\boldsymbol{z}_{bi,O}\)) output states of element \(i\).

In a chain system, an element’s output end is equal to the input end of its outboard element, i.e., \(\boldsymbol{z}_{i,O} \equiv \boldsymbol{z}_{i + 1,I}\). Due to this, Eq. (27) may be also written as

$$ \boldsymbol{z}_{ai + 1,I} = (\boldsymbol{T}_{11i} \boldsymbol{S}_{i} + \boldsymbol{T}_{12i}) \boldsymbol{P}_{i}\boldsymbol{z}_{bi + 1,I} + \boldsymbol{T}_{11i}\boldsymbol{e}_{i} + \boldsymbol{f}_{ai} + (\boldsymbol{T}_{11i} \boldsymbol{S}_{i} + \boldsymbol{T}_{12i}) \boldsymbol{P}_{i}\boldsymbol{q}_{i} $$
(28)

similar to Eq. (21). From comparison, we may define

$$\begin{aligned} \boldsymbol{S}_{i + 1} : =& (\boldsymbol{T}_{11i} \boldsymbol{S}_{i} + \boldsymbol{T}_{12i}) \boldsymbol{P}_{i}, \end{aligned}$$
(29)
$$\begin{aligned} \boldsymbol{e}_{i + 1} : =& \boldsymbol{T}_{11i} \boldsymbol{e}_{i} + \boldsymbol{f}_{ai} + \boldsymbol{S}_{i + 1}\boldsymbol{q}_{i}, \end{aligned}$$
(30)

resulting in recursion formulae for the new version of Riccati MSTMM, which according to Eq. (27) finally reads as

$$ \boldsymbol{z}_{ai,O} = \boldsymbol{S}_{i + 1} \boldsymbol{z}_{bi,O} + \boldsymbol{e}_{i + 1}. $$
(31)

For a chain system composed of \(n\) elements, the output point of the last element yields

$$ \boldsymbol{z}_{an,O} = \boldsymbol{S}_{n + 1} \boldsymbol{z}_{bn,O} + \boldsymbol{e}_{n + 1}, $$
(32)

where obviously \(\boldsymbol{z}_{an,O}\) and \(\boldsymbol{z}_{bn,O}\) contain all \(m\) state variables of the system output end (excluding the artificial state “1”). According to output boundary conditions, \(m/2\) states \(\boldsymbol{z}_{an,O}\) are known, whereas the \(m/2\) unknowns \(\boldsymbol{z}_{bn,O}\) are fully determined by Eq. (32).

Once the state vector of the system output end is obtained, the state vector of any joint point inside the system may be obtained by backward recursion equations (21) and (25), i.e.,

$$ \left \{ \textstyle\begin{array}{l} \boldsymbol{z}_{bi,I} = \boldsymbol{P}_{i}\boldsymbol{z}_{bi,O} + \boldsymbol{P}_{i}\boldsymbol{q}_{i}, \\ \boldsymbol{z}_{ai,I} = \boldsymbol{S}_{i}\boldsymbol{z}_{bi,I} + \boldsymbol{e}_{i}, \end{array}\displaystyle \right .\quad i = n,n - 1, \ldots ,1. $$
(33)

It should be noted that this recursion acts in the inverse transfer direction in contrast to, e.g., Eq. (3).

4 Algorithms using the Riccati transformation

Let us, e.g., consider the left subchain in Fig. 1(b). The input of body 1 is a boundary (denoted by 0) where half of the states are known to be zero (either accelerations for fixed node or forces/moments if free). This may be transferred into a boundary condition for \(\boldsymbol{S}\) and \(\boldsymbol{e}\) at the beginning. According to the definition that \(\boldsymbol{z}_{a}\) summarizes the know states, which are here \(\boldsymbol{z}_{a1,I} = \boldsymbol{0}\), whereas \(\boldsymbol{z}_{b1,I} \ne \boldsymbol{0}\) are the unknown boundary conditions, Eq. (21) may be satisfied by choosing

$$ \boldsymbol{S}_{1} = \boldsymbol{O},\qquad \boldsymbol{e}_{1} = \boldsymbol{0}. $$
(34)

In order to proceed, the transfer matrix of body 1 has to be rearranged according to Eq. (20). Then Eq. (24) may be applied to obtain \(\boldsymbol{P}_{1}\) and \(\boldsymbol{q}_{1}\), which may be then substituted in (29) and (30) to obtain \(\boldsymbol{S}_{2}\) and \(\boldsymbol{e}_{2}\). Next the hinge transfer matrix \(\boldsymbol{U}_{2}\) is rearranged and used in the same way to get \(\boldsymbol{S}_{3}\) and \(\boldsymbol{e}_{3}\), and so on. The recursion ends with \(\boldsymbol{S}_{n + 1}\) and \(\boldsymbol{e}_{n + 1}\) which are the Riccati coefficients of the chain root (here output of body 3 where \(n = 3\) in Eq. (32)). Assuming that this is already a system boundary, half of the state variables would be known and half unknown splitting the associated state vector in \(\boldsymbol{z}_{an,O}\) and \(\boldsymbol{z}_{bn,O}\). By rearranging Eq. (32) accordingly, the unknown boundary states could be determined. By applying Eq. (33), the states \(\boldsymbol{z}_{bi,I}\) and \(\boldsymbol{z}_{ai,I}\) of any joint within the subchain may be obtained. Based on these considerations, the following general procedure is proposed for chain systems.

4.1 Procedure for chain systems

For a chain system (or subchain), the following Algorithm A may be applied:

  1. (A1)

    Establish the transfer matrices \(\boldsymbol{U}_{i}\) of all chain elements.

  2. (A2)

    According to the system tip boundary conditions, summarize all zeros in \(\boldsymbol{z}_{a1,I} = \boldsymbol{0}\) to obtain \(\boldsymbol{S}_{1} = \boldsymbol{O}, \boldsymbol{e}_{1} = \boldsymbol{0}\) from Eq. (34).

  3. (A3)

    Recursively rearrange element transfer matrices according to Eq. (20) based on known and unknown inputs and use Eqs. (24), (29) and (30) to find \(\boldsymbol{S}_{i + 1},\boldsymbol{e}_{i + 1}\) from \(\boldsymbol{S}_{i},\boldsymbol{e}_{i}\), \(i = 1,2, \ldots ,n\).

  4. (A4)

    Using the boundary condition of the chain root, summarize known boundary states in \(\boldsymbol{z}_{an,O}\) and determine the unknown boundary states \(\boldsymbol{z}_{bn,O}\).

  5. (A5)

    After obtaining the state vector of the system root, recursion (33) in reverse transfer direction yields all intermediate state vectors.

A chain system contains only a single tip while a branch system has at least two tips. Additionally, the overall transfer equation of a branch system not only includes the main transfer equation but also geometric equations (15). In order to derive the overall system equations, the branch system is split into (multiple) subchains and output chain, and a multi-hinge is introduced according to Fig. 1(c). By using Algorithm 4.1, the state vectors of all output ends of the subchains can be expressed in terms of input boundary conditions. These outputs may then be combined with the concept of a multi-hinge according to Sect. 2.2. Summarizing, the following procedure is proposed.

4.2 Procedure for branch systems

For a branch system, the following Algorithm B may be used:

  1. (B1)

    Divide the branch system into several chain subsystems, multi-hinge subsystems, and rigid bodies with multi-input ends.

  2. (B2)

    Treat each chain subsystem according to steps (A1)–(A3) of Algorithm A in Sect. 4.1, where the forward direction for the recursive procedure is from the corresponding boundary end to the connection end of the last rigid body in the subchain with the input end of a multi-hinge. As a result, the corresponding Riccati transfer equation of the terminal end of each chain subsystem denoted in the form of Eq. (32) is obtained. For a chain connected to the output of a multi-input body, the transfer direction may be reversed to treat it similarly as input subchains.

  3. (B3)

    Combining the results of step (B2) in the transfer equation (7) and the geometric equations (15) of the multi-input subsystem yields the overall transfer equation.

  4. (B4)

    After solving the overall transfer equation, the input of multi-hinge subsystem may be obtained, which is identical with the tip states of the corresponding subchains. Recursion (33) in reverse transfer direction will then yield all intermediate state vectors in each subchain.

5 Applications

To explain the Riccati procedure step by step, a simple planar branch system according to Fig. 2(a) will be investigated in Sect. 5.1. In order to ease traceability, computations are performed symbolically which, however, may give a wrong impression. In real applications, the matrix operations in Sect. 4 are executed automatically on a numerical basis as demonstrated with a much larger second example in Sect. 5.2.

Fig. 2
figure 2

A branch system (a), its topology figure (b), and pendulum bodies (c)–(d)

5.1 Demonstration example

The pendulum system in Fig. 2(a) consists of similar rods with mass \(m = 1~\text{kg}\) and length \(2a = 1~\text{m}\) resulting in moment of inertia \(J_{z} = 4~\text{ma}^{2}/3\) with respect to rod ends. This planar problem is a special case of spatial MSTMMs where the state vector (1) may be reduced to the essential coordinates

$$ \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}}. $$
(35)

According to step (B1), the branch system is firstly divided into two subchains, a multi-hinge and multi-input body 7 as shown in Fig. 2(b). For treating the subchains in step (B2) along Algorithm A, respectively, the transfer matrices may be established in step (A1). For pendulum bodies \(i \in \{ 1,3,5 \}\) (Fig. 2(c)), we may compute transfer matrix (4) from abbreviations (5) based on \(\boldsymbol{r}_{IC} = [ ac_{i}\ \ as_{i}\ \ 0 ]^{\mathrm{T}}\), \(\boldsymbol{r}_{IO} = 2\boldsymbol{r}_{IC}\), \(\boldsymbol{\varOmega }_{I} = [ 0\ \ 0\ \ \dot{\theta }_{i} ]^{\mathrm{T}}\), \(\boldsymbol{f}_{C} = mg [ 0\ \ - 1\ \ 0 ]^{\mathrm{T}}\), \(\boldsymbol{m}_{C} = \boldsymbol{0}\), and \(\boldsymbol{J}'_{I} = \operatorname{diag} \{ 0 \ \ J_{z} \ \ J_{z} \}\) where \(c_{i} = \cos \theta _{i}\), \(s_{i} = \sin \theta _{i}\). The resulting transfer matrix may then be reduced according to the reduced state (35) by using rows and columns 1, 2, 6, 9, 10, 11 and 13, respectively:

figure f

The first subchain consists of body 1 only. Its lower end is a free boundary where forces and moments are zero, i.e., \(\boldsymbol{z}_{1,0} = [\ddot{x}\ \ \ddot{y}\ \ \dot{\varOmega }_{z}\ \ 0\ \ 0\ \ 0\ \ 1]_{1,0}^{\mathrm{T}}\), whereas accelerations are unknown. Therefore, we define according to step (A2) \(\boldsymbol{z}_{a1,I} = [ m_{z}\ \ q_{x}\ \ q_{y} ]_{1,I}^{\mathrm{T}} = \boldsymbol{0}\) and \(\boldsymbol{z}_{b1,I} = [ \ddot{x}\ \ \ddot{y}\ \ \dot{\varOmega }_{z} ]_{1,I}^{\mathrm{T}}\), resulting in \(\boldsymbol{S}_{1} = \boldsymbol{O}, \boldsymbol{e}_{1} = \boldsymbol{0}\). For step (A3), the transfer equation of body 1 with transfer matrix (36) may then be rearranged accordingly as

figure g

A comparison with Eq. (20) yields

$$ \begin{aligned} \boldsymbol{T}_{11} &= \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 1 & - 2as_{1} & 2ac_{1} \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\displaystyle \right ],\qquad \boldsymbol{T}_{12} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} mas_{1} & - mac_{1} & - 2ma^{2}/3 \\ - m & 0 & mas_{1} \\ 0 & - m & - mac_{1} \end{array}\displaystyle \right ], \\ \boldsymbol{T}_{21} &= \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{array}\displaystyle \right ],\qquad\boldsymbol{T}_{22} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 1 & 0 & - 2as_{1} \\ 0 & 1 & 2ac_{1} \\ 0 & 0 & 1 \end{array}\displaystyle \right ], \\ \boldsymbol{f}_{a} &= \left [ \textstyle\begin{array}{c} - magc_{1} \\ mac_{1}\dot{\theta }_{1}^{2} \\ mas_{1}\dot{\theta }_{1}^{2} - mg \end{array}\displaystyle \right ],\qquad\boldsymbol{f}_{b} = \left [ \textstyle\begin{array}{c} - 2ac_{1}\dot{\theta }_{1}^{2} \\ - 2as_{1}\dot{\theta }_{1}^{2} \\ 0 \end{array}\displaystyle \right ], \end{aligned} $$
(38)

where the body index has been omitted for simplification. Equation (29), together with \(\boldsymbol{S}_{1} = \boldsymbol{O}\) and Eq. (24), then yields

$$\begin{aligned} \boldsymbol{S}_{2} &= (\boldsymbol{T}_{11} \boldsymbol{S}_{1} + \boldsymbol{T}_{12}) \boldsymbol{P}_{1} \equiv \boldsymbol{T}_{12} \boldsymbol{P}_{1} = \boldsymbol{T}_{12}( \boldsymbol{T}_{21}\boldsymbol{S}_{1} + \boldsymbol{T}_{22})^{ - 1} \equiv \boldsymbol{T}_{12} \boldsymbol{T}_{22}^{ - 1} \\ &= \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} mas_{1} & - mac_{1} & 4ma^{2}/3 \\ - m & 0 & - mas_{1} \\ 0 & - m & mac_{1} \end{array}\displaystyle \right ]. \end{aligned}$$
(39)

Substituting \(\boldsymbol{e}_{1} = \boldsymbol{0}\) and Eq. (24) into Eq. (30) yields

$$\begin{aligned} \boldsymbol{e}_{2} &= \boldsymbol{T}_{11} \boldsymbol{e}_{1} + \boldsymbol{f}_{a} + \boldsymbol{S}_{2}\boldsymbol{q}_{1} \equiv \boldsymbol{f}_{a} + \boldsymbol{S}_{2} \boldsymbol{q}_{1} = \boldsymbol{f}_{a} + \boldsymbol{S}_{2} ( - \boldsymbol{T}_{21} \boldsymbol{e}_{1} - \boldsymbol{f}_{b} ) \equiv \boldsymbol{f}_{a} - \boldsymbol{S}_{2} \boldsymbol{f}_{b} \\ &= \left [ \textstyle\begin{array}{c} - magc_{1} \\ - mac_{1}\dot{\theta }_{1}^{2} \\ - mas_{1}\dot{\theta }_{1}^{2} - mg \end{array}\displaystyle \right ]. \end{aligned}$$
(40)

According to Eq. (31), the relationship between \(\boldsymbol{z}_{aO,1}\) and \(\boldsymbol{z}_{bO,1}\) can be written as

$$ \left [ \textstyle\begin{array}{c} m_{z} \\ q_{x} \\ q_{y} \end{array}\displaystyle \right ]_{1,O} = \boldsymbol{S}_{2} \left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \end{array}\displaystyle \right ]_{1,O} + \boldsymbol{e}_{2}. $$
(41)

Since the first subchain consists of a simple body only, a recursion along step (A3) is not necessary. Instead, the complete state of the first subchain tip may be written as

$$ \boldsymbol{z}_{1,O} = \left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \\ m_{z} \\ q_{x} \\ q_{y} \\ 1 \end{array}\displaystyle \right ]_{1,O} = \left [ \textstyle\begin{array}{c@{\quad}c} \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{S}_{2} & \boldsymbol{e}_{2} \\ \boldsymbol{O}_{1 \times 3} & 1 \end{array}\displaystyle \right ]\left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \\ 1 \end{array}\displaystyle \right ]_{1,O} =:\boldsymbol{U}_{\mathrm{tip},1}\left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \\ 1 \end{array}\displaystyle \right ]_{1,O} $$
(42)

where

figure h

Now we may compute the second subchain along Algorithm A. Due to the similar boundary condition, body 3 may be treated analogously to body 1, resulting in the same matrices \(\boldsymbol{S}_{2}\) and \(\boldsymbol{e}_{2}\) as Eqs. (39) and (40), where \(s_{1}, c_{1}, \dot{\theta }_{1}\) have to be substituted by \(s_{3}, c_{3}, \dot{\theta }_{3}\), respectively.

Element 4 is a ball-and-socket hinge with transfer matrix (10). In the reduced form the submatrices \(\boldsymbol{u}_{3,1} = [ mas_{5}\ \ - mac_{5} ]\), \(\boldsymbol{u}_{3,2} = [ - 2ma^{2}/3 ]\), \(\boldsymbol{u}_{3,3} = [ 1 ]\), \(\boldsymbol{u}_{3,4} = [ - 2as_{5}\ \ 2ac_{5} ]\) and \(\boldsymbol{u}_{3,5} = [ - magc_{5} ]\) are taken from row 4 of transfer matrix (36) for the outboard body \(i = 5\), resulting in the reduced hinge transfer matrix

figure i

A similar order of state variables as in Eq. (37) yields Eq. (20) with submatrices

$$ \begin{aligned} \boldsymbol{T}_{11} &= \boldsymbol{I}_{3}, \qquad \boldsymbol{T}_{12} = \boldsymbol{O}_{3 \times 3},\qquad \boldsymbol{T}_{21} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 0 & 0 & 0 \\ 0 & 0 & 0 \\ \frac{3}{2ma^{2}} & \frac{ - 3s_{5}}{ma} & \frac{3c_{5}}{ma} \end{array}\displaystyle \right ], \\ \boldsymbol{T}_{22} &= \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 1 & 0 & 0 \\ 0 & 1 & 0 \\ \frac{3s_{5}}{2a} & \frac{ - 3c_{5}}{2a} & 0 \end{array}\displaystyle \right ],\qquad\boldsymbol{f}_{a} = \boldsymbol{O}_{3 \times 1},\qquad \boldsymbol{f}_{b} = \left [ \textstyle\begin{array}{c} 0 \\ 0 \\ \frac{ - 3gc_{5}}{2a} \end{array}\displaystyle \right ]. \end{aligned} $$
(45)

Substitution into Eqs. (29) and (30) finally gives

$$\begin{aligned} \boldsymbol{S}_{3} &= \frac{1}{3c_{3}c_{5} + 3s_{3}s_{5} + 2} \\ &\quad{}\times \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 3ma (s_{3}^{2}s_{5} + s_{3}c_{3}c_{5} - 2s_{5}) & - 3ma (c_{3}^{2}c_{5} + s_{3}c_{3}c_{5} - 2c_{5}) & 4ma^{2} \\ \frac{m}{2}(3s_{3}^{2} + 3s_{3}s_{5} - 6c_{3}c_{5} - 4) & - \frac{3}{2}ms_{3}(c_{3} + 3c_{5}) & - mas_{3} \\ - \frac{3}{2}mc_{3}(s_{3} + 3s_{5}) & \frac{m}{2}(3c_{3}^{2} + 3c_{3}c_{5} - 6s_{3}s_{5} - 4) & mac_{3} \end{array}\displaystyle \right ], \end{aligned}$$
(46)
$$\begin{aligned} \boldsymbol{e}_{3} &= \left [ \textstyle\begin{array}{c} 2ma\frac{g(c_{3} + c_{5}) + 2a\dot{\theta }_{3}^{2}(s_{3}c_{5} - c_{c}s_{5}) + 2gc_{5}}{3c_{3}c_{5} + 3s_{3}s_{5} + 2} - magc_{3} \\ \frac{ - 3ms_{3}}{2}\frac{g(c_{3} + c_{5}) + 2a\dot{\theta }_{3}^{2}(s_{3}c_{5} - c_{c}s_{5}) + 2gc_{5}}{3c_{3}c_{5} + 3s_{3}s_{5} + 2} - ma\dot{\theta }_{3}^{2}c_{3} \\ \frac{3mc_{3}}{2}\frac{g(c_{3} + c_{5}) + 2a\dot{\theta }_{3}^{2}(s_{3}c_{5} - c_{c}s_{5}) + 2gc_{5}}{3c_{3}c_{5} + 3s_{3}s_{5} + 2} - ma\dot{\theta }_{3}^{2}s_{3} - mg \end{array}\displaystyle \right ]. \end{aligned}$$
(47)

After another recursive step for body 5 with transfer matrix (36), where \(i = 5\), we obtain \(\boldsymbol{S}_{4}\) and \(\boldsymbol{e}_{4}\), which are too large to be shown in symbolic form. The tip state \(\boldsymbol{z}_{5,O}\) may then be finally written analogously to Eq. (42) as

$$ \boldsymbol{z}_{5,O} = \boldsymbol{U}_{\mathrm{tip},2}\left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \\ 1 \end{array}\displaystyle \right ]_{5,O}\quad \mbox{where } \boldsymbol{U}_{\mathrm{tip},2} = \left [ \textstyle\begin{array}{cc} \boldsymbol{I}_{3} & \boldsymbol{O}_{3 \times 1} \\ \boldsymbol{S}_{4} & \boldsymbol{e}_{4} \\ \boldsymbol{O}_{1 \times 3} & 1 \end{array}\displaystyle \right ]. $$
(48)

The state vectors \(\boldsymbol{z}_{1,O}\) and \(\boldsymbol{z}_{5,O}\) are the two inputs of the multi-hinge 8 with MISO body 7 as outboard body which now have to be combined in the algorithmic step (B3). Let us start with the multi-input body 7, where, according to Fig. 2(d), \(\boldsymbol{r}_{IO} \equiv \boldsymbol{r}_{IC} = [ ac_{7}\ \ as_{7}\ \ 0 ]^{\mathrm{T}}\) and \(\boldsymbol{\varOmega }_{I}\), \(\boldsymbol{f}_{C}\), \(\boldsymbol{m}_{C}\), and \(\boldsymbol{J}'_{I}\) are identical to the analogous quantities used for computing Eq. (36). By adding intermediate columns regarding the second input given as \(\boldsymbol{r}_{I_{1}I_{2}} = 2\boldsymbol{r}_{IC}\), we get from Eqs. (8) and (9) the reduced transfer matrix

figure j

delivering the output state

$$ \boldsymbol{z}_{7,O} = \boldsymbol{U}_{7,I_{1} - I_{2}} \boldsymbol{z}_{7,I_{1} - I_{2}} $$
(50)

according to Eq. (7), where is the reduced form of Eq. (6). Its input is identical with the output of multi-hinge 8, resulting from Eq. (11) as

$$ \boldsymbol{z}_{7,I_{1} - I_{2}} \equiv \boldsymbol{z}_{8,O} = \hat{\boldsymbol{U}}_{8,I_{1}}\boldsymbol{z}_{8,I_{1}} + \hat{\boldsymbol{U}}_{8,I_{2}}\boldsymbol{z}_{8,I_{2}} \equiv \hat{\boldsymbol{U}}_{8,I_{1}}\boldsymbol{z}_{1,O} + \hat{\boldsymbol{U}}_{8,I_{2}}\boldsymbol{z}_{5,O}. $$
(51)

The corresponding transfer matrices are given by Eqs. (12) and (13), where in the reduced form the submatrices \(\boldsymbol{u}_{3,1} = [ 0 \ \ 0 ]\), \(\boldsymbol{u}_{3,2} = [ ma^{2}/3 ]\), \(\boldsymbol{u}_{3,3} = [ 1 ]\), \(\boldsymbol{u}_{3,4} = [ - as_{7} \ \ ac_{7} ]\), \(\boldsymbol{u}_{3,5} = [ 1 ]\), \(\boldsymbol{u}_{3,6} = [ as_{7}\ \ - ac_{7} ]\), \(\boldsymbol{u}_{3,7} = [ 0 ]\) are taken from row 4 of transfer matrix (49) of the outboard body:

Uˆ8,I1=[100000001000000003ma23s72ma3c72ma00001000000010000000100000000000000000000000000001],Uˆ8,I2=[000000000000000003ma23s72ma3c72ma00000000000000000000000001000000010000000100000000].
(52)

By substituting Eq. (51) into Eq. (50), we obtain the main transfer equation

$$ \boldsymbol{z}_{7,O} = \boldsymbol{U}_{7,I_{1} - I_{2}} ( \hat{\boldsymbol{U}}_{8,I_{1}}\boldsymbol{z}_{1,O} + \hat{\boldsymbol{U}}_{8,I_{2}}\boldsymbol{z}_{5,O} ). $$
(53)

Additionally, the geometric compliance equations (15) need to be considered, reading here in reduced form as a single equation

$$ \boldsymbol{H}_{\ddot{\boldsymbol{r}},\boldsymbol{m}}\boldsymbol{z}_{8,I_{2}} \equiv \boldsymbol{H}_{\ddot{\boldsymbol{r}},\boldsymbol{m}}\boldsymbol{z}_{5,O} = \boldsymbol{H}_{O_{1},I_{2}}\boldsymbol{z}_{8,O} \equiv \boldsymbol{H}_{O_{1},I_{2}} ( \hat{\boldsymbol{U}}_{8,I_{1}} \boldsymbol{z}_{1,O} + \hat{\boldsymbol{U}}_{8,I_{2}} \boldsymbol{z}_{5,O} ), $$
(54)

where Eq. (51) was used, and where

figure k

According to algorithmic step (B3), Eqs. (53) and (54) may now be summarized in the overall transfer equation

$$ \boldsymbol{U}_{\mathrm{all}}\boldsymbol{z}_{\mathrm{all}} = \boldsymbol{0} $$
(56)

where overall transfer matrix and state result after substitution of Eqs. (42) and (48) as

$$\begin{aligned} &\boldsymbol{U}_{\mathrm{all}} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} - \boldsymbol{I}_{7} & \boldsymbol{U}_{7,I_{1} - I_{2}}\hat{\boldsymbol{U}}_{8,I_{1}}\boldsymbol{U}_{\mathrm{tip},1} & \boldsymbol{U}_{7,I_{1} - I_{2}}\hat{\boldsymbol{U}}_{8,I_{2}}\boldsymbol{U}_{\mathrm{tip},5} \\ \boldsymbol{O}_{3 \times 7} & \boldsymbol{H}_{O_{1},I_{2}}\hat{\boldsymbol{U}}_{8,I_{1}}\boldsymbol{U}_{\mathrm{tip},1} & (\boldsymbol{H}_{O_{1},I_{2}}\hat{\boldsymbol{U}}_{8,I_{2}} - \boldsymbol{H}_{\ddot{\boldsymbol{r}},\boldsymbol{m}})\boldsymbol{U}_{\mathrm{tip},5} \end{array}\displaystyle \right ], \end{aligned}$$
(57)
$$\begin{aligned} &\boldsymbol{z}_{\mathrm{all}} = \left [ \textstyle\begin{array}{c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c@{\ \ }c} \ddot{x}_{7,O}& \ddot{y}_{7,O} & \dot{\varOmega }_{z7,O} & m_{z7,O} & q_{x7,O} & q_{y7,O} & 1 & \ddot{x}_{1,O} & \ddot{y}_{1,O} & \dot{\varOmega }_{z1,O} & 1 & \ddot{x}_{5,O} & \ddot{y}_{5,O} & \dot{\varOmega }_{z5,O} & 1 \end{array}\displaystyle \right ]^{\mathrm{T}} . \end{aligned}$$
(58)

To solve the overall transfer equation (56) in step (B4), we have to account for the boundary conditions \(\ddot{x}_{7,O} = \ddot{y}_{7,O} = 0\) and \(m_{z7,O} = 0\) by deleting the corresponding columns (1, 2 and 4) in \(\boldsymbol{U}_{\mathrm{all}}\). Further, the columns 7, 11 and 15 associated with the ones in vector (58) may be summed up and put to the right-hand side of Eq. (56). Additionally, the trivial equation in row 7 is removed. As a result, Eq. (56) reduces to an inhomogeneous algebraic equation

$$ \bar{\boldsymbol{U}}_{\mathrm{all}}\bar{\boldsymbol{z}}_{\mathrm{all}} = \boldsymbol{b} $$
(59)

with remaining \(9 \times 9\)-coefficient matrix \(\bar{\boldsymbol{U}}_{\mathrm{all}}\) and vector of unknowns

$$ \bar{\boldsymbol{z}}_{\mathrm{all}} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c@{\quad}c} \dot{\varOmega }_{z7,O} & q_{x7,O} & q_{y7,O} & \ddot{x}_{1,O} & \ddot{y}_{1,O} & \dot{\varOmega }_{z1,O} & \ddot{x}_{5,O} & \ddot{y}_{5,O} & \dot{\varOmega }_{z5,O} \end{array}\displaystyle \right ]^{\mathrm{T}}. $$
(60)

After solving Eq. (59), \(\boldsymbol{z}_{b1,O},\boldsymbol{z}_{b5,O}\) as part of vector (60) are known. For example, \(\boldsymbol{z}_{b1,O}\) may then be used to obtain \(\boldsymbol{z}_{a1,O}\) from Eq. (41) as

$$ \left [ \textstyle\begin{array}{c} m_{z} \\ q_{x} \\ q_{y} \end{array}\displaystyle \right ]_{1,O} = \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} mas_{1} & - mac_{1} & 4ma^{2}/3 \\ - m & 0 & - mas_{1} \\ 0 & - m & mac_{1} \end{array}\displaystyle \right ]\left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \end{array}\displaystyle \right ]_{1,O} + \left [ \textstyle\begin{array}{c} - magc_{1} \\ - mac_{1}\dot{\theta }_{1}^{2} \\ - mas_{1}\dot{\theta }_{1}^{2} - mg \end{array}\displaystyle \right ]. $$
(61)

By combining \(\boldsymbol{z}_{a1,O}\) and \(\boldsymbol{z}_{b1,O}\), the full state vector (42) is given. Substitution of \(\boldsymbol{z}_{b1,O}\) into Eq. (33) and use of matrices (38) gives

$$\begin{aligned} \boldsymbol{z}_{b1,I} =& \left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \end{array}\displaystyle \right ]_{1,I} = \boldsymbol{P}_{1} ( \boldsymbol{z}_{b1,O} + \boldsymbol{q}_{1} ) \equiv \boldsymbol{T}_{22}^{ - 1} ( \boldsymbol{z}_{b1,O} - \boldsymbol{f}_{b} ) \\ =& \left [ \textstyle\begin{array}{c@{\quad}c@{\quad}c} 1 & 0 & - 2as_{1} \\ 0 & 1 & 2ac_{1} \\ 0 & 0 & 1 \end{array}\displaystyle \right ]\left ( \left [ \textstyle\begin{array}{c} \ddot{x} \\ \ddot{y} \\ \dot{\varOmega }_{z} \end{array}\displaystyle \right ]_{1,O} - \left [ \textstyle\begin{array}{c} - 2ac_{1}\dot{\theta }_{1}^{2} \\ - 2as_{1}\dot{\theta }_{1}^{2} \\ 0 \end{array}\displaystyle \right ] \right ) \\ =& \left [ \textstyle\begin{array}{c} \ddot{x}_{1,O} - 2as_{1}\dot{\varOmega }_{z1,O} + 2ac_{1}\dot{\theta }_{1}^{2} \\ \ddot{y}_{1,O} + 2ac_{1}\dot{\varOmega }_{z1,O} + 2as_{1}\dot{\theta }_{1}^{2} \\ \dot{\varOmega }_{z1,O} \end{array}\displaystyle \right ]. \end{aligned}$$
(62)

By combining \(\boldsymbol{z}_{a1,I} = \boldsymbol{0}\) with this result for \(\boldsymbol{z}_{b1,I}\), the full state vector \(\boldsymbol{z}_{1,0}\) is obtained. With the same procedure, we can get also all state vectors in the second subchain, where the recursive formula (33) have to be applied three times in reverse transfer direction as specified in algorithmic step (B4).

With the above formulas, a simulation may be performed for initial conditions \(\theta _{1} ( 0 ) = \theta _{3} ( 0 ) = \theta _{5} ( 0 ) = \pi / 2\), \(\theta _{7} ( 0 ) = 0\), \(\dot{\theta }_{i} ( 0 ) = 0\ \forall i\). In Fig. 3, the computational results (black line) are compared with those of ADAMS [10] (stars) showing a perfect match, which validates the proposed procedure. The numerical simulation was performed with a fourth-order Runge–Kutta integration scheme with constant step-size \(\Delta t = 0.001\ \text{s}\).

Fig. 3
figure 3

Motion of the four bodies of the pendulum system in Fig. 2

5.2 Large scale examples

The real strength of the new version of the Riccati MSTMM is the analysis of branch systems with long chains. In order to see the computational efficiency of the proposed method, numerical simulations of the branch system in Fig. 1(a) with a wide range of DOFs [11] were carried out and compared with ADAMS which uses Cartesian coordinates with constraints, resulting in differential-algebraic-equations. The parameters of the bodies are the same as in the demonstration example. Each body is connected with a 3DOF ball-and-socket hinge. The initial condition is that of Fig. 1(a) where body \(N\) hanged on the ceiling and the multi-input body 11 is horizontal, while others are vertical.

The first application example consists of 500 bodies associated with \(N=999\). Both methods are able to simulate the system. The simulation result of the rotation about the \(\boldsymbol{z}\)-axis of two boundary bodies (1 and \(N\)) and the multi-input body 11 is shown in Fig. 4 which agrees very well for both procedures. However, the time cost for the proposed method is by a factor of 36 lower than that with ADAMS as shown in Table 1. The CPU used is Xeon E5-2640 2.00 GHz. For higher number of bodies, ADAMS fails due to running out of computer memory whereas Riccati scales only linearly with the number of bodies. This validates that the computational speed and efficiency are improved with the proposed method.

Fig. 4
figure 4

Motion of three bodies of the branch system in Fig. 1 for \(N=999\)

Table 1 Computational time for the branch system in Fig. 1

6 Conclusions

Based on the new version of MSTMM, the Riccati transformation is introduced to obtain a new version of Riccati MSTMM. This is achieved by developing a transfer equation of a multi-input subsystem for branch systems and establishing recursion formula for the transfer equation. Two algorithms are proposed, one for chain systems and one for branch systems, with clear rules how to use the recursion formula iteratively along chains and subchains. Compared with MSTMM and ordinary multibody system dynamics, the proposed method benefits from advantages regarding size of matrices and algorithmic stability. It is also ensured that the overall transfer equation satisfies strictly the boundary conditions.

Application to a simple example demonstrates the easy use of the procedure, and several examples computed numerically for large branch systems demonstrate good agreement with classical strategies, validating the proposed method as well as its higher computational speed compared to classical multibody system formulations.