1 Introduction

Parallel mechanisms, closed-loop link structures, are receiving widespread attention because they provide much higher stiffness, payload capability, more accurate positioning, higher speed and acceleration operation compared with serial counterparts (Gosselin and Angeles 1998; Merlet 2000). Parallel mechanisms could be found in many practical applications, such as aircraft simulators (Stewart 1965; Tsai 1999), positional tracker and telescopes (Dunlop and Jones 1999; Carretero et al. 2000). Recently, they have been used by many companies in development of high precision machine tools (Huang et al. 2004), such as Giddings and Lewis, Hexel and Toyoda.

In recent years, many research works have been conducted on dynamics of the parallel mechanisms (Lebret et al. 1993; Zanganeh et al. 1997). In the context of real-time control, the relevant objective of the dynamics is to determine the input force, which must be exerted by actuators in order to produce a given trajectory of the end-effectors. Several methods such as Lagrange formulation (Xiuling et al. 2011; Lee and Geng 1993), Newton–Euler formulation (Dasgupta and Mruthyunjaya 1998a, b; Lu and Hu 2006) principle of virtual work (Tsai 2000; Sokolov and Xirouchakis 2007; Zhang and Song 1993) and other methods (Huang et al. 2002) are proposed to derive dynamic equations of parallel mechanisms.

Inverse dynamic analysis requires that the actuator of a parallel mechanism to be specified in terms of its input-force–time history, thus a motion path planning of the end-actuator is necessary.

In this paper, a simple and efficient method is proposed to derive inverse dynamics formulations of a 6 degree-of-freedom (6-DOF) parallel mechanism for dynamic simulation. The purpose of the paper is to analyze the inverse dynamics of a DOF parallel mechanism in which inertial forces of all links and moving platform are considered. In this paper, inverse dynamics formulation will be derived based on principle of Kane. By this method, we can avoid the explicit constraints and easily establish the dynamic formulation form each link of the parallel mechanism.

This paper is organized as follows: in Sect. 2, Kane formulation is introduced; next, the structure of 6-DOF parallel mechanism, inertial coordinate frame and moving coordinate frame are set forth in Sect. 3; kinematics analysis is introduced in Sect. 4; inverse dynamics equations are complete derived based on the principle of Kane in Sect. 5; in Sect. 6, the numerical simulation is implemented by utilizing of MATLAB and ADAMS.

2 Kane formulation

Based on the principle of Kane, the dynamics formulations of a multibody system with n bodies could be written as follows.

$$ K_{\gamma } + K_{\gamma }^{*} = 0\,\,\,\,\left( {\gamma = 1,\,2, \ldots ,f} \right) $$
(1)

In Eq. 1, \( K_{\gamma } \) is generalized active force of the generalized velocity γ; \( K_{\gamma }^{*} \) is generalized inertial force of the generalized velocities γ. According to principle of Kane, the calculation of acceleration and partial acceleration, the partial velocities of mass centers, and partial angular velocities of all links are required.

3 Model description

The mechanism studied in this paper is a 6-DOF parallel mechanism, which is shown in Fig. 1, herein referred to as a 6-SPS (spherical-prismatic-spherical) parallel mechanism.

Fig. 1
figure 1

Model of 6-SPS parallel mechanism

This parallel mechanism consists of a moving platform which is manipulated by six actuated links. Each link is connected with fixed platform and moving platform through spherical hinge. Since six links are identical, one link is choosed to derive dynamic equation. As shown in Fig. 2, it illustrates a link of parallel mechanism. Coordinate frames C um -X um Y um Z um and C bm -X bm Y bm Z bm are two moving coordinate frames that are located in up link and bottom link respectively. The origin of C um is located the in mass centre of up extensible link. The origin of C bm is located in the mass centre of bottom extensible link. Axis X um and axis X bm along with link A i B i (i = 1, 2,…,6). Axis Y um and axis Y bm are perpendicular to plane OA i B i (i = 1, 2,…,6). Axis Z um and axis Z bm comply with right hand rule.

