EK301 Truss Project



Teams were tasked with the design of a simple truss capable of supported a given load at a specified panel point via engineering analysis.


The project was broken out into several phases:


Parametric Design

Via Autodesk AutoCAD

Based on the constraints, it was possible to use the parametric constraint tools in AutoCAD to iterate through designs efficiently.

The origin of the drawing to the location of the pin joint. As such, rather than calculating the position of each joint, we could simply use the dimension tool.



The key assumptions used in the analysis were:

The computation of each truss was split into two parts: Data collection and actual computation. The files can be found on my GitHub here.

"Truss_in" allows the user to input the locations of each joint and member to generate several arrays, including member lengths, joint positions, and the connection matrix. It then stored this data in a mat file.

"Truss_out" reads the mat file generated by "Truss_in" and computes the force on each joint by separating the system of linear force equations intro three matrices: Coefficient matrix A, Loads vector L, and Joint tensions vector T.


Since the matrix T is undefined, we can multiply both sides by the inverse of A, such that

[T]=(A)^-1 [L]

Then, the tension matrix can be compared to the calculated buckling force (P_crit) for each member. Tension values were ignored based on our assumptions, so we only searched for compression values that were greater than or equal in magnitude to their P_crit values.

The member that reaches its critical buckling value first is considered the critical member, which is expected to be the first member to fail.

Final Design

The highlighted member is the critical member

Computation Output

EK301 A3: Al Levine, Marina Lyons, Rajiv Ramroop


Load (oz): 44

Member Lengths (in):

   M01:  11.572

   M02:  8.500

   M03:  12.069

   M04:  8.500

   M05:  11.838

   M06:  12.359

   M07:  15.000

   M08:  12.359

   M09:  11.450

   M10:  8.500

   M11:  8.500

   M12:  8.500

   M13:  8.500

Member Forces (oz):

   M01:  7.674 (T)

   M02:  15.353 (T)

   M03:  15.697 (T)

   M04:  17.407 (C)   Pcrit: 30.336  Loading: 57.38%

   M05:  11.763 (T)

   M06:  9.722 (C)   Pcrit: 10.952  Loading: 88.77%

   M07:  20.026 (T)

   M08:  13.340 (T)

   M09:  16.705 (T)

   M10:  30.178 (C)   Pcrit: 30.337  Loading: 99.48%

   M11:  16.783 (C)   Pcrit: 30.336  Loading: 55.32%

   M12:  26.701 (C)   Pcrit: 30.337  Loading: 88.01%

   M13:  29.848 (C)   Pcrit: 30.336  Loading: 98.39%

Reaction Forces (oz):

   Sx1:  -0.000

   Sy1:  16.500

   Sy2:  27.500

Cost of Truss: $218

Theoretical Maximum Load (oz): 44.232

Theoretical Load/Cost Ratio (oz/$): 0.203


Truss under initial load


Overall, this project went pretty well. It was an excellent refresher in MATLAB, as well as parametric design.

The main issue we faced was building the code for computation- none of us were familiar with linear algebra at the time. With the assistance of a TA, though, we were able to build a functional program.

Ultimately, our truss failed well below its expected strength. We believe this is due to the construction of the joints. One of the assumptions in the calculations was that each joint was a perfectly-constructed pin joint, which was not the case for the prototype we tested. The duct tape holding each joint together caused misalignment of the theoretical 'pin' and subsequently imparted large moment forces on each member. As such, the members reached their critical buckling loads at a much lower live load.