Keywords

1 Introduction

Dynamics modeling methods, both analytical and computational, for rigid models of multibody systems are well developed and many of their specializations for specific classes of systems are available. Due to the presence of friction, compliance, flexibility and other real system properties that need to be accounted for in modeling to obtain reliable dynamics models, many specializations of the modeling methods were developed within the classical mechanics approach. Also, constraints that are present in mechanical systems, both material and task-based, are merged into system dynamics using the classical mechanics approach. However, demands for high fidelity and accurate dynamical models from one hand and fast and simple derivations from the other hand, make room for new development methods for dynamics models of rigid-flexible and constrained multibody systems.

The paper presents a development of a new derivation method of a reference dynamics model of a rigid-flexible system model. The model including flexibility may describe dynamics and performance of lightweight and fast systems, e.g. ground or space manipulators, correctly and may serve their motion analysis and control design in the presence of constraints put upon them. The reference dynamics is the system model dynamics including all constraints upon it, i.e. kinematic or programmed constraints, which are assumed to be position or first order nonholonomic. The new derivation method of reference dynamics model of a rigid-flexible system models combines latest research results in dynamics of flexible multibody systems, a finite element method for modelling flexibility of spatial linkage links [1, 7, 8] as well as the dynamics modeling method for constrained systems, which does not use the Lagrange approach, i.e. both material and programmed constraints can be merged into a system dynamics [3,4,5]. The modeling method is referred to as the generalized programmed motion equations (GPME) method and it was originally developed for rigid system models [5]. The GPME method was automated for computational generation of constrained rigid body models in Jarzębowska et al. [6].

The reference dynamics model presented in the paper is derived for a rigid-flexible system model using the formalism of joint coordinates and homogeneous transformation matrices. This approach allows generating dynamics equations of a system, which is a manipulator model, without formulating additional material constraint equations. The constraints present in the reference dynamics model are the programmed ones only. The flexibility of a link is modeled using the rigid finite element method. The main advantage of this method is its ability of application of the rigid-body approach to modeling dynamics of multi-body systems with flexible links. The novelty of the presented method relies on the combination of dynamics modeling of flexible system models with the programmed constraints satisfaction problem for them. The computational algorithm underlying the derivation method presented in the paper is based on Generalized Programmed Motion Equations (GPME) approach. The reference dynamics model derivation is demonstrated for a flexible link manipulator model.

The paper is organized as follows. Section 1 delivers a short introduction of the ideas, motivation and the origin of the presented modeling approach. Section 2 details a mathematical model of a three link manipulator with a flexible link. Simulation studies illustrating the application of the derivation of the reference dynamics for the manipulator are presented in Sect. 3. The paper ends with conclusions and a reference list.

2 Mathematical Model of a Three Link Manipulator Model with a Flexible Link

Three link spatial manipulator model composed of a rotary column 1, a rotary arm 2 and a slider 3 (Fig. 1) is analysed in the paper. It is assumed that the link 2 can be flexible and other links are treated as non-deformable. All joints are modelled as ideal, i.e. friction and clearance are neglected, and the rotary column 1 is driven by a driving torque \( t_{dr}^{(1)} \). Motion of each link is described by homogeneous transformations and joint coordinates. The flexible link 2 is discretized by means of the modified Rigid Finite Element Method proposed in [1, 7, 8]. In this method flexible links are replaced by a set of rigid finite elements (rfe) connected by massless and dimensionless spring-damping elements (sde).

Fig. 1
figure 1

Model of spatial manipulator with a flexible link

The vector of generalized coordinates of the manipulator is composed of the following sub-vectors:

