The Basics: I am trying to come up with an equation describing the motion of a particle resting on a non-stationary surface, given the motion of the surface. Imagine setting a coin on a board and then sliding the board back and forth in an oscillating motion. At a certain rate the coin will start to slip, but will not be completely stationary.

Known Variables:

  • Static Friction
  • Dynamic Friction
  • Motion of the Surface (i.e. the board, x(t), v(t), a(t))

Other Details: The motion of the board is non-linear and not a 'nice' function (it is a set of data points). I plan to determine the motion of the particle discretely using Scilab (poor man's MatLab). I am only considering 1D motion, forward and backward.

Background Info: I'm a mechanical engineer, but it has been a while since I've used any significant amount of dynamics, calculus, or differential equations. I've tried to research this on my own for a long time, but it seems like I need to re-learn those subjects before even attempting this problem. I'm willing to work for it, but not quit my job and go back to school...

My intent is to use this to model the performance of a machine that I'm working on so that I can optimize the design. I've tried writing an algorithm that looks at the acceleration between each data point and determine whether or not it is slipping. If it is not, I would add the motion traveled by the surface to the position of the particle. That works OK as a very rough estimate, but does not take into account the inertia of the particle or the existing velocity of the particle.

Is there a relatively simple way to do this?

  • $\begingroup$ If the motion is chaotic (in the general, non-Chaos-Theory sense of the word, i.e. not easily describable by a set of equations), then by definition the solution will have to be numeric. $\endgroup$
    – Wasabi
    Commented Aug 4, 2016 at 21:28
  • $\begingroup$ @Wasabi I'm not sure I follow you. Do you mean random? The motion of the surface is describable by a set of equations, but they are not very easy to work with and I'd like to have a general algorithm to use with many different motion curves. A numeric solution would be better anyway. Thanks. $\endgroup$
    – J Wilson
    Commented Aug 4, 2016 at 21:39
  • $\begingroup$ just by virtue of the tabular input the problem is numerical. start here en.wikipedia.org/wiki/… Id advise at first pass consider only dynamic friction, the stick/slip problem could be challenging $\endgroup$
    – agentp
    Commented Aug 5, 2016 at 11:55
  • $\begingroup$ @agentp Your advice to consider dynamic friction only is a very good idea. Even with that simplification though, I'm having trouble forming a motion equation for the particle. I know I can use the dynamic friction force as the driving force of the particle, but I do not understand how to incorporate inertia or momentum. Can you think of a similar problem that would be well documented? I'm going to look at projectile motion with atmospheric drag since drag is somewhat similar to friction. Thanks! $\endgroup$
    – J Wilson
    Commented Aug 5, 2016 at 13:24
  • $\begingroup$ your equation is just mass*x''(t)==mu*weight*(vtable(t)-x'(t)). I'm not familiar with scilab but id imagine it has a numerical ode solver available. (note that weight == mass*g, so the mass actually cancels out) $\endgroup$
    – agentp
    Commented Aug 5, 2016 at 13:54

1 Answer 1


Modelling static friction can be a real mess. There isn't an analytical solution to this problem since static friction works on an if/else kind of logic. However, you can model it numerically. I would suggest the following approach:

Assuming you have precomputed discretely sampled surface trajectories. Let $a(k)$ and $v(k)$ be the known acceleration and velocity of the surface at timestep $k$. Let $m$ be the mass of the particle and let $a_p(k)$ and $v_p(k)$ acceleration and velocity of the particle at timestep $k$. Let $F_{s,max}$ and $F_k$ be the known maximum static friction and kinetic friction. You have two equations for acceleration of the particle that you can switch between based on the acceleration and velocity of the plate:

If $v_p(k) - v(k) = 0$ and $ma(k)<F_{s,max}$ then

$a_p(k) = a(k)$


$a_p(k) = F_k/m$

Now that you have $a_p(k)$, numerically integrate to get $v_p(k+1)$ and $x_p(k+1)$. Loop over the entire set of data points.

Here's the logic: if the particle is not moving relative to the surface then it is experiencing the force of static friction, which will keep it moving at the same acceleration as the surface (up to a limit, dictated by the particle's inertia). When the inertia of the particle exceeds the maximum static force the particle will start to slip, therefore it will now only experience the kinetic friction.

Note: although in theory you can use the condition $v_p(k) - v(k) = 0$, numerically speaking it's unlikely that you will ever actually get exactly $0$, so I would suggest using a condition like $|v_p(k) - v(k)| < v_{min}$ instead. $v_{min}$ is an arbitrarily small velocity that means the particle has "practically stopped".

  • $\begingroup$ OK, that sounds like a good direction to take. I'm going to try that. Thanks! $\endgroup$
    – J Wilson
    Commented Aug 5, 2016 at 20:40
  • $\begingroup$ @JWilson I'm glad you found my answer helpful. If you believe it answers your question, could you mark it as accepted? $\endgroup$ Commented Aug 8, 2016 at 12:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.