• Advertisement
Sign in to follow this  

torque, pivot points, and friction

This topic is 4251 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Im writing a program which will simulate different forces and torques on objects. The problem Im having is that it doesnt seem right for the object to always rotate around its center of mass. Look at the following problem: ___ \ | | \|___| there is a downward force of gravity on all 4 vertices of the box. On the lower left vertex, there is also the normal force of the slop it hit. In real life, this box would pivot around the corner and rotate clockwise. However in a simulation, the box would rotate around its center of mass, lifting the corner off the slope. It would be hard to notice since the box is moving down, but is there anyway to correct this? My second question is about the force of friction on this box. It has to be in the opposite direction of the component of the velocity that is perpendicular to the normal of the slope right? Is there a formula to find the direction of the force of friction? I tried to figure it out but couldnt.

Share this post


Link to post
Share on other sites
Advertisement
I can't really see what's happening in that ASCII drawing.

As far as finding the friction, you want to find the component of velocity that is in the plane of the slope. You can do this by subracting from the original velocity not in the direction of the plane.
So
v' = v - (n.v)n
where v' is the velocity that is on the plane, n is the normal, and v is the net velocity.

Edit:
I'll take a stab at your first question. I'm not sure by what you mean by "hard to notice." But if in your simulation, the corner does lose contact, then your simulation is going wrong somewhere. The way the physics works out analytically, the center of mass moves downward at precisely the correct speed and acceleration so that it "compensates" for the corner moving upwards due to rotation.

Share this post


Link to post
Share on other sites
huh.. that picture looked fine when I was drawing it. Ill try again:
...___..
\.|___|.
_\|___|.
__\.....
___\....

its a box with 1 corner hitting a slope as it falls. I cant figure out how to make it so the box pivots around the point of contact rather than around the center of mass (after torque is calculated per vertex and summed). Thanks for helping me with the friction too.

Share this post


Link to post
Share on other sites
just noticed your edit. I havnt actually written the simulation yet, are you sure that always happens?

Share this post


Link to post
Share on other sites
Absolutely sure. Just consider a flat plane, like a table, and a box resting on it with exactly one of the edges touching the table. The problem is that you don't even know the normal force (of the table on the box). It's NOT mg, since the center of mass is accelerating downwards (the box is falling). If I were to solve the problem analytically (instead of simulating it), I would use the fact that the corner does not leave the table to find the normal force, hence ensuring that the corner does in fact not leave the table.

Share this post


Link to post
Share on other sites
hm, theres got to be some way to find the normal force. In that situation wouldnt it still be mg? or negative whatever the force on that edge downward is.

Share this post


Link to post
Share on other sites
no, i believe that as long as that corner is the only part of the box touching the surface (assuming the corner is a point, 1D) then it is always receiving the full normal force of the box, which should be mg (if it is on a flat table). this is because there is no other place for the force to be acting and since the box isn't moving through the table, the table has to be supporting all the force.

hmm, about the box rotating on its edge down a slope, couldn't you assume that when the box edge/corner hits the slope it acts as pin that can only resist a certain amount of force? in which case the connection would be broken when the normal force is zero. this would be the case where the box rotates and is able to move away from the face of the slope. however, if the box were not able to achieve the speed necessary for this (which would effect the rotational inertia) it would then hit a face which you could then say breaks the rear pin connection and possibly institutes one on the front of the box. i'm not sure if that is kocher, but just an idea that popped into my head.

Share this post


Link to post
Share on other sites
From what I understand, in your example you want the box to pivot around the point it is contacting with the slope. I believe that your problem should be solved differantly. instead of pivoting around that point, add torque and continue to make the box fall, as well as push away from the incline.

The plane itself does not make the box pivot, it only applys a force pushing away from the plane (keeping it from intersecting), and torque to give it correct rotational velocity. force effects velocity, velocity effects position. force however, never directly effects position.

Share this post


Link to post
Share on other sites
The force is most definitely not always mg. To see why, suppose the force is mg, then the net force on the box is: gravity + normal = -m*g + m*g = 0. The center of the box does not move.....unless the box is perfectly balanced on the edge, then the box falls, and a nonmoving center of mass certainly doesn't make sense.

I've kind of been skirting around how exactly to determine the normal force. It's actually not so simple to do, so you should probably refer to baraff or hecker (i haven't personally read the articles, but that's what everyone else recommends, so i assume they are good).

A quick easy way, which i don't entirely recommend, would be to model the contact forces as (damped) springs. That is, determine how "deep" the vertex is into the slope, and if the vertex has intersected the slope, then just use a normal force proportional to the distance.

Share this post


Link to post
Share on other sites
my bad, mooserman, you are correct in that the normal force will not always be m*g (for a horizontal plane). give me a bit and i'll try to think up a way (without reading those articles :) ) on how to get the normal force. i'm sure there is something in my engineering texts about this. :)

Share this post


Link to post
Share on other sites
no supercat I think you were right. If 1 corner in touching the table, the normal force on that corner is -mg. The net force however is not 0 since the other 5 corners still experience gravity. If the box is off-balance, it still fall.

Share this post


Link to post
Share on other sites
michael, you're refering to the m of each vertex, not of the box. still, it is not mg. example: suppose the box is exactly balanced on a flat table, the center of mass is directly above the contact point. The object does not fall, the torque on it is zero. hence the net force on the box must be Mg, where M is the net mass of the box. By the way, how did you get 6 vertices?

supercat, let me know what you find!

Share this post


