What Makes a Sliding Book Stop Both Rotating and Translating Simultaneously?

In summary: Eventually, somebody smarter than us figured it out. But it was a long process. In summary, this question has been around for a long time, and nobody has been able to solve it.
  • #71
The key is that there is a specific spin to speed ratio that is approached asymptotically from either direction. To demonstrate that, all you need to demonstrate is that both the spin and speed friction is a function of the same spin to speed ratio, that each goes from near zero to a much larger value, and that they are both monotonic but one is increasing while the other is decreasing.

Given those constrains, they have to cross at a certain spin to speed ratio - and that that ratio, whatever it is, will be approached asymptotically as the book slows.

When I start that post, I was thinking I would attack the actual integration problem. But I don't have the time. But if you simply draw out the graphics as if you were about to attack that integration, all of the points I listed in the first paragraph become very evidently true.

Anyone who calculates "b" or rather b/r completes the proof.
 
Physics news on Phys.org
  • #72
MikeGomez said:
I’m afraid there is little hope for this. A.T. and DH (not to mention dozens of online sites) point out that friction does not depend on velocity. Friction is complex thing, and technically velocity can be a factor, but I think you will find that the magnitude of this effect is sure to be insignificant.
I seem to recall that kinetic friction decreases slightly as speed increases at higher speeds, and also the transition from kinetic to static friction at very slow velocity when an object stops sliding is not instantaneous, but a reasonably smooth transition where friction increases during the transition resulting in some jerk (change in rate of acceleration) just before an object stops sliding. I'm wondering how this affects any small portion of the book that has near zero velocity as the book translates and spins. However perhaps the original question is assuming an idealized case where velocity doesn't affect kinetic friction and that the transition from kinetic to static friction when an object stops sliding is instantaneous.

As a real world example, since it's part of the winter olympics, in curling, the stones can be made to curve with a very small amount of induced rotation compared to the induced linear velocity. A clockwise rotation results in a left to right curve.
 
Last edited:
  • #73
