experience and innovation

Now Hiring!

-------------------------------------------------------------------------------
   Friction model. This model uses a bristle state.

   F    = sigma0*z + sigma1*zDot + sigma2*v

   zDot = v - |v|*z/g(v)

   g(v) = (fC + (fS - fC)*exp(-(vS/v)^2))/sigma0;

   The maximum damping coefficient |v|/g(v) is an input. This prevents
   numerical instabilities. When the damping coefficient is set to the
   maximum value and

   zDot = max(|v|/g(v))*(zSS - z)

   so it damps to the equilibrium value which is

   zSS = sign(v)*g(v)/sigma0

   The maximum damping constant should be set to a number that is consistent
   with the time step. For example: 1/dT.

-------------------------------------------------------------------------------
   Form:
   [zDot, f, cDamp] = FrictionBristle( z, t, d )
-------------------------------------------------------------------------------

   ------
   Inputs
   ------
   z			  (:)     State
   t             (1,1)   Time (not used)
   d			  (:)     .v         - velocity 
                         .fStatic   - Static friction
                         .fCoulomb  - Coulomb friction maximum
                         .vStribeck - Stribeck velocity
                         .sigma0    - Bristle stiffnesss
                         .sigma1    - Bristle damping
                         .sigma2    - Viscous friction coefficient
                         .maxC      - Maximum damping constant

   -------
   Outputs
   -------
   zDot          (:)    Bristle state derivative
   f             (:)    Friction
   cDamp         (:)    The damping coefficient

-------------------------------------------------------------------------------