Vous êtes sur la page 1sur 18

ni

Analysis of trusses and other


engineering structures with
Mathematica
A new Mathematica package solves computational problems involving engineering
structures.
by Liudmila I. Zamiatina
This paper introduces the Mathematica Engineering Structures Package package for primary stress-
deflection analysis of trusses and cables. The truss analysis is based on the principles of stiffness
method. The cable analyses are described by simple differential equations. The Engineering Structures
Package provides tools for graphical as well as computational analysis of structures. The concepts used
in mathematical models make their way into a consistent and easy-to-understand design of the respec-
tive Mathematica objects. Once the objects instrumental for a description of a given problem are set up,
the complete solution is then obtained by using one of the available unified solvers. The solvers are
designed to produce symbolic solutions in simple cases and numeric solutions in more general cases.
Cables and trusses in constructions
Examples of cables in bridge construction range from the straw bridges across a river gorge in the
Peruvian Andes (one of them extends more that 30.5 metes, and the Inca Indians rebuild it almost
every year), to the famous Golden Gate Bridge (opened in 1937 with a total length 2824 meters and a
main span of 1280 meters suspended from towers 227.4 meters high). Examples of truss type struc-
tures include the revolutionary new concept in the truss bridges sketched by Leonardo da Vinci. Recent
innovations include the idea of using a truss tube structural system instead of a rigid frame structure for
the John Hancock Center (built in Chicago in 1970) an idea that reduced the high cost of a
skyscraper.
In this paper the design and functions of the Engineering Structures Package are illustrated basically by
applications to trusses and cables, but a brief outline of designs for frames and beams is also given.
Objectives
Engineering structures are built to support loads and transmit forces. A structure responds to the
applied external factors by transmitting the loads and forces through its elements, and eventually apply-
ing them to the supports or foundations. To apply this approach in describing the overall response of a
structure, one needs to describe its internal state as well as its external action. We assume that the
external part of the structure response is adequately described when the reaction forces and constrain-
ing moments at all structure supports are known. To describe the internal state, it is necessary to list all
the internal forces and moments acting in the individual elements of the structure, as well as their
deflections.
Printed by Wolfram Mathematica Student Edition
Engineering structures are built to support loads and transmit forces. A structure responds to the
applied external factors by transmitting the loads and forces through its elements, and eventually apply-
ing them to the supports or foundations. To apply this approach in describing the overall response of a
structure, one needs to describe its internal state as well as its external action. We assume that the
external part of the structure response is adequately described when the reaction forces and constrain-
ing moments at all structure supports are known. To describe the internal state, it is necessary to list all
the internal forces and moments acting in the individual elements of the structure, as well as their
deflections.
Idealization
The context of this paper and Engineering Structures is limited to methods of Linear Structural Analysis.
The basic assumptions are that all materials used are homogeneous, isotropic, linearly elastic; and all
deflections are small compared to the geometrical dimensions of the respective structures. Certain
assumptions are also made about the geometry of the structure. We assume that it is possible to repre-
sent it a set of individual linear elements. For instance, a truss consists of ideally connected bars. We
typically represent bars as one-dimensional segments, therefore we should be able to disregard their
width. Ideal connections would be perfectly flexible frictionless hinges.
Free-body approach
This approach simplifies the treatment of supports and foundations of a given structure in an essential
way. To be able to treat the support or foundation elements on a par with all other elements, we simply
introduce appropriate reaction forces at the support points (plus, possibly, appropriate moments) and
then treat the structure as "unsupported". This is done using the simple rule: force or moment acting in
a certain direction is introduced whenever the structure's movements (i.e. displacement or rotation) in
that direction are restrained by the support. The forces and moments thus introduced are formally
described as Force or Moment objects.
Mathematica design for representation of
structures
Cables, beams, trusses and frames are the structures dealt with in the Package. Expressions describ-
ing either of these objects conform to the following general pattern: objectclass[geometry, materialproper-
ties, loads, reactions]. In the spirit of Mathematica-naming conventions, the values for the objectclass
are Truss, Frame, Beam, Cable and Chain. The geometry of the entire structure is defined in familiar
terms: Elements (for trusses and frames), BeamLength (for beams), Span, Sag and Height (for
chains and cables). Material properties and geometry of individual elements are given via Elasticity-
Modulus, CrossSections, InertiaMoments. Both loads and reactions are described as Force or
Moment objects. Once a free body diagram for the given structure is selected, one can establish
locations, directions, and patterns of the expected reactions. The complete list of these is then enclosed
in the Reactions wrapper. The list of active forces, moments and distributed loads is enclosed in the
Loads wrapper.
Plane and space structures
2 Trusses.nb
Printed by Wolfram Mathematica Student Edition
Plane and space structures
A truss is called a plane truss if all of its bars lie on one plane with loads and reactions acting in the
same plane. The planar truss can be analyzed separately as a part of the total structural system. In
many structures the individual constituents act independently of each other; the forces are transmitted
between parts, but no additional interaction occurs.
Since it is computationally easier to analyze planar structures, the specific truss analysis should be
represented as a planar problem whenever possible to reduce the size of input data, three-dimensional
coordinate transformation matrices and the structure stiffness matrix. In cases where a structure dis-
plays a genuinely three-dimensional behavior or load-transfer pattern, one has to use distinct Mathemat-
ica functions for solving the space trusses.
Plane trusses under loads
Truss description
In its Mathematica implementation, stress-deflection analysis of the plane and space trusses in static
equilibrium is based on the principles of stiffness method. The package tools provide for computational
as well as graphical analysis of the structures.
The description of the truss within the scope of the mathematical model include the description of truss
geometry (as a set node connected by the bars), cross sections areas of truss elements, Young's
modulus of material, loads, and supports. The Truss object is a collection of subobjects describing its
Structure, Loads and Reactions. The Structure object includes Elements, CrossSections,
and ElasticityModulus parts. Let us illustrate this with an example. For instance, the truss shown
on the Figure 1, with the cross sectional area for each element equal to = 0.993 in
2
, Modulus of
Elasticity equal to = kips / in
2
, and length parameter equal to l = 144 in , is described in the appropri-
ate coordinate system as follows:
s e
Figure 1. The loaded plane truss.
Trusses.nb 3
Printed by Wolfram Mathematica Student Edition
truss1
Truss[
Structure[
{ CrossSections[ ], ElasticityModulus[], Elements[
{{0, 0}, {l, 0}}, {{l, 0}, {l, l}},
{{l, l}, {0, l}}, {{0, l}, {0, 0}},
{{0, 0}, {l, l}}, {{l, 0}, {0, l}}]}],
Loads[Force[{P, 0}, {l, l}]],
Reactions[Force[{r1, r2}, {0, 0}], Force[{r3, r4}, {l, 0}]]];
The Elements part of the Truss object is a collection of node pairs given by the node coordinates and
wrapped into Elements. Listing all connecting pairs (bars) is sufficient for the purposes of the truss
analysis, because the nodes and their connections are easily extracted from the set of bars. The key
parameters for the matrix analysis of trusses are CrossSections and ElasticityModulus. These
are self-explanatory. These three simple objects are parts of the Structure object. In more general
cases the package provides for the analysis of the truss structures with different parameters for different
truss elements.
An essential part of the basic truss data is the definition of the loads and the support reactions. The
reactions are considered as passive forces in the truss, while the loading forces are the active forces.
To employ a suitable free -body diagram, we replace the supports by the appropriate reaction forces. It
is convenient to describe both loads and reactions using the Force object .
The first argument of Force gives the components of the force vector, and the second argument indi-
cates the point (actually, node) of the force application. The node location coordinates and force compo-
nents are likely to have different scales. Note that some or all force components can be symbols with no
specific values assigned to them. Such components are treated as unknowns. Our structure solvers
would attempt to solve for some or all of them.Typical examples of mixed force definitions would be an
unknown horizontal force at the origin, Force[{x, 0},{0,0}], and an unknown vertical force at the origin,
Force[{0,y},{0,0}]
The reactions generated by a support depend on its type, and according to the general principle the
reaction force vector component appears in the direction in which the support restrains the movement
of the relative node. Thus in a plane truss, for example, a roller support restrains the movement in one
direction, and a pinned support restrains the movement in two directions. Both supports allow the node
to rotate and the corresponding reactions take the form of forces acting in the constrained directions.
The sequence of vectors representing loads should be wrapped into the Loads object the wrapper
for the sequence of support reactions is Reactions.
The order of the individual objects in the description of Truss object does not matter. Neither does the
order of objects in its Structure part.
Key functions
Once a truss is given as a collection of its elements, applied loads, Young's moduli, and cross sectional
areas of the truss elements, the unified truss solver generates the global force-displacement equations
and produces the element forces in the bars, node deflections and reaction of supports. The unified
solver for the plane truss analysis is SolveTruss. The output of this function gives the complete
information about the plane truss structure under the acting loads. To get the result, one has to give
specific numerical values for parameters and to apply the SolveTruss function.
The next calculation continues the previous example:
4 Trusses.nb
Printed by Wolfram Mathematica Student Edition
SolveTruss[truss1 /. { 0.993, 29000, l 144, P 50}]
r1 27.8879, r2 50., r3 22.1121, r4 50., Dx2 0.423317, Dx4 0.533889, Dy2 0.110572,
Dy4 0.139454, ElementForce1, 3 0, ElementForce3, 4 27.8879, ElementForce4, 2 22.1121,
ElementForce2, 1 22.1121, ElementForce1, 4 39.4394, ElementForce3, 2 31.2713
In this case, the structure has extremely simple rectangular geometry. Therefore, all transformation
matrices have simple coefficients and the problem is solved with complete symbolic data input. One
has use the ParameterList option to distinguish the given symbolic parameters from unknown
variables. (Symbolic mode demonstrates the dependency of parameters).
SolveTruss[truss1, x, y, , ParameterList {, , l , P}] // DisplaySolution
r1 0.557758 P, r2 1. P, r3 0.442242 P, r4 1. P, x
2

