1 Introduction

Mechanical systems including contact between highly slender beams and circular objects are met in ropeway systems [1,2,3] cranes and elevators [4, 5], belt drives and conveyor belts [6]. Computing the normal and tangential contact between circular objects and axially moving beams under large deformations is not straightforward. As stiffness may be high, the formulation should be compatible with an implicit time integrator. Especially in the case that we aim to solve industrial-scale problems or to perform an optimization through parameter variations the need to save simulation time becomes stronger which leads us to a coarser mesh refinement. To meet these goals, we focus on a segment method, which allows coarse space-wise discretization and an implicit integration which can cope with large time steps.

Various contact detection algorithms for rods undergoing large deformations exist in the literature often focusing on beam to beam contact. A pioneer work on beam to beam contact modeling was the one of Wriggers and Zavarise [7] which has introduced the so-called point-to-point formulation modeling the contact force as a point force at the closest point between two curves. Other approaches, e.g. [8], are using the line-to-line modeling which assumes distributed contact forces and is most commonly based on the mortar element method, [9]. A few works on beam to beam contact are using Gauss-points-to-segment modeling, e.g. [10]. Likewise, works on modeling the contact between flexible ropes and circular objects often use a point-wise contact modeling using points along the beam with respect to which they define the relative position of circle and rope, the indentation and they use them to apply the contact forces, e.g., [5, 11,12,13]. The present work introduces an algorithm for tracking the circle’s and rope’s relative position which is based on linear segments to subdivide the beam’s geometry which is modeled by third order polynomials. A similar algorithm was used in [14] where a flexible belt is discretized by 4-node shell linear elements. The proposed algorithm overcomes the limitation of methods based on the use of integration points to detect the contact with a circle if it lies on the interval between two nodes.

Existing literature for modeling contact forces is based on continuous approaches either using a continuous force model [5, 15,16,17,18], or the unilateral constraint methodology. The latter is based on the linear complementary problem [19,20,21] or the differential variational inequality [22]. The continuous force model or penalty method has widely been used in the literature either using linear spring elements [11, 12], or nonlinear spring elements [5]. In the current work, the penalty method is preferred as it is compatible to an existing multibody code and because for soft materials such as belts, the contact stiffness is no limiting factor.

For modeling the tangential contact force, many works, e.g. [11, 12, 17, 18], are using a regularization of the Coulomb friction law that gives a continuous tangential force, denoted as tri-linear Coulomb friction law or creep-rate-dependent friction, as introduced by Rooney and Deravi [23]. A variation of this model is used in [13]. A work on contact modeling in reeving systems, [5], employs a bristle friction model which tracks the slip and stick regions on the contact region and updates the tangential contact force accordingly. This model is originally proposed for control-systems applications [24], see also review paper [25]. In the present work, a bristle friction model has been significantly extended for being compatible with the use of linear segments and an implicit time integration.

For the numerical modeling of beams undergoing large deformations in contact with circular objects, many researchers have used the Absolute Nodal Coordinate Formulation (ANCF), e.g., [13]. Kerkkänen et al. [12] showed how an ANCF beam model is suitable for modeling belt-drives, while Dufva et al. [11] explored the effect of bending stiffness in the beam model when modeling structures that include contact of pulleys and beams. The ANCF beam model used in the current work is based on an extension for the original ANCF element [26], inferred using corrected expressions for the strain energy and bending moment relations.

The novelty of the present work can be summarized by an improved implementation of ANCF elements with a selective reduced integration, a contact modeling which uses linear segments for dividing higher order interpolation functions, the use of a bounding box which allows effective contact detection and a bristle model with history variables which tracks accurately the stick and slip zones and reproduces the solution from classical belt theory.

2 Methods

2.1 ANCF beam framework