Fig. 2
figure 2

One link of parallel mechanism

O-XYZ is inertial coordinate frame that fixed on the fixed platform of parallel mechanism. O 1-X 1 Y 1 Z 1 is moving coordinate frame that fixed on the moving platform of parallel mechanism. The origin of the inertial coordinate frame O-XYZ locates in the mass center of the fixed platform. The original of the moving coordinate frame O 1-X 1 Y 1 Z 1 locates in the mass center of the moving platform.

4 Kinematics analysis

q = [x, y, z, α, β, γ]T is defined as generalized coordinate vector of the system. x, y and z denote orientation vector of the origin of the moving coordinate frame O 1-X 1 Y 1 Z 1 in inertial coordinate frame O-XYZ, and α, β and γ denote three Euler angles of moving coordinate frame O 1-X 1 Y 1 Z 1 in inertial coordinate frame O-XYZ. Thus, generalized velocity of the moving platform could be written as \( \mathop q\limits^{ \cdot } = \left[ {\begin{array}{*{20}c} {\mathop {x,}\limits^{ \cdot } } & {\mathop {y,}\limits^{ \cdot } } & {\mathop {z,}\limits^{ \cdot } } & {\mathop {\alpha ,}\limits^{ \cdot } } & {\mathop {\beta ,}\limits^{ \cdot } } & {\mathop \gamma \limits^{.} } \\ \end{array} } \right]^{T} = \left[ {\begin{array}{*{20}c} {v,} & \omega \\ \end{array} } \right]^{T} \) in inertial coordinate frame O-XYZ. v and ω denote line velocity and angular velocity of the moving platform respectively.

According to Fig. 2, vector equation of link A i B i could be written as follows.

$$ S = P + Rb_{i} - A_{i} \,\,\,\,(i = 1,\, 2, \ldots , 6) $$
(2)

where \( R = \left[ {\begin{array}{*{20}c} {c\beta c\gamma } & { - c\beta s\gamma } & {s\beta } \\ {s\alpha s\beta c\gamma + c\alpha s\gamma } & {c\alpha c\gamma - s\alpha s\beta s\gamma } & { - s\alpha c\beta } \\ {s\alpha s\gamma - c\alpha s\beta c\gamma } & {c\alpha s\beta s\gamma + s\alpha c\gamma } & {c\alpha c\beta } \\ \end{array} } \right]\), s denotes sine function and c denotes cosine function. In Eq. 2 S denotes the vector of link A i B i in inertial coordinate frame O-XYZ; P denotes orientation vectors of the origin of the moving coordinate frame O 1-X 1 Y 1 Z 1 in inertial coordinate frame O-XYZ; b i denotes the orientation vector of point B i in moving coordinate frame O 1-X 1 Y 1 Z 1; A i denotes the orientation vector of point A i in inertial coordinate frame O-XYZ; R denotes transformation matrix.

By differentiating Eq. 2, the equation could be written as follows

$$ \mathop S\limits^{ \cdot } = \mathop P\limits^{ \cdot } + \omega \times c_{i} $$
(3)

where c i  = R b i . \( \mathop S\limits^{ \cdot } \) denotes the velocity of the point B i in inertial coordinate frame. \( \mathop P\limits^{ \cdot } \) denotes the velocity of the origin O 1 in the inertial coordinate frame. \( \omega \) denotes the angular velocity of the moving platform in inertial coordinate frame.

It is assumed that the length l and unit vector s of link A i B i are predefined. There exists the formulation s = S/l and Eq. 3 could be transformed as follows

$$ \mathop S\limits^{ \cdot } = \mathop l\limits^{ \cdot } s + \omega_{l} \times S $$
(4)

where \( \mathop l\limits^{ \cdot } \) denotes relative line velocity between up link and bottom link; \( \omega_{l} \) denotes angular velocity of link A i B i .