1.69309 l P

,
x
4

2.13533 l P

, y
2

0.442242 l P

, y
4

0.557758 l P

,
1, 3
0,
3, 4
0.557758 P,

4, 2
0.442242 P,
2, 1
0.442242 P,
1, 4
0.788789 P,
3, 2
0.625425 P
As one can see, we renamed the element forces and deflections and applied the additional DisplaySo-
lution function to print the results in two-dimensional form. Note that in the second solution of truss1
we changed the names of output parameters (element forces and node deflections) as well.
To obtain the results symbolically, even for simple structures, can be useful for educational purposes.
Such a solution demonstrates how the given parameters were involved in the description of the truss at
the stage of problem setup and where these parameters appear in the output of the unified solver. For
instance, in the example above we can see that all parameters of the SolveTruss output depend on
load P, and node deflections are directly proportional to the load P and length l, but inversely propor-
tional to the cross-sectional area of the elements and Young's moduli.
The key functions in the visualization and graphics analysis of the plane trusses are the following:
TrussStructurePlot, TrussReactionPlot, TrussDeflectionPlot. Let us demonstrate a
more elaborate example of the multi-element plane truss construction built by compact code written in
Mathematica.
The standard Mathematica function GraphicsArray applied to a sequence of steps to build a 2D
cross-cut of an Eiffel tower-like structure: stage1, stage2, stage3, stage4, stage5 gives the following
graph:
Show[GraphicsArray[{{stage1, stage2, stage3, stage4, stage5}}]];
Describing the given truss by using Structure, Loads, Reactions as was shown above,
we can solve the specified truss directly by applying the TrussReactionPlot function to the properly
set Truss object. Some special options were used below to obtain the graphical image of the Truss
object called truss3.
Trusses.nb 5
Printed by Wolfram Mathematica Student Edition
Describing the given truss by using Structure, Loads, Reactions as was shown above,
we can solve the specified truss directly by applying the TrussReactionPlot function to the properly
set Truss object. Some special options were used below to obtain the graphical image of the Truss
object called truss3.
TrussReactionPlot[truss3,
ForceScale {.08, Automatic},
Forces True,
FontSize 6];
-
-
The blue arrow represents the load and the red arrows represent the reaction of supports.
As we can see, the truss is supported by the fixed supports applied at the foundation nodes of the
structure, and the load is applied at the node that was chosen in the truss3 description.
If truss3 had been previously solved using SolveTruss, there is a way to reuse the solution in
TrussReactionPlot without recomputing it.
Another graphical function in truss analysis is TrussDeflectionPlot. This function analyzes a truss
or reuses the results of prior analysis, draws the initial and deformed trusses and specifies the values of
element forces by the color of a deformed truss. Options for this function allow the user to specify
styles for representing the results of analysis and for drawing the truss.
Consider the direct graphical deflection analysis of a truss structure in the following example. A Ferris
wheel in a fairground can be idealized as eight pin-ended spokes of length 10.0 m attached symmetri-
cally to a rigid rim and meeting at a central hub of negligible dimensions. The spokes are all of steel
and have the same cross-sectional area, equal to 5.00 10
3
m
2
. The loading on the wheel induces a
total reactive force at the hub of 500. kN directed at 30 to the vertical as shown. Taking the hub to be
the single free joint in the structure, calculate the displacements of the hub relative to the rim and
maximum forces in the spokes. After describing this truss as truss4, we can use directly the TrussDe-
flectionPlot function to draw the truss and solve the problem. The NodeLabel option allows the
user to give any description of the truss nodes.
The description label used below has the following form {{acoordinates, "A"}, ...}. The DeflectionCoef-
ficient option set up to m instructs the plotter to scale the deflections by the factor of m before
drawing them. The default is 20. The Deflections option specifies whether the deflection values
should also be printed beside the deflected elements in the graph. (Default is False).
6 Trusses.nb
Printed by Wolfram Mathematica Student Edition
TrussDeflectionPlot[truss4,
NodeLabel labels,
DeflectionCoefficient 1000,
Deflections True,
DisplayLegend True,
LegendPosition {-1.5,-1.}
];
8 <
8 <
8 <
8 <
8 <
8 <
8 <
8 <
8 <
-
As we can see in the picture, the TrussDeflectionPlot function gives the range of the forces in the
bars and deflections of the nodes. Note that the nodes that do not experience deflections will have both
zero deflection values and "fixed" qualifiers printed beside them.
All standard Mathematica options for Graphics can be also used to fine-tune the outputs of TrussRe-
actionPlot and TrussDeflectionPlot. The latter also accepts all the options of the Mathematica
Legend object.
The package uses consistent naming conventions for options across all the solvers and plotters, such
as TrussDeflectionPlot, TrussDeflectionPlot3D, TrussReactionPlot, TrussReaction-
sPlot3D, TrussStructurePlot, TrusssStructurePlot3D, FrameReactionsPlot, FrameDe-
flectionsPlot, FrameStructurePlot, etc.
A most attractive feature of the package is the graphical analysis of 3D trusses. First we have to note
that 3D truss structures should be described by the same Truss object, but in this case all the points
involved are three dimensional. The numerical, and in some cases, closed form symbolic solution could
be obtained by using SolveTruss3D applied to the appropriate Truss object. The graphical solution
or visualization could be done by TrussReactionPlot3D and TrussDeflectionPlot3D. There are
only small differences between the plane and space truss analysis and graphical representations. The
forces in the 3D case are represented by the colored points and printed values, and the bars in 3D can
be shown as prisms for better visibility. To demonstrate the geometry of the entire truss construction,
the package has two auxiliary functions: TrussStructurePlot and TrussStructurePlot3D.
These functions can be used at any stage of truss analysis. To this end they accept the Elements,
Structure, and Truss objects. Below we give the graphical image for space structure truss25 gener-
ated by TrussStructurePlot3D with the PrismaticBars option set to True.
Trusses.nb 7
Printed by Wolfram Mathematica Student Edition
TrussStructurePlot3D[truss25,
NodeLabel labels,
FontColor RGBColor[1,1,1],
PrismaticBars True,
SpaceBarStyle {4, RGBColor[1,0,.2]},
ElementStyle {.15, GrayLevel[.9]},
Background RGBColor[0,0,0],
ViewPoint {10,7,-20}];
Changing the standard ViewPoint option, we can animate the observation of this structure from
different points-of-view. In the figure below, the TrussReactionPlot3D function gives the direct
analysis of support reactions for this structure. Here the blue point gives the applied load and the four
yellow points represent the reactions of fixed supports. ViewPoint was also changed, and the nodes
labels were dropped to demonstrate the options.
8- - < 8 <
8 < 8 - - <
8 - <
The deflection analysis for 3D trusses can be done by the TrussDeflectionPlot3D function. As in
the planar case, the element forces in the bars are represented on the graph by the color of the ele-
ments. In addition to the specific options, the 3D truss plotters accept all the options allowed for the
Mathematica Graphics and Graphics3D objects. We will demonstrate how the different graphics
objects in Mathematica could be combined in the analysis of a space arch. The two pictures below use
the Graphics objects generated by the TrussReactionPlot3D and TrussDeflectionPlot3D
functions used for analysis. The standard Rectangle, Graphics and Show commands are used to
combine the images. In the two pictures below, the left arcs show the applied forces at the different
nodes by the blue points, and the support reactions are shown by the red points. On the right side of the
pictures, the shapes of deflecting arch are shown, and by the bars' color the stress in the bars is indi-
cated.
8 Trusses.nb
Printed by Wolfram Mathematica Student Edition
The deflection analysis for 3D trusses can be done by the TrussDeflectionPlot3D function. As in
the planar case, the element forces in the bars are represented on the graph by the color of the ele-
ments. In addition to the specific options, the 3D truss plotters accept all the options allowed for the
Mathematica Graphics and Graphics3D objects. We will demonstrate how the different graphics
objects in Mathematica could be combined in the analysis of a space arch. The two pictures below use
the Graphics objects generated by the TrussReactionPlot3D and TrussDeflectionPlot3D
functions used for analysis. The standard Rectangle, Graphics and Show commands are used to
combine the images. In the two pictures below, the left arcs show the applied forces at the different
nodes by the blue points, and the support reactions are shown by the red points. On the right side of the
pictures, the shapes of deflecting arch are shown, and by the bars' color the stress in the bars is indi-
cated.
Show[Graphics[{Rectangle[{9, 0}, {0, 9}, [[1]]],
Rectangle[{0, 0}, {9, 9}, [[2]]]}],
Background GrayLevel[.9]] & /
{{ArchReactions1, ArchDeflections1},
{ArchReactions2, ArchDeflections2}};
More sophisticated image composition is presented in the figure below. The graphics images of initial
and deflecting arches are obtained by TrussDeflectionPlot3D, the separate graphics image Bird
is used to show the view point, and in the small rectangular only the deflecting arch is shown from the
point-of-view where the bird is located. In general, graphical objects coming from different sources can
be easily combined in Mathematica environment to form a collated image.
Trusses.nb 9
Printed by Wolfram Mathematica Student Edition
Initial strains in plane structures
The package allows analysis not only of the loaded structures, but also the plane trusses subject to
misfits, thermal changes, and fabrication errors, as well as substructuring in the truss and frame
analysis.
The same unified SolveTruss function analyzes the truss structures subject to the misfits, thermal
changes in the elements, and fabrication errors. This general category of problems can be solved as
initial-force problems in the context of equations [Sack 1989]. In these cases one has to add to the
description of the Truss object the appropriate part InitialStrains or Misfits.
We return to the first example, but now in addition to the acting force, the element that connected the
nodes 1 and 2 is heated 100F above the temperature of the other elements. We find the nodal displace-
ments, the reaction forces, and the element forces. Assume = 6.5 10^-6 in/(inF).
truss2 Append[truss1, InitialStrains[{{{0, l}, {0, 0}}, , }]];
We have to add the numerical values for the unknown parameters to solve the problem numerically.
The same unified function SolveTruss gives the solution.
SolveTruss]truss2 /.
] 6.5 10
6
, 100, 0.993, 29000, l 144, P 50), x, y, // DisplaySolution
r1 30.0501, r2 50., r3 19.9499, r4 50., x
2
0.475523, x
4
0.575283, y
2
0.19336, y
4
0.150266,