$$ \begin{array}{*{20}l} {{\mathbf{q}} = \left( {q_{i} } \right)_{{i = 1, \ldots ,n_{dof} }} } \hfill & { = \left[ {\begin{array}{*{20}c} {{\tilde{\mathbf{q}}}^{{(1)^{T} }} } & {{\tilde{\mathbf{q}}}^{{(2)^{T} }} } & {{\tilde{\mathbf{q}}}^{{(3)^{T} }} } \\ \end{array} } \right]^{T} } \hfill \\ {} \hfill & { = \left[ {\begin{array}{*{20}c} {\theta^{(1)} } & {\psi^{(2)} } & {{\tilde{\mathbf{q}}}_{f}^{{(2)^{T} }} } & {x^{(3)} } \\ \end{array} } \right]^{T} } \hfill \\ \end{array} , $$
(1)

where

\( {\tilde{\mathbf{q}}}_{f}^{(2)} \) :

vector containing generalized coordinates of rfes,

$$ {\tilde{\mathbf{q}}}_{f}^{(2)} = \left\{ {\begin{array}{*{20}l} {\emptyset ,} \hfill & {{\text{if the link is rigid (}}n_{rfe}^{(2)} = 1),} \hfill \\ {\left[ {\begin{array}{*{20}c} {{\tilde{\mathbf{q}}}^{{(2,1)^{T} }} } & \ldots & {{\tilde{\mathbf{q}}}^{{(2,r)^{T} }} } & \ldots & {{\tilde{\mathbf{q}}}^{{(2,n_{rfe}^{(2)} - 1)^{T} }} } \\ \end{array} } \right]^{T} ,} \hfill & {{\text{if the link is flexible (}}n_{rfe}^{(2)} > 1),} \hfill \\ \end{array} } \right. $$
\( {\tilde{\mathbf{q}}}_{{}}^{(2,r)} = \left[ {\begin{array}{*{20}c} {\psi_{{}}^{(2,r)} } & {\theta_{{}}^{(2,r)} } & {\varphi_{{}}^{(2,r)} } \\ \end{array} } \right]^{T} \) :

vector of generalized coordinates of \( {\text{rfe}}(2,\,r) \).

The motion of the manipulator is subjected to programmed constraints, which specify a desired motion of the manipulator end effector E, in z direction. It is assumed that a circle of radius \( r_{E,a} \) is the desired trajectory of the end-effector E in the plane \( {\hat{\mathbf{x}}}^{(0)} {\hat{\mathbf{z}}}^{(0)} \).

The programmed position constraints can be written in the form of algebraic equations as

$$ \Phi _{1} \equiv \left( {x_{E}^{(0)} } \right)^{2} + \left( {z_{E}^{(0)} } \right)^{2} - r_{E,a}^{2} = 0, $$
(2)
$$ \Phi _{2} \equiv y_{E}^{(0)} - y_{E,a}^{(0)} (t) = 0, $$
(3)

where \( {\mathbf{r}}_{E}^{(0)} = \left[ {\begin{array}{*{20}c} {x_{E}^{(0)} } & {y_{E}^{(0)} } & {z_{E}^{(0)} } \\ \end{array} } \right]^{T} =\Theta {\mathbf{T}}^{(3)} {\mathbf{r}}_{E}^{(3)} \), \( \Theta = \left[ {\begin{array}{*{20}c} {\Theta _{1} } \\ {\Theta _{2} } \\ {\Theta _{3} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ \end{array} } \right] \).

The derivation method of a reference dynamics model for a constrained system based upon the GPME requires double differentiation of the position constraints (2) and (3). After their differentiation with respect to time, velocity level programmed constraints are obtained as

$$ {\dot{\Phi }}_{1} \equiv {\mathbf{D}}_{r} ({\mathbf{q}})\,{\dot{\mathbf{q}}} = 0, $$
(4)
$$ {\dot{\Phi }}_{2} \equiv {\mathbf{D}}_{2} ({\mathbf{q}})\,{\dot{\mathbf{q}}} - \dot{y}_{E,a}^{(0)} (t) = 0, $$
(5)

where \( {\mathbf{D}}_{r} = \dot{x}_{E}^{(0)} {\mathbf{D}}_{1} + \dot{z}_{E}^{(0)} {\mathbf{D}}_{3} \), \( {\mathbf{D}} = \left[ {\begin{array}{*{20}c} {{\mathbf{D}}_{1} } \\ {{\mathbf{D}}_{2} } \\ {{\mathbf{D}}_{3} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {{\mathbf{T}}_{1}^{(3)} {\mathbf{r}}_{E}^{(3)} } & \ldots & {{\mathbf{T}}_{{n_{dof} }}^{(3)} {\mathbf{r}}_{E}^{(3)} } \\ \end{array} } \right] \).

Differentiating (4) and (5) again with respect to time leads to the programmed constraint equations at the acceleration level:

$$ {\ddot{\Phi }}_{1} \equiv {\mathbf{D}}_{r} ({\mathbf{q}})\,{{\ddot{\bf q}}} - \xi_{1} ({\mathbf{q}},{\dot{\mathbf{q}}}) = 0, $$
(6)
$$ {\ddot{\Phi }}_{2} \equiv {\mathbf{D}}_{2} ({\mathbf{q}})\,{{\ddot{\bf q}}} - \xi_{2} ({\mathbf{q}},\,{\dot{\mathbf{q}}}) - \ddot{y}_{E,a}^{(0)} (t) = 0, $$
(7)

where \( \xi_{1} = - \left( {\dot{x}_{E}^{(0)} \,{\mathbf{D}}_{1} + x_{E}^{(0)} \,{\dot{\mathbf{D}}}_{1} + \dot{z}_{E}^{(0)} \,{\mathbf{D}}_{3} + z_{E}^{(0)} \,{\dot{\mathbf{D}}}_{3} } \right)\,{\dot{\mathbf{q}}} \), \( \xi_{2} = - {\dot{\mathbf{D}}}_{2} \,{\dot{\mathbf{q}}} \).

In the considered manipulator model the number of control inputs \( n_{c} = 2 \) is less than the number degrees of freedom of the manipulator, \( n_{c} < n_{dof} \), and it means that the considered model is underactuated.

Let us define sets containing dependent and independent coordinates of indices \( i_{{i_{c} }} \) and \( i_{{d_{c} }} \), respectively, in the generalized coordinate vector q. The resultant vector q can be thus partitioned into the set of independent coordinates \( {\mathbf{q}}_{{i_{c} }} \) and the set of dependent coordinates \( {\mathbf{q}}_{{d_{c} }} \). Indices of dependent and independent coordinates can be selected as follow:

$$ i_{{i_{c} }} \in \left\{ {1,3,4, \ldots ,n_{dof} - 1} \right\}, $$
(8)
$$ i_{{d_{c} }} \in \left\{ {2,n_{dof} } \right\}. $$
(9)

The corresponding generalized coordinate vector contains elements:

$$ {\mathbf{q}}_{{i_{c} }} = \left[ {\begin{array}{*{20}c} {\theta^{(1)} } & {\psi^{(2,1)} } & {\theta^{(2,1)} } & {\varphi^{(2,1)} } & \ldots & {\psi^{{(2,n_{rfe}^{(2)} - 1)}} } & {\theta^{{(2,n_{rfe}^{(2)} - 1)}} } & {\varphi^{{(2,n_{rfe}^{(2)} - 1)}} } \\ \end{array} } \right]^{T} , $$
(10)
$$ {\mathbf{q}}_{{d_{c} }} = \left[ {\begin{array}{*{20}c} {\psi^{(2)} } & {x^{(3)} } \\ \end{array} } \right]^{T} . $$
(11)

Dynamical equations of motion of the spatial manipulator with the first programmed constraints are derived using the algorithm based upon the GPME [3,4,5,6] and can be presented as follows:

$$ \frac{{\partial R_{1} }}{{\partial {\dot{\mathbf{q}}}_{{i_{c} }} }} + \sum\limits_{{j \in i_{{d_{c} }} }} {\frac{{\partial R_{1} }}{{\partial \dot{q}_{j} }}} \frac{{\partial \dot{q}_{j} }}{{\partial {\dot{\mathbf{q}}}_{{i_{c} }} }} = {\mathbf{0}}, $$
(12)

where

$$ R_{1} = \dot{E}_{k} - 2\sum\limits_{i = 1}^{{n_{dof} }} {\left[ {\frac{{\partial E_{k} }}{{\partial {\mathbf{q}}}}} \right]^{T} {\dot{\mathbf{q}}}} + \sum\limits_{i = 1}^{{n_{dof} }} {\left[ {\frac{{\partial E_{p} }}{{\partial {\mathbf{q}}}}} \right]^{T} {\dot{\mathbf{q}}}} - \sum\limits_{i = 1}^{{n_{dof} }} {{\mathbf{Q}}^{T} {\dot{\mathbf{q}}}} , $$
$$ \begin{aligned} & E_{k} = \sum\limits_{l = 1}^{{n_{l} }} {E_{k}^{(l)} } ,E_{k}^{(l)} = \left\{ {\begin{array}{*{20}l} {\frac{1}{2}{\text{tr}}\left\{ {{\dot{\mathbf{T}}}^{(l)} {\mathbf{H}}^{(l)} \left( {{\dot{\mathbf{T}}}^{(l)} } \right)^{T} } \right\},} \hfill & {n_{rfe}^{(l)} = 1} \hfill \\ {\sum\limits_{r = 0}^{{n_{sde}^{(l)} }} {\frac{1}{2}{\text{tr}}\left\{ {{\dot{\mathbf{T}}}^{(l,\,r)} {\mathbf{H}}^{(l,\,r)} \left( {{\dot{\mathbf{T}}}^{(l,\,r)} } \right)^{T} } \right\}} } \hfill & {n_{rfe}^{(l)} > 1} \hfill \\ \end{array} } \right., \\ & E_{p} = E_{p,g} + E_{p,f} , \\ & E_{p,g} = \sum\limits_{l = 1}^{{n_{l} }} {E_{p,g}^{(l)} } ,E_{p,g}^{(l)} = \left\{ {\begin{array}{*{20}l} {m^{(l)} g\,{\varvec{\Theta}}_{2} {\mathbf{T}}^{(l)} {\mathbf{r}}_{{C^{(l)} }}^{(l)} ,} \hfill & {n_{rfe}^{(l)} = 1} \hfill \\ {\sum\limits_{r = 0}^{{n_{sde}^{(l)} }} {m^{(l,\,r)} g\,{\varvec{\Theta}}_{2} {\mathbf{T}}^{(l,\,r)} {\mathbf{r}}_{{C^{(l,\,r)} }}^{(l,\,r)} ,} } \hfill & {n_{rfe}^{(l)} > 1} \hfill \\ \end{array} } \right., \\ & E_{p,f} = \sum\limits_{l = 1}^{{n_{l} }} {\sum\limits_{s = 1}^{{n_{sde}^{(2)} }} {E_{p,f}^{(l,s)} } } ,E_{p,f}^{(l,s)} = \frac{1}{2}{\tilde{\mathbf{q}}}^{{(l,\,s)^{T} }} {\mathbf{C}}^{(l,\,s)} \,{\tilde{\mathbf{q}}}^{(l,\,s)} , \\ \end{aligned} $$
$$ \begin{aligned} & {\mathbf{C}}^{(l,s)} = {\text{diag}}\left\{ {c_{\psi }^{(l,\,s)} ,\,c_{\theta }^{(l,\,s)} ,\,c_{\varphi }^{(l,\,s)} } \right\}, \\ & {\mathbf{Q}} = \left[ {\begin{array}{*{20}c} {t_{dr}^{(1)} } & {\mathbf{0}} \\ \end{array} } \right]^{T} . \\ \end{aligned} $$

After performing computations as indicated in (18), the generalized program motion equations (GPME) can be presented in the following form:

$$ \left[ {\begin{array}{*{20}c} {{\mathbf{M}}_{{i_{c} }} + \Delta {\mathbf{\rm M}}_{{i_{c} }} } \\ {{\mathbf{D}}_{r} } \\ {{\mathbf{D}}_{y} } \\ \end{array} } \right]{{\ddot{\bf q}}} = \left[ {\begin{array}{*{20}c} {{\mathbf{f}}_{{i_{c} }} + \Delta {\mathbf{f}}_{{i_{c} }} } \\ {\xi_{1} } \\ {\ddot{y}_{E,a}^{(0)} + \xi_{2} } \\ \end{array} } \right], $$
(13)

where

$$ \begin{aligned} & {\mathbf{M}}_{{i_{c} }} = \left( {m_{i,j} } \right)_{\begin{subarray}{l} i \in i_{{i_{c} }} , \\ j = 1, \ldots ,n_{dof} \end{subarray} } ,{\mathbf{M}} = \left( {m_{i,j} } \right)_{{i,j = 1, \ldots ,n_{dof} }} = \sum\limits_{l = 1}^{{n_{l} }} {{\mathbf{M}}_{(l)} } , \\ & {\mathbf{M}}^{(l)} = \left\{ {\begin{array}{*{20}l} {\left( {m_{ij}^{(l)} } \right)_{{i,j = 1, \ldots ,n_{dof}^{(l)} }} ,} \hfill & {n_{rfe}^{(l)} = 1} \hfill \\ {\sum\limits_{r = 0}^{{n_{rfe}^{(l)} - 1}} {{\mathbf{M}}^{(l,r)} ,} } \hfill & {n_{rfe}^{(l)} > 1} \hfill \\ \end{array} } \right.,{\mathbf{M}}^{(l,r)} = \left( {m_{ij}^{(l,r)} } \right)_{{i,j = 1, \ldots ,n_{dof}^{(l,r)} }} , \\ & \left. {m_{ij}^{(b)} } \right|_{{b \in \{ l,(l,r)\} }} = {\text{tr}}\left\{ {{\mathbf{T}}_{i}^{(b)} {\mathbf{H}}^{(b)} \left( {{\mathbf{T}}_{j}^{(b)} } \right)^{T} } \right\}, \\ \end{aligned} $$
$$ \Delta {\mathbf{M}}_{{i_{c} }} = \left( {\Delta m_{i,j} } \right)_{\begin{subarray}{l} i \in i_{{i_{c} }} \\ j = 1, \ldots ,n_{dof}^{{}} \end{subarray} } ,\Delta m_{i,j} = \sum\limits_{{k \in i_{{d_{c} }} }}^{{}} {m_{k,j} \frac{{\partial \dot{q}_{k} }}{{\partial \dot{q}_{i} }}} , $$
$$ \begin{array}{*{20}l} {{\mathbf{f}}_{{i_{c} }} = \left( {f_{i} } \right)_{{i \in i_{{i_{c} }} }} ,{\mathbf{f}} = \left( {f_{i,j} } \right)_{{i,j = 1,\, \ldots ,\,n_{dof} }} = {\mathbf{Q}} + \sum\limits_{l = 1}^{{n_{l} }} {\left( {{\mathbf{h}}_{{}}^{(l)} - {\mathbf{g}}_{{}}^{(l)} } \right)} - {\mathbf{C}}\,{\mathbf{q}},} \hfill \\ {{\mathbf{h}} = \left( {h_{i}^{{}} } \right)_{{i = 1,\, \ldots ,\,n_{dof} }} = \sum\limits_{l = 1}^{{n_{l} }} {{\mathbf{h}}^{(l)} } ,{\mathbf{h}}^{(l)} = \left\{ {\begin{array}{*{20}l} {\left( {h_{i}^{(l)} } \right)_{{i = 1,\, \ldots ,\,n_{dof}^{(l)} }} ,} \hfill & {n_{rfe}^{(l)} = 1} \hfill \\ {\sum\limits_{r = 0}^{{n_{rfe}^{(l)} - 1}} {{\mathbf{h}}^{(l,r)} ,} } \hfill & {n_{rfe}^{(l)} > 0} \hfill \\ \end{array} ,} \right.} \hfill \\ {{\mathbf{h}}_{{}}^{(l,r)} = \left( {h_{i}^{(l,r)} } \right)_{{i = 1, \ldots ,n_{dof}^{(l,r)} }} ,} \hfill \\ \begin{aligned} \left. {h_{i}^{(b)} } \right|_{{b \in \left\{ {l,\left( {l,r} \right)} \right\}}} & = \sum\limits_{m = 1}^{{n_{dof}^{(b)} }} {\sum\limits_{n = 1}^{{n_{dof}^{(b)} }} {{\text{tr}}\left\{ {{\mathbf{T}}_{i}^{(b)} {\mathbf{H}}^{(b)} \left( {{\mathbf{T}}_{m,n}^{(b)} } \right)^{T} } \right\}} } \dot{q}_{m}^{(b)} \dot{q}_{n}^{(b)} \\ & \quad + 2\sum\limits_{m = 1}^{{n_{dof}^{(b)} }} {\sum\limits_{n = 1}^{{n_{dof}^{(b)} }} {{\text{tr}}\left\{ {{\mathbf{T}}_{m}^{(b)} {\mathbf{H}}^{(b)} \left( {{\mathbf{T}}_{i,n}^{(b)} } \right)^{T} } \right\}} } \dot{q}_{m}^{(b)} \dot{q}_{n}^{(b)} , \\ \end{aligned} \hfill \\ \end{array} $$
$$ \begin{aligned} & {\mathbf{g}} = \left( {g_{i} } \right)_{{i = 1, \ldots ,n_{dof} }} = \sum\limits_{l = 1}^{{n_{l} }} {{\mathbf{g}}^{(l)} } ,{\mathbf{g}}^{(l)} = \left\{ {\begin{array}{*{20}l} {\left( {g_{i}^{(l)} } \right)_{{i = 1, \ldots ,n_{dof}^{(l)} }} ,} \hfill & {n_{rfe}^{(l)} = 1} \hfill \\ {\sum\limits_{r = 0}^{{n_{rfe}^{(l)} - 1}} {{\mathbf{g}}^{(l,r)} ,} } \hfill & {n_{rfe}^{(l)} > 1} \hfill \\ \end{array} } \right., \\ & {\mathbf{g}}^{(l,r)} = \left( {g_{i}^{(l,r)} } \right)_{{i = 1, \ldots ,n_{dof}^{(l,r)} }} , \\ & \left. {g_{i}^{(b)} } \right|_{{b \in \{ l,(l,r)\} }} = m^{(b)} g\Theta _{2} {\mathbf{T}}_{i}^{(b)} {\mathbf{r}}_{{C^{(b)} }}^{(b)} , \\ \end{aligned} $$
$$ \begin{array}{*{20}l} {{\mathbf{C}} = {\text{diag}}\left\{ {{\mathbf{C}}^{ ( 1 )} , \ldots ,{\mathbf{C}}^{{ (n_{l} )}} } \right\},} \hfill \\ {{\mathbf{C}}^{(l)} = \left( {c_{i,j}^{(l)} } \right)_{{i,j = 1, \ldots ,n_{dof}^{(l)} }} = \left\{ {\begin{array}{*{20}l} {{\mathbf{0}},} \hfill & {n_{sde}^{(l)} = 0} \hfill \\ {{\text{diag}}\{ {\mathbf{0}},{\mathbf{C}}^{(l,1)} , \ldots ,{\mathbf{C}}_{{}}^{{(n_{sde}^{(l)} ,1)}} \} ,} \hfill & {n_{sde}^{(l)} > 0} \hfill \\ \end{array} } \right.} \hfill \\ {\Delta {\mathbf{f}}_{{i_{c} }} = \left( {\Delta f_{i} } \right)_{{i \in i_{{i_{c} }} }} ,\Delta f_{i} = \sum\limits_{{k \in i_{{d_{c} }} }}^{{}} {f_{k} \frac{{\partial \dot{q}_{k} }}{{\partial \dot{q}_{i} }}} .} \hfill \\ \end{array} , $$

Partial derivatives of dependent coordinates with respect to independent coordinates \( \left. {\frac{{\partial \dot{q}_{k} }}{{\partial \dot{q}_{i} }}} \right|_{{k \in \{ 2,\,n_{dof} \} }} \) can be obtained from the solution of the following system of linear equations:

$$ \frac{{\partial \dot{q}_{2}^{{}} }}{{\partial \dot{q}_{i}^{{}} }} + \frac{{D_{{r,n_{dof} }} }}{{D_{r,2} }}\frac{{\partial \dot{q}_{{n_{dof} }}^{{}} }}{{\partial \dot{q}_{i}^{{}} }} = - \frac{{D_{r,i} }}{{D_{r,2} }}, $$
(14)
$$ \frac{{\partial \dot{q}_{{n_{dof} }}^{{}} }}{{\partial \dot{q}_{i}^{{}} }} + \frac{{D_{2,2} }}{{D_{{2,n_{dof} }} }}\frac{{\partial \dot{q}_{2}^{{}} }}{{\partial \dot{q}_{i}^{{}} }} = - \frac{{D_{2,i} }}{{D_{{2,n_{dof} }} }}. $$
(15)

Constraints violation at the position and velocity levels is eliminated using the Baumgarte stabilization method [2]. The final form of the GPME is as follows:

$$ \left[ {\begin{array}{*{20}c} {{\mathbf{M}}_{{i_{c} }} + \Delta {\mathbf{\rm M}}_{{i_{c} }} } \\ {{\mathbf{D}}_{r} } \\ {{\mathbf{D}}_{2} } \\ \end{array} } \right]{{\ddot{\bf q}}} = \left[ {\begin{array}{*{20}c} {{\mathbf{f}}_{{i_{c} }} + \Delta {\mathbf{f}}_{{i_{c} }} } \\ {\xi_{1} - 2\alpha_{1} {\dot{\varPhi }}_{1} - \beta_{1}^{2}\Phi _{1} } \\ {\ddot{y}_{E,a}^{(0)} + \xi_{2} - 2\alpha_{2} {\dot{\varPhi }}_{2} - \beta_{2}^{2}\Phi _{2} } \\ \end{array} } \right]. $$
(16)

In numerical simulations it has been assumed that \( \left. {\alpha_{i} } \right|_{i = 1,\,2} = 100 \), \( \left. {\beta_{i} } \right|_{i = 1,\,2} = 50. \)

3 Numerical Study Results for the Flexible Link Manipulator Model

Numerical simulation results obtained for analysing the reference motion of the spatial manipulator subjected to the programmed constraints (2) and (3) are presented in this section. It is assumed that the driving torque is applied to the vertical column (1) and its time course is described by the following formula:

$$ t_{dr}^{(1)} (t) = \left\{ {\begin{array}{*{20}l} {10\,t_{dr,0}^{(1)} \,\left( {\frac{t}{{t_{0} }}} \right)^{3} - 15\,t_{dr,0}^{(1)} \,\left( {\frac{t}{{t_{0} }}} \right)^{4} + 6\,t_{dr,0}^{(1)} \,\left( {\frac{t}{{t_{0} }}} \right)^{5} ,} \hfill & {t < t_{0} } \hfill \\ {t_{dr,0}^{(1)} ,} \hfill & {t \ge t_{0} } \hfill \\ \end{array} ,} \right. $$
(17)

where \( t_{dr,0}^{(1)} \) is an assumed value of the driving torque at time \( t \ge t_{0} \). In simulations it is assumed \( t_{0} = 5\,{\text{s}} \) and \( t_{dr,0}^{(1)} = 1\,\,{\text{Nm}} \).

The flexible link is divided into 5 rfes. Such division is a good compromise between numerical effectiveness and sufficient results quality. The GPME has been integrated using Runge-Kutta 4th order method. The presented numerical simulations are performed with a constant integration step \( \Delta h = 10^{ - 5} \,{\text{s}} \). The initial configuration of the system results from the solution of the statics task for increasing values of the gravity \( g = 0,1,2, \ldots ,9.81 \). The initial values of the configuration variables used in the statics problem for \( g = 0 \) are as follows: \( \theta^{(1)} = 0^{^\circ } \), \( \psi^{(2)} = 45^{^\circ } ,x^{(3)} = 0\,{\text{m}} \). Newton-Raphson method is applied to solve the statics task. When the rotary arm 2 is treated as flexible, the initial position of the slider (Fig. 2) and end-effector E (Fig. 4) change due to deformation of the flexible link. Vertical motion of the end-effector E is defined by:

Fig. 2
figure 2

Time courses of the joint coordinates

$$ y_{E,a}^{(0)} (t) = y_{0} + A\,\cos \left( {\frac{2\pi }{T}t} \right), $$
(18)

where \( y_{0} \) is the initial position of the end-effector, A is the amplitude and T is a time period of oscillations. It is assumed that \( A = 0.5\,{\text{m}} \) and \( T = 2.5\,{\text{s}} \).

Time courses of the configuration variables of the manipulator obtained from simulations are presented in Fig. 2.

It can be observed that for the arm 2, which is flexible, additional oscillations appear in time courses of displacements of the rotary arm 2 and the slider 3. It can be concluded that influence of the flexibility on the programmed motion of the manipulator is compensated by the appropriate combination of the rotation angle of the arm 2 and the displacement of the slider 3.

Figure 3 shows time courses of the global Cartesian coordinates of the end-effector E.

Fig. 3
figure 3

A time course of the end-effector E coordinates

A good agreement of the time course of y-component of the end-effector E displacement with the ones assumed by the programmed constraints can be observed.

A trajectory of the end effector E in the planes \( {\hat{\mathbf{x}}}^{(0)} \,{\hat{\mathbf{z}}}^{(0)} \) and \( {\hat{\mathbf{x}}}^{(0)} \,{\hat{\mathbf{y}}}^{(0)} \) is presented in Fig. 4.

Fig. 4
figure 4

Trajectory of the end-effector, where \( \left. {E_{i}^{'} } \right|_{{i \in \{ r,\,f\} }} \) is a starting point of the end-effector for a rigid (r) and flexible (f) model of the arm 2

A starting point of the end-effector E is different for each considered model of the manipulator. The gravity forces cause bending of the flexible arm 2 and as a result the end-effector moves in the plane \( {\hat{\mathbf{x}}}^{(0)} \,{\hat{\mathbf{y}}}^{(0)} \) from the position \( E_{r}^{'} \) to the position \( E_{f}^{'} \). It can also be observed that the required circular trajectory of the end-effector in the plane \( {\hat{\mathbf{x}}}^{(0)} \,{\hat{\mathbf{z}}}^{(0)} \) is achieved.

4 Conclusions

A dynamics model of the spatial manipulator with a flexible link whose end-effector motion is limited by first order programmed constraints is presented in the paper. Flexible links are modeled by means of modified approach of the Rigid Finite Element Method. An algorithm of generation of the generalized program motion equations formulated in the paper can be applied to any open-loop kinematic chain whose links can be flexible. Thanks to homogeneous transformations and joint coordinates dynamics of the system is described by a minimal set of coordinates without the need for determination of constraints reaction forces. It can be seen that constraint reaction forces are also eliminated at the derivation level. As a result, dynamics of the system is described by a set of ordinary differential equations. Numerical simulation results show that flexibility of links has significant influence on driving function courses realizing the desired programmed motion. In further works it is planned to extend the presented algorithm to model dynamics and control of spatial linkages with flexible links.