Cross-producting with unit vector s on both sides of Eq. 4 yields

$$ \omega_{l} = \frac{{s \times \mathop S\limits^{ \cdot } }}{l} = \frac{{s \times \left( {v + \omega \times c_{i} } \right)}}{l},\,\,\,\,\left( {i = 1,\,2, \ldots ,6} \right) $$
(5)

Mass centre velocity of moving platform v m could be written as follows

$$ v_{m} = v + \omega \times r_{m} $$
(6)

where r m denotes mass centre orientation vector of moving platform in moving coordinate frame.

Line velocity of point B i in moving platform could be obtained

$$ v_{{B_{i} }} = v + \omega \times r_{{B_{i} }} \,\,\,\,\left( {i = 1,\,2, \ldots ,6} \right) $$
(7)

where \( r_{{B_{i} }} \) denotes orientation vector of point B i in moving coordinate frame.

Mass centre velocity of bottom link v dm could be obtained

$$ v_{dm} = \omega_{l} \times S_{dm} = l_{dm} \left( {\omega_{l} \times s} \right) = \frac{{l_{d} }}{2}\left( {\omega_{l} \times s} \right) $$
(8)

where l d denotes the length of the bottom link and l dm denotes the length from point A i to mass centre of bottom link.

Mass centre velocity of up link v um could be obtained

$$ v_{um} = \mathop l\limits^{ \cdot } s + \left( {l - \frac{{l_{u} }}{2}} \right)\left( {\omega_{l} \times s} \right) $$
(9)

where l u denotes the length of the up link.

Relative line velocity between up link and bottom link could be obtained

$$ v_{r} = \mathop S\limits^{ \cdot } \cdot s = \left( {v + \omega \times c_{i} } \right) \cdot s $$
(10)

Partial velocity \( v_{m}^{k} \) and partial angular velocity \( \omega_{m}^{k} \) of mass centre of the moving platform could be obtained (Huang et al. 2002)

$$ v_{m}^{k} = \left[ {I_{3} ;\,I_{3} \times r_{m} } \right] $$
(11)

where I 3 is 3 × 3 unit matrix.

$$ \omega_{m}^{k} = \left[ {0_{3} ;\,I_{3} } \right] $$
(12)

where 0 3 is 3 × 3 zero matrix.

Partial angular velocity \( \omega_{l}^{k} \) of links could be obtained (Huang et al. 2002)

$$ \omega_{l}^{k} = \left[ {\frac{{s \times I_{3} }}{l};\,\frac{{\left( {s^{T} c} \right)I_{3} - cs^{T} }}{l}} \right] $$
(13)

where c = [c i ]

Partial velocity \( v_{dm}^{k} \) of up links could be obtained

$$ v_{dm}^{k} = \frac{{l_{d} }}{2l}\left[ {I_{3} - ss^{T} ;\,\left[ {\left( {s^{T} c} \right)I_{3} - cs^{T} } \right] \times s} \right] $$
(14)

Partial velocity \( v_{um}^{k} \) of up links could be obtained

$$ v_{um}^{k} = \left[ {s^{T} I_{3} + \left( {1 - \frac{{l_{u} }}{2l}} \right)\left( {I_{3} - ss^{T} } \right);\,\left( {c \times s} \right)^{T} I_{3} + \left( {1 - \frac{{l_{u} }}{2l}} \right)\left[ {\left( {s^{T} c} \right) + \left( {cs^{T} } \right)} \right] \times s} \right] $$
(15)

Partial velocity \( v_{r}^{k} \) of up link and bottom link corresponding to their relative velocity could be obtained

$$ v_{r}^{k} = \left[ {s^{T} I_{3} ;\,\left( {c \times s} \right)^{T} I_{3} } \right] $$
(16)

5 Dynamics analysis

