ElastoBacklash

Backlash connected in series to linear spring and damper (backlash is modeled with elasticity)

    ElastoBacklash

Library

Modelica/Mechanics/Rotational/Components

Description

This element consists of a backlash element connected in seriesto a spring and damper element which are connected in parallel.The spring constant shall be non-zero, otherwise the component cannot be used.

In combination with components IdealGear, the ElastoBacklash modelcan be used to model a gear box with backlash, elasticity and damping.

During initialization, the backlash characteristic is replaced by a continuousapproximation in the backlash region, in order to reduce problems duringinitialization, especially for inverse models.

If the backlash b is smaller as 1e-10 rad (especially, if b=0),then the backlash is ignored and the component reduces to a spring/damperelement in parallel.

In the backlash region (-b/2 ≤ flange_b.phi - flange_a.phi - phi_rel0 ≤ b/2) no torqueis exerted (flange_b.tau = 0). Outside of this region, contact is present andthe contact torque is basically computed with a linearspring/damper characteristic:

   desiredContactTorque = c*phi_contact + d*der(phi_contact)            phi_contact = phi_rel - phi_rel0 - b/2 if phi_rel - phi_rel0 >  b/2                        = phi_rel - phi_rel0 + b/2 if phi_rel - phi_rel0 < -b/2            phi_rel     = flange_b.phi - flange_a.phi;

This torque characteristic leads to the following difficulties:

  1. If the damper torque becomes larger as the spring torque and with opposite sign, the contact torque would be "pulling/sticking" which is unphysical, since during contact only pushing torques can occur.
  2. When contact occurs with a non-zero relative speed (which is the usual situation), the damping torque has a non-zero value and therefore the contact torque changes discontinuously at phi_rel = phi_rel0. Again, this is not physical because the torque 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). However, thereseems to be no proposal to avoid sticking. For this reason, the most simpleapproach is used in the ElastoBacklash model, to fix both problems by slight changesto the linear spring/damper characteristic:

    // Torque characteristic when phi_rel > phi_rel0    if phi_rel - phi_rel0 < b/2 then       tau_c = 0;          // spring torque       tau_d = 0;          // damper torque       flange_b.tau = 0;    else       tau_c = c*(phi_rel - phi_rel0);    // spring torque       tau_d = d*der(phi_rel);            // damper torque       flange_b.tau = if tau_c + tau_d ≤ 0 then 0 else tau_c + min( tau_c, tau_d );    end if;

Note, when sticking would occur (tau_c + tau_d ≤ 0), then the contact torqueis explicitly set to zero. The "min(tau_c, tau_d)" part in the if-expression,limits the damping torque when it is pushing. This means that at the start ofthe contact (phi_rel - phi_rel0 = b/2), the damping torque is zero and is continuous.The effect of both modifications is that the absolute value of the damping torqueis always limited by the absolute value of the spring torque: |tau_d| ≤ |tau_c|.

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

  1. Curve 1 (elastoBacklash1.tau) is the unmodified contact torque, i.e., the linear spring/damper characteristic. A pulling/sticking torque is present at the end of the contact.
  2. Curve 2 (elastoBacklash2.tau) is the contact torque, where the torque is explicitly set to zero when pulling/sticking occurs. The contact torque is discontinuous at begin of contact.
  3. Curve 3 (elastoBacklash3.tau) is the ElastoBacklash model of this library. No discontinuity and no pulling/sticking occurs.

See also the discussionState Selectionin the User's Guide of the Rotational library.

Parameters

ElastoBacklash_0

NameLabelDescriptionData TypeValid Values

mo_c

c

Spring constant (c > 0 required)

Scalar

mo_d

d

Damping constant

Scalar

mo_b

b

Total backlash

Scalar

mo_phi_rel0

phi_rel0

Unstretched spring angle

Scalar

mo_useHeatPort

useHeatPort

=true, if heatPort is enabled

Number

0
1

mo_bMax

bMax

Backlash in range bMin <= phi_rel - phi_rel0 <= bMax

Scalar

mo_bMin

bMin

Backlash in range bMin <= phi_rel - phi_rel0 <= bMax

Scalar

mo_phi_rel

phi_rel

phi_rel

Structure

mo_phi_rel/fixed

fixed

Cell of scalars

true
false

mo_phi_rel/start

start

Cell of scalars

mo_w_rel

w_rel

w_rel

Structure

mo_w_rel/fixed

fixed

Cell of scalars

true
false

mo_w_rel/start

start

Cell of scalars

mo_a_rel

a_rel

a_rel

Structure

mo_a_rel/fixed

fixed

Cell of scalars

true
false

mo_a_rel/start

start

Cell of scalars

ElastoBacklash_1

NameLabelDescriptionData TypeValid Values

mo_phi_nominal

phi_nominal

Nominal value of phi_rel (used for scaling)

Scalar

mo_stateSelect

stateSelect

Priority to use phi_rel and w_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

ElastoBacklash_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

'tau'
'lossPower'
'tau_c'
'tau_d'
'phi_diff'

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. rotational component

input

1

flange_b

implicit

Right flange of compliant 1-dim. rotational component

output

1

Port 3

implicit

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

input

mo_useHeatPort