I did the integrations the dumb way (by having the computer march through an array of 201x201 points superimposed on the disk, so about 40000*pi/4 were evaluated.

The amount of energy in a disk that is spinning with an edge speed "s" has half the energy of a disk that is moving at speed "s", but since they both have the same frictional area they will both have the same total force applied to them.

So I was looking for a situation where the total force retarding the translation was double that retarding spin.

The results were interesting. Drum roll...
When those speeds are equal, the translation friction is at about 84.9% and the spin friction is at about 42.5%.
So that is the condition that the "book" will tend towards. In the case of the circular book, it's when the point on the book that is not actually moving is at the very edge.

I'll post the code in a moment.
 
Last edited:
  • #74
Code:
  int     nX, nY, nDiv, nYRange;
  __int64 nYRange2, nDiv2, nArea;
  double  fR, fX, fY, fX2, fQ, fB, fBR;
  double  fForceX, fForceY, fForceD, fRDiv;
  double  fForceXSum, fForceYSum, fTurnForce, fTurnForceSum;
  double  fSpinFrictionMax, fArea;

  fR    = 1.0;   // Radius

  for(fQ=0;fQ<=2.5;fQ+=0.05) {
    fB    = fQ;    // Estimated balance point.
    fBR   = fB*fR;
    nDiv  = 100;
    fRDiv = fR/nDiv;
    nDiv2 = (__int64)nDiv*nDiv;

    nArea = 0;
    fSpinFrictionMax = 0.0;

    fForceXSum  = 0.0;
    fForceYSum  = 0.0;
    fTurnForceSum = 0.0;

    for(nX=-nDiv;nX<=nDiv;nX++) {
      //
      // Compute the range of Y values that are within the disk given nX.
      nYRange2 = nDiv2-((__int64)nX*nX);
      nYRange = (int)sqrt((long double)nYRange2);
      fX  = nX*fRDiv;
      fX2 = fX*fX;
      for(nY=-nYRange;nY<=nYRange;nY++) {
        fY = nY*fRDiv;
        nArea++;
        fSpinFrictionMax += sqrt(fX2+fY*fY);
        fForceX = -fY-fBR;
        fForceY = fX;
        fForceD = sqrt(fForceX*fForceX+fForceY*fForceY);
        //
        // Check for zero-friction point.
        if(fForceD<0.001) continue;
        fForceX /= fForceD;
        fForceY /= fForceD;
        fTurnForce = fY*fForceX-fX*fForceY;
        //
        // Accumulate frictional forces.
        fForceXSum += fForceX;
        fForceYSum += fForceY;
        fTurnForceSum += fTurnForce;
      }
    }
    //
    // Compute all the proportional forces.
    fArea    = (double)nArea;
    fForceX  = fForceXSum/fArea;
    fForceY  = fForceYSum/fArea;
    fTurnForce = fTurnForceSum/fSpinFrictionMax;
    //
    // Output fQ, fForceX, and fTurnForce here ...
    ...
  }
 
  • #75
A.T. said:
I'm not sure if this idea helps. The net force/torque will depend on the orientation of the two points w.r.t the linear velocity. It seems more complicated than the ring where force/torque depend only on v & omega.

AlephZero said:
With only two point masses, you lose the rotational symmetry of the system, so the behaviour would be different.

That is clear if you consider the friction forces when the rod is perpendicular to the direction of motion: if ##\omega r /2 < v##, there is no torque component of the friction because both masses are moving in the same direction as the ##v## vector.

On the other hand, n > 2 point masses should be a rotationally symmetrical system. This is the same as evaluating the integrals using the trapezium rule with n integration points.

But I don't expect it would give any more insight than Delta Kilo's result, which seems to confirm my hand-waving conjecture in an earlier post.

You might like to try it for n = 4, which is probably easier math than n = 3.

With this method I won't be concerned with finding net torque. I will simply run the physics for a couple of points (or 3 or 4 points) and check the motion at small increments of time.

Checking translational motion is trivial, because at each slice of time we just compare the current position of the center point with its previous position.

Checking the rotational motion is just as trivial because we just take the arctangent of the angle from the center point to any point, and compare with the previous angle. Technically we don't even need to find the angle, because if there is no rotation there will be no relative change in position between the center point and any of the other points.
 
  • #76
Great forum and question! Since this is my first post here, I'd like to confess that I failed the only physics courses I took in college, so feel free to discount my opinions if you'd like.

I don't think the problem is correct. If what the question stipulates is true, then I think it implies the following must be true as well. For these cases I think it's easier to imagine an ice rink than a table, but still assume "perfect" friction surfaces.

CASE A - Take the book and push it forward slightly with no rotation (let's say X velocity) so that it translates forward and stops after one second.

CASE B - Spin the book extremely rapidly (let's say Y RPM) in place so that it takes 100 seconds to stop.

CASE C - Set the book so it goes both forward with X linear velocity and rotates at Y RPM.

The problem as written implies that the book will travel further in CASE C than it would in CASE A. It will necessarily take longer than 1 second to stop translating, if it must stop translating at the same time it stops rotating. It does this even though no additional linear momentum was added.

I don't think that's correct.
 
  • #77
campbbri said:
Great forum and question! Since this is my first post here, I'd like to confess that I failed the only physics courses I took in college, so feel free to discount my opinions if you'd like.

I don't think the problem is correct. If what the question stipulates is true, then I think it implies the following must be true as well. For these cases I think it's easier to imagine an ice rink than a table, but still assume "perfect" friction surfaces.

CASE A - Take the book and push it forward slightly with no rotation (let's say X velocity) so that it translates forward and stops after one second.

CASE B - Spin the book extremely rapidly (let's say Y RPM) in place so that it takes 100 seconds to stop.

CASE C - Set the book so it goes both forward with X linear velocity and rotates at Y RPM.

The problem as written implies that the book will travel further in CASE C than it would in CASE A. It will necessarily take longer than 1 second to stop translating, if it must stop translating at the same time it stops rotating. It does this even though no additional linear momentum was added.

I don't think that's correct.
It is correct.
To make the RPM and the velocity more comparable, let's say that in case B, points near the outside edges of the book are traveling at velocity E = 100X. In this case, the effective translational friction at the outset of case C will be approximate 1% of what it is at the outset of case A. Even after 25 seconds, it will still be only about 2%. At 50 seconds it will still be spinning, but it will be approaching the V = 2E ratio and will almost ready to stop.

-----------------------

Actually, I can compute the initial conditions based on the information you provided.
The value "E", velocity of points near the edge of the book for case B, must be 50·V, because if they matched (if E==V), then it would only take twice as long for the rotation to stop (ie, 2 seconds).

So for case C:
At the start, E=50V and the translational friction is about 2% of what it was at the start of case A and the rotational friction will be about 100% of what it was.
 
Last edited:
  • #78
If anyone finds it useful, this table shows the frictional force at various spin(edge) velocity/book velocity ratios.
The frictional forces are expressed at the percentage of the best possible friction. So for travel friction, it is compared to what it would have been without any spin. And for spin friction, it is compared to what it would have been without any travel.

Of course, it's based on the C++ code supplied a few posts ago.

Code:
travel/     friction
  spin   --(% of best)--
 ratio   travel    spin
-------  ------   ------
  0.00     0.00   100.00
  0.05     5.00    99.81
  0.10     9.99    99.25
  0.15    14.96    98.32
  0.20    19.90    97.02
  0.25    24.80    95.37
  0.30    29.66    93.37
  0.35    34.46    91.03
  0.40    39.18    88.37
  0.45    43.83    85.41
  0.50    48.39    82.16
  0.55    52.84    78.66
  0.60    57.17    74.92
  0.65    61.36    70.99
  0.70    65.40    66.90
  0.75    69.27    62.69
  0.80    72.95    58.42
  0.85    76.40    54.15
  0.90    79.59    49.97
  0.95    82.46    45.99
  1.00    84.88    42.45
  1.05    86.69    39.67
  1.10    88.13    37.36
  1.15    89.31    35.36
  1.20    90.31    33.59
  1.25    91.17    32.02
  1.30    91.91    30.60
  1.35    92.56    29.32
  1.40    93.13    28.15
  1.45    93.63    27.07
  1.50    94.08    26.08
  1.55    94.48    25.16
  1.60    94.84    24.31
  1.65    95.17    23.52
  1.70    95.46    22.77
  1.75    95.73    22.08
  1.80    95.97    21.43
  1.85    96.20    20.82
  1.90    96.40    20.24
  1.95    96.59    19.69
  2.00    96.77    19.18
  2.05    96.93    18.69
  2.10    97.08    18.22
  2.15    97.22    17.78
  2.20    97.35    17.36
  2.25    97.47    16.96
  2.30    97.58    16.58
  2.35    97.68    16.21
  2.40    97.78    15.87
  2.45    97.87    15.53
  2.50    97.96    15.21
 
  • #79
campbbri said:
CASE A - Take the book and push it forward slightly with no rotation (let's say X velocity) so that it translates forward and stops after one second.

CASE B - Spin the book extremely rapidly (let's say Y RPM) in place so that it takes 100 seconds to stop.

CASE C - Set the book so it goes both forward with X linear velocity and rotates at Y RPM.

The problem as written implies that the book will travel further in CASE C than it would in CASE A. It will necessarily take longer than 1 second to stop translating, if it must stop translating at the same time it stops rotating. It does this even though no additional linear momentum was added.

I don't think that's correct.
The initial amount of linear momentum in CASE A & CASE C is the same, but the rate of it's transfer to the table is different. Let's assume sliding friction doesn't depend on speed, so that only it's direction changes according to the relative velocity vector.

- In CASE A the friction forces of all book parts are opposed to the linear momentum vector, so the net linear force opposing linear motion is maximal.

- In CASE C the friction forces are almost tangential at each point, so the net linear force opposing linear motion is almost zero.

I'm not saying that in reality this works out exactly as claimed even in such extreme cases, but your argument against it is flawed, because it assumes the same net linear forces in CASE A & CASE C.
 
  • #80
... stop translating at the same time it stops rotating ...
I recorded some of the winter olympic curling. In the cases of collision betwen stones, a stone sometimes ends up with a moderate amount of spin after the collision, and the stones forward motion stops before the spin stops. After the forward motion stops but while the stone is still spinning, there's a slight sideways drift, but the forward motion is stopped and if anything, the drift has a slightly curved backwards component.
 
  • #81
Thanks Scott and A.T. Those explanations make sense.
 
  • #82
rcgldr said:
I recorded some of the winter olympic curling.
Friction on Ice is quite complex, and cannot be modeled with a constant coefficient. The pressure and friction melt the ice, so it becomes more slippery because of the water film. When something spins almost in place on ice, it might create a small pond where it wants to stay spinning.

I think for the purpose of the original question we should stick to dry sliding friction.
 
  • #83
rcgldr said:
I recorded some of the winter olympic curling. In the cases of collision betwen stones, a stone sometimes ends up with a moderate amount of spin after the collision, and the stones forward motion stops before the spin stops. After the forward motion stops but while the stone is still spinning, there's a slight sideways drift, but the forward motion is stopped and if anything, the drift has a slightly curved backwards component.

Changes in spin/translation due to collisions don’t apply here because the external force is acting at a localized location on the stone, not the entire contact surface.

In general I don't think comparison with the dynamics of a curling stone is a good comparison with the book. The ice has an extremely low coefficient of friction, the stone is much heavier, the stone is thrown with much greater forward momentum, the surface contact area is a very thin ring, and the curlers make the friction in the path unbalanced from one side to the other.

If the stone had a flat contact surface and the ice was perfectly flat and smooth with nobody messing with it, then that might be an interesting experiment, but still overkill. Sorry to be grumpy, but to me it’s almost like having a discussion about the velocity of a bullet and going off on a tangent about the relativistic effects or something else that is not pertinent.

You toss the book on the table and the rotation and translation stop at the same time.
If there is any minute difference it is well below our ability to perceive it as humans.

Try this. Toss the book so that it translates for one second. Then toss it so that is spins for 5 seconds. Now do both at the same time: toss it so it will stop translating in one second, while at the same time giving it enough spin so that it will stop spinning in 5 seconds. You can’t do it, and the question is why.
 
  • #84
tehrv said:
It is supposed to be a 'qualitative' problem, so I don't think they wanted you to write much. Something like gralla's argument may be on the right track.

Yes. There has to be an acceptable qualitative explanation that, even if you cannot write out all the math, proves the behavior from first principles.

D H said:
It might help to look at this problem from the perspective of the instantaneous center of rotation. I've just started playing with this mess, so I don't yet know if it's a viable approach; hence the "it might help".

If there exists finite positive bounds dmin and dmax on the distance d between the center of mass and the instantaneous center of rotation is bounded (dmin<d<dmax) while the object is moving, then the object will stop rotating and translating simultaneously. It's a bit trickier if d→0 as v→0 or if d→∞ as ω→0.

This is close to the correct approach. It can be refined by noting the following two principles:
  • for the frictional force to STOP rotation, it must be 100% symmetrical around the center of mass
  • for the frictional force to STOP translation, it must be 100% against the direction of motion of the center of mass (the net force of friction must "point at" the center of mass)

I shouldn't have to prove the above points, but I can if someone would care to question them.

The proof of why both translation and rotation have to stop at the same time is that neither of these conditions can be met while the book is both rotating and translating. If the book is translating, any torque will be around a node that is some distance from the center of mass (the distance as described by D H, above). Similarly, if the book is rotating, the net force on the book due to friction cannot be pointed straight at the center of mass.

So here are the three cases:
  1. If rotating only, the node sits at the center of mass and stays there.
  2. If translating only, there is no node, because there is no rotation by which to determine where the node is.
  3. If both rotating and translating, the node gradually moves from some point away from the center of mass (even beyond the extent of the book, if it's a fast translation/slow rotation), inexorably toward the center of mass. The book MUST stop when the node reaches the center of mass, due to both rotation and translation needing to approach that point continuously.

The most difficult part of my argument to justify for others is the requirement that both rotation and translation must stop at the same time, since simply asserting it merely begs the question.

The reason is the two principles I started with: the conditions for stopping rotation and translation are mutually exclusive. They are only met at that infinitesimal point of time when both rotation and translation are stopped, or in the case that there is only rotation or the case that there is only translation.
 
Last edited:
  • #85
I still think the most relevant factor in all of this is that only one point on the book is ever stationary at anyone time. This refers to the spinning and translating condition. There is exponential (instantaneous) rate of decay (with distance) so no single point (except the Zero velocity point - which is constantly shifting about, of course) will lose its energy before any other. So you cannot choose more than the 'zero velocity' point that will also have zero velocity.

I don't think this argument is circular (not a pun) but I don't see how more than one point could actually be stationary. Considering the trajectories of all the points on the surface, they will take some of them to the zero velocity condition (only the ones for which ωr = |v|). None of the other points can be stationary.

Does anyone see what I am getting at?
 
  • #86
AlephZero said:
Arm-waving math + Arm-waving physics still equals Arm-waving solution, IMO.

The thing you haven't proved (and to be fair, neither did I, nor Delta Kilo) is
No matter what the starting conditions are, as long as there is some spin and some translation, the ratio of spin to translation will continuously move closer to some certain value until that ratio becomes 0/0 and both stop.
Well, I think I actually did prove it, at least for a uniform ring.

If we introduce ## p = \log(\frac{v}{\omega})##, ## q= v \omega##, then it can be shown that
## p' = -\sqrt{\frac{2}{q}} \sinh p \int\limits_0^{2\pi} \frac{\sin \alpha}{\sqrt{\cosh p - \sin \alpha}} d\alpha##
It is easy to show that the integral is always > 0, and so the sign of ##p'## is always the opposite of ##p##. This means, starting from a finite value of p, ## |p|## always decreases with time. Which in turn means, when ## q → 0## (that is when either ##v## or ##\omega## or both → 0), ## p ## and therefore the ratio ## \frac{v}{\omega}## remains finite, so both stop at the same time.
 
  • #87
tehrv said:
How about this?
So, we can rewrite the deceleration of each point as a sum of a translational and a rotational part.

Moreover, and this is the key part, we see that the ratio of the magnitudes of the deceleration of the translational part and the deceleration of the rotational part is PROPORTIONAL to the ratio of the magnitudes of their respective velocities. Call this the PROPORTIONALITY CONSTRAINT:

Deceleration of the translational component/Deceleration of the rotational component
=Speed of the translational component/Speed of the rotational component.
This is not true.
In the simple case that I examined, where the book is in the shape of a circular disk, the translational and rotational parts did not remain constant.

Instead they approached a specific ratio. In terms of energy, the translate to rotate ratio was 2 to 1. In terms of speed, where the rotational speed is defined as the relative speed of a point on the circumference to the point in the middle, that ratio was 1 to 1.

If the ratio starts higher than this, the translational friction is more than twice the rotational friction, so the translational energy is reduced disproportionately faster.

If the ratio starts lower than this, the rotational friction is more than half the translational friction, so the rotational energy is reduced disproportionately faster.

---- edit to add ---
I just realized the post I am responding to is not recent.
Still, it shows that the first attempt by the OP was almost valid. The only problem being that the situation is better than he supposed.
 
Last edited:
  • #88
uumlau said:
This is close to the correct approach. It can be refined by noting the following two principles:
  • for the frictional force to STOP rotation, it must be 100% symmetrical around the center of mass
  • for the frictional force to STOP translation, it must be 100% against the direction of motion of the center of mass (the net force of friction must "point at" the center of mass)

I shouldn't have to prove the above points, but I can if someone would care to question them.

It would be interesting to see the proofs. Both the assertions see to be wrong. The first one seems obviously wrong, if you spin a wheel and stop it with a friction force applied at one point on the rim.
 
  • #89
AlephZero said:
It would be interesting to see the proofs. Both the assertions see to be wrong. The first one seems obviously wrong, if you spin a wheel and stop it with a friction force applied at one point on the rim.

A clarification of my initial points:
  • for the frictional force to STOP rotation without also stopping translation, it must be 100% symmetrical around the center of mass
  • for the frictional force to STOP translation without also stopping rotation, it must be 100% against the direction of motion of the center of mass (the net force of friction must "point at" the center of mass)

My apologies for not being more clear in my initial post. I'm not trying to "always be right" by modifying my explanation, but communicating qualitative ideas is an imprecise art. I appreciate your feedback in that it helps clarify things all around. :smile: If it were an easy problem, this thread would be very short.

In your counter-example, there is also a fixed axle exerting a force that exactly counters any translational force on the wheel. I'm regarding the book as uncoupled to anything other than the frictional force on the surface. If the book were nailed down with some sort of axle on the surface, the OP problem could not be posed. In the problem as posed, to stop rotation without stopping translation requires a rotationally symmetric application of forces.

Given a rotating/translating book, the rotation is not around the center of mass (it is, in the book's frame of motion, but not ours), but around a moving point some distance from the path followed by the center of mass, direction and distance depending on the the ratio between the angular spin and the translational velocity.

If there were no translation, that center of rotation would be at the same point as the center of mass. If there were no rotation, that point would be infinitely far from the center of mass.

It is the fact that the point is a finite distance from the center of mass that forces both rotation and translation to stop simultaneously. The simplest intuitive case to consider is when that point is underneath the book, but not coincidental with the center of mass. In this case, there is an asymmetric set of forces on the book, exerting a torque around that point of rotation (not the center of mass), and also decelerating the translation (because the forces aren't symmetrical around the center of mass).

Only that single point of rotation, underneath the book, feels no net force. In order for the book to stop rotating, but keep translating, that center of rotation must instantaneously move from underneath the book to infinitely far from the book. In order for the book to stop translating, but keep rotating, the net force must instantaneously move from where it is (exerting a force offset from the center of mass, slowing both rotation and translation) to the center of mass.

If (contrary to my intuitive interpretation in my earlier post) the point of rotation never reaches the center of mass, then both rotation and translation must cease simultaneously. If it continuously approaches the center of mass (or a point infinitely far), then the condition that rotation and translation must stop simultaneously applies for the duration until reaching either limit, which, by arguments of continuity, implies that rotation and translation must stop simultaneously AT either limit. I'm beginning to suspect that the center of rotation doesn't move unless the frictional force from the surface is uneven (due to normal irregularities in the surface). I'd have to sit down and do the math to figure out if it does, but I'm refraining from doing so because I prefer to hone the qualitative explanation, for now. (And because I'm lazy. :-p)

tl; dr version:

If the book is both rotating and translating, there is no way for it to stop just one or the other without some kind of discontinuity in the motion, as indicated by the location of the center of rotation.
 
  • #90
Isn't is simply due to loss of kinetic energy i.e. the book is moving (rotating and translating) due to kinetic energy that friction opposes. Since friction is not a conservative force, the kinetic energy is lost and since the book is on the flat table there is not potential energy so when the kinetic energy ends then the movement (rotation and translation) stops at the same time.
 
  • #91
There appears running torque for the rotation.Fulcrum and force are two essential ingredients for running torque. That is to say, ununiform configuration of force is responsible to the rotation.In addition, rotation disappears if surface is ideally flat.
 
  • #92
Could someone tell me (I may have missed this in the past 90 posts; if so, I apologise) why the 'rotational' motion of a point is being considered? Does that have any meaning? At anyone instant, all points can be considered to have a linear velocity. What is the 'frictional torque' on a point?
The energy loss at any point is just proportional to its speed, as I have pointed out before. The faster moving points will be dissipating the book's KE faster than the slower moving points (it will be zero for the one point that happens to be stationary). If just one point is moving then all the others but the pivot point, must be moving too (rigid book).
Also, the relative distribution of speeds over the surface will be the same for the same ratio of rotation /translation speeds (everything scales). The rate of energy loss over the surface will be proportional to the absolute speed of , the CM and ratios of velocities will also be the same during every rev of the book.

Full marks to people for trying a simulation but the initial equations for a simulation must be justified before the results actually prove anything.
 
Last edited:
  • #93
uumlau said:
A clarification of my initial points:
  • for the frictional force to STOP rotation without also stopping translation, it must be 100% symmetrical around the center of mass
  • for the frictional force to STOP translation without also stopping rotation, it must be 100% against the direction of motion of the center of mass (the net force of friction must "point at" the center of mass)
Although it is true that rotation stop at the same time, I think the only thing you have demonstrate is that rotation can only stop when translation is slowed, and vice versa.

uumlau said:
I'm beginning to suspect that the center of rotation doesn't move unless the frictional force from the surface is uneven (due to normal irregularities in the surface). I'd have to sit down and do the math to figure out if it does, but I'm refraining from doing so because I prefer to hone the qualitative explanation, for now. (And because I'm lazy. :-p)
Based on the program I wrote, that pivot point always moves towards the edges of the book. If the book is circular, it will approach the a point on the circumference.
uumlau said:
If the book is both rotating and translating, there is no way for it to stop just one or the other without some kind of discontinuity in the motion, as indicated by the location of the center of rotation.
If we slowed it down by some other method (not friction), we could stop one without the other and there would be no discontinuity of motion.
 
  • #94
sophiecentaur said:
Also, the relative distribution of speeds over the surface will be the same for the same ratio of rotation /translation speeds (everything scales). The rate of energy loss over the surface will be proportional to the absolute speed of , the CM and ratios of velocities will also be the same during every rev of the book.
The KE at any point will be proportional to the square of the speed, so reducing the KE in proportion to the speed will not keep everything proportional. It will disproportionately affect the speed of the slower moving points.

... I'm still considering one of your other points ...
 
  • #95
.Scott said:
The KE at any point will be proportional to the square of the speed, so reducing the KE in proportion to the speed will not keep everything proportional. It will disproportionately affect the speed of the slower moving points.

... I'm still considering one of your other points ...

But the rate of loss of energy is proportional to speed (friction force times speed is dissipated power); that's my point about "everything" being proportional. Perhaps the word "everything" was a bit unspecific.
What I am getting at is that the same exponential energy dissipation (not KE) decay factor applies to every point at every time; whatever its instantaneous speed, its loss of power is proportional to that speed. This, in my reasoning, means that no energy can be lost from anywhere 'first'. This all hangs upon the idea that the 'rotational' forces and energy do not have to be relevant - even if the way they have been used by some contributors is actually valid - I have my doubts about that.

I thought that this idea could be applied even better if you bear in mind that the instantaneous stationary point (reference the table) will follow a path over the bottom surface which will repeat itself once per cycle of rotation*. So you could break one cycle into a loop of N delta steps and apply my exponential idea to every point sampled at a given angle of rotation. Sm(tn) would represent the speed Sm of point m at time tn, where n goes from 1 to N every rotation. The speed samples Sm(tn) would all follow a path of energy loss against speed Sm(tn). No individual point could attain zero speed (unless there was no initial translation speed); at times when its speed is low, the energy loss is low and when its speed is high the energy loss would be high - but the rest of the book is coupled to it so you could say it is sharing the total KE of the other points and, between them, all points are dissipating the KE at different rates and at different times.
*Hmm - that may be a circular argument but, even without it, my reasoning seems coherent - to me.
 
  • #96
sophiecentaur said:
Full marks to people for trying a simulation but the initial equations for a simulation must be justified before the results actually prove anything.

This is basically the same code as before but with better annotation.
I also eliminated an unnecessary variable and renamed two other variables.

Let me know if you want more detail or explanation.

Code:
  //
  //  This code computes the frictional forces acting on a spinning and
  // translating disk at one moment in time.  The ratio of the speeds of
  // rotation and translation are varied over a wide range.
  int     nX, nY, nDiv, nYRange;
  __int64 nYRange2, nDiv2, nArea;
  double  fR, fX, fY, fX2, fPivot, fPR;
  double  fForceX, fForceY, fSpeed, fRDiv;
  double  fForceXSum, fForceYSum, fTurnForce, fTurnForceSum;
  double  fSpinFrictionMax, fArea;

  //
  //  I am presuming a circular book.  "fR" is the radius of that book and I
  // am setting it to 1.  This doesn't really matter because everything will
  // scale to the radius anyway.
  fR    = 1.0;   // Radius
  //
  //  The ratio of the rotational speed and the translational speed can be
  // described by specifying the "pivot" as a ratio of the radius, which I
  // calling "pPivot".  When pPivot is zero, there is only spin motion.
  //  The pivot point is the location where there is no relative motion
  // between the book and the surface.  It will always be along a line
  // that crosses through the center of the book and is perpendicular to
  // the translational motion of the book.
  //  When pPivot is 1, the pivot point will be at the circumference of
  // the book.  When pPivot is zero, the pivot point is at the center of
  // the book.
  //  I am varying the pPivot from 0 (book center) to 2.5 (well outside
  // the book so there is much more translation that rotation.
  for(fPivot=0; fPivot<=2.5; fPivot+=0.05) {
    //
    //  Multiplying "fPivot" by the radius gives us the actual distance
    // between the pivot point and the center of the book.
    fPR   = fPivot*fR;
    //
    //  I will be performing discrete integrations across the surface of
    // the book.  "nDiv" is the number of discrete interval I will be
    // using along the radius.  Computation time will be proportional to
    // nDiv*nDiv but precision improves as nDiv is increased.
    nDiv  = 100;
    //
    //  Two values that will be needed in the inside loops (below) are
    // precomputed here.  They are the actual distance of one interval
    // (fRDiv) and the square of nDiv (nDiv2).
    fRDiv = fR/nDiv;
    nDiv2 = (__int64)nDiv*nDiv;
    //
    //  We will be integrating five value:
    //   nArea:    The area of the circular book surface.
    //   fSpinFrictionMax:  The force that would have been applied
    //           against friction if there was no translational force.
    //   fForceXSum:  The translational force along the direction of
    //           travel.
    //   fForceYSum:  The translational force perpendicular to the
    //           direction of travel.  This should be zero and is used
    //           as a check.
    //   fTurnForceSum:  The force applied against the book's spin.
    nArea = 0;
    fSpinFrictionMax = 0.0;

    fForceXSum  = 0.0;
    fForceYSum  = 0.0;
    fTurnForceSum = 0.0;

    //
    //  Discrete integral along the direction of motion from the
    // trailing edge to the leading edge.
    for(nX=-nDiv;nX<=nDiv;nX++) {
      //
      //  The book is circular and we only want to integrate across
      // points that are on the books surface.  So we compute the
      // range of Y value that will keep us on the book (nYRange).
      //  We are using __int64 foor the intermediate results.  This
      // will allow us to use values of nDiv above 45000 - not that
      // we would want to run the program that long.
      nYRange2 = nDiv2-((__int64)nX*nX);
      nYRange = (int)sqrt((long double)nYRange2);
      //
      //  Compute the X coordinate and its square.
      fX  = nX*fRDiv;
      fX2 = fX*fX;
      //
      //  Discrete integral across the direction of motion from the
      // left edge to the right edge.
      for(nY=-nYRange;nY<=nYRange;nY++) {
        //
        // The Y coordinate.
        fY = nY*fRDiv;
        //
        //  These next two integrals (nArea and fSpinFrictionMax)
        // are not dependent on fPivot.  So if I wanted to optimize
        // for speed, I could create separate (nX, nY) loops for
        // them so that they are only computed once.
        //
        //  Integrate the book's area by integration so that it will
        // match the other integrals.
        nArea++;
        //
        //  Integrate the spin friction assuming no translation.
        fSpinFrictionMax += sqrt(fX2+fY*fY);
        //
        //  Compute the direction of the frictional force.  It will be
        // against the direction of motion and can be computed
        // from the relative position of this point to the pivot point.
        fForceX = -fY-fPR;
        fForceY = fX;
        //
        //  Compute the speed.
        fSpeed = sqrt(fForceX*fForceX+fForceY*fForceY);
        //
        //  Check for the zero-friction point.  This is important to
        // avoid zero/zero division.
        if(fSpeed<0.001) continue;
        //
        //  I'm using a coeeficient of friction of "1", so the absolute
        // value of (fForceX,fForceY) must be 1.
        fForceX /= fSpeed;
        fForceY /= fSpeed;
        //
        //  The turn force is the cross product of the force and the
        // arm to the center of gravity (fX,fY).
        fTurnForce = fY*fForceX-fX*fForceY;
        //
        // Accumulate frictional forces.
        fForceXSum += fForceX;
        fForceYSum += fForceY;
        fTurnForceSum += fTurnForce;
      }
    }
    //
    // Compute all the proportional forces.
    fArea    = (double)nArea;
    fForceX  = fForceXSum/fArea;
    fForceY  = fForceYSum/fArea;
    fTurnForce = fTurnForceSum/fSpinFrictionMax;
    //
    // Output fQ, fForceX, and fTurnForce here ...
    ...
  }
 
  • #97
.Scott said:
This is basically the same code as before but with better annotation.
I also eliminated an unnecessary variable and renamed two other variables.

Let me know if you want more detail or explanation.

Code:

OK, so that works out the forces. Then will you calculate the effects of those forces on the book as a whole? It could help perhaps is you were to describe the process analytically, rather than in code. Code is easily digestible by a compiler but a series comment lines tends get a bit disjointed for the human reader.
I guess your approach so far is fine. What does the next step involve and what does it show?
 
  • #98
sophiecentaur said:
I thought that this idea could be applied even better if you bear in mind that the instantaneous stationary point (reference the table) will follow a path over the bottom surface which will repeat itself once per cycle of rotation*.
I'm not sure where you're getting this.
If you take the maximum frictional forces for translation and rotation as occurring when there is, respectively only translation or only rotation, then the table shows what percentage of that maximum force you have when the pivot point it not at those extremes. Although, I am wondering if I should have computed energy loss instead of force. What is critical is that in either case (force or energy) the spin and translation curves will be monotonic. So they will cross at a particular point and the book will tend towards the spin/translation ratio corresponding to that point. The only time there will be a regular oscillation of this ratio is when the book is not circular and it is already at the ideal spin/translation ratio.
 
  • #99
There will be only one point at any time that is not moving wrt the table. For a disc the points will lie on a circle where tangential velocity equals minus translation velocity of centre. For a general shape the locus may not be a circle (?) this point is losing no energy from the book.
 
  • #100
sophiecentaur said:
OK, so that works out the forces. Then will you calculate the effects of those forces on the book as a whole? It could help perhaps is you were to describe the process analytically, rather than in code. Code is easily digestible by a compiler but a series comment lines tends get a bit disjointed for the human reader.
I guess your approach so far is fine. What does the next step involve and what does it show?
I tend to think in a mixture of graphics and computation - and sometime the graphics don't translate fluently to equations.

The basic question can be restated as:
Given any particular initial spin/translate ratio, will that ratio tend towards the extremes (no spin or no translate)?
Or, restated again:
Given any particular spin/translate ratio, in what direction will the spin/ratio change?
If the answer to that last question is either "the ratio stays constant" or "is tends to some middle point", then we know that the spin and translation end at the same time.

A book that is only translating has speed-squared (Ts=speed; Ts2/2) energy and is loosing energy at rate proportional to speed (Ts). So it will stop in a period proportional to speed (Ts/2).

A book that is only spinning has speed-squared (Ss=speed at edge; Ss2/4) energy and is loosing energy at a rate proportional to average speed (2Ss/3). So it will stop in a period proportional to speed (3Ss/8) - but 25% quicker than with the corresponding translational speed.

(So when I went to the 2:1 ratio in the table, I was probably wrong. But anyway...)

If we had two books, one spinning (Ss) and one translating (Ts) and we wanted them to stop moving at the same time, then Ts/2 must equal 3Ss/8, so Ss/Ts must equal 4/3.

When there is a combination of spin and rotation, I will not get my maximum energy loss from either. So the situation will be:
Translational Speed: Ts
Translational Energy: Te=Ts2/2
Maximum relative rate of translational energy loss: Tfmax = Ts
Effectiveness of translational energy loss: Tfe(Ts/Ss)
Actual relative rate of translational energy loss: Tf = Tfmax*Tfe(Ts/Ss) = Ts*Tfe(Ts/Ss)
Spin Speed: Ss
Spin Energy: Se=Ss2/4
Maximum relative rate of spin energy loss: Sfmax = 3Ss/8
Effectiveness of spin energy loss: Sfe(Ts/Ss)
Actual relative rate of spin energy loss: Sf = Sfmax*Sfe(Ts/Ss) = 3Ss*Sfe(Ts/Ss)/8

The Tfe and Sfe functions were the ones I was trying to compute with my program - and show in the table.

We can further describe the situation in terms of how fast we are approaching a stationary book at the given moment. Of course, since the spin/translate ratio is changing, this rate will change. But at any given moment:
Extended time to no translation: Tet = Te/Tf = (Ts2/2)/(Ts*Tfe(Ts/Ss)) = Ts/(2Tfe(Ts/Ss)).
Extended time to no spin: Set = Se/Sf = (Ss2/4)/(3Ss*Sfe(Ts/Ss)/8) = 2Ss/(3Sfe(Ts/Ss)).
Ratio of extended times to no translation and no spin: Ret = Tet/Set = (Ts/(2Tfe(Ts/Ss)))/(2Ss/(3Sfe(Ts/Ss))) = (3/4) (Ts/Ss) (Sfe(Ts/Ss)/Tfe(Ts/Ss)).

If Ret equals 1, then we are bleeding energy in the same proportion form both spin and translation. Since our Ts/Ss ratio is not changing, Ret will remain 1 until both stop.

If Ret is greater than 1, spin is slowing faster than translation and our Ts/Ss ratio is increasing.
If Ret is less than 1, translation is slowing faster than spin and out Ts/Ss ratio is decreasing.

When Ret is not 1, we need to look at whether it will be heading towards 1 or away from 1.
If it is moving towards 1, one motion will end before the other. If it is moving towards 1, they are syncing up.

Ret is useful because we know the target is 1. But we can do the same sort of thing with the Ts/Ss ratio:
Letting the ratio be: Rs = (Ts/Ss)
Ret = (3/4) (Ts/Ss) (Sfe(Ts/Ss)/Tfe(Ts/Ss)) = (3/4) (Rs) (Sfe(Rs)/Tfe(Rs))
We are aiming for Ret equaling 1, so let
Target ratio: Rst such that (3/4) (Rst) (Sfe(Rst)/Tfe(Rst)) = 1
Rst = (4/3) Tfe(Rst) / 3Sfe(Rst)
At this value, the ratio will not change.

Now consider what happens when we are not exactly at Rst, say we are at Ratio=Rst+δ
d( (4/3) Tfe(Ratio) / Sfe(Ratio) ) / d(Ratio)
= (4/3) Sfe(Ratio)Tfe'(Ratio)) - Tfe(Ratio)Sfe'(Ratio) / Sfe(Ratio)²

We only need to know the sign of this value so...
Is Sfe(Rst)Tfe'(Rst)) - Tfe(Rst)Sfe'(Rst) < 0?
Sfe(Rst) is never negative (range is 0 to 1)
Tfe(Rst) is also never negative (range is 0 to 1)
Sfe'(Rst) is negative because the effectiveness of the spin energy loss always decreases with increasing spin.
Tfe'(Rst) is positive because the effectiveness of the translational energy loss always increases with increasing spin.

So both terms will be zero or negative. And they both can't be zero.
So the area around Rst has a negative slope. So if we have start with Rst+δ we will tend to move opposite from the change (δ), back towards Rst.
 
  • #101
sophiecentaur said:
There will be only one point at any time that is not moving wrt the table. For a disc the points will lie on a circle where tangential velocity equals minus translation velocity of centre. For a general shape the locus may not be a circle (?) this point is losing no energy from the book.
OK. I misunderstood what you were saying.
Actually, for a disc the point will lie on a spiral that will asymptotically spiral in towards or out towards a circle.
 
  • #102
.Scott said:
OK. I misunderstood what you were saying.
Actually, for a disc the point will lie on a spiral that will asymptotically spiral in towards or out towards a circle.

Can you be sure of that? Remember, the point is where the tangential equals the translational velocity - whatever the actual value (which will, of course, reduce with time). If the two motions decay together then the locus will be at the same distance from the centre. It would be only if what we are trying to prove were false that the locus curve would spiral inwards / outwards.
 
  • #103
@.scott
I'm afraid that I trip out with such long and involved posts. I like to read some Maths, which condenses a model into a recognisable form. Maths was actually invented because it is impossible to hold so many lines of description in your head - if you are not the one who wrote it. Some of the most sophisticated Physics can be boiled down into a very few lines and this problem doesn't approach the complexity of EM theory - which is covered by just four equations.
If your graphics does not 'translate' to equations then it may be that there is something wrong somewhere.
 
  • #104
sophiecentaur said:
Can you be sure of that? Remember, the point is where the tangential equals the translational velocity - whatever the actual value (which will, of course, reduce with time). If the two motions decay together then the locus will be at the same distance from the centre. It would be only if what we are trying to prove were false that the locus curve would spiral inwards / outwards.
The magic spin to move ratio is about 0.865 - I'm guessing it's really 5/6.
Here's the table. I've set it to show the ratio=0.86 with better resolution. The key is when the "4Sfe/3Tfe" column goes to 1. If you start it at that ratio, it will stay there. Otherwise it will move towards it.

Am I sure? I would say moderately. The only way to be sure about models like this is to run known cases against them. I've done a little of that - but not enough to be more than moderately confident.

Code:
| Pivot Pt.| Energy Loss % of Best |           |  d Energy / d Ratio   |
|  (Ts/Ss) | Translate |   Rotate  | 4Sfe/3Tfe | Translate |   Rotate  |
|----------|-----------|-----------|-----------|-----------|-----------|
    0.000,     -0.000,    100.000
    0.100,      9.989,     99.495,     13.281,      0.999,     -0.051
    0.200,     19.902,     97.935,      6.561,      0.991,     -0.156
    0.300,     29.663,     95.235,      4.281,      0.976,     -0.270
    0.400,     39.189,     91.309,      3.107,      0.953,     -0.393
    0.500,     48.391,     86.101,      2.372,      0.920,     -0.521
    0.600,     57.170,     79.612,      1.857,      0.878,     -0.649
    0.700,     65.407,     71.933,      1.466,      0.824,     -0.768
    0.800,     72.952,     63.304,      1.157,      0.754,     -0.863
    0.850,     76.401,     58.769,      1.026,      0.690,     -0.907
    0.851,     76.468,     58.677,      1.023,      0.669,     -0.920
    0.852,     76.534,     58.586,      1.021,      0.660,     -0.909
    0.853,     76.600,     58.496,      1.018,      0.659,     -0.909
    0.854,     76.666,     58.405,      1.016,      0.658,     -0.909
    0.855,     76.732,     58.313,      1.013,      0.665,     -0.921
    0.856,     76.799,     58.220,      1.011,      0.664,     -0.921
    0.857,     76.864,     58.130,      1.008,      0.655,     -0.909
    0.858,     76.930,     58.039,      1.006,      0.654,     -0.909
    0.859,     76.995,     57.948,      1.003,      0.653,     -0.909
    0.860,     77.061,     57.856,      1.001,      0.660,     -0.921
    0.861,     77.127,     57.764,      0.999,      0.659,     -0.921
    0.862,     77.192,     57.673,      0.996,      0.650,     -0.909
    0.863,     77.257,     57.582,      0.994,      0.648,     -0.909
    0.864,     77.321,     57.491,      0.991,      0.647,     -0.909
    0.865,     77.387,     57.399,      0.989,      0.654,     -0.921
    0.866,     77.452,     57.307,      0.987,      0.653,     -0.921
    0.867,     77.516,     57.216,      0.984,      0.644,     -0.909
    0.868,     77.581,     57.125,      0.982,      0.643,     -0.909
    0.869,     77.645,     57.034,      0.979,      0.642,     -0.909
    0.870,     77.710,     56.942,      0.977,      0.649,     -0.921
    0.900,     79.588,     54.210,      0.908,      0.626,     -0.910
    1.000,     84.889,     45.766,      0.719,      0.530,     -0.844
    1.100,     88.136,     40.128,      0.607,      0.325,     -0.564
    1.200,     90.322,     36.021,      0.532,      0.219,     -0.411
    1.300,     91.917,     32.780,      0.475,      0.160,     -0.324
    1.400,     93.132,     30.124,      0.431,      0.121,     -0.266
    1.500,     94.083,     27.895,      0.395,      0.095,     -0.223
    1.600,     94.844,     25.991,      0.365,      0.076,     -0.190
    1.700,     95.465,     24.342,      0.340,      0.062,     -0.165
    1.800,     95.977,     22.897,      0.318,      0.051,     -0.144
    1.900,     96.406,     21.620,      0.299,      0.043,     -0.128
    2.000,     96.769,     20.481,      0.282,      0.036,     -0.114
    2.100,     97.079,     19.460,      0.267,      0.031,     -0.102
    2.200,     97.346,     18.538,      0.254,      0.027,     -0.092
    2.300,     97.578,     17.701,      0.242,      0.023,     -0.084
    2.400,     97.781,     16.938,      0.231,      0.020,     -0.076
    2.500,     97.958,     16.238,      0.221,      0.018,     -0.070
    2.600,     98.115,     15.596,      0.212,      0.016,     -0.064
    2.700,     98.255,     15.002,      0.204,      0.014,     -0.059
    2.800,     98.380,     14.453,      0.196,      0.012,     -0.055
    2.900,     98.491,     13.943,      0.189,      0.011,     -0.051
 
  • #105
Here's the code that generated that table:
Code:
//
//=====================================================================
// SpinEnegryModel()
//
//  This routine computes the frictional forces acting on a spinning
// and translating disc at one moment in time.  The ratio of the speeds
// of rotation and translation are varied over a wide range.
//  It returns a multiline text report output in the form of a CString.
//
CString SpinEnergyModel()
{
  struct ReportEntry {
    double fRatio;
    double fELossX;
    double fSpinELoss;
  };

  CString s, sRpt;
  ReportEntry reLast, reNew;

  int     nX, nY, nDiv, nYRange, bFirst;
  __int64 nYRange2, nDiv2, nArea;
  double  fR, fX, fY, fX2, fPivot, fPR, fRDiv;
  double  fForceX, fForceY;
  double  fSpeedX, fSpeedY, fSpeed;
  double  fForceXSum, fForceYSum;
  double  fSpinArm, fSpinForce, fSpinELoss;
  double  fSpinELossSum;
  double  fSpinELossMax, fArea;

  //
  //  I am presuming a circular book.  "fR" is the radius of that book
  // and I am setting it to 1.  This doesn't really matter because
  // everything will scale to the radius anyway.
  fR = 1.0;
  //
  //  I will be performing discrete integrations across the surface of
  // the book.  "nDiv" is the number of discrete interval I will be
  // using along the radius.  Computation time will be proportional to
  // nDiv*nDiv but precision improves as nDiv is increased.
  nDiv  = 200;
  //
  //  Two values that will be needed in the inside loops (below) are
  // precomputed here.  They are the actual distance of one interval
  // (fRDiv) and the square of nDiv (nDiv2).
  fRDiv = fR/nDiv;
  nDiv2 = (__int64)nDiv*nDiv;
  //
  //  Integrate two initial values, these are not dependent on the
  // spin/translate ratio, so they are computed here, outside the pivot
  // point loop.
  //   nArea:          The area of the circular book surface.
  //   fSpinELossMax:  The force that would have been applied against
  //                friction if there was no translational force.
  nArea = 0;
  fSpinELossMax = 0.0;
  //
  //  Discrete integral along the direction of motion from the
  // trailing edge to the leading edge.
  for(nX=-nDiv;nX<=nDiv;nX++) {
    //
    //  The book is circular and we only want to integrate across
    // points that are on the books surface.  So we compute the range
    // of Y value that will keep us on the book (nYRange).
    //  We are using __int64 foor the intermediate results.  This will
    // allow us to use values of nDiv above 45000 - not that we would
    // want to run the program that long.
    nYRange2 = nDiv2-((__int64)nX*nX);
    nYRange = (int)sqrt((long double)nYRange2);
    //
    //  Compute the X coordinate and its square.
    fX  = nX*fRDiv;
    fX2 = fX*fX;
    //
    //  Compute the book's area by integration so that it will match
    // the other integrals.
    nArea += 1+2*nYRange;
    //
    //  Discrete integral across the direction of motion from the
    // left edge to the right edge.
    for(nY=-nYRange;nY<=nYRange;nY++) {
      //
      // The Y coordinate.
      fY = nY*fRDiv;
      //
      // Integrate the maximum spin energy loss (with no translation).
      // Note:
      //   Both the force and the speed are proportional to the radius,
      //  so the total energy loss will be proportional to the square
      //  the radius.
      fSpinELossMax += fX2+fY*fY;
    }
  }
  fArea = (double)nArea;

  //
  // We skip some steps the first time through the loop.
  bFirst = true;
  //
  // Apply the heading to our report.
  sRpt =
    L"| Pivot Pt.| Energy Loss % of Best |           |  d Energy / d Ratio   |\n"
    L"|  (Ts/Ss) | Translate |   Rotate  | 4Sfe/3Tfe | Translate |   Rotate  |\n"
    L"|----------|-----------|-----------|-----------|-----------|-----------|\n";

  //
  //  The ratio of the rotational speed and the translational speed can be
  // described by specifying the "pivot" as a ratio of the radius, which I
  // calling "pPivot".  When pPivot is zero, there is only spin motion.
  //  The pivot point is the location where there is no relative motion
  // between the book and the surface.  It will always be along a line
  // that crosses through the center of the book and is perpendicular to
  // the translational motion of the book.
  //  When pPivot is 1, the pivot point will be at the circumference of
  // the book.  When pPivot is zero, the pivot point is at the center of
  // the book.
  //  I am varying the pPivot from 0 (book center) to 2.5 (well outside
  // the book so there is much more translation that rotation.
  for(fPivot=0.00; fPivot<=3.00; fPivot+=0.10) {
    //
    //  Look carefully around 0.86.
    if((fPivot>0.81)&&(fPivot<0.995)) {
      fPivot -= 0.099;
      if(fPivot < 0.85) fPivot = 0.85;
      if(fPivot > 0.87) fPivot = 0.90;
    }
    //
    //  Multiplying "fPivot" by the radius gives us the actual distance
    // between the pivot point and the center of the book.
    fPR   = fPivot*fR;
    //
    //  We will be integrating three values:
    //   fForceXSum:  The translational force along the direction of
    //           travel.
    //   fForceYSum:  The translational force perpendicular to the
    //           direction of travel.  This should be zero and is used
    //           as a check.
    //   fSpinELossSum:  The energy loss against the book's spin.
    fForceXSum  = 0.0;
    fForceYSum  = 0.0;
    fSpinELossSum = 0.0;
    //
    //  Discrete integral along the direction of motion from the
    // trailing edge to the leading edge.  These nX/nY loops step
    // through the same values as the nX/nY loops above.
    for(nX=-nDiv;nX<=nDiv;nX++) {
      nYRange2 = nDiv2-((__int64)nX*nX);
      nYRange = (int)sqrt((long double)nYRange2);
      //
      //  Compute the X coordinate and its square.
      fX  = nX*fRDiv;
      fX2 = fX*fX;
      //
      //  Discrete integral across the direction of motion from the
      // left edge to the right edge.
      for(nY=-nYRange;nY<=nYRange;nY++) {
        //
        // The Y coordinate.
        fY = nY*fRDiv;
        //
        //  Compute the direction of the frictional force.  It will be
        // against the direction of motion and can be computed
        // from the relative position of this point to the pivot point.
        fSpeedX = -fY-fPR;
        fSpeedY = fX;
        //
        //  Compute the speed of point (fX,fY) against the surface.
        fSpeed  = sqrt(fSpeedX*fSpeedX+fSpeedY*fSpeedY);
        //
        //  Check for the zero-friction point.  This is important to
        // avoid zero/zero division.
        if(fSpeed<0.001) continue;
        //
        //  I'm using a coefficient of friction of "1", so the absolute
        // value of (fForceX,fForceY) must be 1.
        fForceX = fSpeedX / fSpeed;
        fForceY = fSpeedY / fSpeed;
        //
        //  The turn force is the cross product of the force and the
        // arm to the center of gravity (fX,fY).
        fSpinArm = sqrt(fX2+fY*fY);
        fSpinForce = fY*fForceX-fX*fForceY;
        fSpinELoss = - fSpinArm * fSpinForce;

        //
        //  If the speed is less than fR-fPR, we can discard the
        // translation force because it will all cancel out within
        // that circle.
        //  This code was only used for test purposes.  It is now
        // commented out.
        //
        // if(fSpeed<(fR-fPR)) fForceX = 0.0;

        //
        // Accumulate frictional effects.
        fForceXSum += fForceX;
        fForceYSum += fForceY;
        fSpinELossSum += fSpinELoss;
      }
    }
    //
    // Compute all the proportional forces.
    fForceX  = fForceXSum/fArea;
    fForceY  = fForceYSum/fArea;
    reNew.fSpinELoss = fSpinELossSum/fSpinELossMax;
    //
    //  Except for sign, the translational energy loss (fELossX) is
    // proportional to the force.  This is because it is proportional
    // to the overall translational speed (fPR).  So we would
    // multiply by -speed (for energy loss) and then divide by speed
    // (for proportional energy loss).
    reNew.fRatio  = fPivot;
    reNew.fELossX = -fForceX;
    //
    // Output fPivot, fELossX, and fSpinELoss here ...
    s.Format(
      L"%9.3f,%11.3f,%11.3f",
      reNew.fRatio, 100*reNew.fELossX, 100*reNew.fSpinELoss
    );
    sRpt += s;
    //
    if(bFirst) {
      bFirst = false;
      s = L"\n";
    } else {
      double fDeltaR, fDeltaMove, fDeltaSpin, d43RatioSsTs;

      fDeltaR      = reNew.fRatio     - reLast.fRatio;
      fDeltaMove   = reNew.fELossX    - reLast.fELossX;
      fDeltaSpin   = reNew.fSpinELoss - reLast.fSpinELoss;

      s.Format(
        L",%11.3f,%11.3f,%11.3f\n",
        (4.0/3.0) * reNew.fSpinELoss / reNew.fELossX,
        fDeltaMove/fDeltaR, fDeltaSpin/fDeltaR
      );
    }
    sRpt += s;
    //
    reLast = reNew;
  }
  return sRpt;
}
 

Similar threads

Replies
12
Views
4K
Replies
15
Views
5K
Replies
27
Views
9K
Replies
9
Views
6K
Replies
15
Views
7K
Replies
12
Views
4K
Replies
5
Views
3K
Back
Top