Force Elements

WorldForce

Modia3D.Composition.WorldForceType
force = WorldForce(; objectApply,
                     forceFunction,
                     objectCoord = nothing)

Return a force acting at objectApply::Object3D calculated by function forceFunction. The force directions are defined by the coordinate axes of objectCoord::Object3D.

Arguments

  • forceFunction defines the force vector calculation function: forceVector = forceFunction(; time::TimeType, objectApply::Object3D{FloatType}, objectCoord::Object3D{FloatType})::SVector{3,FloatType} where {TimeType, FloatType}
  • objectCoord defines an Object3D which defines the coordinate directions of the force vector. In case of objectCoord = nothing the force vector is applied in World coordinates.

Results

  • forceVector is the force vector acting on objectApply, resolved in objectCoord.
source

WorldTorque

Modia3D.Composition.WorldTorqueType
torque = WorldTorque(; objectApply,
                       torqueFunction,
                       objectCoord = nothing)

Return a torque acting at objectApply::Object3D calculated by function torqueFunction. The torque directions are defined by the coordinate axes of objectCoord::Object3D.

Arguments

  • torqueFunction defines the torque vector calculation function: torqueVector = torqueFunction(; time::TimeType, objectApply::Object3D{FloatType}, objectCoord::Object3D{FloatType})::SVector{3,FloatType} where {TimeType, FloatType}
  • objectCoord defines an Object3D which defines the coordinate directions of the torque vector. In case of objectCoord = nothing the torque vector is applied in World coordinates.

Results

  • torqueVector is the torque vector acting on objectApply, resolved in objectCoord.
source

Bushing

Modia3D.Composition.BushingType
force = Bushing(; obj1, obj2,
    nominalForce      = [0.0, 0.0, 0.0],
    springForceLaw    = [0.0, 0.0, 0.0],
    damperForceLaw    = [0.0, 0.0, 0.0],
    nominalTorque     = [0.0, 0.0, 0.0],
    rotSpringForceLaw = [0.0, 0.0, 0.0],
    rotDamperForceLaw = [0.0, 0.0, 0.0],
    largeAngles       = false )

Return a force acting as bushing between obj1::Object3D and obj2::Object3D. The force directions are defined by obj1, i.e. the orientation of obj2 does not influence the resulting forces.

Arguments

  • nominalForce defines the nominal force vector, i.e. the force that acts when spring and damper forces are zero. Positive values act in positive axis directions at obj1 and in opposite directions at obj2.
  • springForceLaw defines the force law of the spring in x-, y- and z-direction:
    • A Real number represents a linear stiffness coefficient.
    • An univariate Function is used to compute the spring force dependent of its deflection.
  • damperForceLaw defines the force law of the damper in x-, y- and z-direction:
    • A Real number represents a linear damping coefficient.
    • An univariate Function is used to compute the damper force dependent of its deflection velocity.
  • nominalTorque defines nominal torques about alpha, beta and gamma directions.
  • rotSpringForceLaw defines the force law of the rotational spring about alpha-, beta- and gamma-direction:
    • A Real number represents a linear damping coefficient.
    • An univariate Function is used to compute the spring force dependent of its deflection.
  • rotDamperForceLaw defines the force law of the rotational damper about alpha-, beta- and gamma-direction:
    • A Real number represents a linear damping coefficient.
    • An univariate Function is used to compute the damper force dependent of its deflection velocity.
  • largeAngles can be used to enable large angle mode.
    • When disabled, small deformation angles (< 10°) are assumed. This option deals equally with rotations [alpha, beta gamma] about the axes [x, y, z] of obj1, but causes approximation errors for larger angles.
    • When enabled, the deformation angles and torque directions are calculated as Cardan (Tait–Bryan) angles (rotation sequence x-y-z from obj1 to obj2). This option supports angles up to nearly 90°, but introduces local rotation directions [alpha, beta gamma] which differ from the axes [x, y, z] of obj1 and increases computation effort.

Results

  • translation is the translation vector from obj1 to obj2, resolved in obj1.
  • rotation contains the rotation angles alpha, beta and gamma from obj1 to obj2.
  • velocity is the translation velocity vector from obj1 to obj2, resolved in obj1.
  • rotationVelocity contains the rotation angular velocities about alpha-, beta- and gamma-direction from obj1 to obj2.
  • springForce is the spring force vector.
  • springTorque contains the spring torques.
  • damperForce is the damper force vector.
  • damperTorque contains the damper torques.
  • torque contains the total torques.
  • forceVector is the force vector acting on obj2, resolved in obj1. At obj1 the same force vector is applied in inverse direction. In addition a compensation torque is applied at obj1 to satisfy torque balance.
  • torqueVector is the torque vector acting on obj2, resolved in obj1. At obj1 the same torque vector is applied in inverse direction.
source

SpringDamperPtP

Modia3D.Composition.SpringDamperPtPType
force = SpringDamperPtP(; obj1, obj2,
    nominalLength  = 0.0,
    nominalForce   = 0.0,
    springForceLaw = 0.0,
    damperForceLaw = 0.0 )

Return a force acting as point-to-point parallel spring-damper between obj1::Object3D and obj2::Object3D.

Arguments

  • nominalLength defines the nominal length, i.e. the distance between obj1 and obj2 where the deflection of the spring is zero.
  • nominalForce defines the nominal force, i.e. the force that acts when spring and damper forces are zero. Positive values represent tension.
  • springForceLaw defines the force law of the spring:
    • A Real number represents a linear stiffness coefficient.
    • An univariate Function is used to compute the spring force dependent of its deflection. Positive values represent tension.
  • damperForceLaw defines the force law of the damper:
    • A Real number represents a linear damping coefficient.
    • An univariate Function is used to compute the damper force dependent of its deflection velocity. Positive values represent expansion.

Results

  • length is the distance between obj1 and obj2.
  • deflection is the spring deflection.
  • velocity is the point-to-point velocity between obj1 and obj2.
  • springForce is the spring force (including the nominal force).
  • damperForce is the damper force.
  • force is the total force.
  • forceVector is the force vector acting on obj2, resolved in obj1. On obj1 the same force vector is applied in inverse direction.
source