ElastoGap

1D translational spring damper combination with gap

    ElastoGap

Library

Modelica/Mechanics/Translational/Components

Description

This component models a spring damper combination that can lift off.It can be connected between a sliding mass and the housing (modelFixed),to describe the contact of a sliding mass with the housing.

As long as s_rel > s_rel0, no force is exerted (s_rel = flange_b.s - flange_a.s).If s_rel ≤ s_rel0, the contact force is basically computed with a linearspring/damper characteristic. With parameter n≥1 (exponent of spring force),a nonlinear spring force can be modeled:

   desiredContactForce = c*|s_rel - s_rel0|^n + d*der(s_rel)

Note, Hertzian contact is described by:

  • Contact between two metallic spheres: n=1.5
  • Contact between two metallic plates: n=1

The above force law leads to the following difficulties:

  1. If the damper force becomes larger as the spring force and with opposite sign, the contact force would be "pulling/sticking" which is unphysical, since during contact only pushing forces can occur.
  2. When contact occurs with a non-zero relative speed (which is the usual situation), the damping force has a non-zero value and therefore the contact force changes discontinuously at s_rel = s_rel0. Again, this is not physical because the force can only change continuously. (Note, this component is not an idealized model where a steep characteristic is approximated by a discontinuity, but it shall model the steep characteristic.)

In the literature there are several proposals to fix problem (2). Especially, oftenthe following model is used (see, e.g.,Lankarani, Nikravesh: Continuous Contact Force Models for ImpactAnalysis in Multibody Systems, Nonlinear Dynamics 5, pp. 193-207, 1994,pdf-download):

   f = c*s_rel^n + (d*s_rel^n)*der(s_rel)

However, this and other models proposed in literature violateissue (1), i.e., unphysical pulling forces can occur (if d*der(s_rel)becomes large enough). Note, if the force law is of the form "f = f_c + f_d", then anecessary condition is that |f_d| ≤ |f_c|, otherwise (1) and (2) are violated.For this reason, the most simplest approach is used in the ElastoGap modelto fix both problems by using this necessary condition in the force law directly.If s_rel0 = 0, the equations are:

    if s_rel ≥ 0 then       f = 0;    // contact force    else       f_c  = -c*|s_rel|^n;          // contact spring force (Hertzian contact force)       f_d2 = d*der(s_rel);         // linear contact damper force       f_d  = if f_d2 <  f_c then  f_c else              if f_d2 > -f_c then -f_c else f_d2;  // bounded damper force       f    = f_c + f_d;            // contact force    end if;

Note, since |f_d| ≤ |f_c|, pulling forces cannot occur and the contact forceis always continuous, especially around the start of the penetration at s_rel = s_rel0.

In the next figure, a typical simulation with the ElastoGap model is shown(Examples.ElastoGap)where the different effects are visualized:

  1. Curve 1 (elastoGap1.f) is the unmodified contact force, i.e., the linear spring/damper characteristic. A pulling/sticking force is present at the end of the contact.
  2. Curve 2 (elastoGap2.f) is the contact force, where the force is explicitly set to zero when pulling/sticking occurs. The contact force is discontinuous when contact starts.
  3. Curve 3 (elastoGap3.f) is the ElastoGap model of this library. No discontinuity and no pulling/sticking occurs.

Parameters

ElastoGap_0

NameLabelDescriptionData TypeValid Values

mo_s_rel

s_rel

s_rel

Structure

mo_s_rel/fixed

fixed

Cell of scalars

true
false

mo_s_rel/start

start

Cell of scalars

mo_v_rel

v_rel

v_rel

Structure

mo_v_rel/fixed

fixed

Cell of scalars

true
false

mo_v_rel/start

start

Cell of scalars

mo_c

c

Spring constant

Scalar

mo_d

d

Damping constant

Scalar

mo_s_rel0

s_rel0

Unstretched spring length

Scalar

mo_n

n

Exponent of spring force ( f_c = -c*|s_rel-s_rel0|^n )

Scalar

mo_useHeatPort

useHeatPort

=true, if heatPort is enabled

Number

0
1

ElastoGap_1

NameLabelDescriptionData TypeValid Values

mo_stateSelect

stateSelect

Priority to use s_rel and v_rel as states

Structure

mo_stateSelect/choice1

StateSelect.never

Number

0
1

mo_stateSelect/choice2

StateSelect.avoid

Number

0
1

mo_stateSelect/choice3

StateSelect.default

Number

0
1

mo_stateSelect/choice4

StateSelect.prefer

Number

0
1

mo_stateSelect/choice5

StateSelect.always

Number

0
1

mo_s_nominal

s_nominal

Nominal value of s_rel (used for scaling)

Scalar

ElastoGap_2

NameLabelDescriptionData TypeValid Values

mo__nmodifiers

Number of Modifiers

Specifies the number of modifiers

Number

mo__modifiers

Modifiers

Add new modifier

Structure

mo__modifiers/varname

Variable name

Cell of strings

'f'
'lossPower'
'contact'
'f_c'
'f_d2'
'f_d'

mo__modifiers/attribute

Attribute

Cell of strings

'start'
'fixed'

mo__modifiers/value

Value

Ports

NameTypeDescriptionIO TypeNumber

flange_a

implicit

Left flange of compliant 1-dim. translational component

input

1

flange_b

implicit

Right flange of compliant 1-dim. translational component

output

1

Port 3

implicit

Optional port to which dissipated losses are transported in form of heat

input

mo_useHeatPort