Engee documentation

Nonlinear Translational Spring

Page in progress.

Progressive spring based on polynomial or tabular parameterization.

blockType: Engee1DMechanical.Elements.Translational.NonlinearSpring

Path in the library:

/Physical Modeling/1D Mechanical/Couplings & Drives/Springs & Dampers/Nonlinear Translational Spring

Description

The Nonlinear Translational Spring block is a spring with a non-linear dependence of the elastic force on the displacement. The magnitude of the elastic force is an arbitrary function of the displacement and does not have to satisfy Hooke’s law. You can parameterise the force-displacement relationship using a polynomial or lookup table. The elastic force can be symmetric or asymmetric with respect to zero strain.

A symmetric polynomial parameterization defines the elastic force according to the expression:

where

  • - is the elastic force of the spring;

  • - spring coefficients;

  • - relative displacement between ports R and C:

    where

    • - is the initial offset, at the beginning of the simulation ;

    • - absolute position of port R;

    • - absolute position of port C.

To avoid zero crossings that slow down the simulation, exclude the sign function from the polynomial expression by specifying an odd polynomial ( ).

The two-way polynomial parameterization defines the elastic force according to the expression:

where

  • - spring stretching coefficients;

  • - spring compression coefficients.

Both polynomial parameterizations use a fifth order polynomial. To use a lower order polynomial, set the higher order coefficients to zero. For polynomials of order greater than five, approximate with a polynomial of order no higher than five, or use a look-up table parameterization.

The lookup table parameterization determines the elastic force based on the given displacement and force vectors. If a point with zero velocity and zero force is not included in the specified vectors, the block automatically adds it as a data point at the origin.

Ports

Conserving

# R — slave port
translational mechanics

Details

A non-directional progressive mechanical port connected to the driven end of a spring.

Program usage name

rod_flange

# C — base port
translational mechanics.

Details

A non-directional progressive mechanical port associated with the base end of a spring.

Program usage name

case_flange

Parameters

Main

# Parameterization — spring parameterization method
By polynomial | By table lookup

Details

Select the type of spring parameterization: polynomial or look-up table.

Values

By polynomial | By table lookup

Default value

By polynomial

Program usage name

parameterization

Evaluatable

Yes

# Symmetry — spring behaviour symmetry

Details

Symmetry of spring behaviour with respect to the zero strain point. If this checkbox is checked, the block applies a single polynomial symmetrically about the zero strain point. If this checkbox is unchecked, the block applies unique polynomials for tension and compression.

Dependencies

To use this parameter, set the Parameterization parameters to . By polynomial.

Default value

true (switched on)

Program usage name

symmetric_parameterization

Evaluatable

Yes

# Vector of spring coefficients — polynomial coefficients at symmetric deformation
N/m | lbf/ft | lbf/in

Details

Spring elasticity coefficients for a polynomial relationship. The largest element of non-zero order must be positive. The vector must consist of 5 elements.

Dependencies

To use this parameter, set the Parameterization parameters to By polynomial and tick the checkbox Symmetry.

Units

N/m | lbf/ft | lbf/in

Default value

[100.0, 0.0, 10.0, 0.0, 1.0] N/m

Program usage name

stiffness_polinomial_coefficients_vector

Evaluatable

Yes

# Vector of spring tension coefficients — polynomial coefficients for spring tension
N/m | lbf/ft | lbf/in

Details

Polynomial coefficients for stretching a spring. The vector must consist of 5 elements.

Dependencies

To use this parameter, set the Parameterization parameters to the value of By polynomial and uncheck Symmetry.

Units

N/m | lbf/ft | lbf/in

Default value

[100.0, 0.0, 10.0, 0.0, 1.0] N/m

Program usage name

tension_stiffness_polinomial_coefficients_vector

Evaluatable

Yes

# Vector of spring compression coefficients — polynomial coefficients for spring compression
N/m | lbf/ft | lbf/in

Details

The coefficients of the polynomial for spring compression. The vector must consist of 5 elements.

Dependencies

To use this parameter, set the Parameterization parameters to the value of By polynomial and uncheck Symmetry.

Units

N/m | lbf/ft | lbf/in

Default value

[1000.0, -10.0, 100.0, 0.0, 0.0] N/m

Program usage name

compression_stiffness_polinomial_coefficients_vector

Evaluatable

Yes

# Deformation vector — relative offset for tabular parameterization
m | cm | ft | in | km | mi | mm | um | yd

Details

Relative displacement values for the corresponding values of the elastic forces given in the parameters Force vector. This vector must have the same dimensionality as Force vector.

The minimum number of elements of the vector depends on the chosen interpolation method. If the parameter Interpolation method is set to:

  • Linear, then the minimum number of vector elements is two.

  • `Smooth`If the parameter is set to: , then the minimum number of elements of the vector is three.

If you do not specify a reference point for the origin, the block will automatically add a reference point to the origin, i.e. at the intersection of zero displacement and zero force.

Dependencies

To use this parameter, set the Parameterization parameters to . By table lookup.

Units

m | cm | ft | in | km | mi | mm | um | yd

Default value

[-1.0, -0.5, -0.3, -0.1, 0.1, 0.3, 0.5, 1.0] m

Program usage name

delta_p_vector

Evaluatable

Yes

# Force vector — force values for tabular parameterization
N | kN | lb | mN | dyn | lbf

Details

Force values for the corresponding displacements given in the parameters Deformation vector. This vector must have the same dimensionality as Deformation vector. The minimum number of elements of the vector depends on the chosen interpolation method. If the parameter Interpolation method is set to:

  • Linear, then the minimum number of vector elements is two.

  • `Smooth`If the parameter is set to: , then the minimum number of elements of the vector is three.

If you do not specify a reference point for the origin, the block will automatically add a reference point to the origin, i.e. at the intersection of zero displacement and zero force.

Dependencies

To use this parameter, set the Parameterization parameters to . By table lookup.

Units

N | kN | lb | mN | dyn | lbf

Default value

[-1000.0, -400.0, -200.0, -50.0, 50.0, 200.0, 400.0, 1000.0] N

Program usage name

F_vector

Evaluatable

Yes

# Interpolation method — method of interpolation between the values of reference points
Linear | Smooth

Details

The method used to interpolate between the reference points of the search table:

  • Linear - select this value for the lowest computational cost;

  • Smooth - select this value to obtain a continuous curve with continuous first order derivatives.

For more information on lookup tables, see Methods of approximation of function values.

Dependencies

To use this parameter, set the Parameterization parameters to . By table lookup.

Values

Linear | Smooth

Default value

Linear

Program usage name

interpolation_method

Evaluatable

Yes

# Extrapolation method — extrapolation method for points outside the range defined by the reference points
Linear | Nearest | Error

Details

A method used to extrapolate breakpoints in the lookup table. This method determines the output value when the input value falls outside the range specified in the argument list:

  • Linear - select this value to obtain a curve with continuous first-order derivatives in the extrapolation region and on the boundary with the interpolation region.

  • Nearest - select this value to use extrapolation that does not rise above the largest value in the data or fall below the smallest value in the data.

  • Error - select this value to avoid extrapolation when you want the data to be within the range of the table. If the input signal is outside the table range, the simulation stops and displays an error.

Dependencies

To use this parameter, set the Parameterization parameters to By table lookup.

Values

Linear | Nearest | Error

Default value

Linear

Program usage name

extrapolation_method

Evaluatable

Yes