IMPACT is a simple model for contacts. It evaluates a force that turns on when a distance falls below a nominal free length (that is, when two parts collide).
Use
Called By
Any user-written subroutine
Prerequisite
None
Calling Sequence
CALL IMPACT (x, x', x1, k, e, cmax, d, iord, vector, errflg)
Input Arguments
x | A double-precision variable that specifies the distance variable you want to use to compute the force. |
x' | A double-precision variable that communicates to IMPACT the time derivative of x. |
x1 | A double-precision variable that specifies the free length of x. If x is less than x1, Adams Solver calculates a positive value for the force. Otherwise, the force value is zero. The value of x1 must be greater than zero. |
k | A positive, double-precision variable that specifies the stiffness of boundary surface interaction. |
e | A positive, double-precision variable that specifies the exponent of the force-deformation law. For a stiffening spring characteristic, e > 1.0. For a softening spring characteristic, 0 < e < 1.0. |
cmax | A non-negative, double-precision variable that specifies the maximum damping coefficient. |
d | A positive, double-precision variable that specifies the boundary penetration at which Adams Solver applies full damping. For a plot of damping coefficient versus penetration, see IMPACT function (C++ or FORTRAN). |
iord | An integer variable that defines the order of the derivative IMPACT is to return. The order is usually zero, but it can be one or two. |
Output Arguments
errflg | A logical (true or false) variable that IMPACT returns to the calling subroutine. If IMPACT detects an error during its calculations, it sets errflg to true. |
vector | A double-precision vector of length 3, that returns the values calculated by the subroutine. The following table indicates the information in vector.  |
Extended Definition
IMPACT models collisions and contact. It evaluates a force that turns on when a distance falls below a nominal free length (that is, when two parts collide).
The force has two components: a spring or stiffness component and a damping or viscous component. The stiffness component opposes the penetration. The damping component of the force is a function of the speed of penetration. The damping opposes the direction of relative motion. To prevent a discontinuity in the damping force at contact, the damping coefficient is, by definition, a cubic step function of the penetration. Thus at zero penetration, the damping coefficient is always zero. The damping coefficient achieves a maximum, cmax, at a user-defined penetration, d.
An object colliding with ground is an example of a system that can be modeled with the IMPACT function.
Let x be the instantaneous distance, x1 be the free length (when x is less than x1, the force turns on), x1 - x be the penetration, and d be the penetration at which Adams Solver applies full damping (cmax).
■When x > x1, force = 0.
■When x < x1, force is positive.
■When (x1-d) < x < x1, force is positive; there is damping, but it is less than cmax.
■When x < (x1-d), force is positive and damping = cmax.
The following equation defines IMPACT:
See an explanation of the STEP function (C++ or FORTRAN).
Adams Solver never returns a negative force for IMPACT. If the above expression evaluates to negative value, Adams Solver returns a zero value.
For an example of an SFOSUB that calls IMPACT, see SFOSUB.
Caution: | ■IMPACT is only used to determine force or torque magnitudes. ■The force value and the distance measure must both be positive in the same direction. ■When e is less than or equal to one, the rate of change of the force is discontinuous at contact. This may cause convergence problems. |