Generalized active forces of constrains are zero, thus neglecting constrains in calculation of generalized active forces. F i denotes driving force in link A i B i , thus generalized active force corresponding to generalized velocity \( \mathop q\limits^{ \cdot } \) could be obtained

$$ F_{{\mathop q\limits^{ \cdot } }} = F_{i} \cdot v_{{\mathop q\limits^{ \cdot } }}^{k} \,\,\,\,\left( {i = 1,\,2, \ldots ,6} \right) $$
(17)

M is predefined mass of moving platform. M id and M iu are predefined the mass of bottom link and up link in link A i B i respectively. F W and m w denote external force and torque that exerted on the mass centre of the moving platform. g denotes gravity acceleration. Moving platform’s generalized active force F vx , F vy and F vz corresponding to generalized velocities v x , v y and v z could be obtained (Huang et al. 2002).

$$ \begin{gathered} F_{vx} = Mg \cdot v_{m,\,vx}^{k} + F_{w} \cdot v_{m,\,vx}^{k} + \sum\limits_{i = 1}^{6} {F_{i} } \cdot \left( {\mathop l\limits^{ \cdot } s} \right)_{vx}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} g \cdot v_{idm,\,vx}^{k} + M_{iu} g \cdot v_{ium,\,vx}^{k} } \right)} \hfill \\ \end{gathered} $$
(18)
$$ \begin{gathered} F_{vy} = Mg \cdot v_{m,\,vy}^{k} + F_{w} \cdot v_{m,\,vy}^{k} + \sum\limits_{i = 1}^{6} {F_{i} } \cdot \left( {\mathop l\limits^{ \cdot } s} \right)_{vy}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} g \cdot v_{idm,\,vy}^{k} + M_{iu} g \cdot v_{ium,\,vy}^{k} } \right)} \hfill \\ \end{gathered} $$
(19)
$$ \begin{gathered} F_{vz} = Mg \cdot v_{m,\,vz}^{k} + F_{w} \cdot v_{m,\,vz}^{k} + \sum\limits_{i = 1}^{6} {F_{i} } \cdot \left( {\mathop l\limits^{ \cdot } s} \right)_{vz}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} g \cdot v_{idm,\,vz}^{k} + M_{iu} g \cdot v_{ium,\,vz}^{k} } \right)} \hfill \\ \end{gathered} $$
(20)

Moving platform’s generalized active forces F ωx , F ωy and F ωz of the generalized velocities ω x , ω y and ω z could be obtained (Huang et al. 2002)

$$ \begin{gathered} F_{\omega x} = Mg \cdot v_{m,\,\omega x}^{k} + m_{w} \cdot v_{m,\,\omega x}^{k} + \sum\limits_{i = 1}^{6} {F_{i} } \cdot \left( {\mathop l\limits^{ \cdot } s} \right)_{\omega x}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} g \cdot v_{idm,\,\omega x}^{k} + M_{iu} g \cdot v_{ium,\,\omega x}^{k} } \right)} \hfill \\ \end{gathered} $$
(21)
$$ \begin{gathered} F_{\omega y} = Mg \cdot v_{m,\,\omega y}^{k} + m_{w} \cdot v_{m,\,\omega y}^{k} + \sum\limits_{i = 1}^{6} {F_{i} } \cdot \left( {\mathop l\limits^{ \cdot } s} \right)_{\omega y}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} g \cdot v_{idm,\,\omega y}^{k} + M_{iu} g \cdot v_{ium,\,\omega y}^{k} } \right)} \hfill \\ \end{gathered} $$
(22)
$$ \begin{gathered} F_{\omega z} = Mg \cdot v_{m,\,\omega z}^{k} + m_{w} \cdot v_{m,\,\omega z}^{k} + \sum\limits_{i = 1}^{6} {F_{i} } \cdot \left( {\mathop l\limits^{ \cdot } s} \right)_{\omega z}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} g \cdot v_{idm,\,\omega z}^{k} + M_{iu} g \cdot v_{ium,\,\omega z}^{k} } \right)} \hfill \\ \end{gathered} $$
(23)

