Truss Report Sample

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Bill Carlson!

!
Truss Analysis!
!
Design!
!
An arbitrary planar truss with 7 members and 5 joints was ‘designed’. All joints are loaded with
identical vertical gravity loads with supports below joints A and D (pin supported at A and the
horizontal roller support at D). The units are US customary with measurements in feet and loads
in kips. (Attached is the layout of the design.)!
!
!
!
C !
22, 22 !
5
B
5 /10
ex ey
!
7, 20 3/5
sqrt 125
AB -0.1521 0.9884
!
sqrt 34
E
AD
AE
0.9285
0.2873
0.3714
0.9578 !
12, 17
!
4 11 /3
sqrt 130
BA 0.1521 -0.9884
!
13 /2
6 /7 BE 0.8575 -0.5145
!
sqrt 173
sqrt 85
!
3 10 /3
sqrt 109 D
CD
CE
-0.2631
-0.8944
-0.9648
-0.4472 !
!
19, 11
DA -0.9285 -0.3714
!
2 4 /10
DC 0.2631 0.9648
!
A sqrt 116 DE -0.7593 0.6508
!
9, 7
EA -0.2873 -0.9578 !
EB -0.8575 0.5145 !
1
truss supported at A and D
EC 0.8944 0.4472
!
vertical gravity loads at all joints
ED 0.7593 -0.6508
!
!
!
0 1 2 3 4 5 6 7 8 9

!
!
!
!
Check determinacy: m = 2 j -3!
!
m = 2 *5 - 3 = 7 … this agrees with the aforementioned design assumptions and if all members
form non-overlapping triangles in the design the system is then considered statically
determinant. !
!
!
Determination of the Reactions at A and D!
!
The system is in horizontal equilibrium since both the orientation of the roller reaction and the
the vertical loads are perpendicular and exert no component of reactions in the horizontal
direction, then with ∑Fx = 0 this yields Rax = 0.!
Use ∑Ma = 0 to determine the vertical reaction at D and assuming counterclockwise moment
terms are positive (RHR).!
!
∑Ma = 0"
"
2 feet(1kip) - 3(1) - 10(1) - 13(1) + 10 Rdy = 0"
!
Rdy = 2.4 kips upward"
!
Then use ∑Fy = 0 to solve for the Ray reaction.!
!
∑Fy = 0"
!
-1 -1 -1 -1 -1 + Ray + 2.4 = 0"
!
Ray = 2.6 kips upward"
!
!
Calculate the Direction Cosines for each joint!
!
Using the rise and run of each member and their hypotenuse we determine the direction
cosines (ex and ey) for each member relative to the joint. The quadrant of each member for a
particular joint determines the signs associated with the direction cosines. These values were
calculated for each member for each joint. (See the attached design layout for the results of the
calculations.) The direction cosines will form the A matrix for the system equilibrium equations.
The size of the A matrix will be dependent on the unknowns and the equivalence of members
from each joint. The form of the final matrix equation will determine the algebraic and numerical
solution technique.!
!
With 7 unknown members and 5 joints we can form two orthogonal equilibrium equations at
each joint. This will allow 10 equlibrium equations and which exceeds the 7 unknowns. This is
an over determined m(equations) by n(unknowns) algebraic set. If the members are written with
reversed labeling then there are 14 ‘unkowns’ and the set is considered underdetermined and
conditional equations must be required for the equivalence of reversed labeled members.!
!
We can either relabel equations (reduced columns) to result in m>n or provide additional
conditional equations (increased rows) equating the reverse labeling. The matrix size can also
be altered by selecting a subset of equations to match the number of equations to the unknowns
thereby forming an m by m matrix. A block independent system can be solved if the numerical
technique allows the substitution of reverse labels to be resolved.!
!
In the Matlab syntax form the direction cosines vector with conditional equations is:!
!
AB AD AE BA BE CD CE DA DC DE EA EB EC ED"

