# Distribution of forces

(little background: I'm trying to develop a small, quick 'n dirty static physics engine to determine whether a stacking of boxes is stable).

If I have a 3D rigid box (with the bottom in the horizontal plane), resting on n points (at [xn, yn]), and we apply a downward force F at [xF, yF], how can I calculate the resulting forces Fn at these n points?

If the system is in equilibrium then sum(Fn) should be equal to F. However, I must also consider that the system might not be in equilibrium (for instance, if all xn < xF), so I probably can't use equilibrium equations. I'd still like to know the forces in that case, though, so that I can calculate the resulting torque.

Is there an easy formula for this?

-
A similar problem would be to calculate the weight distribution over the wheels of a 6-wheeled (3 axles, all wheels independently suspended) truck when a heavy weight is placed in a specific position of the truck. – ErikvdW Apr 5 '11 at 10:08
A diagram would help... – Sklivvz Apr 5 '11 at 10:12
A diagram would help a lot! I do not understand Your question. – Georg Apr 5 '11 at 15:21
The subject is "statics", and it is easy to over-constrain the system when you have "completely rigid" objects. In particular with six points of contact your truck is over-constrained unless you model the suspension. – dmckee Apr 5 '11 at 17:14

Following on from Peter's answer I will add some more suggestions although I also recognise some ambiguity (or underdetermination) in the problem - some will be identified at the end of the discussion.

There seems to be two aspects to the physics of this:

1. Determine the forces at $[x_i,y_i]$ for all the N points on the box
2. Determine whether there will be some non-zero moment to the box.

The equations of statics that are basic to this are:

$\Sigma F_x = 0$ - the x axis forces sum to zero

$\Sigma F_y = 0$ - the y axis forces sum to zero

$\Sigma F_z = 0$ - the z axis forces sum to zero

$\Sigma M_a = 0$ - total moment about any axis is zero for equilibrium.

Other forces include the reaction $V_i$ forces at each $[x_i,y_i]$.

One problem is that this scenario is statically indeterminate - meaning that the distribution of forces using only statics will not give a complete answer. Some other form of approximation or data is also required. The method of sections (briefly in Wikipedia here) and perhaps the moment distribution method are worth studying. These methods are for solving general engineering problems of this type (like the truck itself maybe). I do not know whether there is freedom to simplify some of these properties in your model, thus resulting in a much simpler "force distribution model" inside the box.

One suggestion might be to consider a "truss approximation" to the floor of the box (even the entire box) with the truss joints corresponding to the reaction points of the question.

From the perspective of the non-zero moment of the box it is not clear where the freedom of movement is coming from. For example if each of the N points were considered a high stilt then the configuration might not be stable, for example.

Looking at the simplest possible example of this case we have a(n essentially massless) beam of length L sitting on two (high) structs at A and B with each point interior to the beam, maybe A is distance a, B distance b from the LHS. Let a force $F_1$ be acting on the LHS downwards, and let $F_2$ be acting on the RHS downwards (perhaps from edges etc). Then the

LHS moment = $aF_1$

RHS moment = $(L-a)F_2$

For stability we require RHS>LHS ie $(L-a)F_2 > aF_1$ ie $F_2 > (a/(L-a))F_1$.

Clearly these equations can and must be generalised further depending on the exact level of assumptions one includes in the full model (massive box, height/strength of structs, interior mass distribution in box, strength of box walls, side forces, friction, ...).

-
I don't think you mean "angular momentum". The rotation equivalent of a force is a "torque" (or "moment" in engineer-speak). Angular momentum is the rotational equivalent of linear momentum and enters into mechanics in similar ways, while torques inter in ways very much parallel to forces. – dmckee Apr 7 '11 at 9:06
OK I will change these to "moment". – Roy Simpson Apr 7 '11 at 9:57

It's not a very clear Question. I think you're saying that the center of mass of the 3D box is above the point $[xF,yF]$, at $[xF,yF,zF]$. I'm going to run with that because the background is clearly a few days work or more to get under control.

Given this assumption, the box is stable if and only if the point $[xF,yF]$ is contained within the maximal convex polygon defined by the $N$ points $[x_n,y_n]$. Any points $[x_i,y_i]$ that are contained within the maximal convex polygon can be removed from the list as irrelevant. To make the algorithms go more quickly, it will be useful to construct a list of the edges of the convex polygon.

If the box is not stable, only one of the edges of the convex polygon matters, which is the edge that is closest to the point $[xF,yF]$. Now you have just two points to worry about, the center of mass of the 3D box $[xF,yF,zF]$, and the closest point on the closest edge to $[xF,yF]$, at a distance $D$.

The torque acting on the box is its weight times the distance $D$. As the box tips over, the torque that acts will increase as the position of the center of mass of the box moves away from the closest point of the convex polygon, so the box will tip increasingly rapidly.

If you need to know the forces that act at the points $[x_n,y_n]$ then you need to know what the distribution of the mass inside the 3D box is. Knowing the Moment of Inertia Tensor of the 3D box is necessary to calculate the angular velocity of the box as a result of the torque just calculated, for which you would also have to know what the distribution of the mass inside the 3D box is. You probably want to assume that the mass of the box is not distributed in a non-trivial way.

For the full stacking of the boxes problem that you give as a background, good luck. If you're commercial it may be cheaper to buy software that can calculate this stuff than develop it yourself, or there may be open source available. Perhaps try http://gamedev.stackexchange.com/

-