Moving platform’s generalized inertial forces \( F_{vx}^{*} \), \( F_{vy}^{*} \) and \( F_{vz}^{*} \) of the generalized velocities v x , v y and v z could be obtained

$$ \begin{gathered} F_{vx}^{*} = - Ma_{m} \cdot v_{m,\,vx}^{k} - \sum\limits_{i = 1}^{6} {\left( {M_{id} a_{id} \cdot v_{idm,\,vx}^{k} + M_{iu} a_{iu} \cdot v_{ium,\,vx}^{k} } \right)} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,vx}^{k} - \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,vx}^{k} \hfill \\ \end{gathered} $$
(24)
$$ \begin{gathered} F_{vy}^{*} = - Ma_{m} \cdot v_{m,\,vy}^{k} - \sum\limits_{i = 1}^{6} {\left( {M_{id} a_{id} \cdot v_{idm,\,vy}^{k} + M_{iu} a_{iu} \cdot v_{ium,\,vy}^{k} } \right)} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,vy}^{k} - \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,vy}^{k} \hfill \\ \end{gathered} $$
(25)
$$ \begin{gathered} F_{vz}^{*} = - Ma_{m} \cdot v_{m,\,vz}^{k} - \sum\limits_{i = 1}^{6} {\left( {M_{id} a_{id} \cdot v_{idm,\,vz}^{k} + M_{iu} a_{iu} \cdot v_{ium,\,vz}^{k} } \right)} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,vz}^{k} - \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,vz}^{k} \hfill \\ \end{gathered} $$
(26)

where a id and a iu denote line acceleration of up link and bottom link in link A i B i respectively. i id and i iu denote rotary inertia of up link and bottom link in link A i B i respectively. \( \varepsilon_{i\tau } \) denotes angular acceleration of link A i B i .

Moving platform’s generalized inertial forces \( F_{\omega x}^{*} ,\;F_{\omega y}^{*} \) and \( F_{\omega z}^{*} \) of the generalized velocities ω x , ω y and ω z could be obtained

$$ \begin{gathered} F_{\omega x}^{*} = - Ma_{m} \cdot v_{\omega x}^{k} - \left( {I_{m} \varepsilon_{m} + \omega_{m} \times I_{m} \omega_{m} } \right) \cdot \omega_{\omega x}^{k} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {M_{id} a_{id} \cdot v_{idm,\,\omega x}^{k} + M_{iu} a_{iu} \cdot v_{ium,\,\omega x}^{k} } \right)} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,\omega x}^{k} - \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,\omega x}^{k} \hfill \\ \end{gathered} $$
(27)
$$ \begin{gathered} F_{\omega y}^{*} = - Ma_{m} \cdot v_{\omega y}^{k} - \left( {I_{m} \varepsilon_{m} + \omega_{m} \times I_{m} \omega_{m} } \right) \cdot \omega_{\omega y}^{k} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {M_{id} a_{id} \cdot v_{idm,\,\omega y}^{k} + M_{iu} a_{iu} \cdot v_{ium,\,\omega y}^{k} } \right)} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,\omega y}^{k} - \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,\omega y}^{k} \hfill \\ \end{gathered} $$
(28)
$$ \begin{gathered} F_{\omega z}^{*} = - Ma_{m} \cdot v_{\omega z}^{k} - \left( {I_{m} \varepsilon_{m} + \omega_{m} \times I_{m} \omega_{m} } \right) \cdot \omega_{\omega z}^{k} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {M_{id} a_{id} \cdot v_{idm,\,\omega z}^{k} + M_{iu} a_{iu} \cdot v_{ium,\,\omega z}^{k} } \right)} \hfill \\ \, - \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,\omega z}^{k} - \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,\omega z}^{k} \hfill \\ \end{gathered} $$
(29)