Link to post
Share on other sites
little sleepy, meant 8 lol. I think I was thinking faces, the way Im going to do this is with faces rather than with vertices. And in my last post I was talking about the m total of the entire box. the normal force on the contact vertex would be -mg. how the hell would u figure that out tho? the force of gravity would be mg/8 on each vertex...

Share this post


Link to post
Share on other sites
okay, i had a really long post worked up in my head, but i need to clarrify what we are looking for here. are we after the force due to friction from an inclined slope?

if that is the case then it is just:

u * Fn

where Fn is the normal force on the point in contact with the ground. in this case the normal force won't be exactly m * g because the ground will be inclined and to find the normal force will be some basic trig. and u is the coefficeint of kinetic friction.

then we got onto the debate of what the normal force will be. well, i again think it will be m * g if on a flat plane and then for an inclined plane it is m * g times whatever trig is needed. this is because the box more than likely won't move through the plane, so all forces in that direction must be zero. that doesn't rule out rotation though (which is what my long post was about), and i'll look into and report on that tomorrow when i'm fully awake.

i haven't completely thrown out the idea that the normal force will be changing with the block's position, so i'll keep that in mind. i plan to speak to some of my professors tomorrow about this because it is quite an interesting problem. :)

Share this post


Link to post
Share on other sites
your wrong about the friction. That is simply the equation for the scalar friction. My question was about the direction of the friction but it was already answered. The main question is now how you would calculate the normal force on some number of vertices of a cube touching some plane. Im pretty sure your right about the single vertex, that it will always be (n/|n|) dot -mg. but what if 2 vertices are touching? would it be that/2?

Share this post


Link to post
Share on other sites
Net force would always be the same, if that object were to sit on the table and not push away or into it. so saying that the force applied when one vertex is touching should be devided by two when 2 vertices are touching would be correct, if you're applying that force to each vertex.

Share this post


Link to post
Share on other sites
so to find the normal force I should just add up how many vertices are touching the table, divide mg by that number and then use trig to find the normal force due to the new mg/x for each vertex?

Share this post


Link to post
Share on other sites
michael, the one thing i am absolutely sure of is that using mg/(number of contact vertices) will lead to incorrect results. the physics of that is simply wrong.
i had a little time to write a very simple program to see how the method i suggested works. i think the results are pretty good, even though the program itself is pretty crude. i can send it to you if you'd like. i'm not sure how i can post it here without destroying the formatting...

Share this post


Link to post
Share on other sites
try the [_code_][_/code_] command (take out the underscores). If not Ill pm u my email. Thanks for the help. Another thing is that I didnt mean just using mg/#. I mean plug in the force of gravity as mg/(#of contact vertices) for each contact vertex and then find what the normal force would be on each vertex (if the plane is flat then it would just be mg/# for each vertex, if the plane were vertical is would be 0 for every vertex). Are you sure that wouldnt work?

Share this post


Link to post
Share on other sites
I programmed it in java, using jbuilder and the file structure is rather unweildy, so i'd rather just email it. I'll explain the idea anyway, since I'm pretty sure the code will be unintelligible.
To calculate to the normal force, I determine if the vertex is contacting the plane. In my case I had a flat table, so it was just: if vertex.y <= 0. For your sloping plane, it's a bit trickier, but still straightforward. If the vertex is contacting the plane, then the normal force I apply is proportional to the distance below the plane, but also damped in proportional to the velocity: vertex.force += k1*(0-vertex.y) - k2*vertex.vy.
And of course add friction, gravity, and whatever else you want, which is easy.
Then you can sum up the force contributions from each vertex and integrate the torque and net force, or however else you want to do it.

The end result is that things are a little elastic and bouncy, but not perceivably so, and if you're not careful with the k constants and integration things can get out of control.

By the way, I admit i'm not exactly sure what you're doing with mg/#, but if you're going along what supercat initially posted (and later recanted), then i think that will not work. Think about a little more or study mechanics a little bit more and you'll see it won't work. I'm absolutely sure it won't work, i'm a physics major ;)

[Edited by - mooserman352 on June 27, 2006 8:47:49 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by mooserman352
If the vertex is contacting the plane, then the normal force I apply is proportional to the distance below the plane, but also damped in proportional to the velocity: vertex.force += k1*(0-vertex.y) - k2*vertex.vy.
And of course add friction, gravity, and whatever else you want, which is easy.
Then you can sum up the force contributions from each vertex and integrate the torque and net force, or however else you want to do it.


what exactly do you mean by "the normal force ... is proportional to the distance below the plane, but also damped in proprotion to the velocity"? the vertex should (in the realistic sense) never penetrate the plane because otherwise you are negating rigid body motions and instead are allowing deformations. or, maybe i'm missing something?

sorry, i didn't get to talk to my professors today because none of them were in their offices. i'll check again tomorrow.

Share this post


Link to post
Share on other sites
haha Im actually a physics major too, just dont remember the more complicated mechanics stuff. I pmd u my email, thanks for the help.

Share this post


Link to post
Share on other sites
i'm an architectural engineering major, so we kinda study this stuff too but probably not as totally indepth as a pure physics major would.

now, for some theory, the reason the normal force wouldn't be mg (or mg*trig if on an incline) is because the body is rotating, correct? so then it involves rotational inertia and moment of inertias?

Share this post


Link to post
Share on other sites
the moment of inertia is only important after you find the normal force on each vertex. Then you cross with the vertex to get the torque. The moment of inertia is only used to find the rotational acceleration from the torque.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement