Calculating Final Rotation of Spinning Wheel

Click For Summary
SUMMARY

The discussion focuses on calculating the final rotation of a spinning wheel using the equation for angular velocity, specifically addressing the impact of friction on the wheel's deceleration. The participant initially proposed the equation: change in angular velocity = angular velocity * friction * dT, but later recognized the need for a more accurate representation of angular acceleration. The correct approach involves using the equation: ω_f = ω_i + αt, where α represents angular acceleration. The conversation highlights the importance of understanding constant versus non-constant acceleration in the context of simulating realistic wheel behavior.

PREREQUISITES
  • Understanding of angular velocity and angular acceleration
  • Familiarity with basic kinematic equations
  • Knowledge of numerical integration techniques
  • Concept of friction and its effect on motion
NEXT STEPS
  • Research the application of differential equations in motion simulation
  • Learn about numerical methods for solving non-linear equations
  • Explore the concept of exponential decay in physics
  • Investigate how to implement constant acceleration in game physics
USEFUL FOR

Game developers, physics simulation engineers, and anyone interested in accurately modeling rotational motion and friction effects in simulations.

Dumbledore
Messages
33
Reaction score
0
Hello, I am really struggling with calculating the final rotation of a spinning wheel. I am not even sure if my equation for changing the velocity of the spinning wheel given a coefficient of friction is even correct so I will post it here...

change in angular velocity = angular velocity * friction * dT

Every frame I am setting a new angular velocity based on the above equation.
angular velocity = angular velocity - change in angular velocity

So in this universe where the above equation governs a spinning wheel, how would I find the final rotation of the wheel given an initial velocity (V1) and a coefficient of friction (0.185).

My attempt thus far:

Calculate the acceleration of the wheel (which I believe is the "change in angular velocity").

Then use that along with the initial speed and solve for Speed equals 0 (when the wheel finally stops). However, I think the problem I am having is I'm unfamiliar with the mathematics involved when the acceleration is constantly changing at every instant in time. I believe I have non constant acceleration because it depends on the current angular velocity to calculate the change in angular velocity.

Can someone give me a tip?
 
Physics news on Phys.org
Dumbledore said:
change in angular velocity = angular velocity * friction * dT
That cannot be right--the units don't match.

How about: change in angular velocity = angular acceleration*time ?
 
The equation is like this:
Vnext = Vcurr - (Vcurr * 0.185 * elapsedTimeInSeconds)

Practical examples given initial velocity (V1) at 10, with a dT of 0.5 (every 0.5 seconds, the velocity gets updated)

V2 = 10 - (10 * 0.185 * 0.5) = 9.075

V3 = V2 - (V2 * 0.185 * 0.5) = ??

Etc...

Now I'm just trying to figure out how to calculate when Vx will approach say... 0.005 (because it will never actually reach 0) and when that happens I would like to know what the current rotation of the wheel is... I'm open to a different equation for updating current angular velocity if it will make this whole thing easier.
 
Dumbledore said:
The equation is like this:
Vnext = Vcurr - (Vcurr * 0.185 * elapsedTimeInSeconds)
Once again, that equation cannot be correct. Check the units.
 
My understanding is that
V = velocity in radians.
0.185 per second
time in seconds

So the seconds cancel each other out. (Cause it is really 0.185/1sec)

That leaves you with a number representing angular velocity in radians which is the radians per second...

I don't know much about math, but I mean, the equation works. The wheel spins and decreases in speed realistically.
 
What makes you think the unit for your coefficient of friction is 1/s ? That's generally calls Hertz...a unit of frequency.
 
Dumbledore said:
My understanding is that
V = velocity in radians.
Angular velocity would be in radians per second.

Dumbledore said:
0.185 per second
I thought 0.185 was the coefficient of friction? Such a number has no units.

So far, you haven't provided enough information to calculate the torque due to friction or the resulting angular acceleration. Can you present the problem exactly as it was given?
 
Hey guys, I guess I'm even worse than I thought at this stuff :(