where \( \varepsilon_{m} \) denotes angular acceleration of the moving platform; \( \varepsilon_{i\tau } \) denotes tangential acceleration of the link; I m denotes rotary inertia of the moving platform; I id denotes rotary inertia of the bottom link; I iu denotes rotary inertia of the up link;

The transformation of Eq. 1 could be written as follows

$$ \left. {\begin{array}{*{20}c} {F_{vx} + F_{vx}^{*} = 0} \\ {F_{vy} + F_{vy}^{*} = 0} \\ {F_{vz} + F_{vz}^{*} = 0} \\ {F_{\omega x} + F_{\omega x}^{*} = 0} \\ {F_{\omega y} + F_{\omega y}^{*} = 0} \\ {F_{\omega z} + F_{\omega z}^{*} = 0} \\ \end{array} } \right\} $$
(30)

Substituting Eqs. 1829 into Eq. 30 and rearranging that a set of line equation could be obtained corresponding to external force F i (i = 1, 2,…,6)

$$ JF = C $$
(31)

where J is Jacobian matrix of the parallel mechanism, and C i (i = 1, 2,…,6) just as follows

$$ \begin{gathered} C_{1}\,=\,M\left( {a_{m} - g} \right) \cdot v_{m,\,vx}^{k} - F_{w} \cdot v_{m,\,vx}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} \left( {a_{id} - g} \right) \cdot v_{idm,\,vx}^{k} + M_{iu} \left( {a_{iu} - g} \right) \cdot v_{ium,\,vx}^{k} } \right)} \, \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,vx}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,vx}^{k} \hfill \\ \end{gathered} $$
$$ \begin{gathered} C_{2}\,=\,M\left( {a_{m} - g} \right) \cdot v_{vy}^{k} - F_{w} \cdot v_{m,\,vy}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} \left( {a_{id} - g} \right) \cdot v_{idm,\,vy}^{k} + M_{iu} \left( {a_{iu} - g} \right) \cdot v_{ium,\,vy}^{k} } \right)} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,vy}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,vy}^{k} \hfill \\ \end{gathered} $$
$$ \begin{gathered} C_{3}\,=\,M\left( {a_{m} - g} \right) \cdot v_{vz}^{k} - F_{w} \cdot v_{m,\,vz}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} \left( {a_{id} - g} \right) \cdot v_{idm,\,vz}^{k} + M_{iu} \left( {a_{iu} - g} \right) \cdot v_{ium,\,vz}^{k} } \right)} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,vz}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,vz}^{k} \hfill \\ \end{gathered} $$
$$ \begin{gathered} C_{4}\,=\,M\left( {a_{m} - g} \right) \cdot v_{m,\,\omega x}^{k} - m_{w} \cdot v_{m,\,\omega x}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} \left( {a_{id} - g} \right) \cdot v_{idm,\,\omega x}^{k} + M_{iu} \left( {a_{iu} - g} \right) \cdot v_{ium,\,\omega x}^{k} } \right)} \hfill \\ \, + \left( {I_{m} \varepsilon_{m} + \omega_{m} \times I_{m} \omega_{m} } \right) \cdot \omega_{\omega x}^{k} + \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,\omega x}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,\omega x}^{k} \hfill \\ \end{gathered} $$
$$ \begin{gathered} C_{5}\,=\,M\left( {a_{m} - g} \right) \cdot v_{m,\,\omega y}^{k} - m_{w} \cdot v_{m,\,\omega y}^{k} \hfill \\ \, +\, \sum\limits_{i = 1}^{6} {\left( {M_{id} \left( {a_{id} - g} \right) \cdot v_{idm,\,\omega y}^{k} + M_{iu} \left( {a_{iu} - g} \right) \cdot v_{ium,\,\omega y}^{k} } \right)} \hfill \\ \, +\, \left( {I_{m} \varepsilon_{m} + \omega_{m} \times I_{m} \omega_{m} } \right) \cdot \omega_{\omega y}^{k} \,+\,\sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,\omega y}^{k} \hfill \\ \, + \,\sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,\omega y}^{k} \hfill \\ \end{gathered} $$
$$ \begin{gathered} C_{6} = M\left( {a_{m} - g} \right) \cdot v_{m,\,\omega z}^{k} - m_{w} \cdot v_{m,\,\omega z}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {M_{id} \left( {a_{id} - g} \right) \cdot v_{idm,\,\omega z}^{k} + M_{iu} \left( {a_{iu} - g} \right) \cdot v_{ium,\,\omega z}^{k} } \right)} \hfill \\ \, + \left( {I_{m} \varepsilon_{m} + \omega_{m} \times I_{m} \omega_{m} } \right) \cdot \omega_{\omega z}^{k} + \sum\limits_{i = 1}^{6} {\left( {I_{id} \varepsilon_{i\tau } + \omega_{il} \times I_{id} \omega_{il} } \right)} \cdot \omega_{il,\,\omega z}^{k} \hfill \\ \, + \sum\limits_{i = 1}^{6} {\left( {I_{iu} \varepsilon_{i\tau } + \omega_{il} \times I_{iu} \omega_{il} } \right)} \cdot \omega_{il,\,\omega z}^{k} \hfill \\ \end{gathered} $$

