Simbody  3.7
SimTK::BoundedSpeedConstraint Class Referenceabstract

TODO: not implemented yet. More...

Public Member Functions

 BoundedSpeedConstraint ()
 
virtual ~BoundedSpeedConstraint ()
 
virtual Vec2 calcEffectiveBounds (const State &state) const =0
 Return the currently effective lower and upper bounds on the associated multiplier as a Vec2(lower,upper). More...
 

Detailed Description

TODO: not implemented yet.

A bounded speed constraint uses a single nonholonomic (velocity) constraint equation to prevent relative slip provided it can do so while keeping the generated force within a range given by a lower and upper bound. Outside that range the connection will slip and the force value will be one of the bounds, depending on the slip direction. An example is a torque-limited speed control motor. Recall that multipliers lambda have the opposite sign convention from applied forces. We enforce:

    lower <= -lambda <= upper and verr=0
    or verr > 0 and -lambda=lower
    or verr < 0 and -lambda=upper

The bounds (lower,upper) can be state dependent, for example, they may be dependent on the current slip velocity. When lower=-upper, this is just a restriction on the magnitude |lambda|, like a friction constraint where the normal force is known.

This constraint is workless when it is able to prevent slip with the force in range; it is maximally dissipative otherwise because the constraint force opposes the slip velocity.

Constructor & Destructor Documentation

◆ BoundedSpeedConstraint()

SimTK::BoundedSpeedConstraint::BoundedSpeedConstraint ( )
inline

◆ ~BoundedSpeedConstraint()

virtual SimTK::BoundedSpeedConstraint::~BoundedSpeedConstraint ( )
inlinevirtual

Member Function Documentation

◆ calcEffectiveBounds()

virtual Vec2 SimTK::BoundedSpeedConstraint::calcEffectiveBounds ( const State state) const
pure virtual

Return the currently effective lower and upper bounds on the associated multiplier as a Vec2(lower,upper).

The bounds may depend on time, position, and velocity taken from the given state.


The documentation for this class was generated from the following file: