0

Consider the dynamic simulation of an object that is sliding across a level surface and experiencing friction. The friction is a lower kinetic friction if the object is sliding faster than some threshold speed, and otherwise a higher static friction.

We can get rid of most of the physical quantities in this system and simply say that the object decelerates at rate a_k if it is faster than some (absolute) speed v_k, and otherwise it decelerates at rate a_s. We restrict 0 < a_k <= a_s.

We can call the position of our object x, and denote time by t, and then describe its dynamics with a differential equation as follows:

x(t) = t * x'(t)
x'(t) = t * x''(t)
x''(t) = (if |x'(v)| <= v_k then a_s else a_k) * -signum(x'(t))

If we want to simulate this system with the Euler method with a fixed time step, the speed x' will (in general) never become zero, as it will always be incremented or decremented by either a_s or a_k.

What is an explicit Nyström method that can be applied to this system with a fixed time step, such that the speed x' provably converges towards zero in general. Additionally, it would be nice if it converges at a certain rate O(t^a), with a <= -1 as soon as the simulation reaches the discontinuities in x'''.

Sibbo
  • 123
  • Why is your point of departure the Nyström or central Euler method and not, for example, the Heun/ explicit trapezoidal method? – Lutz Lehmann Mar 20 '24 at 14:28
  • Because I aim to use this particular equation in a much more complex system. I just want to isolate this one issue and solve it, to have a starting point for the more complex system. – Sibbo Mar 21 '24 at 07:28
  • 1
    From what I see, you need to improve your understanding of general numerical ODE approximation methods. The best way to implement phase/mode-switching in ODE functions is that you don't. You just go from phase boundary to phase boundary using exclusively the smooth equations of the current mode and then switch to the next set of smooth equations. This is usually done using the root-finding or event capabilities of the solver. – Lutz Lehmann Mar 21 '24 at 08:04
  • 1
    For the first see https://math.stackexchange.com/questions/3067795/deriving-the-central-euler-method-and-intuition, for using event functions for discontinuous but piecewise smooth ODE functions, see https://stackoverflow.com/questions/60309851/unsure-about-how-to-use-event-function-in-matlab. There exist some more advanced methods of treating the sliding mode without the bouncing-ball work-around. – Lutz Lehmann Mar 21 '24 at 08:45
  • Thanks! I'll check those out. – Sibbo Mar 22 '24 at 05:43
  • The links will not answer your question directly, but I hope that they help to formulate your ideas in more detail. – Lutz Lehmann Mar 22 '24 at 14:18

0 Answers0