where a m denotes acceleration of the moving platform.

6 Numerical example

In this section, simulations of the inverse dynamics are performed to study the inverse dynamic characteristics of the actuated forces in links. A line trajectory is utilized for the demonstration. Moving platform and fixed platform are both circle platform. The radius and mass of moving platform are 0.1 m and 1 kg respectively. Initial orientation vector of the moving platform mass center is [0, 0.2, 0.45]T m in inertial coordinate frame. Initial velocity vector of the moving platform mass centre is v = [0, 0.1, 0]T m/s, and initial acceleration vector of the moving platform mass centre is a = [0, 0.1, 0]T m/s2. External forces that exerted on the mass centre of moving platform is F w  = [80, −50, −100]T N. Moving time of the moving platform is 2 s.

Inverse dynamics calculation program of 6-SPS parallel mechanism is programmed by using of MATLAB. Driving forces of six links is solved out by calculation program as shown in Fig. 3.

Fig. 3
figure 3

Driving forces of links

The software ADAMS is widely used for the mechanical system dynamic simulation. In this study, the ADAMS is used to verify the inverse dynamics analysis derived above (Wu and Wu 2008). Firstly, the model is imported into the ADAMS software by adding various constrains; secondly, the driving forces data is imported into motion of the ADAMS model, their driving functions as below:

  • SFORCE_1: AKISPL (time, 0, spline_F1, 0),

  • SFORCE_2: AKISPL (time, 0, spline_F2, 0),

  • SFORCE_3: AKISPL (time, 0, spline_F3, 0),

  • SFORCE_4: AKISPL (time, 0, spline_F4, 0),

  • SFORCE_5: AKISPL (time, 0, spline_F5, 0),

  • SFORCE_6: AKISPL (time, 0, spline_F6, 0),

Import the above six driving functions into the six forces driving respectively, we can get the parallel mechanism trajectory, shown as Fig. 4. The relationship of velocity, acceleration and displacement of mass centre of moving platform with time are shown in Figs. 5, 6 and 7.

Fig. 4
figure 4

The simulation trajectory of mass centre

Fig. 5
figure 5

The relationship between mass center velocity and time

Fig. 6
figure 6

The relationship between mass center acceleration and time

Fig. 7
figure 7

The relationship between mass center displacement and time

From above Figs. 4, 5, 6 and 7, we can see that, the simulation trajectory and other kinds of motion parameters are consistent with the planned ones, which proves the correctness and feasibility of inverse dynamics mathematic model. Cross-producting and dot-producting are main computing means in dynamic model which are suitable for computer solving and with high speed. This method is suitable for the real-time control of parallel mechanisms in industrial field.