1, 3
0,
3, 4
30.0501,
4, 2
19.9499,
2, 1
19.9499,
1, 4
42.4973,
3, 2
28.2134
The same graphical functions TrussReactionPlot and TrussDeflectionPlot will analyze and
plot the structures subject to thermal change and misfits as usual. For instance, below we consider a
truss that has four bars intersecting at one point, the other ends of the bars having fixed supports on a
vertical wall. Point a has coordinates {0,0}. The points at the walls from top to bottom have coordinates:
b = {4,4}, c = {4,3}, d = {4,0}, e = {4,-4}.
We find the nodal displacements and maximum element forces for the truss, if element ac is fabricated
5 mm too short. The modulus of elasticity for all bars is equal to 200 GPa and the cross-sectional areas
for the bars are as follows A(ab) = A(ae) = 1131mm
2
, A(ac) = 500 mm
2
, and A(ad) = 400 mm
2
.
[Sack 1989]. The direct solution by the graphics function gives the following picture.
If the element {a,c} is constructed 5 mm too short, it means that this element will be in tension, Ele-
ment forces are necessary to constrain the members so that nodal displacements are zero when the
element experiences the initial strain. This line of thought suggests the use of the InitialStrains
object. The change in the length is equal to = -.005 (measured in meters)and the strain per unit of the
length is equal to = 1/L, where L is the length of the element.
10 Trusses.nb
Printed by Wolfram Mathematica Student Edition
If the element {a,c} is constructed 5 mm too short, it means that this element will be in tension, Ele-
ment forces are necessary to constrain the members so that nodal displacements are zero when the
element experiences the initial strain. This line of thought suggests the use of the InitialStrains
object. The change in the length is equal to = -.005 (measured in meters)and the strain per unit of the
length is equal to = 1/L, where L is the length of the element.
Calculate the length of this truss element and determine the initial strain as follows:
rl _ .005,
1
L Dot[(c a), (c a)]
_;
strain1 InitialStrains[{{a, c}, , } ] /. rl;
The expression strain1 is included in the description of truss10 as well as Structure and Reac-
tions objects.
TrussDeflectionPlot[truss10,
NodeLabel labels, DeflectionCoefficient 500,
ElementStyle {.07, GrayLevel[.667]},
DisplayLegend True, LegendPosition {.6, .9},
Deflections True, BarStyle {.005, GrayLevel[0.5]}];
8 <
8 <
8 <
8 <
8 <
-
The depicted values of deflection of nodes on the wall are {0,0}. This emphasizes the fact that these
nodes have the fixed supports. The deflection of node a is multiplied by the coefficient 500 before being
plotted. The maximum element force appears in the bar {a,c} and its value is depicted on the force
diagram. The flexible choices for option values allow the program to attain maximum clarity and visual
quality for structure images.
Substructuring in trusses
Some structures are too large to be analyzed as a single system, and they can be investigated only
after division into a number of smaller units or substructures. With the smaller problem sizes, faster,
more convenient and more reliable solutions are obtained. The response of the total system is estab-
lished by synthesizing the individual substructural responses in a systematic fashion. In substructuring,
the nodes are grouped into interior nodes and interface nodes, then the behavior of the structure of both
is analyzed.
Even though the output of the unified SolveTruss function gives the reactions of supports and the
deflections only at the interface nodes, the geometry of the entire structure is involved in considering a
calculation. SolveTruss solves the problem by substructural analysis only when the description of
truss structure includes the InterfaceNodes object . The following examples illustrate the usage of
InterfaceNodes.
Trusses.nb 11
Printed by Wolfram Mathematica Student Edition
Even though the output of the unified SolveTruss function gives the reactions of supports and the
deflections only at the interface nodes, the geometry of the entire structure is involved in considering a
calculation. SolveTruss solves the problem by substructural analysis only when the description of
truss structure includes the InterfaceNodes object . The following examples illustrate the usage of
InterfaceNodes.
This structure is taken from the examples library of the package. It is simply the foundation of a two-
dimensional tower (called truss23 in the example library)the intermediate stage of building that
structure. This structure has 20 nodes, but let us assume that for some reason the responses at five of
these nodesthe ones with numbers 2, 9, 11, 12, 19are more important to us than the rest. The
following shows the InterfaceNodes object listing the nodes of importance added to the truss23
definition:
truss23 = Truss[InterfaceNodes["9","2","11","12","19"]/.
StructureNames[elements23],
reactions23, loads23, structure23];
SolveTruss gives the deflections of interfaces and support reactions.
truss23//SolveTruss
Dx11 0.00027525, Dx12 0.0000875278, Dx16 0.000256787, Dx19 0.0000575047, Dx2 0.000100786,
Dx7 0.00129238, Dx9 0.00105104, Dy11 0.000210681, Dy12 0.00049829, Dy16 0.000719956,
Dy19 0.000111986, Dy2 0.0000215334, Dy7 0.00142344, Dy9 0.00129134, r5 11.3131,
r7 11.3084, r8 11.6104, r6 20.2844, r2 4.28275, r1 4.54429, r3 7.16585, r4 22.388
To find support reactions graphically, use TrussReactionPlot instead:
TrussReactionPlot[truss23,
ElementStyle {.002, RGBColor[.5,0,.5]},
NodeSize .02, Forces True, FontSize 9];
-
-
- -
An overview of frames and beams
The package solves not only truss but also plane prismatic frames. For this reason the Frame object is
introduced in Mathematica, and an additional simple object, InertiaMoments, is used for the purpose
of frame analysis. The frames solved in the package can be loaded, subject to thermal changes, and
can be defined as axially rigid or inextensible. The substructuring in the frames is implemented in the
package as well. The similar graphical functions FrameReactionPlot and FrameDeflectionPlot
could be used for graphical analysis, or just for visualization.
Many modern bridges have structural elements described as beams and cables. The package gives a
complete analysis of straight Euler-Bernoulli beams in static equilibrium.
For illustration purposes, let us give a picture of one beam, described in terms of a Beam object and
plotted by BeamReactionPlot with the option SolvedStructure set to False.
12 Trusses.nb
Printed by Wolfram Mathematica Student Edition
The package solves not only truss but also plane prismatic frames. For this reason the Frame object is
introduced in Mathematica, and an additional simple object, InertiaMoments, is used for the purpose
of frame analysis. The frames solved in the package can be loaded, subject to thermal changes, and
can be defined as axially rigid or inextensible. The substructuring in the frames is implemented in the
package as well. The similar graphical functions FrameReactionPlot and FrameDeflectionPlot
could be used for graphical analysis, or just for visualization.
Many modern bridges have structural elements described as beams and cables. The package gives a
complete analysis of straight Euler-Bernoulli beams in static equilibrium.
For illustration purposes, let us give a picture of one beam, described in terms of a Beam object and
plotted by BeamReactionPlot with the option SolvedStructure set to False.
-
-
H - L
Figure 2. The loaded Euler-Bernoulli beam.
The SolveBeam function gives the complete solution of this beam, but the beam analysis has the
additional graphical functions ShearPlot, BendingMomentPlot, SlopePlot, and Deflection-
Plot. The SolveBeam function could be used in symbolic mode as well as in numeric.
This functions take the solution of the given beam and visualize the result, or take the Beam object and
draw the respective solution. In the figure below, the SlopePlot and DeflectionPlot functions
analyze the slope and deflections of the centroid axis of the beam shown above.
{SlopePlot[#, LineThickness .02],
DeflectionPlot[#, LineThickness .02]}&/@{beam1};
Coplanar cables
There are no special graphical functions for the analysis of coplanar cables in the package, but there is
a wealth of symbolic computation, because cable analysis is based on the principles of double integra-
tion. There are two types of cables. In suspension bridges we find a coplanar arrangement, in which a
cable supports a large load but the weight of the cable itself may often be considered negligible (the so
called parabolic case). In transmission lines the principal factor is the weight of the cable itself (the so
called catenary case). In this package we consider both parabolic and catenary cases. Once a cable
structure is given by its span and sag loads, the function for cable analysis generates an equation for
the cable curve, gives a value of cable length, an equation for tension as the function of the horizontal
coordinate (or of the cable length itself), and the horizontal coordinate of the left support for asymmetric
cable.
Trusses.nb 13
Printed by Wolfram Mathematica Student Edition
There are no special graphical functions for the analysis of coplanar cables in the package, but there is
a wealth of symbolic computation, because cable analysis is based on the principles of double integra-
tion. There are two types of cables. In suspension bridges we find a coplanar arrangement, in which a
cable supports a large load but the weight of the cable itself may often be considered negligible (the so
called parabolic case). In transmission lines the principal factor is the weight of the cable itself (the so
called catenary case). In this package we consider both parabolic and catenary cases. Once a cable
structure is given by its span and sag loads, the function for cable analysis generates an equation for
the cable curve, gives a value of cable length, an equation for tension as the function of the horizontal
coordinate (or of the cable length itself), and the horizontal coordinate of the left support for asymmetric
cable.
All components in the descriptions of the cable structures are represented by the objects specifically
designed for these purpose and are described in familiar terms. The following objects: Span, Sag, and
Height, provide the description of the geometry of symmetrical and asymmetrical cable structures. A
Mathematica pure function is a reasonably good tool for describing distributed loading for cables, and
that is what is used in the underlying design in the package. As we already mentioned, within this
package a cable with the loading distributed along the horizontal coordinate will be described as a
Cable object. The cables with loading distributed along the cable length are represented by the Chain
object. The unified SolveCable function and other functions can handle numeric, and in many cases,
symbolic solutions for cables and chains.
As an example let us find the shape of a cable stretched between two points on the same level. The
cable has forces l meter apart with sag f meters, and it is subject to a loading of c Newton/Meters
distributed in the horizontal direction.

Figure 3. Parabolic symmetric cable with symbolic data input.


This is the case of a symmetric cable with a uniform loading. The data is given symbolically (i.e., by
symbols that do not have numerical values).
First, we solve this problem without units of measure. The description of the symmetric cable consists
of three arguments span, sag, and loading. Loading should be given by a Function object .
The object Cable is combined by the simple objects Span, Sag, and Loads.
cable1 Cable_Span[l Meter], Sag[f Meter], Loads_Function[x, c]
Newton
Meter
__;
Use SolveCable for cable analysis to obtain the complete information about the cable. The second
argument for SolveCable specifies the name of coordinate to be used in the result.
This second argument of the function SolveCable provides the name for the horizontal coordinate .
14 Trusses.nb
Printed by Wolfram Mathematica Student Edition
solution1 = SolveCable[cable1, x]
Shape
4 f x
2
l
2
, StretchMeter 2. f
2
0.0625 l
2

0.125 l
2
ArcSinh
4. f
l

f
,
Tension
c Newton 0.015625 l
4
f
2
x
2
f

Notice that Figure3 was plotted by the CableStructurePlot function, and the following settings of
the options were used:
CableStructurePlot_cable1,
CableLabel _"l Meter", "f Meter", "c
Newton
Meter
"_,
Background RGBColor[.9, .9, 1] _
Figure 4 and Figure 5 were reproduced by CableStructurePlot as well.
The input data for the functions in the Engineering Structures package for asymmetric cables should be
numeric. (The following example shows the characteristic usage of numeric data in asymmetric case).
Find the maximum tension.of the cable carrying a horizontally distributed load of 3 kg/m . It is stretched
between two supports not at the same level. The left side of a cable is mounted at an elevation 10 m
below the right side. The sag, measured from the left support, is 10 m. The span is equal to 200 m.
(Similar to the problem 6.9 , W.G. McLean&E.W.Nelson, Engineering mechanics )

Figure 4. Parabolic asymmetric uniformly loaded cable.


Alternatively we can solve the problem as dimensionless. Here we have an asymmetric cable. As usual
we assume that the higher end is the right one.
To describe the asymmetric cable write consecutively span, sag, loading and the fourth parameter
height:
cable2 = Cable[Height[10], Span[300], Sag[10], Loads[Function[x,3]]];
To solve for tension:
tension2 = CableTension[cable2, x]
3. 596104. x
2
To illustrate the problem graphically, we find the left support of the cable:
lowestsupport = CableLowestSupport[cable2]
124.264
When plotting the cable tension, remember to indicate the range for the variable along the horizontal
axis:
Trusses.nb 15
Printed by Wolfram Mathematica Student Edition
When plotting the cable tension, remember to indicate the range for the variable along the horizontal
axis:
Plot[tension2,{x, -124.264, 175.736},
PlotLabel "Cable tension",
Frame True,
GridLines Automatic,
PlotStyle {Thickness[.02], RGBColor[1,0,0]}];
Consider an example involving an asymmetric chain. The lowest support in our model is located at the
left end. Conventionally the origin of the corresponding coordinate system is located at the lowest point
of the chain.
A cable having a weight density of 3 Newton/Meter is stretched between two supports not at the same
level. The height is 8 meters, span is equal to 100 meters, with sag equal to 10 meters. Determine the
maximum tension. (Similar to Problem 6.9, McLean and Nelson 1988)

Figure 5. Asymmetric uniform loaded chain.


The description of the asymmetric chain consists of four arguments - span, sag, loading, and height.
chain1 = Chain[Span[101 Meter],
Loads[Function[s, 4 9.806] Newton/Meter],
Height[9 Meter], Sag[11 Meter]];
SolveCable[chain1, x]
Shape86.6198 86.6198 Cosh0.0115447 x, Stretch107.104 Meter,
TensionNewton 1.1543510
7
1.1543510
7
Sinh0.0115447 x
2
, LowestSupport43.1729 Meter
Note, that in this case the tension is given as a function of the chain length. To emphasize this fact, we
choose the variable s that varies along the length of the chain from the lowest point to the end.
tension1 = CableTension[chain1, x]
Newton 1.1543510
7
1.1543510
7
Sinh0.0115447 x
2
To analyze the maximum of tension, first draw the curve of the chain. The maximum tension occurs at
the highest end of the chain.
16 Trusses.nb
Printed by Wolfram Mathematica Student Edition
Plot[tension1/. Newton 1, {x, -42.888, 57.112},
PlotLabel "Chain shape", AspectRatio .4,
Frame True, GridLines Automatic,
PlotStyle {{Thickness[.02], RGBColor[0,0,1], Dashing[{0.05}]}}];
Conclusion
Why Mathematica? The Mathematica language provides a convenient object-encapsulation model,
similar to that of advanced object-oriented languages, but Mathematica's object encapsulation is simpler
to use, because it is very graphical and very flexible (being interpreted as opposed to compiled).
Another important advantage is the availability of the extremely powerful mathematical library that can
be used easily and seamlessly in any Mathematica package.
The numeric results, once obtained, can be easily put into a variety of graphical formats and plotted
using either two-dimensional or three-dimensional graphical primitives available in Mathematica. These
factors provide for easy and robust implementations of the required engineering functionality.
Along with that, the Mathematica front end allows for rapid design and easy customization of simple
user interfaces complete with buttons, palettes and mathematical symbols.
The last, but not the least motivation for using Mathematica, is the ability to embed all of the above into
high quality Notebook documents, so that the manuals, guides and help files coexist in the same elec-
tronic workspace with the functional packages and engineering models.
Acknowledgment
I am grateful to all employees of Wolfram Research with whom I had the privilege to discuss this project
on its different stages.
References
Egor E. Popov. Engineering Mechanics of solids. Prentice Hall. 1990
W.G.McLean, E.W.Nelson Engineering mechanics. McGray-Hill,Inc. 1988
William A.Nash Statics and Mechanics of Materials. McGraw-Hill. 1992
Ronald L. Sack. Matrix Structural Analysis. PWS-KENT Publishing Company. 1989
Tung Au, Paul Christiano. Structural Analysis.Prentice-Hall, Inc. 1987
ABOUT THE AUTHOR
Liudmila I. Zamiatina received an M.Sc.degree in Applied Mechanics from Moscow State University.
Currently she is with the Applications Department of Wolfram Research.
Liudmila I. Zamiatina
Wolfram Research
100 Trade Center Drive
Champaign, IL
liudmilaz@wolfram.com
Trusses.nb 17
Printed by Wolfram Mathematica Student Edition
Liudmila I. Zamiatina received an M.Sc.degree in Applied Mechanics from Moscow State University.
Currently she is with the Applications Department of Wolfram Research.
Liudmila I. Zamiatina
Wolfram Research
100 Trade Center Drive
Champaign, IL
liudmilaz@wolfram.com
ELECTRONIC SUBSCRIPTIONS
Included in the distribution for each electronic subscription is the file Trusses.nb containing Mathemat-
ica code for the material described in this article.
18 Trusses.nb
Printed by Wolfram Mathematica Student Edition