[SciPy-User] lsoda vs. Coulomb friction

Ryan Krauss ryanlists@gmail....
Thu Feb 4 08:33:26 CST 2010

Thanks for all the excellent and thoughtful responses.  I kind of
expected Warren to yell at me to stop using smooth solvers on
discontinuous systems and leave it at that.  Your responses not only
give me somethings to try, but make me feel like my question really
was a good one.

For now, I am basically following Anne's first suggestion:

* Declare that when the discontinuity becomes important, the Coulomb
friction model becomes too crude an approximation, and stop.
(Obviously if the results agree with experiment this is unnecessary.)

But I can only get away with this because the input stops or goes very
near zero at the end of the test where the velocity approaches zero.
I have rationalized that because there is no spring force in my model,
when the external input force is zero and the velocity gets small
enough, the mass basically skids to a stop because of friction and
there is nothing to make it start moving the other direction.

I will run some more experiments (probably early next week) with near
zero velocity and see if that helps me refine the model.  If nothing
else, it should give me enough data to compare some of your

Thanks again.  This is very helpful.


On Wed, Feb 3, 2010 at 7:44 PM, Charles R Harris
<charlesr.harris@gmail.com> wrote:
> On Wed, Feb 3, 2010 at 6:29 PM, Charles R Harris <charlesr.harris@gmail.com>
> wrote:
>> On Wed, Feb 3, 2010 at 6:05 PM, Anne Archibald <peridot.faceted@gmail.com>
>> wrote:
>>> 2010/2/3 David Goldsmith <d.l.goldsmith@gmail.com>:
>>> > "   :
>>> >     :
>>> > Returns
>>> >  -------
>>> >     :
>>> >     :
>>> >  infodict : dict, only returned if full_output == True
>>> >      Dictionary containing additional output information
>>> >         :
>>> >         :
>>> >      'mused'  a vector of method indicators for each successful time
>>> > step:
>>> >               1: adams (nonstiff), 2: bdf (stiff)"
>>> >
>>> > Note that it's a _return_ value: apparently with odeint, you can't
>>> > specify
>>> > which method to use, you can only "hear" which method the algorithm
>>> > decided
>>> > to use for you.
>>> In particular, odeint always (?) starts with a non-stiff method and
>>> switches to a stiff method if the problem appears to warrant it. It
>>> does not seem that odeint ever switches back to a non-stiff method
>>> even if the problem enters a non-stiff region.
>>> In any case, I'm not sure there's any reason to think that a stiff
>>> solver will help with the OP's problem,
>> Me neither, what motivated that suggestion is that if the object "sticks",
>> then the ODE becomes an algebraic equation. Another WAG would be to try a
>> low order integrator. I'm rather curious to see what works best here.
> Here is a bit of discussion. The author says that smoothing methods lead to
> stiff equations and notes that these are time consuming.
> Chuck
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user

More information about the SciPy-User mailing list