Simbody
3.7

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...  
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 torquelimited 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.

inline 

inlinevirtual 

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.