A = [-0.1521 0.9285 0.2873 0 0 0 0 0 0 0 0 0 0 0; ...

0.9884 0.3714 0.9578 0 0 0 0 0 0 0 0 0 0 0; ...

0 0 0 0.1521 0.8575 0 0 0 0 0 0 0 0 0; ..."
0 0 0 -0.9884 -0.5145 0 0 0 0 0 0 0 0 0; ..."
0 0 0 0 0 -0.2631 -0.8944 0 0 0 0 0 0 0; ...

0 0 0 0 0 -0.9648 -0.4472 0 0 0 0 0 0 0; ...

0 0 0 0 0 0 0 -0.9285 0.2631 -0.7593 0 0 0 0; ...

0 0 0 0 0 0 0 -0.3714 0.9648 0.6508 0 0 0 0; ...

0 0 0 0 0 0 0 0 0 0 -0.2873 -0.8575 0.8944 0.7593 ; ...

0 0 0 0 0 0 0 0 0 0 -0.9578 0.5145 0.4472 -0.6508 ; ...

1 0 0 -1 0 0 0 0 0 0 0 0 0 0 ; ..."
0 1 0 0 0 0 0 -1 0 0 0 0 0 0 ; ..."
0 0 1 0 0 0 0 0 0 0 -1 0 0 0 ; ..."
0 0 0 0 1 0 0 0 0 0 0 -1 0 0 ; ..."
0 0 0 0 0 1 0 0 -1 0 0 0 0 0 ; ...

0 0 0 0 0 0 1 0 0 0 0 0 -1 0 ; ...

0 0 0 0 0 0 0 0 0 1 0 0 0 -1];"
!
!
Load and Reactions B vector !
!
The known loads and reactions will form the vector B. The vector is written for the vertical and
horizontal components at each joint. With 5 joints this will result in a 10 by 1 column vector. We
will assume that the horizontal x equation precedes the vertical y equation. The b equation is
moved to the r.h.s. and will reverse all signs. In Matlab sytax the load and reaction vector is:!
!
b = [0; 1-2.6 ; 0; 1; 0 ; 1; 0; 1-2.4; 0; 1];"
!
!
!
Solution!
!
Either the Method of Joints or Method of Sections in rigid body mechanics are the two solution
methods most often used to calculate simple planar truss member forces. The Method of Joints
requires the balance of forces to be calculated according to the equilibrium equations (scalar
equations) at each joint. Note: the scalar equations are the respective euilibrium in both the x
and y directions. For the five joints in this problem we have:!
!
∑Fax = 0 ∑Fbx = 0 ∑Fcx = 0 ∑Fdx = 0 ∑Fex = 0"
!
∑Fay = 0 ∑Fby = 0 ∑Fcy = 0 ∑Fdy = 0 ∑Fey = 0"
!
The numerical approach used in this report focuses on the use of matrix inversion to solve the
equilibrium equations for the Method of Joints.!
!
The form of the matrix-vector equation is: [A] {x} = {b}!
!
The solution form is: {x} = inverse[A] {b}.!
!
where [A] is the direction cosine matrix, {x} are the unkown member forces vector, and {b} are
the known loads and reactions vector. Generally, the sizes are an m x n for the A matrix, n x 1
for the x vector, and m x 1 for the b vector.!
!
The Matlab syntax for matrix inversion is the backslash, or ‘left division’, where the Matlab
performs the matrix inversion if the |A| is not zero, e.g. non ‘singular’.!
!
The Matlab solution equation becomes:!
!
x = A \ b!
!
Using the reduced matrix where the reverse order labeling is reassigned to single ordering, e.g.
BA = AB, DA = AD, EC = CE, etc.!
!
AB AD AE BE CD CE DE"

