Rigid Body Collision: Balancing Momentum and Angular Momentum

AI Thread Summary
The discussion focuses on the challenges of programming a physics simulation for rigid body collisions, specifically how to balance linear momentum and angular momentum when a ball collides with a rigid body. The user initially attempts to divide the velocity into push and rotational components but encounters issues with energy calculations, leading to unrealistic results. Feedback from other participants highlights confusion in notation and emphasizes that energy cannot be split in the way proposed, suggesting a need to directly calculate momentum and angular momentum from the applied force. The conversation reveals a deeper understanding of the physics involved, with references to torque, moment of inertia, and the complexities of rotational dynamics. Ultimately, the user expresses a commitment to further refine their approach based on the insights gained.
Alii
Messages
5
Reaction score
0

Homework Statement



Im programming physics simulation. ...rigid body collision with ball.
The ball is OK, but I have to push and rotate the rigid body.
I have the contact point and the velocity(v) that I would add to the bodys current velocity if I wouldn't have to rotate it.
So I need to divide that v into push(v_push) and rotate(angular_velocity) parts.


The Attempt at a Solution



I see v as a momentum that stores some energy(E_total)
Energy_in_v_push= Energy_in_v - Energy_in_generated_angular_velocity

So my current solution is:

M= |v| * r (torque)
I= 1/12 * m * (a^2 + c^2) (moment of inertia. the body is an a*c rectangle. m is the weight)
(... M and I are OK)
omega= M / I

E_total= 1/2 * m * |v|^2
E_spin= 1/2 * I * omega^2
E_push= E_total - E_spin

|v_push|= sqrt( 2 * E_push / m)
generated_angular_velocity= omega * FROM_RADIANS (I have to convert it to degrees)

Well, this works perfectly except I have to multiply generated_angular_velocity with m, otherways it turns much too slowly.
Whats the problem then? I guess that omega= M/I is angular acceleration not velocity or something. Is this whole approach wrong?
Thanks!
 
Physics news on Phys.org
Welcome to PF!

Hi Alii! Welcome to PF! :smile:

(try using the X2 and X2 buttons just above the Reply box :wink:)

I'm finding your notation very confusing.

You seem to be using "v" both for elocity and for force ("vpush"). :confused:

And you have a strange Epush
Alii said:
M= |v| * r (torque)

omega= M / I

E_total= 1/2 * m * |v|^2
E_spin= 1/2 * I * omega^2
E_push= E_total - E_spin

|v_push|= sqrt( 2 * E_push / m)

Etotal = 1/2 mvc.o.m2 + 1/2 Ic.o.mω2.

And for torque, use τ (or T) … τ = Iα. :smile:

(α is angular acceleration; angular momentum is L = Iω)
 
Thanks!
Ive tryed to calculate with forces and accelerations but I figured out that the eqvuations about torque and angular acceleration would only be corrent if the body was be rotating around a fixed axis:S Which is not the case. I don't know how can it work when I multiply the angular_velocity by the weight.
(generated_angular_velocity= omega * FROM_RADIANS * m)
 
Alii said:
… I figured out that the eqvuations about torque and angular acceleration would only be corrent if the body was be rotating around a fixed axis:S Which is not the case.

τ = Iα still works provided that everything is measured relative to an axis through the centre of mass

however, your rigid body presumably has different moments of inertia along different directions, so you will have to deal with precession, and so you probably need Euler's equations
 
tiny-tim said:
τ = Iα still works provided that everything is measured relative to an axis through the centre of mass

however, your rigid body presumably has different moments of inertia along different directions, so you will have to deal with precession, and so you probably need Euler's equations

Thanks!

"Euler's equations" ...no. I forgot to say that its 2D not 3D so there's just one axis.

"You seem to be using "v" both for velocity and for force ("vpush")."

That was right:) τ = weight * v * r, not v*r because the force that generates that velocity is F = m*a (which is m*v if I don't consider time)

So omega is correct now. However E_push= E_total - E_spin doesn't work, cause I get greater E_spin than E_total.(body accelerated with F force stores less energy than the same body rotated with the same F force. ...can that be true??) Maybe this approach was totally wrong anyway.

My solution now is:
E_push = E_spin_max - E_spin
Then I get v_push from E_push.

I calculate E_spin_max with maximum possible r ...lever arm length.

The body is a rectangle, I tryed now with different sizes and weights and it looks realistic. I don't know if it really is:)
 
Hi Alli! :smile:
Alii said:
… E_push= E_total - E_spin doesn't work, cause I get greater E_spin than E_total.

i don't understand :confused:

are you using Etotal = 1/2 mvc.o.m2 + 1/2 Ic.o.mω2 ?

(body accelerated with F force stores less energy than the same body rotated with the same F force. ...can that be true??)

i don't understand what you're asking :confused:

rotating with a force F depends on the distance of F's line of application from the centre of mass
 
tiny-tim said:
Hi Alli! :smile:


i don't understand :confused:

are you using Etotal = 1/2 mvc.o.m2 + 1/2 Ic.o.mω2 ?



i don't understand what you're asking :confused:

rotating with a force F depends on the distance of F's line of application from the centre of mass

Sorry, I guess its my bad english.
I approached it like this:
There is a rigid body. You can push it but you can't rotate it. It gets hit by an other object and that adds v to its current velocity. That v stores some energy. I call that E_total(=1/2*m*v^2).

Now I want to enable rotation. I want to divide the energy from the collision(E_total) to E_push and E_spin. So instead of puhing the body with E_total energy, I want to push it with E_push and rotate it with E_spin.

Check out this pic:
http://imageupload.org/en/file/196209/dscf2430.jpg.html

This didnt work cause I got numbers like E_total= 7, E_spin= 15
Then E_push was -8 ...which is not good. I don't know what's wrong.
 
I'm sorry, but you can't use energy like that.

You don't apply an energy E, you apply a force F.

Since you don't apply an energy E, you can't split the energy up.

You have to find the momentum and the angular momentum directly from the force F.
 
tiny-tim said:
I'm sorry, but you can't use energy like that.

You don't apply an energy E, you apply a force F.

Since you don't apply an energy E, you can't split the energy up.

You have to find the momentum and the angular momentum directly from the force F.

Thanks! This is not as simple as I thought:)
Ive found a site that describes this kind of collision quite well. (http://www.myphysicslab.com/collision.html)

I will give it another try to split the force somehow.
 
Back
Top