For the numerical modeling of the beam, we are using the ANCF beam element in the extended version of Ref. [26] with slight improvements as shown in the following. An element with nodes \(N_{j_1}\) and \(N_{j_2}\) is described by the generalized element coordinates, \(\textbf{q}= \left[ \, \textbf{q}^{(j_1)^{T}} \, \textbf{q}^{(j_2)^{T}} \right] ^{T}\), in which each node \(N_j\) is related with 4 generalized coordinates, \(\textbf{q}^{(j)^T} = \left[ \, \textbf{r}^{T} \vert _{N_j} \, \textbf{r}'^{T}\vert _{N_j} \right] ^{T}\), containing the position vector of the two nodes and their spatial derivatives, \(\textbf{r}'\). Throughout this paper, the abbreviation \(()'= \frac{\partial ()}{\partial \bar{x}}\) is used.

The geometry of an ANCF beam element with reference length L is defined with the use of the local coordinate \(\bar{x} \in [0,L]\) as

$$\begin{aligned} \textbf{r}(\bar{x}, t) = \textbf{S}(\bar{x}) \textbf{q}(t) \qquad \text{ and } \qquad \textbf{r}'(\bar{x}, t) = \textbf{S}' (\bar{x}) \textbf{q}(t) \; ,\nonumber \\ \end{aligned}$$
(1)

in which \(\textbf{S}\) is the matrix of the shape functions defined as

$$\begin{aligned} \textbf{S}(\bar{x})\, =\, \left[ \, S_1(\bar{x})\,\textbf{I}\;\; S_2(\bar{x})\,\textbf{I}\;\; S_3(\bar{x})\,\textbf{I}\;\; S_4(\bar{x})\,\textbf{I}\, \right] \; .\end{aligned}$$
(2)

The shape functions used are the third-order polynomials above

$$\begin{aligned} S_1(\bar{x})= & {} 1-3\frac{\bar{x}^2}{L^2}+2\frac{\bar{x}^3}{L^3} \; ,\, S_2(\bar{x}) = \bar{x}-2\frac{\bar{x}^2}{L}+\frac{\bar{x}^3}{L^2} \; ,\nonumber \\ S_3(\bar{x})= & {} 3\frac{\bar{x}^2}{L^2}-2\frac{\bar{x}^3}{L^3},\, S_4(\bar{x}) = -\frac{\bar{x}^2}{L}+\frac{\bar{x}^3}{L^2} \; ,\end{aligned}$$
(3)

which guarantee C2 continuity for the elements. For the derivation of the equations of motion, we are using Lagrange kinematics and the virtual work of applied, elastic and visco-elastic forces. The virtual work of elastic forces is derived following the definition of the axial strain and curvature proposed in [27]. The virtual work of elastic forces is derived using the axial strain \(\varepsilon =\Vert \textbf{r}'\Vert -1\) and the material measure of curvature \(K= \frac{\textbf{r}'\times \textbf{r}'' }{\Vert \textbf{r}'\Vert ^2} \), in which \(\textbf{r}'\times \textbf{r}'' \) is the cross product of planar vectors as defined in [26]. The virtual work of elastic forces reads

$$\begin{aligned} \delta W_e= & {} \delta W_{ea} + \delta W_{eb} = \int _0^L (EA \, (\varepsilon - \varepsilon _0) \delta \varepsilon \,d \bar{x}\nonumber \\{} & {} + \int _0^L EI \, (K - K_0) \delta K \,d \bar{x}\; ,\end{aligned}$$
(4)

in which \(\delta W_{ea}\) and \(\delta W_{eb}\) are the virtual works of axial and bending forces, while \(\delta \varepsilon \) and \(\delta K\) are the variations of \(\varepsilon \) and K, E is the Young’s modulus, EA the axial rigidity for a cross section A and EI the flexural rigidity for second moment of area I.

The elastic forces are integrated numerically using selective reduced integration based on Gauss quadrature numerical integration rules. Thus, the integrals for \(\delta W_{ea}\) and \(\delta W_{eb}\) are computed separately allowing an effective combination of two Gauss quadrature integration rules. The implemented integration schemes, that is the combined integration rules for the virtual works of axial and bending forces, make use of the Gauss Legendre (GL) and Gauss Lobatto (LO) integration rules as shown in Table 1. These three integration schemes are available in the multibody dynamics simulation code ExudynFootnote 1 which is used for implementing the numerical example performed in Sect. 4.

Table 1 Implemented integration rules in Exudyn

Integration points and weights for the afore-mentioned integration rules can be found in [28]. If we denote by (A), the Gauss quadrature rules used for \(\delta W_{ea}\) and by (B) the ones used for \(\delta W_{eb}\), and m, n are the numbers of integration points used for \(\delta W_{ea}\) and \(\delta W_{eb}\), respectively, we can rewrite (4) as

$$\begin{aligned}&\delta W_e = \frac{L}{2} \sum _{i=1}^{m} w_i^{(A_m)} EA \, \left( \varepsilon (x_i^{(A_m)}) - \varepsilon _0 \right) \delta \varepsilon (x_i^{(A_m)})\nonumber \\&\qquad + \,\, \frac{L}{2} \sum _{i=1}^{n} w_i^{(B_n)} EI \, \left( K(x_i^{(B_n)}) - K_0 \right) \delta K(x_i^{(B_n)}) \; ,\end{aligned}$$
(5)

in which \(x_i\) and \(w_i\) are the integration points and weights, respectively. For example, \(\varepsilon (x_i^{(A_m)})\) is the axial strain at the integration point i of \((A_{m})\) integration rule.

In previous works employing the above-described ANCF beam element, [26] the integration schemes a and b, see Table 1, had been considered. For the investigations performed in this paper, the newly introduced scheme c is selected. This scheme resolves the problem of oscillations occurring in the axial strain and requires less computational efforts. The improvement of this integration scheme follows from the fact that axial and bending strain terms are evaluated at completely disjointed locations. In specific, the axial strain terms are evaluated at 0, \(\frac{L}{2}\) and L, while the bending terms at \(\frac{L}{2} \pm \frac{L}{2}\sqrt{\frac{1}{3}}\). This allows axial strains to freely follow the bending terms at \(\frac{L}{2} \pm \frac{L}{2}\sqrt{\frac{1}{3}}\), while the axial strains are almost independent from bending terms at 0, \(\frac{L}{2}\) and L. However, note that the numerical integration is highly reduced in this case which might cause spurious modes in some applications, [29].

For the virtual work of viscous damping forces, we are using the approach of [27],

$$\begin{aligned} \delta W_{ve} = \int _0^L d_\varepsilon \, \dot{\varepsilon } \, \delta \varepsilon \,d \bar{x} + \int _0^L d_K \dot{K} \, \delta K \,d \bar{x} \; ,\end{aligned}$$
(6)

with the damping parameters \(d_\varepsilon \) and \(d_K\). The time derivatives \(\dot{\varepsilon }\) and \(\dot{K}\) read

$$\begin{aligned} \dot{\varepsilon } = \frac{\partial }{\partial t}\left( \Vert \textbf{r}'\Vert -1 \right) = \frac{\textbf{r}^{\prime T} \frac{\partial }{\partial t}\textbf{r}'}{\Vert \textbf{r}'\Vert } = \frac{1}{\Vert \textbf{r}'\Vert } \textbf{r}^{\prime T} \textbf{S}' \dot{\textbf{q}} \end{aligned}$$
(7)

and

$$\begin{aligned} \dot{K}= & {} \frac{\partial }{\partial t}\left( \frac{ \textbf{r}'\times \textbf{r}'' }{\Vert \textbf{r}'\Vert ^2}\right) \nonumber \\= & {} \frac{1}{(\textbf{r}'^T \textbf{r}')^2}\left( (\textbf{r}'^T \textbf{r}')\left( (\textbf{S}' \dot{\textbf{q}}) \times \textbf{r}'' + (\textbf{S}'' \dot{\textbf{q}}) \times \textbf{r}'\right) \right. \nonumber \\{} & {} \left. -\left( \textbf{r}' \times \textbf{r}'' \right) (2\textbf{r}'^T (\textbf{S}' \dot{\textbf{q}})) \right) \; .\end{aligned}$$
(8)
Fig. 1
figure 1

The dimensions of the bounding box are fitting exactly the beam elements

The virtual work of the viscous damping forces in (6) is integrated according to (5).

2.2 Normal force model

For modeling the normal contact force, we are using the model of Lankarani and Nikravesh [30]:

$$\begin{aligned} f_n = k_c \, g^n + d_c \,v_n \; ,\end{aligned}$$
(9)

in which g represents the gap between the beam element and \(v_n\) is the normal relative velocity. The exponent n in the first term originally comes from the Hertz contact law and is related with the geometry and the material of the contacting surfaces, [23]. For the case of our belt drive where contact occurs between a flat belt and cylinders, we use \(n=1\) throughout in our implementation. In the second term, \(d_c\) is a function of g (\(d_c \propto g^{n}\)) which makes the second term nonlinear, [30]. Although this model is proven to be suitable for contact force models, for the contact models we examine where the normal relative velocity is very small we use a constant \(d_c\), as a simplification.

The algorithm for defining g and \(v_n\) is described in the following section.

2.3 Contact geometry and kinematics

Bounding box for ANCF A boxed search algorithm is used in order to improve the performance. This boxed search specifies which beam elements are potential candidates for having contact with the circular objects based on their relative location.

The proposed boxed search algorithm is based on the use of a bounding box the dimensions of which fit exactly the beam finite elements.

Since the shape functions defined in (3) are third-order polynomials (1) can be rewritten as

$$\begin{aligned} \textbf{r}=\left[ \begin{matrix} r_{x}\\ r_{y} \end{matrix} \right] = \left[ \begin{matrix} a_0 +a_1 \bar{x}+a_2 \bar{x}^2 +a_3 \bar{x}^3 \\ b_0 +b_1 \bar{x}+b_2 \bar{x}^2 +b_3 \bar{x}^3 \end{matrix} \right] \end{aligned}$$
(10)

with \(a_0\), \(a_1\),... and \(b_0\), \(b_1\),... being constants for the bounding box calculation. The coordinates of the ith bounding box are \(\left( r_{x,min,i}, r_{y,min,i}\right) \), \(\left( r_{x,max,i}, r_{y,max,i}\right) \) see Fig. 1, in which

$$\begin{aligned} r_{x,min,i}= & {} \min \{r_{x}: \bar{x} \in [0,L] \}\; ,\nonumber \\ r_{x,max,i}= & {} \max \{r_{x}: \bar{x} \in [0,L] \} \; ,\end{aligned}$$
(11)

and \(r_{y,min,i}\), \(r_{y,max,i}\) accordingly defined. For finding the extrema of \(r_{x}\), we compute its derivative,

$$\begin{aligned} r_{x}' = a_1 +2 a_2 \bar{x} +3 a_3 \bar{x}^2 \; ,\end{aligned}$$
(12)

and by setting \(r_{x}'\) equal to 0 and we get the two roots \(\bar{x}_{1}\) and \(\bar{x}_{2}\). Hence,

$$\begin{aligned} r_{x,max,i}= & {} \max \{r_{x}(\bar{x}_{1}), r_{x}(\bar{x}_{2}), r_{x}(0), r_{x}(L)\} \; ,\nonumber \\ r_{x,min,i}= & {} \min \{r_{x}(\bar{x}_{1}), r_{x}(\bar{x}_{2}), r_{x}(0), r_{x}(L)\} \; .\end{aligned}$$
(13)

If \(\bar{x}_{1}\) or \(\bar{x}_{2} \notin [0, L]\), we exclude the according \(r_{x} (\bar{x}_{1,2})\) from (13). The y-coordinates of the bounding box are computed likewise, using (11)–(13) for \(r_y\).

Detailed search For computing the relative position of a beam element with a circular object, cubic interpolation functions for the beam are subdivided using \(n_s\) linear segments, see Fig. 2b. Then, we examine the relative position of the center \(C_i\) of the circle, located in \(\textbf{p}_{c_{i}}\), and the linear segment \(s_i\), lying between \(p_{i}\) and \(p_{i+1}\) of a beam element, see Fig. 2a.

Fig. 2
figure 2

a Computation of closest point, P, of a linear segment, \(\text {s}_i\), and a circular object, b beam element divided into linear segments, normalized distance, \(\textbf{n}\), and perpendicular normalized vector, \(\textbf{t}\)

Using the vectors \(\textbf{v}_s = \textbf{p}_{i+1} - \textbf{p}_i\) and \(\textbf{v}_p = \textbf{p}_{c_i} - \textbf{p}_i\), the projection of vector \(\textbf{v}_p\) on \(\textbf{v}_s\) is defined as,

$$\begin{aligned} \text {proj}_{\textbf{v}_s}\textbf{v}_p = \frac{\textbf{v}_p^{T}\textbf{v}_s}{\left| \textbf{v}_s\right| ^{2}}\textbf{v}_s = \rho \textbf{v}_s \end{aligned}$$
(14)

in which we used the substitution \(\rho = \frac{\textbf{v}_p^{T}\textbf{v}_s}{\left| \textbf{v}_s\right| ^{2}}\).

We distinguish three cases with respect to \(\rho \):

  1. 1.

    if \(\rho <= 0\) the closest point is \(p_{i}\), with distance \(d = \left| p_{c_{i}}- p_{i} \right| \)

  2. 2.

    if \(\rho >= 1\) the closest point is \(p_{i+1}\), with distance \(d = \left| p_{c_{i}}- p_{i+1} \right| \)

  3. 3.

    if \(0< \rho < 1\) the closest point is between \(p_{i}\) and \(p_{i+1}\) and the distance, d, can be computed as

$$\begin{aligned} d = \sqrt{\left| \textbf{v}_{p} \right| ^{2} - \left| proj_{\textbf{v}_s}\textbf{v}_p \right| ^{2} } = \sqrt{\left| \textbf{v}_{p} \right| ^{2} - \rho ^{2}\left| \textbf{v}_s \right| ^{2} } \; .\nonumber \\ \end{aligned}$$
(15)

Therefore, the gap between the circle and the segment used for defining contact and for calculating \(f_n\), see (9), is

$$\begin{aligned} g = d - r \; .\end{aligned}$$
(16)

We approximate the velocity of the point P by interpolating linearly the velocities of \(p_{i}\) and \(p_{i+1}\) as follows:

$$\begin{aligned} \dot{\textbf{p}}_p = (1-\rho ) \cdot \textbf{v}_i + \rho \cdot \textbf{v}_{i+1} \; .\end{aligned}$$
(17)

The normal and tangential gap velocity which are used for the computation of normal and tangential contact forces are

$$\begin{aligned} v_n = \left( \dot{\textbf{p}}_p - \dot{\textbf{p}}_{m0} \right) \textbf{n}\end{aligned}$$
(18)

and

$$\begin{aligned} v_t = \left( \dot{\textbf{p}}_p - \dot{\textbf{p}}_{m0} \right) \textbf{t}\end{aligned}$$
(19)

respectively. In (18) and (19), \(\textbf{n}\) denotes the normalized vector of \(\textbf{d}\), \(\textbf{d}= \textbf{p}_{p} - \textbf{p}_{c_i}\) in which \(\textbf{p}_{p}\) the position vector of P, and \(\textbf{t}\) denotes the perpendicular normalized vector, see Fig. 2.

2.4 Tangential force model

Existing tangential contact models, e.g. [13, 17], are based on a regularized Coulomb friction that makes use only of a velocity penalty. Such models suffer from certain limitations as they are not suitable for static or quasi-static simulations where no relative velocity exists.

In this section, we describe an extended tangential model which makes use of a bristle stiffness \(\mu _k\). The incorporation of this bristle stiffness is inspired by the LuGre model introduced in [24] which reproduces spring-like behavior for small relative displacements during sticking. Similar to the LuGre model, we consider a sticking phase, in which the relative displacement is constrained by a virtual spring. The tangential force applied in sticking phase reads:

$$\begin{aligned} f_{t}^{(lin)} = \mu _v \cdot v_t + \mu _k \varDelta x_{stick} \end{aligned}$$
(20)

in which \(v_t\) was defined in (19), \(\mu _v\) is an optional penalty factor (can be also understood as friction damping) and \(\varDelta x_{stick}\) is the displacement of the contact point while sticking, see Fig. 3.

Fig. 3
figure 3

Contact stiffness visualized with a spring

When \(\Vert f_t^{(lin)}\Vert > \mu \cdot \Vert f_n\Vert \), with \(\mu \) being the friction coefficient, the friction spring breaks and the tangential force is modeled according to Coulomb friction. The resulting tangential model can be summarized as follows

$$\begin{aligned} f_t = {\left\{ \begin{array}{ll} f_t^{(lin)}, \quad \quad \quad \quad \quad \quad \quad \textrm{if} \quad \Vert f_t^{(lin)}\Vert \le \mu \cdot \Vert f_n\Vert \\ \mu \cdot \Vert f_n\Vert \cdot \textrm{sign}(\varDelta x_{stick}), \quad \textrm{else} \; .\end{array}\right. } \end{aligned}$$
(21)

Although a bristle friction model was already proposed for modeling the contact in reeving systems [5], the model introduced in the present work is significantly different. First, for computing \(\varDelta x_{stick}\) we make use of a set of history variables. In this way, we avoid the introduction of an additional dynamic parameter for the deflection of the bristles, [24]. Furthermore, the proposed model has been extended from a point-to-circle contact to a segment-to-circle contact. Finally, it has been adjusted for being compatible with an implicit time integration.

Calculation of relative displacement during sticking Assuming, a material point P on a segment \(s_i\) of a beam element being in contact with the circle, see Fig. 4, we want to track the relative position of P and circle’s local frame. The reference position of P on the segment is \(x_{s,p} = \rho L_{seg}\), in which \(\rho \) is the one defined in  2.3, with \(L_{seg}\) being the segment’s length. For defining the relative position of P to the circle, we use the arc length

Fig. 4
figure 4

The current sticking position results from the sum of the position of P relative to the beginning of the segment and the circle’s frame

$$\begin{aligned} x_{c,p} = \alpha \, r \; .\end{aligned}$$
(22)

Therefore, we have no relative motion if:

$$\begin{aligned} x_{s,p} + x_{c,p} = {\text {constant}} \; .\end{aligned}$$
(23)

Defining the current sticking position \(x_{curStick}\) as

$$\begin{aligned} x_{curStick} = x_{s,p} + x_{c,p} \; ,\end{aligned}$$
(24)

the displacement of contact point while sticking \(\varDelta x_{stick}\) reads:

$$\begin{aligned} \varDelta x_{stick}^* = x_{curStick} - x_{stickRef}\; ,\end{aligned}$$

and for \(x_{c,p} \in [-\pi r, \pi r]\)

$$\begin{aligned} \varDelta x_{stick} = \varDelta x_{stick}^* - \textrm{floor}\left( \frac{\varDelta x^*_{stick} }{2 \pi \cdot r} + \frac{1}{2}\right) \cdot 2 \pi \cdot r \; ,\nonumber \\ \end{aligned}$$
(25)

in which the function \(\textrm{floor}()\) is a standardized version of rounding, available in C and Python programming languages. In (25), \(x_{stickRef}\) is equal to \(x_{curStick}\) when sticking first starts, see Fig. 3, and can be thought as the reference length of the virtual spring which constrains the tangential motion. The algorithm for updating \(x_{curStick}\) and \(x_{stickRef}\) is described in the next paragraph. Note that the vertical offset from the beams’ centreline (resulting by the nonzero width of the beam), as well as the axial stretch are not considered in the calculation of (un-)winding of the segment. While a reduction in segment length reduces this effect because less (un-)winding occurs, a more consistent computation of this effect would require an integration of relative motion, as stretch slightly influences the local changes of the relative sticking position.

Post Newton step As mentioned, the implemented tangential model considers two possible states, sticking and slipping, that lead to different computation formulas for the tangential force. Although the computation of tangential forces occurs during the Newton method of the implicit integrator the switching from the one state to the other is not allowed inside the Newton method. Thus, we introduce a Post-Newton step (PNS()) which computes a set of data variables:

$$\begin{aligned} {[}x_{gap},\, x_{slip},\, x_{stickRef}] \end{aligned}$$
(26)

In this data set \(x_{gap}= g\) as defined in (16), and for \(x_{slip}\), there are three cases:

  1. a.

    \(x_{slip}= -2\): undefined, used for initialization

  2. b.

    \(x_{slip}= 0\): sticking

  3. c.

    \(x_{slip}= \pm 1\): slipping, sign defines slipping direction

For initializing this data set, we are using \([0,-2, 0]\).

Fig. 5
figure 5

Flowchart for PNS(). Returns the set of data variables \([x_{gap},\, x_{slip},\, x_{stickRef}]\) and \(e_{PNS}\)

An error (in N) is calculated during every PNS():

$$\begin{aligned} e_{P\!N\!S}= e^n_{P\!N\!S}+ e^t_{P\!N\!S}\end{aligned}$$
(27)

in which \(e^n_{P\!N\!S}\) corresponds to the calculation of the normal contact force and \(e^t_{P\!N\!S}\) to the calculation of the tangential contact force. For computing \(e^n_{P\!N\!S}\), if the gap of the previous PNS(), \(x_{gap,lastP\!N\!S}\), had a different sign as the current gap, set

$$\begin{aligned} e^n_{P\!N\!S}= k_c \cdot \Vert x_{gap} - x_{gap,lastPNS}\Vert \; ,\end{aligned}$$
(28)

while otherwise \(e^n_{P\!N\!S}=0\). For computing \(e^t_{P\!N\!S}\), if stick–slip-state of previous PNS(), \(x_{slip,lastPNS}\), is different from current \(x_{slip}\), set

$$\begin{aligned} e^t_{P\!N\!S}= \Vert \left( \Vert f_t^{(lin)} \Vert - \mu \cdot \Vert f_n\Vert \right) \Vert \; ,\end{aligned}$$
(29)

while otherwise \(e^t_{P\!N\!S}=0\).

The PNS(), with all operations performed for every segment, \(s_i\), is summarized in Fig. 5.

Contact forces computation in the Newton step The calculation of contact occurs during Newton iterations, and it is performed only if the PNS() determined contact in any segment, for efficiency. For a segment \(s_i\), if \(x_{gap, s_i} \le 0\), the steps are followed:

  1. 1.

    We compute the contact force, \(f_n\), according to (9).

  2. 2.

    If \(x_{slip}\ne 1\),

    • and if the friction stiffness \(\mu _k = 0\) or if \(x_{slip}= -2\), we set \(\varDelta x_{stick} = 0\),

    • else, we compute the current sticking position, \(x_{curStick}\) according to (24) and following the \(\varDelta x_{stick}\) from (25) using as \(x_{stickRef}\) the updated data variable of the last PNS().

    • using the tangential velocity from (19), the tangential force is computed by (20).

  3. 3.

    If \(x_{slip}= 1\), the tangential force is set as

    $$\begin{aligned} f_t = \mu \cdot \Vert f_n\Vert \cdot x_{slip}\; .\end{aligned}$$
    (30)

Comparison of proposed tangential contact model and LuGre model To compare the agreement of the proposed tangential contact model with LuGre model, we reproduce a numerical example described in [24]. To briefly describe the experimental set up of this example, a mass, \(M=1\) kg, is connected to a spring, of stiffness \(K=2\) Nm\(^{-1}\), the tip of which has a constant velocity, \(v = 0.1\) ms\(^{-1}\). The LuGre model, described in [24], is characterized by six parameters, the bending stiffness of the bristle \(\sigma _0 = 10^5\) Nm\(^{-1}\), the bending damping of the bristle \(\sigma _1 = 10^{5/2}\) Nsm\(^{-1}\), the viscous stiffness \(\sigma _2 = 0.4\) Nsm\(^{-1}\), the Coulomb friction level \(F_c = 1\) N, the level of the stiction force \(F_s = 1.5\) N and the Stribeck velocity \(v_s = 0.001\) ms\(^{-1}\).

Fig. 6
figure 6

Position and velocity of mass M obtained by the original LuGre model and the proposed model

Fig. 7
figure 7

Friction force obtained by the LuGre model and the proposed model on the left and zoom in the shifting from sticking to slipping region on the right

We reproduce the example with the proposed tangential contact model using \(\mu _{k} = 10^5\) and \(\mu _{v} = 10^{5/2}\). We set viscous stiffness to zero in both models. We measure the displacement and the velocity of the mass as well as the friction force and we compare the results obtained by the LuGre and the proposed model, see Figs. 6 and 7. While the LuGre model converges to the proposed model for increasing bending stiffness of the bristle, the proposed model manifests its superior performance as it reproduces the expected friction force without the need for an internal parameter. Note that in the LuGre model the shifting from sticking to sliding depends on the internal dynamic parameter \(\sigma _0\) and converges to the level of the stiction force \(F_s = 1.5\) N for increasing \(\sigma _0\), see Fig. 7.

2.5 Mapping contact forces on the beam elements and sheaves

Contact forces \(\textbf{f}_i\) with \(i \in [0,n_{cs}]\) are applied at the points \(p_i\), and they are computed for every contact segment. For every contact computation, first all contact forces at segment points are set to zero. If there is contact in a segment \(s_i\), e.g., gap state \(x_{gap}\le 0\), see Fig. 8, contact forces \(\textbf{f}_{s_i}\) are computed per segment,

$$\begin{aligned} \textbf{f}_{s_i} = f_n \cdot \textbf{n}_{s_i} + f_t \cdot \textbf{t}_{s_i} \end{aligned}$$
(31)

and added to every force \(\textbf{f}_i\), initialized with zero, at segment points according to

$$\begin{aligned} \textbf{f}_i:= & {} \textbf{f}_i + (1-\rho ) \cdot \textbf{f}_{s_i} \nonumber \\ \textbf{f}_{i+1}:= & {} \textbf{f}_{i+1} + \rho \cdot \textbf{f}_{s_i} \end{aligned}$$
(32)

while in case \(x_{gap}> 0\) nothing is added.

Fig. 8
figure 8

Contact forces applied per segment

Note that for the computation of the normal and tangent vector a second option which defines the normal as a vector pointing from the center of the circle to the segment point has been investigated. In case of segments that are short as compared to the circle radius, the second option is more consistent and produces tangents only in circumferential direction, which improves accuracy for coarse meshes. However, the first option, which uses \(n_{s_i}, t_{s_i}\), vectors vertical and tangential to the segment, see Fig. 8, lead to always good approximations for normal directions, irrespective of short or extremely long segments as compared to the circle.

The forces \(\textbf{f}_i\) are then applied to the ANCF cable element at according segment points. The forces on the circle are computed as the total sum of all segment contact forces,

$$\begin{aligned} \textbf{f}_{circle} = -\sum _{s_i} \textbf{f}_{s_i} \end{aligned}$$
(33)

and additional torques on the circle’s rotation simply follow from

$$\begin{aligned} \tau _{circle} = -\sum _{s_i} r \cdot f_{t_{s_i}} \; .\end{aligned}$$
(34)

3 Convergence in the static friction-less case

Fig. 9
figure 9

Quasi-static experiment of circle in contact with beam

Fig. 10
figure 10

Convergence of error for the y-coordinate of the position of the center of the circle, on the left, and for the axial force at the middle of the length of the beam, on the right

We examine the example of a circle of radius \(r=0.35 \, {\text {m}}\) moving toward a flexible beam of Young’s modulus \(E = 2 \, 10^8\, \hbox {N}\,\hbox {m}^{2}\), length \(L= 1 \, {\text {m}}\), density \(\rho =7800 \, \hbox {kg}/\hbox {m}^{3}\) and cross section \(A = 10^{-6} \,\hbox {m}^{2}\), see Fig. 9. The process is quasi-static. The center of the sheave is linked to a spring of stiffness \(k = 1 \, {\text {N}\text {m}^{-1}}\) connected to the ground. We apply a lateral force \(\textbf{f}= 200\, {N}\) at the center of the circle. In Fig. 10, we plot the absolute error for the \(y-\)coordinate of the position of the center of the circle and the axial force measured at the middle of beam. The error is calculated as the absolute difference from a reference solution calculated for 128 elements and 12 linear segments. As the numbers of elements and linear segments increase, we observe convergence.

4 Numerical experiment

Description of set-up The presented methods are applied in the numerical example of a belt drive consisting of an elastic belt and two identical pulleys, \(P_{1}\) and \(P_{2}\), see Fig. 11. Although the overall set up of the system is similar to [13], some key-parameters have been changed for making the system suitable for convergence analysis and capable to reach a steady state motion. Therefore, we find it necessary to describe the system here.

Fig. 11
figure 11

Belt drive with two pulleys

The belt is modeled by cubic ANCF elements described in the previous section. The pulleys are modeled as rigid bodies mounted to the ground through revolute joints. Dimensions and properties of belt and pulleys are given in Table 2. The initial as well as the reference length of the belt centreline is the length that results from the geometry of the system:

$$\begin{aligned} l_b = 2\cdot (r + h_b/2) \cdot \pi + 2 \cdot d = 0.4 \pi \approx 1.25663\,\textrm{m} \; .\nonumber \\ \end{aligned}$$
(35)
Table 2 Main parameters for the belt drive

The stress-free length of the belt centreline is chosen as \({\bar{l}}_b = 0.95 \cdot l_b\), resulting in a pre-stretch of \(\varepsilon _{ref} = -0.05\), which is added to all finite elements before the static computation for initial conditions and thus, results in a pre-tension of

$$\begin{aligned} f_{pre} = EA \cdot \varepsilon _{ref} = 400 \,\textrm{N} \; .\end{aligned}$$
(36)

While the reference configuration of all beams is straight, the initial values are computed from a static computation, in order to avoid vibrations at the beginning of the dynamic simulation.

Dynamic simulation During the dynamic simulation, the angular velocity of \(P_{1}\) is prescribed, see Fig. 12. In order to reach a steady state, a torque is added to \(P_{2}\) in the time range \(t = [1, 1.5 ]\) seconds:

$$\begin{aligned} \tau _{P2}(t) = {\left\{ \begin{array}{ll} 0\,\textrm{Nm}, \quad \quad \quad \quad \quad \quad \quad \quad \,\;\;\textrm{if} \quad t< 1 {\text {s}}\\ 25\left( 0.5-0.5\cdot \cos \left( 2 (t-1) \pi \right) \right) \textrm{Nm} \\ \hspace{95pt}\textrm{if} \quad 1 {\text {s}}< t < 1.5 {\text {s}}\\ 25\,\textrm{Nm} \quad \quad \quad \quad \quad \quad \quad \,\,\;\textrm{else} \,. \end{array}\right. } \end{aligned}$$
(37)
Fig. 12
figure 12

Angular velocity of \(P_2\) for varying number of elements and comparison with angular velocity of \(P_1\)

Table 3 Nominal and reference simulation parameters

The example was simulated in the multibody dynamics code Exudyn [31]. For the time integration, an implicit second-order time integration method (trapezoidal rule) is used, similar to Newmark’s method [32], but without numerical damping and with an index 2 constraint reduction, which allows stable integration of constraints. The discontinuous iteration for the PNS() uses a tolerance of \(10^{-3}\) and a maximum of 5 iterations, which is not reached in case of smaller time steps. The belt drive has been computed with different parameter sets (e.g., different number of elements), starting from a nominal parameter set as well as a reference parameter set, which uses finer space and time discretisation as compared to the nominal test case, see Table 3.

Results The results’ section is split into three parts:

  • results of angular velocities and torques over time, which reflect the overall behavior of the belt drive,

  • results of axial forces and contact stresses over the belt arc length, \(s_l\), see Fig. 11. Note that the quantities shown w.r.t. the belt length are given in terms of the curve parameter sl, see Fig. 11, and

  • comparisons with analytical solutions for the belt drive.

Results over simulation time The overall behavior of the belt can be seen in Fig. 12 which shows the angular velocities of both pulleys, noting that the velocity of \(P_1\) is prescribed and thus, it is the same for all variations. The angular velocity of pulley \(P_1\) speeds up at \(0.05 {\text {s}}\), while due to belt elasticity, slip and inertia effects, the angular velocity of pulley \(P_2\) shows vibrations and a smaller velocity in steady state. We observe almost no effects for varying number of elements for over 60 elements.

The torque in pulley \(P_1\), which is highly influenced by the torque in pulley \(P_2\), is shown in Fig. 13 for different numbers of elements. Note that there is an angular velocity-proportional (damping) \(d_{P2}\) acting on pulley \(P_2\) as well. It is also clearly seen that vibrations in the \(P_2\) angular velocity are merely damped out until \(t = 1 {\text {s}}\), while there is an additional drop hereafter due to torque \(\tau _{P2}\). Torques in Fig. 13 show some oscillatory behavior for the coarse discretization with 60 elements.

Fig. 13
figure 13

Torque at \(P_1\) for varying number of elements and comparison with torque load at \(P_2\) (not including torque due to damping)

Results along the belt arc length We compare and evaluate the axial velocity, the tension, tangential contact stresses, normal contact stresses along the belt arc length varying the number of finite elements as well as varying the quantities \(n_{cs}, \mu , k_{c}\) and \(\mu _k\). In Figs. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 one can distinguish four different zones for the belt arc length:

  1. 1.

    \(s_l \in [ 0, 0.314)\,\hbox {m}\): top tight span,

  2. 2.

    \(s_l \in [0.314, 0.628)\,\hbox {m}\): contact zone \(P_2\),

  3. 3.

    \(s_l \in [0.628, 0.942)\,\hbox {m}\): bottom slack span,

  4. 4.

    \(s_l \in [0.942, 1.257)\,\hbox {m}\): contact zone \(P_1\).

Fig. 14
figure 14

Normal contact stresses along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying number of elements

Fig. 15
figure 15

Axial forces along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying number of elements

Fig. 16
figure 16

Axial velocity along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying number of elements

Fig. 17
figure 17

Tangential contact stresses along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying number of elements

Figures 14, 15, 16, 17 show the convergence of the proposed contact algorithms w.r.t. number of elements. This number significantly influences the axial velocity, see Fig. 16, and the tangential contact stresses, see Fig. 17. Compared to that, the normal contact stresses only show oscillations for 60 elements, see Fig. 14, and only minor influences of the number of elements are seen in Fig. 15.

We evaluate the influence of the normal contact stiffness \(k_c\) (which is coupled to normal contact damping, \(d_c\)), the tangential contact stiffness \(\mu _{k}\), the number of segments \(n_{s}\) and the friction coefficient \(\mu \) for otherwise nominal parameters as shown in Figs. 18, 19, 20, 21. We observe that increasing the number of linear segments from 4 to 8 has almost no effect. However, using fewer segments would worsen the geometric approximation of the circle for small number of finite elements and was therefore avoided. In Fig. 19, the friction coefficient shows a high influence on the exponential force drop in the contact slipping zones of the pulleys as known from the belt drive theory.

Fig. 18
figure 18

Normal contact stresses along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying parameters

Fig. 19
figure 19

Axial forces along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying parameters

Fig. 20
figure 20

Axial velocity along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying parameters

Fig. 21
figure 21

Tangential contact stresses along the length of the belt for time \(t = 2.45 \,{\text {s}}\) for varying parameters

In Fig. 22, we plot the axial forces at \(t = 1\) s for the different integration schemes explained in 2.1. We observe oscillatory behavior for integration schemes a and b, while the solution obtained using integration scheme c is much smoother in all regions of belt drive.

Fig. 22
figure 22

Beam axial forces along the length of the belt for time \(t = 1 \,{\text {s}}\) and 60 elements for different integration schemes

Fig. 23
figure 23

Axial forces along the length of the belt for various time instants

Table 4 Approximated numerical values at \(t=2.45\,\)s for overall validation of contact algorithm
Fig. 24
figure 24

Comparison of axial forces in the contact zone of \(P_1\) and analytical solution

Comparison with analytical solution For comparing the numerical results with available analytical values, we use the solution at time \(t = 2.45\) s, at which the system has reached the steady state as shown in Fig. 23. As known, from classic belt drive literature [33], if \(F_1\) is the axial force on the tight side and \(F_2\) is the axial force on the slack side, see Table 4, the drop of span forces is related to torques \(\tau _{P1}\) and \(\tau _{P2}\) by

$$\begin{aligned} (F_1 - F_2) r = 47.857 \, {\text {N}}{\text {m}}\approx \tau _{P1} = 47.68\, {\text {N}}{\text {m}} \end{aligned}$$
(38)

which results to a relative error equal to \(0.37 \%\). Note, also, that \(\tau _{P2}\) at time \(t = 2.45\) s results from the velocity-proportional damping \(d_{P2}\) and the added load of 25 Nm given by (37):

$$\begin{aligned} \tau _{P2} = 25+ d_{P2} \cdot \omega _{P2} = 47.68\, {\text {N}\text {m}} \; ,\end{aligned}$$
(39)

which agrees with \(\tau _{P1}\), as measured at \(t = 2.45\) s. The creep computed by the velocities of the spans is

$$\begin{aligned} \psi = \frac{v_1- v_2}{v_1} = 0.0578 \; ,\end{aligned}$$
(40)

while the creep computed from the relative elongation of the tight and slack spans is

$$\begin{aligned} \varDelta \varepsilon = \frac{F_1 - F_2}{EA} = 0.0598 \; .\end{aligned}$$
(41)

Both values are relative values, but they agree well with \(3.3\%\) error.

We plot the axial forces in the contact zone of \(P_{1}\) as resulted from the simulation, and we compare it with the analytical solution calculated by Euler–Eytelwein also known as capstan formula, [33]:

$$\begin{aligned} F = F_{1} e^{\mu \, \phi } \end{aligned}$$
(42)

for \(\phi \in [0, \beta ] \) in which

$$\begin{aligned} \beta = \frac{1}{\mu } \ln \left( \frac{F_1}{F_2}\right) \end{aligned}$$
(43)

with corresponding region on the arc length of the belt

$$\begin{aligned} s_l \in&\Bigg [ d+ \pi \left( r+\frac{h_b}{2}\right) + d,\, d+ \pi \left( r+\frac{h_b}{2}\right) \nonumber \\&\qquad + d + \beta r \Bigg ]\; ,\end{aligned}$$
(44)

see Fig. 24. The maximum absolute error is \(13.60 \, {\text {N}}\), and the maximum relative error is equal to \(2.5 \%\).

5 Conclusions

In this paper, a model for contact and friction for flexible beams and sheaves and a numerical example have been provided. We have shown that the proposed contact model consisting of an improved ANCF implementation with a selective reduced integration, a contact detection based on the subdivision of beam elements into linear segments, a bounding box for effective contact detection and a bristle friction model with history variables can be successfully applied for a numerical example of a belt drive, as the one demonstrated here. The example of the belt drive showed convergence of the implemented methods for increasing number of elements and for other varying parameters such as the number of segments and the dry friction. Moreover, we saw agreement of the obtained axial forces in the contact zone of the first pulley of the belt drive with the analytical solution from classical belt theory. Finally, the resulted beam axial forces along the belt arc length showed improved behavior for the proposed integration scheme for the virtual work of elastic and viscous damping forces. As a consequence, we conclude that we can use the developed methods for an efficient contact modeling for systems consisting of flexible beams and sheaves such as belt drives and reeving systems.