A = [-0.1521 0.9285 0.2873 0 0 0 0 ; ...

0.9884 0.3714 0.9578 0 0 0 0 ; ...

0.1521 0 0 0.8575 0 0 0 ; ...

-0.9884 0 0 -0.5145 0 0 0 ; ...

0 0 0 0 -0.2631 -0.8944 0 ; ...

0 0 0 0 -0.9648 -0.4472 0 ; ...

0 -0.9285 0 0 0.2631 0 -0.7593 ; ...

0 -0.3714 0 0 0.9648 0 0.6508 ; ...

0 0 -0.2873 -0.8575 0 0.8944 0.7593 ; ...

0 0 -0.9578 0.5145 0 0.4472 -0.6508];"
!
!
!
!
Matlab solutions for member forces!
!
Reduced Matlab member labels: 1 = AB, 2 = AD, 3 = AE, 4 = BE, 5 = CD, 6 = CE, 7 = DE!
!
Executing the Matlab function calcs7reduced script yields the result vector x (where the signs
represent member compression if negative, and positive if in tension). The solution units are in
kips (multiples of 1000 lbf). The ans matrix is a concatenation of the member labels and the
member forces:!
!
ans ="
1.0000 -1.1146"
2.0000 -0.0245"
3.0000 -0.5108"
4.0000 0.1977"
5.0000 -1.2002"
6.0000 0.3531"
7.0000 -0.3859"
!
!
Note: when executing the Matlab function calcs7cond script both the A matrix and the b vector
are expanded.

Manual Solution Checks (need to know reactions at some joints)!
!
The check using the Method of Joints for the B joint is:!
!
∑Fx = 0 0.1521 BA + 0.8575 BE = 0"
∑Fy = 0 - 0.9884 BA - 0.5145 BE - 1 = 0"
"
BA = (- 0.8575/0.1521) BE = - 5.6377 BE"
!
-0.9884 (-5.6377 BE) - 0.5145 BE - 1 = 0"
5.5723 BE - 0.5145 BE = 1"
5.0578 BE = 1"
"
BE = 0.1977 T

BA = -5.6377(0.1977) = -1.1147 C


The negative result means direction of force is reversed from the assumption (tension was
assumed so negative means compression).!
!
!
The manual check using the Method of Joints for the A joint is:!
!
∑Fx = 0 -0.1521 AB + 0.9285 AD + 0.2873 AE + Rax = 0"
∑Fy = 0 0.9884 AB + 0.3714 AD + 0.9578 AE + Ray - 1 = 0"
"
-0.1521(-1.1147) + 0.9285 AD + 0.2873 AE + 0 = 0"
0.9884(-1.1147) + 0.3714 AD + 0.9578 AE + 2.6 - 1 = 0
!
" " 0.1695 + 0.9285 AD + 0.2873 AE = 0"
-1.1018 + 0.3714 AD + 0.9578 AE = -1.6"
"
+ 0.9285 AD + 0.2873 AE = -0.1695"
+ 0.3714 AD + 0.9578 AE = -0.4982


AD = -0.2873/0.9285 AE - 0.1695/0.9285"
AD = -0.3094 AE - 0.1826"
!
+ 0.3714 (-0.3094 AE - 0.1826) + 0.9578 AE = -0.4982"
0.8429 AE - 0.0678 = -0.4982"
0.8429 AE = -0.4304"
"
AE = -0.5106 C"
"
AD = -0.3094(-0.5106) - 0.1826"
AD = +0.1580 - 0.1826"
"
AD = -0.0246 C"
!
All of above manually determined values check with the numerically
derived values from Matlab to within the propagated precision of the
hand calculations. Note: the precision of the Matlab hidden digits is
greater than the digits of carried precision using a calculator
(sequential rounding error). The continued accumulation of error will
continue to grow with the manual method so we will stop checking since
all answers have thus far checked against Matlab results.

