I am attempting to recreate a demonstration that someone told me about. A hollow steel ball rolls around in a non-metalic bowl, electromagnets keep it going. I obtained a steel ball and a glass kitchen bowl.

I rolled the ball manually as fast as I could, and made a video of it slowing down. I calculated the energy lost due to friction from the video. The frame rate is slow, so accurately recording the time for each revolution is difficult, I only recorded every fifth.

Next, I want to calculate the magnetic force necessary to keep it rolling at various rates. I plan on having 6 electromagnets spaced evenly around the bowl. A microprocessor will cycle through the electromagnets (I am an EE, this part is easy). I will measure the magnetic force since the calculations are difficult. My first attempt (1 coil only) only has a average force of about 2 grams. I want to get some feedback before I waste more time winding coils.

I instinct is to use conservation of energy, but I don't know how to convert the energy lost to a force.

How do I calculate the average force necessary to keep the ball rolling at various rates?

Some of my calculations have already included estimates, I realize that an exact answer isn't possible, +/-30% is good enough.

enter image description here

"Show Formulas" enabled: enter image description here

Edit: For the curious, I did get it to work. The electromagnets are 300 turns of 24 AWG wire on a U shaped piece of steel. They can only handle about 1.5 A continously, but I can pulse them at 4 A at a low duty cycle.

With 2 poles, I was able to get the ball to revolve continuously at about 2 RPM. You need to roll it manually to get it started (this was expected). But getting it started is difficult, it requires many attempts. I added a third pole, hoping to make it more reliable; but it didn't work, it won't run at all. I believe that the biggest issue is an imperfect ball. It has a threaded hole in it, and the walls may not be uniform. If one pull is a little stronger, it will get to the next pole too early and the next force will slow it way down, losing synchronization.

I need to add some type of position feedback, probably optical.

enter image description here

enter image description here


1 Answer 1


Friction does work to remove energy from the system that is $W=\int F(t) |v|dt$.

If you treat F(t) as a constant so it becomes W=Fd, even when it's not really constant that should give you an average friction force. All you need then it to know the speed of the ball and height above the bottom of the bowl at some time so you can calculate the total potential and kinetic energy, and the total distance the ball traveled until it came to a stop.

But average force might not be what you want since the energy lost is mostly due to rolling friction and the forces on the ball change over time going both above and below the average. If that's what you want then you need to figure out the coefficient of friction.

To do it with kinematics and energy would require you to track the normal force on the ball over time which requires knowing the ball position and bowl geometry.

If you want to use energy I believe you would need to to model it as an damped oscillating system like a pendulum with friction and measure how long it takes for the ball to dissipate all its energy. A damping factor and coefficient of friction should come out of that.

For example, you could film the ball being released along the edge of the bowl at a known height and film it go back and forth until it stops, measuring the amplitude over time and how long it took for the ball to come to a stop.

Another potential way is you could spin the ball like a top in the glass plate and measure it's initial speed and how long it takes to stop. If you know the speed over time you can iteratively back-calculate the force of friction between samples and derive the coefficient of friction from that. More numerical and less analytical than modelling an oscillating system, but might be simpler if you have computers. However, I am uncertain about how closely spinning in place resembles rolling since spinning in place is mostly rubbing friction while rolling friction is due to material deformation.

If measuring the coefficient of friction directly, it'd probably be a lot easier to get a flat glass plate and the ball rolling on that to get the coefficient of friction than to do it in the bowl. You would need to push the ball with a force sensor until it just starts to move. Alternatively, you push the ball to accelerate it up to speed after which keep it moving at a constant speed and take the force reading. The ratio between that force and the weight of the ball is the coefficient of rolling friction.

  • $\begingroup$ I believe that there are some misunderstandings. The ball is rolling in a circular pattern, not like a pendulum. It never goes very far up the wall, so I don't think that any potential energy due to rising up is significant. I have measured how the ball slows due to friction, I don't know what else would be useful to measure. $\endgroup$
    – Mattman944
    Sep 12, 2022 at 19:52
  • $\begingroup$ @Mattman944 No misunderstandings. The coefficient rolling friction is what it is. Doesn't matter how rolling side to side in the bowl until standstill like a pendulum or if it's rolling around in a circle. But I think you would agree that rolling side-to-side to a standstill is much easier test case for calculating rolling friction. But if you already know friction what else is it that you think you are missing? The only thing that removes energy from the ball is friction. If you supply the energy lost to that, then the ball behaves as if there were no friction. What's the problem? $\endgroup$
    – DKNguyen
    Sep 12, 2022 at 20:17
  • $\begingroup$ Besides, just overbuild it a bit and tune the power output to a level to where the ball stabilizes at the speed you want. Little point in calculating something like air resistance here. And it would probably be simplest if you made it a closed loop system rather than trying to perfectly model every possible aspect and running it open-loop; It'd be like trying to commutate a BLDC under load open-loop. $\endgroup$
    – DKNguyen
    Sep 12, 2022 at 20:19
  • $\begingroup$ Will this method work?: To maintain a given velocity, magnetic force = friction force. Friction force = mass * deceleration. $\endgroup$
    – Mattman944
    Sep 12, 2022 at 23:17
  • $\begingroup$ @Mattman944 In theory yes, but in practice no because you aren't applying a constant magnetic force to the ball that is always in the desired direction of motion. That magnetic force varies with distance and you only have limited time over which to apply that force. A sufficient force over time, that is an impulse is needed. I don't know why you're trying to model it so so hard to be honest. You're never going to get it all on paper. You're better off just finding an upper bound and building your system to accommodate that and then tuning it. $\endgroup$
    – DKNguyen
    Sep 13, 2022 at 1:13

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.