Conservation of Linear Momentum+ Elastic and Inelastic collision

In summary: Something like that?In summary, In two dimensions, collisions result in the momentum of the system being resolved into perpendicular x and y components. This vector is then used to calculate the final momentum of the system.
  • #1
Nanako
39
0
hi everyone. I'm working on a physics engine as part of a game I'm making, a hobby project. Up until this point I've implemented inter object collisions in a rather quick and dirty manner. Whenever something moves into something else, it is simply teleported back out to the edge. This implementation worked for a while, but amongst other problems, it causes anything not currently moving to be an immovable object, which is not good.

Since i already have support for forces, impulses, and friction, I've decided it's time to re-examine my collisions and make a better model for it.

I believe the formula i need for elastic collision is here: http://en.wikipedia.org/wiki/Momentum#Conservation_of_linear_momentum

the big pair of formulae, just under where it says "In one dimension" in bold letters. however, i need a little bit of help rearranging it. Those formulae give the final velocities of the object as an output. But i'd like to not go that far. The output I'd like is the Impulse to apply to both objects, in Ns (Newton-seconds). As i understand, both objects in a collision will receive the same impulse. I want this so that i can do other (game related) things with it before applying it. If anyone could help with adjusting the formula to give me that, it'd be helpful.


The second issue i have though, is that the formula only covers perfectly elastic collisions. And there's a separate formula for perfectly inelastic collisions. This seems inherently wrong to me, as nothing in nature is completely one or the other.

What i'd like to do is to figure out a way to incorporate the coefficient of restitution into things (the measure of elasticity between the objects). Considering the problem, i believe it will work similar to the coefficient of friction, in that either component having low elasticity will drive the coefficient towards zero. For example, a snowball thrown at a window will smush against it rather than bouncing off, even though one of the two is highly elastic, because the other is not. This is mostly just logical thought on my part.

I already have a simple formula for calculating the friction coefficient that i would probably reuse (sqrt(ab)). Assuming i keep within the bounds of a and b always being between 0 and 1, that would ensure my coefficient is always likewise.

Once i have a coefficient of restitution, how to incorporate it is the next step. I really don't know here, but logic tells me that something like multiplying the impulse by the coefficient, would work well.

what i ideally want to do is to be able to assign individual elasticity values to objects within my engine, work out a coefficient between them. Work out a collision impulse for the collision based on the object's masses and velocities, and figure out a way to combine the impulse and coefficient, before applying the impulse to the objects. I believe this should give me a more well rounded collision simulation, but i need some assistance to fill in the blanks.

I'm interested in any thoughts and assistance anyone can provide on these two subjects
 
Physics news on Phys.org
  • #2
bump. can anyone assist ?
 
  • #3
You have two things:
- Total momentum vector : always conserved 100%
- Total kinetic energy : conserved 100% only in perfectly elastic collisions. Otherwise reduced depending on the coefficient of restitution the mass ratio and the frame of reference.
 
  • #4
Hello everyone ^^ I got sidetracked from this for quite a while working out other collision related things. Now it's time to pick up and actually start it. Unfortunately i still need lots of help.

So then, i'll start with a few questions that's on my mind.


1.
If momentum equals mass*velocity, and momentum in a closed system is always conserved, then how is it possible for a collision to result in reducing the velocity of both objects? If one object is slowed by a collision, isn't it necessary that the other gains velocity to keep the total momentum the same?



2.
I'm also looking for some clarification of this quote:

In multiple dimensions

In the case of objects colliding in more than one dimension, as in oblique collisions, the velocity is resolved into orthogonal components with one component perpendicular to the plane of collision and the other component or components in the plane of collision. The velocity components in the plane of collision remain unchanged, while the velocity perpendicular to the plane of collision is calculated in the same way as the one-dimensional case.

For example, in a two-dimensional collision, the momenta can be resolved into x and y components. We can then calculate each component separately, and combine them to produce a vector result. The magnitude of this vector is the final momentum of the isolated system.