So I used coefficient of friction incorrectly. Basically the equation I have there is all the information available. The equation is essentially saying: update my current speed by subtracting my current speed with the acceleration (which is negative) times the time elapsed. My acceleration is -0.185/1sec*currentSpeed/1sec.

Perhaps just give me a better equation to update my current speed given t? Then you can use your working knowledge of the better equation to go ahead and answer the original question.
 
Dumbledore said:
So I used coefficient of friction incorrectly. Basically the equation I have there is all the information available.
Did you post the complete problem exactly as given, word for word? (It sure doesn't look like it.)

Dumbledore said:
The equation is essentially saying: update my current speed by subtracting my current speed with the acceleration (which is negative) times the time elapsed. My acceleration is -0.185/1sec*currentSpeed/1sec.
Is the number -0.185 the angular acceleration (##\alpha##)? (And not the coefficient of friction!) If so, the units would be rad/sec/sec.

The equation you may be looking for is: ##\omega_f = \omega_i + \alpha t##
 
  • #10
Dumbledore said:
However, I think the problem I am having is I'm unfamiliar with the mathematics involved when the acceleration is constantly changing at every instant in time.
If the rate of change of a variable depends on the value of the variable you have a differential equation:
http://en.wikipedia.org/wiki/Differential_equation

Some of them cannot be solved analytically, only numerically like you do it with your program (numerical integration). But for your case there is also an analytic solution:
http://en.wikipedia.org/wiki/Exponential_decay

Note that N(t) would be the function for your angual velocity. To get the function for total rotation you need the antiderivative of it.
 
  • #11
Dumbledore said:
However, I think the problem I am having is I'm unfamiliar with the mathematics involved when the acceleration is constantly changing at every instant in time.
I see no obvious reason to treat the acceleration as constantly changing. (But then again, the problem is not clearly stated.)

Dumbledore said:
I believe I have non constant acceleration because it depends on the current angular velocity to calculate the change in angular velocity.
I think that's because you were using an incorrect equation. No reason to think this is anything other than a constant acceleration problem. (But I'd be happy to be proven wrong.)
 
  • #12
@A.T. thanks, that was the information I was looking for.

@Doc Al This isn't a homework assignment where there is a "problem" description. I have created this problem by choosing this method of calculating change in angular velocity for a little game I am writing.

I would like to hear more about using a constant acceleration. From my experiments, a constant acceleration does not behave the way real life spinning wheels would behave. I am trying to make the spinning wheel realistically slow down and come to a halt. In your equation, is Wi the initial angular velocity?
 
  • #13
Dumbledore said:
In your equation, is Wi the initial angular velocity?
Yes, ##\omega_i## is the initial angular velocity. That equation is a basic kinematic relationship for constant acceleration.
 
  • #14
I used AT's links there to solve for t, but I am still a little stuck because this seems to be a far more complex problem than I originally realized.

The current rotation is updated with the angular velocity multiplied by dt. However, it is based on framerate. So if the function is called with a mean dt of say 50ms on one device, but on another device with a lower framerate it gets called with a mean dt of 100ms, then the final rotation can actually be quite different.

I really need to be able to compute where the wheel will end up, before it ends there. One way I can do this (but it is unfortunate because it can result in choppiness, is to call the update function on a set interval, rather than tying it to the framerate.

It just seems like I've gone down the wrong path... all this complexity just to figure out how many rotations a wheel will do given an initial velocity and an update function. I feel like I must be an idiot for not being able to come up with a more elegant solution.

Doc Al, AT, or any other critical thinkers out there have anything to pose?
 

Similar threads

Replies
67
Views
4K
  • · Replies 30 ·
2
Replies
30
Views
1K
  • · Replies 5 ·
Replies
5
Views
2K
Replies
7
Views
2K
  • · Replies 1 ·
Replies
1
Views
755
Replies
19
Views
3K
Replies
5
Views
1K
  • · Replies 33 ·
2
Replies
33
Views
2K
  • · Replies 30 ·
2
Replies
30
Views
4K
  • · Replies 19 ·
Replies
19
Views
2K