Matlab codes!
!
The function calcs7reduced solves for member forces with the reduced column matrix. !
!
%***************************************************************"
% program name: calcs7reduced.m"
% purpose: truss analysis"
% input: truss geometry and loading"
% output: member forces"
% programmer: BC "
% date:"
%"
% Note: this example covers a m x n matrix where m > n"
%***************************************************************"
!
function calcs7reduced()"
clc,clear"
"
% member labels"
member = [1;2;3;4;5;6;7];"
"
% loads and reactions vector"
b = [ 0 ; 1-2.6 ; 0 ; 1 ; 0 ; 1 ; 0 ; 1-2.4 ; 0 ; 1 ];"
"
% Reduced direction cosine data for A matrix"
"
A = [-0.1521 0.9285 0.2873 0 0 0 0 ; ..."
0.9884 0.3714 0.9578 0 0 0 0 ; ..."
0.1521 0 0 0.8575 0 0 0 ; ..."
-0.9884 0 0 -0.5145 0 0 0 ; ..."
0 0 0 0 -0.2631 -0.8944 0 ; ..."
0 0 0 0 -0.9648 -0.4472 0 ; ..."
0 -0.9285 0 0 0.2631 0 -0.7593 ; ..."
0 -0.3714 0 0 0.9648 0 0.6508 ; ..."
0 0 -0.2873 -0.8575 0 0.8944 0.7593 ; ..."
0 0 -0.9578 0.5145 0 0.4472 -0.6508];"
!
!
% solve for forces in members "
x = A\b;"
"
% output member forces"
[member, x]"





!
The function calcs7cond solves for member forces with additional conditional equations.!
!
%***************************************************************"
% program name: calcs7cond.m"
% purpose: truss analysis"
% input: truss geometry and loading"
% output: member forces"
% programmer: "
% date:"
%"
% Note: this example covers a m x n matrix with conditional equations"
% m > n"
%***************************************************************"
!
function calcs7cond()"
clc,clear"
"
% member labels"
member = [1;2;3;4;5;6;7;8;9;10;11;12;13;14]; "
!
% loads, reactions, and conditional vector"
b = [0; 1-2.6; 0; 1; 0; 1; 0; 1-2.4; 0; 1; 0; 0; 0; 0; 0; 0; 0 ];"
"
% direction cosine matrix"
"
A = [-0.1521 0.9285 0.2873 0 0 0 0 0 0 0 0 0 0 0; ..."
0.9884 0.3714 0.9578 0 0 0 0 0 0 0 0 0 0 0; ..."
0 0 0 0.1521 0.8575 0 0 0 0 0 0 0 0 0; ..."
0 0 0 -0.9884 -0.5145 0 0 0 0 0 0 0 0 0; ..."
0 0 0 0 0 -0.2631 -0.8944 0 0 0 0 0 0 0; ..."
0 0 0 0 0 -0.9648 -0.4472 0 0 0 0 0 0 0; ..."
0 0 0 0 0 0 0 -0.9285 0.2631 -0.7593 0 0 0 0; ..."
0 0 0 0 0 0 0 -0.3714 0.9648 0.6508 0 0 0 0; ..."
0 0 0 0 0 0 0 0 0 0 -0.2873 -0.8575 0.8944 0.7593 ; ..."
0 0 0 0 0 0 0 0 0 0 -0.9578 0.5145 0.4472 -0.6508 ; ..."
1 0 0 -1 0 0 0 0 0 0 0 0 0 0 ; ..."
0 1 0 0 0 0 0 -1 0 0 0 0 0 0 ; ..."
0 0 1 0 0 0 0 0 0 0 -1 0 0 0 ; ..."
0 0 0 0 1 0 0 0 0 0 0 -1 0 0 ; ..."
0 0 0 0 0 1 0 0 -1 0 0 0 0 0 ; ..."
0 0 0 0 0 0 1 0 0 0 0 0 -1 0 ; ..."
0 0 0 0 0 0 0 0 0 1 0 0 0 -1];"
"
% solve for forces in members "
x = A\b;"
"
% output member forces"
[member, x]

You might also like