I already have my velocities stored as a two-part vector (this is 2D. x and y) but I'm having trouble understanding how this relates. Would i calculate the x momentum from the x velocity, and do all the calculations on that value, then repeat it for the y? or is it more complex than that ?


3.
I'm now unsure if i really understand impulse very well. From a quick glance here: http://en.wikipedia.org/wiki/Newton-second
It appears that the Newton-second is the unit of momentum, as well as impulse. This is a link didn't quite make mentally. Does that then mean that i can apply the total momentum of the system, as an impulse, to achieve the desired change in velocity? (of course, one object will receive the impulse*-1). Or would it perhaps be half of the total system momentum ?

although even then, I'm sure this would only give me the magnitude of the impulse value. I still need to directionalise it. This I'm not sure about, any thoughts are appreciated.

An impulse value is my ultimate aim for this exercise, as i want to be able to do game-y things to it before actually applying it.
 
  • #5
.

I appreciate your dedication to improving your physics engine and incorporating more realistic models for collisions. Conservation of linear momentum is a fundamental law in physics, stating that the total momentum of a system remains constant unless acted upon by an external force. This law is crucial in understanding and predicting the motion of objects in collisions.

In elastic collisions, the total kinetic energy of the system is conserved, meaning that the objects involved do not lose any energy during the collision. This is reflected in the equations you have referenced, where the final velocities of the objects are equal to their initial velocities. However, as you mentioned, perfectly elastic collisions are rare in nature and it is important to incorporate a coefficient of restitution to account for the loss of energy in a collision.

The coefficient of restitution is a measure of the elasticity between two objects, and as you correctly stated, it varies between 0 and 1. A value of 0 represents a perfectly inelastic collision, where the objects stick together after colliding, while a value of 1 represents a perfectly elastic collision. To incorporate this into your collision model, you can use the equation you mentioned, where the impulse is multiplied by the coefficient of restitution.

I also appreciate your idea of assigning individual elasticity values to objects within your engine. This would allow for more realistic and varied collisions between objects. I would suggest using a coefficient of restitution calculator to determine the coefficient between two objects based on their material properties. This will give you a more accurate value to use in your calculations.

Overall, I think your approach to improving your collision model is sound and I encourage you to continue exploring and experimenting with different methods. As a scientist, it is important to constantly seek improvement and refinement in our models and theories. Good luck with your project!
 

Related to Conservation of Linear Momentum+ Elastic and Inelastic collision

1. What is conservation of linear momentum?

The law of conservation of linear momentum states that the total momentum of a closed system remains constant. This means that in any interaction between two or more objects, the total momentum before the interaction must equal the total momentum after the interaction.

2. What is an elastic collision?

An elastic collision is a type of collision where the total kinetic energy of the system is conserved. This means that the objects involved both retain their original velocities and do not experience any loss of energy during the collision.

3. What is an inelastic collision?

An inelastic collision is a type of collision where the total kinetic energy of the system is not conserved. This means that the objects involved may experience a loss of energy during the collision and their final velocities may be different from their initial velocities.

4. How is momentum conserved in a collision?

Momentum is conserved in a collision because the total momentum of the system before the collision must equal the total momentum after the collision. This means that the sum of the individual momenta of the objects involved in the collision must remain constant.

5. How does the mass and velocity of objects affect the conservation of linear momentum?

The conservation of linear momentum is directly influenced by the mass and velocity of the objects involved in a collision. In an elastic collision, both mass and velocity are conserved, while in an inelastic collision, only mass is conserved. The greater the mass and velocity of an object, the greater its momentum, and therefore, the greater its impact on the conservation of linear momentum in a collision.

Similar threads

Replies
5
Views
3K
Replies
1
Views
1K
Replies
3
Views
1K
Replies
3
Views
1K
Replies
5
Views
887
  • Mechanics
2
Replies
53
Views
2K
Replies
11
Views
3K
Replies
14
Views
1K
Replies
25
Views
2K
Replies
3
Views
1K
Back
Top