The Method of Joints: Part 1
In one of my courses we’ve been tasked with building a truss bridge out of plastic tubes, slightly thicker than drinking straws, which must span 1 metre and hold 5kg of load. My team had a few basic designs that we wanted to start off with, which meant a whole bunch of calculation to see which one was best. Of course I’m not one to pass up an opportunity like that, and solving systems of linear equations is something that computers are kind-of alright at, so I wrote a python script that solves a given truss and returns the internal forces in each member. With the script complete, a new bridge design takes only about 2 minutes from data input to final results! The slowest step is sketching the bridge design…
The method of joints involves stepping through each joint in a truss and solving the equations of static equilibrium, i.e.
These two equations must be solved for each joint, giving equations, where
is the number of joints present. The procedure is quite straightforward but having more than a few joints makes it get tedious very quickly. So, let’s make it faster.
Consider the frame above (with members 1 & 2 the same length). We have six unknowns to solve for: three reaction forces from the supports, and the three internal forces. We also have six equations describing the system, how convenient. These are:
Now this system is simple enough to solve by inspection. Ignoring this though, we can represent this system as a matrix equation , where
is a vector of the applied (or known) forces,
is a vector of our unknowns, and
is the coefficient matrix. Thus:
As long as the matrix is non-singular, we can find it’s inverse and recover the solution
. In this case:
That was easy! Now comes the question of somehow constructing the matrix for an arbitrary truss, without actually writing the equations by hand.
First, note that for a simple truss (constructed only of triangles) with joints, there are
members connecting them. If the truss is supported by three support forces, for example
above, then the system is statically determinate: there are
equations describing the system and
unknowns to solve for.
Now consider an arbitrary member in a truss, connected between two joints
and
. The equations
are the only equations with any contribution from member (as a member can only connect to two joints), and we can number these equations as
,
,
, and
respectively. The member
will appear in exactly these four equations, although the coefficient may be zero as with
in the example above.
Looking at the x-component of forces at joint , (equation number
):
We can simplify this a little by using ratios of the member’s dimensions rather than it’s angle. By defining
and by moving the known/applied force to the right hand side of the equation, we get the following:
In the matrix , the entire column
will be zero except for the rows corresponding to these equations. So the contributions to
from member
are:
With complete, we just construct the vector
as above, with
in order, and the three support reaction forces at the end. The vector of applied forces
is simple enough: for a load
applied at node
we just set
And now we just find , solve
, and we’re done!
Recent Comments