Mechanical Behavior of Truss Materials by Jeremy C. Wallach B.S.E. Mechanical Engineering Princeton University, 1998 SUBMITTED TO THE DEPARTMENT OF MECHANICAL ENGINEERING IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE IN MECHANICAL ENGINEERING AT THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY JUNE 2000 ©2000 Jeremy C. Wallach. All rights reserved. The author hereby grants to MIT permission to reproduce and to distribute publicly paper and electronic copies of this thesis document in whole or in part. Signature of Author:________ Department of Mechanical Engineering May 10, 2000 Certified by: Lorna J. Gibson & Engineering Science Materials of Matoulas S Salapatas Professor Thesis Supervisor Accepted by: Ain A. Sonin Professor of Mechanical Engineering ETduate Chairman, IN8TITUlT HUSETIS STTE Students INTITUTE MASSACHUSETTSMASSACHU~lTS OF TECHNOLOGY OF TECHNOLOGY TUTE JAN 17 2002 LIBRARIES LIBRARIES Mechanical Behavior of Truss Materials by Jeremy C. Wallach Submitted to the Department of Mechanical Engineering on May 5, 2000 in Partial Fulfillment of the Requirements for the Degree of Master of Science in Mechanical Engineering ABSTRACT A variety of novel manufacturing techniques can be used to make materials with a periodic, threedimensional truss-like structure. The high stiffness per unit weight of such structures makes them attractive for use in sandwich panels. This thesis examines the elastic moduli and the uniaxial and shear strengths of some truss materials. Numerical modeling includes linear and non-linear analyses of a periodic unit cell and finite-size structures. Predictions for normal and shear properties compare well with experimental results. Normalized moduli and strengths are determined as a function of unit cell aspect ratio, demonstrating that the properties may be varied depending on the functional requirements. Also examined are size effects and defect sensitivity. Studies incorporate the Lattice Block truss material and the octet truss material. Finally, an alternative manufacturing process for truss-core sandwich panels is demonstrated. Thesis Supervisor: Lorna J. Gibson Title: Matoulas S Salapatas Professor of Materials Science & Engineering -- 2 - BIOGRAPHICAL NOTE The author attended the Hackley School, in Tarrytown, NY, and graduated valedictorian in 1994. He received a B.S.E. in Mechanical Engineering and a certificate in Materials Science from Princeton University in 1998, graduating Magna cum Laude. He began work at MIT in September 1998 and is currently finishing an M.S. in Mechanical Engineering under Professor Gibson. The Fannie and John Hertz foundation awarded him a Graduate Fellowship that funded his current studies. Previous summer employment included jobs at Carl Zeiss, Inc., Stanford University (the CPIMA program), McDonnell Douglas / The Boeing Company, and the HewlettPackard Company. Most importantly, the author is engaged to the charming and wonderful Jennifer Jensen, whom he will marry this June. -3 - ACKNOWLEDGEMENTS I would like to thank my advisor, Professor Gibson, for her guidance, inspiration, and encouragement. I gratefully acknowledge the financial support of the Fannie and John Hertz foundation. Additional support for this project came from ARPA through Contract Number N00014-96-1-1028. I also want to thank JAMCORP for supplying Lattice Block specimens. - 4- TABLE OF CONTENTS 1. INTRO D U CTION ................................................................................................................................ 8 SANDW ICH BEAM S ...................................................................................................................................... 8 FOAM CORE M ATERIALS ............................................................................................................................. 8 TRUSS M ATERIALS .................................................................................................................................... I I QUESTIONS ................................................................................................................................................ 12 OUTLINE .................................................................................................................................................... 12 11. M O DELIN G O VERV IEW ................................................................................................................ 13 STRUCTURE GENERATION ......................................................................................................................... 13 TRUSS SOLVER IN M ATLA B .................................................................................................................... 17 The M atrixMethod ............................................................................................................................... 17 Linked Nodes ........................................................................................................................................ 19 The Modified Matrix Method................................................................................................................ 20 FINITE ELEMENT ANALYSIS AND M ODEL CONVERSION ............................................................................ 21 RAY TRACE IMAGES .................................................................................................................................. 23 111. LATTICE BLO CK M ATERIAL ..................................................................................................24 GEOMETRY ................................................................................................................................................ 24 Description ........................................................................................................................................... 24 ELASTIC CONSTANTS ................................................................................................................................ 25 ANALYSIS .................................................................................................................................................. 28 PROPERTIES OF SOLID MATERIAL ............................................................................................................... 29 NORMAL STRESS / STRAIN ........................................................................................................................ 31 ALTERNATE M ETHOD FOR NORMAL STRESS / STRAIN .............................................................................. 39 Boundary Conditions:A DetailedExample.......................................................................................... 40 SHEAR STRESS / STRAIN ............................................................................................................................ 42 GEOMETRY EFFECTS ................................................................................................................................. 46 DEFECT SENSITIVITY ................................................................................................................................. 51 EXPERIMENTAL VERIFICATION AND FAILURE ANALYSIS .......................................................................... 54 Procedure .............................................................................................................................................54 Results...................................................................................................................................................56 Discussion.............................................................................................................................................58 COMPARISON TO M ETAL FOAM ................................................................................................................. 64 IV. O CTET TRU SS M ATERIAL ........................................................................................................68 GEOMETRY ................................................................................................................................................68 NORMAL STRESS / STRAIN ........................................................................................................................ 70 SHEAR STRESS / STRAIN ............................................................................................................................ 73 GEOMETRY EFFECTS .................................................................................................................................76 BUCKLE TO YIELD TRANSITION ................................................................................................................. 79 V. TRU SS CO RE M ATERIAL ..............................................................................................................83 DESCRIPTION .............................................................................................................................................83 M ANUFACTURING .....................................................................................................................................85 VI. SUMM A RY .....................................................................................................................................91 VII. REFEREN CES ...............................................................................................................................93 VIII. APPEND IX .....................................................................................................................................94 A. MATLAB script to create the Lattice Block unit cell (unit cell.m ).................................................. 94 -5- B. C. D. E. F. G. H. L J. K. L. M. N. 0. P. Q. R. S. T. U. V. W. X. MATLAB script to generatefinite Lattice Block structures (frame.m)........................................ 95 MATLAB truss solver (solve truss link.m).................................................................................. 100 105 ABAQUS input file for a three cell by two cell Lattice Block structure ....................................... MATLAB script to convert MATLAB models to ABAQUS inputfiles (abaqus.m)........................ 111 113 ParameterizedABAQUS inputfile for use with ABA QUS/Design............................................... 116 Sample ABA Q US/Post input script............................................................................................... 117 MATLAB scriptto generateABAQUS/Post input script (post-script.m)..................................... 118 Sample Unix script to run ABAQUS/Standard............................................................................. MATLAB scriptto automaticallygenerate a POV-Ray scene file (raytrace.m)........................... 119 POV-Ray scene file that describes the Lattice Block unit cell (unit cell.pov) .............................. 120 MATLAB scriptto generateperiodic unit cell model in z-x shear (shear5.m)............................. 123 125 MA TLAB script to interpretforce / displacement data (interp.m)................................................ MA TLAB script to define the octet truss periodic unit cell (frame.m).......................................... 126 128 MATLAB script to generatefinite octet truss models (frameoffset.m).................. 132 MATLAB script to compress octet truss in x-direction (constrainx.m)...................................... 134 MATLAB script to compress octet truss in y-direction (constrain-y.m) ...................................... 136 MATLAB script to compress octet truss in z-direction (constrain-z.m)....................................... MA TLAB script to calculate normal stress /strainproperties of octet truss (main.m)................. 138 140 MATLAB scriptfor parametricanalysis of octet truss (parametric.m)........................................ MATLAB script to calculate the volume fractionfor an octet truss structure (volume-frac.m)... 142 MATLAB script to load octet truss unit cell in zy-shear (constrainzyshear.m)........................ 143 MATLAB script to load octet truss unit cell in zx shear (constrainzx-shear.m)........................ 145 MATLAB script to load octet truss unit cell in xy shear (constrainjxy-shear.m)........................ 147 -6- List of Symbols $ fraction of material in cell edges g strain Cy stress p density of porous material Cy peak strength of porous material V* Poisson's ratio of porous material Cynorm normalized strength Ps density of solid material VS Poisson's ratio of solid material (Tys yield strength of solid material a, b, c unit cell dimensions AR aspect ratio A, cross section area C, Cy, C, direction cosines E Young's modulus E Young's modulus of porous material Enorm normalized Young's modulus Es Young's modulus of solid material G* shear modulus of porous material Gnorm normalized shear modulus h unit cell height 1 member length L member length, face member length, link matrix Po pressure inside cell Pat atmospheric pressure r member radius Vf volume fraction -7-- I. Introduction Sandwich Beams Stiff, lightweight structures can be built from two thin faces separated by a lightweight core. These sandwich beams behave mechanically like an I-beam: the face sheets carry tensile and compressive stress, the core carries predominantly shear stress, and the beam cross-section has a high moment of inertia. The sandwich configuration is particularly efficient for resisting bending and buckling deformations. Typical face materials are aluminum sheets and fiber-reinforced composites. Typical core materials are honeycombs (aluminum or paper-resin), foams (polymer or aluminum) or wood. Recent developments in metal foam manufacturing have stimulated interest in metal foam as a core material. (Gibson and Ashby, 1997) Foam Core Materials Materials such as wood, bone, and cork are examples of natural cellular structures. In addition, foams can be manufactured with polymers, metals, and ceramics. Foams can have open cells or closed cells. Examples of open and closed cell metal foams are shown in Figure I-1 and 1-2. The properties of metal foams depend on three parameters: the relative density, the mechanical properties of the cells walls, and the cell geometry. The relative density is the ratio between the foam density, p*, and the density of the solid material, ps. The mechanical properties of the cell walls are described by the Young's modulus, E,, the Poisson's ratio, v,, and the yield strength, Uys, of the solid material. (Gibson and Ashby, 1997) Figure I-1. Open cell metal foam. -8- Figure 1-2. Closed cell metal foam. cell edge t u -- open cell face Figure 1-3. Open cell foam unit cell cell. (Reprinted from Gibson and Ashby, 1997) Basic results for mechanical properties of foams are developed using a cubic model (Fig. 1-3), together with beam theory and scaling laws. The appropriate constants are determined empirically, leading to the results below. (open cells) ES (I-i) A 3/2 * a* ~_0. (1-2) 1( * * ~ 0. (closed cells) C((1- #) ~+ E # 0)p, (1-3) 3/2 +(1-) + P UyS -Pat " yS -9- (1-4) For the closed-cell foams, $ is the fraction of material contained in the cell edges, leaving the fraction 1 -$ in the cell faces. Pa, and po are, respectively, atmospheric pressure and pressure inside the cell. The constants C1 and C1' are determined empirically. Symbols with an asterisk refer to foam properties while those with a subscript s refer to the solid cell wall properties. Open cell foams deform through bending of the cell edges. Subsequent yield and failure occurs through the development of plastic hinges in the bent edges. Closed cell foams, on the other hand, deform by stretching of the cell faces. Failure then occurs through yield in the cell faces. Edge bending in open cell foams leads to the non-linear dependence on relative density: Young's modulus goes with relative density squared, while yield stress goes as the 3/2 power. Cell wall stretching, however, leads to a linear dependence of the properties on relative density. (Gibson and Ashby, 1997) We expect closed cell foams to be stronger and stiffer than open cell foams of the same relative density. Relative density is always less than 1.0, and since closed cell foams depend less strongly on relative density than open cell foams, they should have higher properties. However, closed-cell metallic foams exhibit properties similar to those for open-cell foams of the same relative density, suggesting that bending, not stretching, is the dominant deformation mode. Properties of closedcell foams are further reduced below the expected values by structural defects such as elliptical cells or curved cell walls. (Bart-Smith et al 1999, Simone and Gibson 1998, Andrews et al. 1999) Novel truss materials, such as the one shown in Figure 1-4, offer the potential for porous materials that are governed by axial, rather than bending, deformation of members. Because the forces are axial, strength and stiffness of these materials will depend linearly on relative density. This should give materials with superior mechanical properties compared to metal foams of similar relative density. - 10 - Figure 1-4. Three-dimensional truss material, trade name Lattice Bock. Truss Materials A typical three-dimensional truss material made of a cast aluminum alloy is shown in Fig. 1-4. The structure has a periodic unit cell with fully triangulated members. A variety of manufacturing techniques are available for producing such materials. The top lattice, the bottom lattice and the core can be separately injection molded with a polymer, assembled to form a complete structure, and then used as a mold for investment casting if a metallic material is desired. Three-dimensional printing techniques can be used to build up the structure, layer by layer. Stereolithography techniques can be used to cure sequential layers of light-sensitive resin with a laser. The dimensions of the unit cell range from one to tens of millimeters. The top lattice, bottom lattice and core can also be made separately from a thin layer of silver, assembled and then electroplated with another metal, such as nickel. The silver lattices are made as follows. All three layers (the top lattice, the bottom lattice and the core) are made as flat grids. A master of each of the three patterns is made of an elastomer using conventional photolithography. The master is then used to stamp a self-assembled monolayer onto a glass slide coated with a 50 nm thick layer of silver. The silver which is not stamped with the selfassembled monolayer is removed by chemical etching. The core layer is then folded to obtain the three-dimensional structure, the three layers are hand assembled and the resulting silver truss material is electroplated with nickel. The fully triangulated, three-dimensional truss structure induces axial forces in the individual members, so the Young's modulus and yield strength are expected to vary linearly with relative density. The structure is therefore expected to have a high specific stiffness and strength, making - 11 - it attractive for use in structural sandwich panels. It will be shown that Young's modulus and yield strength do vary linearly with relative density. Consequently it useful to introduce normalized moduli and a normalized strength. Enorm =E* ESF Gnorm 1 (1-5) 7W G 1 0-* 1 (1-6) E, p/p, (-7) norm Here G* is the shear modulus and the other parameters are defined above. Normalization permits the study of geometry-property relationships independent of relative density. For all triangulated truss materials, doubling the member cross section will double the relative density, the Young's modulus, the shear modulus, and the yield stress. Questions The following questions are addressed in this thesis. What are the mechanical properties of truss materials? How do properties depend on geometry, such as the unit cell proportions? How accurately can we predict the properties with a simple truss analysis? What refinements in the model can significantly improve the predictions? How do truss materials compare to metal foams? And might there be a new, better way to manufacture truss core sandwich panels? Outline We develop a system for modeling periodic and finite structures numerically (Chapter 2). This is used to explore the stiffness, strength, and defect-sensitivity of Lattice Block, a commercially available truss material (Chapter 3). The mechanical properties of a second truss material, called octet truss, are also analyzed (Chapter 4). Then we explore the production of sandwich panels and present a novel manufacturing process (Chapter 5). Finally we summarize the results and offer a suggestion for future work (Chapter 6). -- 12- II. Modeling Overview Structure Generation Numerical models representing truss structures are generated using MATLAB (Mathworks, Natick, MA). Two varieties of models are required for these analyses: periodic unit cells, and finite structures. The periodic unit cells are small models that capture exactly one unit cell. They deform periodically and account correctly for members that are shared with adjacent cells. If loads are applied in a consistent manner, these models correctly describe the behavior of very large truss structures. Finite models, on the other hand, represent real (non-periodic) structures. They consist of a large number of nodes and members and describe an actual structure. Figure II-1. Lattice Block unit cell. To develop a periodic unit cell, we begin by identifying a unit cell. The Lattice Block unit cell is shown in Figure II-1. Each node and each member is then numbered. The node coordinates are entered into a matrix, with one node per row. The rows of the node matrix have the following format. node number, x-coordinate, y-coordinate, z-coordinate Information describing the members is entered into a second matrix, with one member per row. Since the members are truss elements, they contain only two nodes. The rows of the member matrix have the following format. member number, node 1, node 2, cross-section area -13- 14 15 8 Figure 11-2. Lattice Block unit cell with numbered nodes. The cross-section area is used to calculate the stiffness of each member. Members that are shared between two cells are assigned one-half of their true cross section area; members that are shared between four cells are assigned one-quarter of their true cross-section area. This is necessary to avoid double-counting shared members. A MATLAB script to create the Lattice Block periodic unit cell is shown in Appendix A. For the periodic unit cell to remain periodic during deformation, the cell sides must remain parallel. Also, nodes falling on cell edges must have corresponding nodes on opposite edges. The periodic unit cell mimics the behavior of a large structure. If the unit cell deformed in a nonperiodic manner, its behavior could no longer represent a large structure. An example of boundary conditions leading to periodic deformation is given for compression in the x-direction. The node numbering and loading arrangement are shown in Fig. 11-2. Many nodes are left free in one or more directions. Some nodes are restrained so that they cannot move: for example all the nodes on the bottom face are restrained the z-direction. Some nodes have imposed displacements: for example node 3, on the right side, is displaced in the negative xdirection. Many nodes are linked to other nodes, requiring that both nodes displace the same amount: for example nodes 5, 8, 11, and 15 are linked to node 3 in the x-direction. Linking greatly simplifies periodic boundary conditions: for example all the nodes on the front face {1, 2, 3, 9, 10, 111 move together in the y-direction, so nodes {2, 3, 9, 10, 111 are linked to node 1 in the y-direction. If node 1 is free in the y-direction, the entire face can move but all the nodes must remain planar and the face will not rotate. - 14 - V x Figure 11-3. Lattice Block unit cell - nodes and loading for x-dir compression. Figure 11-4. Lattice Block structure with two unit cells. To develop a finite structure, we also begin by identifying a unit cell. The unit cell will have to be repeated to build up the finite structure. Consider a truss structure of two Lattice Block unit cells, as shown in Figure 11-4. Taking one unit cell and adding another next to it generates the structure. Note, however, the unit cell has to be modified to avoid creating duplicate members. Any member that falls on the unit cell edge will be created twice if another unit cell is placed next to -15- it. Therefore we must be careful to create each member exactly once when modeling finite structures. We consider truss structures of arbitrary size in two directions, and one cell high. Repeating the unit cell a number of times in the x- and y-directions generates this type of structure. However, creating each node and each member exactly once requires care. The approach adopted here was to create nodes separately from the members. Nodes in the unit cell are divided into groups to facilitate structure generation: the groups used for Lattice Block are shown below. - Nodes that appear in each cell - Nodes on the back edge - Nodes on the right edge - Nodes on the front-right corner The first group contains the subset of nodes that can be repeated without creating two identical nodes. The other groups are used to fill in missing nodes along the back edge, right edge, and front-right corner. For-loops create the nodes for the truss structure. One loop translates the unit cell in the x-direction, the second translates it in the y-direction. Each iteration adds nodes to a matrix that, eventually, contains all the nodes in the structure. Members in the unit cell are divided into groups in a similar manner. Member groups used for the Lattice Block unit cell are shown below. - Members in each cell - Members in back row - Members at front edge - Members at right edge - Members at right-front corner - Members at right-back corner Another series of for-loops is used to create the members, with each iteration adding members to a matrix that eventually contains all the members for the structure. The members are defined in terms of their nodes. Each loop-iteration calculates the absolute position of the required nodes, then searches for the node at that location. The corresponding node numbers are recorded in the member matrix. Finally, each member is assigned its full cross-section area. A script to generate Lattice Block structures is included in Appendix B. The script is called frame.m, and refers to nodes as "joints." A structure generated with this script is shown in Figure 11-5: it has 8 cells in the x-direction and 6 cells in the y-direction. -- 16 - lw~XI Figure 11-5. Large finite Lattice Block structure (8 cells by 6 cells). A node matrix and a member matrix completely describe any finite truss structure. Each matrix has the same format as for the periodic structure. However there are often hundreds or even thousands of nodes and members in finite structures, much larger than for the periodic unit cell. Truss Solver in MATLAB The Matrix Method A linear truss solver was developed using methods in Weaver and Gere's Matrix Analysis of FramedStructures. The solver is based on the Stiffness Method, one of the techniques described in the book. Each member has a stiffness that depends on its modulus, cross-sectional area and length. Changes in member length cause forces to develop that are proportional to the member stiffness and the length change, and that act at the nodes at either end of the member. A "solution" to the problem consists of finding node displacements such that equilibrium is satisfied. The technique for setting up and solving a linear elastic truss problem is outlined below. The fundamental equation for the Stiffness Method relates the actions at each node to displacements at all of the nodes. Aj = SD, II1 Here Aj represents the actions, Sj represents a stiffness matrix, and Dj represents the displacements. The subscript J indicates consideration of all of the nodes. Each node has three degrees of freedom (x-, y-, and z-directions), so n nodes gives A, and D, of dimension 3n x 1, and -17- Sj of dimension 3n x 3n. Equation II-1 is a statement of equilibrium: actions applied at each node, in each direction, must balance the components of member-generated forces. A structure with n nodes has indices from 1 to 3n. Boundary conditions are applied by assigning forces and displacements at individual nodes in each direction. The displacement in each direction at a node may be restrained (its position in that direction may not change) or free (it can move). Restrained indices can have zero or nonzero displacements, the latter being useful for modeling an applied strain. Restrained indices with zero displacement are called "fixed." Indices are divided into free and restrained groups. Free indices are placed at the top of vectors A and D, and the matrix S is rearranged accordingly. AF AR _ _SFF SRF (11-2) SFR SRR _LDR_ The subscript F refers to free indices and the subscript R refers to restrained indices. stiffness matrix relating forces at free indices to displacements at free indices. SFR SFF is the is the stiffness matrix relating forces at free indices to displacements at restrained indices, and so forth. This Equation 11-2 can now be decomposed into a system of two equations. + SFRDR (11-3) AR = SRFDF +SRRDR (11-4) AF= SFFDF Equation 11-3 can be solved for displacements at the free indices, DF- DF =S1(AF -SFRDR) (11-5) Then actions at the restrained indices, AR, are found with Equation 11-4. Equations 11-4 and 11-5 constitute a solution to the truss problem: they allow us to find the unknown displacements (at all free indices) and to find the unknown actions (at all the restrained indices). However, this is practically useful only if we can compute the stiffness matrix Sj. This analysis uses the "Computer Oriented Direct Stiffness Method," described by Weaver and Gere, to assemble the stiffness matrix. The overall stiffness matrix, Sj, is assembled by adding contributions from each member. Each member has nodes at each end, say nodes j and k. The member stiffness matrix sets up the relationship between forces and displacements at the member - 18 - ends. The top-left sub-matrix relates forces at the j-end to displacements at the j-end. The topright sub-matrix relates forces at the j-end to displacements at the k-end, and so forth. Ci ,C CC C,, C CC, CxCy y C Cl C - CC CZC, CzCy C C CYCZ C2 - CyC - CZC EAX CXCZ Ssi...........L...cc _ - CxC, C2 ..CXC~ CC - CC - CZC, -C, - YC -CC -CC CC -c~c CYCX _c2 cc (11-6) C CZ Equation 11-6 is the stiffness matrix for a single member. E is Young's modulus, Ax is crosssectional area, L is length, and C,, Cy, and Cz are direction cosines describing the member's orientation in space. Weaver and Gere outline methods for numbering the indices, for assembling a global stiffness matrix from member stiffness matrices, and for separating the free and restrained indices. Their methods were adopted here. Linked Nodes Linking is a method by which displacements at certain nodes follow displacement at other nodes. Linking is implemented through a matrix equation that relates displacements at the linked (dependent) nodes to the parent (independent) nodes. DL = LDJ (11-7) DL is a vector containing displacements at the linked nodes. Dj is a vector containing displacements at all the nodes, and has size 3n x 1. L is the linking matrix: its rows contain one 1 and zeros elsewhere. The displacement indexes are again separated into groups of free, restrained, and linked, the linking matrix is rearranged accordingly. DF DL = [LF LR LL. DR (8) DL LF relates displacements at free indices to displacement at linked indices. Similarly LR relates displacements at restrained indices to displacements at linked indices. Linking is a one-to-one relationship, and LL must be a null matrix because linked indices cannot depend on other linked indices. 'Weaver and Gere, p 263. -- 19 - The Modified Matrix Method The matrix method is readily extended to a problem containing linked nodes. 2 We begin with the tractions applied to each index by the displaced members. T, = SDj (11-9) The indices are divided among three categories: free, restrained, and linked. TF SFF SFR SFL DF TR SRF SRR SRL DR T SLF SLR SLL_ D (11-10) Equilibrium requires that the external force at each free index equal the traction generated by the displaced members. External forces at free indices are indicated by AF and tractions generated at the free indices are indicated by TF. (-11) TF =SFFDF+ SFRDR + SFLD Linked indices are treated as if there were part of their parent index. Tractions at linked indices are mapped to corresponding parent indices. LF maps displacements at free indices to displacements at linked indices. Consequently indices to free indices. Multiplying LFT by LFT maps TL gives TFL, displacements (and forces) at linked the tractions at linked indices mapped to corresponding free indices. TFL = LF SLFDF + SLRDR + SLLDL] (11-12) Similarly, external forces at linked indices (AL) are mapped to corresponding free indices and indicated by AFL. AFL (11-13) FAL The following equilibrium condition is applied to each free index: member generated tractions must equal external forces. Taking into account linked indices, the condition is expressed as follows. TF +TFL- F (11-14) AFL =0 Substituting for the tractions and using the relation for linked displacements, it is possible to solve for displacements at the free joints. 2 The Modified Matrix Method is developed for this project was not found in Weaver and Gere. -20- DF =SFF + LSLF +SLFLF + L SLLLF F F L FR + L SLR +SFLLR + LFSLLLR)DR] (11-15) Equation 11-15 gives displacements at all the free indices. Equation 11-8 and Equation 11-11 then yield DL, displacements at the linked indices, and TF, the tractions generated at each index from member displacements. This form, known as the modified matrix method, gives a solution for displacements at the free indices and includes the effect of linked indices. Using Equation 11-15 we can setup and solve a unit cell problem or a finite structure problem, and utilize linked indices as necessary. Finite Element Analysis and Model Conversion The commercial finite element code ABAQUS was used for nonlinear analyses. Several features in ABAQUS correspond to features of the MATLAB models, making it possible to generate almost identical models under MATLAB and ABAQUS. The MATLAB environment integrates modeling with a versatile programming language, permitting creative model generation, data processing, and even parametric analysis. However the MATLAB truss solver works only for linear elastic problems, and ABAQUS accommodates nonlinear geometry and nonlinear material response. Linear elastic problems assume the material response is elastic, and the geometry is constant. Elastic material response means that stress is linearly related to strain, with Young's Modulus as the proportionality constant. Constant geometry means the model deforms only by a small amount, so the relative angle of members and applied loads is constant throughout the problem. Nonlinear material response includes material yield and hardening, allowing a more complete description of the actual behavior. Nonlinear geometry allows the model to update between solution increments, so the angles between members evolve with node displacements. Truss elements were used to build all the ABAQUS models. Under linear conditions, a truss element behaves the same way as the members in the MATLAB truss solver. For nonlinear response, the truss element undergoes area change inversely proportional to the strain. An ABAQUS feature, Equation, can have the same effect as Links in the MATLAB truss solver. It allows the model to impose a relationship between nodal degrees of freedom, and can be implemented to produce a link between two nodes. Another ABAQUS feature, Multi-Point Constraint or MPC, provides a shorthand for linking two nodes. Prescribing a "PIN" MPC relationship means that all three translation degrees of freedom at one node follow those at another node. -21- ABAQUS reports forces and displacements at each node, and produces separate tables for each increment along a nonlinear analysis. It would be tedious to track forces at every node on a particular face of interest and later add them to find the total force. A better approach is to utilize the equation feature to link all the nodes. Displacements applied to the parent nodes are imposed on all linked nodes, and resultant forces are mapped back to the parent node. Then the results are obtained from examining the force / displacement curve at a single node, which is done with the post processor ABAQUS/Post. Entering material response data in ABAQUS is non-intuitive: the stress / strain curve must be divided into elastic and plastic sections. Under the keyword "Elastic" is entered Young's modulus and Poisson's ratio. Under the keyword "Plastic" is a table of plastic strain as a function of total stress. At a particular a stress, the plastic strain is the difference between total strain and the elastic strain predicted by Young's modulus. A sample ABAQUS input file is shown in Appendix D. It contains a model for a three cell by two cell Lattice Block structure. It has sections for Nodes, Elements, Material response, Multi-Point Constraints, Equations, and an applied load. It also utilizes node sets (keyword NSET) to condense some Equations. ABAQUS input files are created directly from MATLAB models using a conversion script. The script, abaqus.m, is included in Appendix E. The node matrix in MATLAB is converted directly into a table of nodes for ABAQUS. The member matrix is converted directly to a table of truss elements. The material response data is copied into the input file from another file. Then links are converted into Equations or Multi-Point Constrains, depending on whether they affect some or all translation degrees of freedom. Parametric analyses are useful to study the effect of one variable on the model. These analyses can be performed with ABAQUS/Design or with a series of input files generated with MATLAB. ABAQUS/Design is suited to small models where the input file can be hand-written in a parameterized form. Using an input file written in terms of variables, ABAQUS/Design can automatically generate and process a series of models. An example of a parameterized input file in included in Appendix F. However, using MATLAB to generate the series of input files is essential for some analyses. For this procedure, the models are generated with loops in MATLAB and then converted to ABAQUS input files. -22- Post processing parametric analyses would be tedious to perform on a file-by-file basis. Depending on the analysis, as many as 100 files might have to examined. A better way is to store the ABAQUS/Post commands in a file, then execute ABAQUS/Post on the command line with the "input" parameter. A sample ABAQUS/Post script is shown in Appendix G. Generally all the files are run through ABAQUS before post processing, so care must be exercised to avoid filling the hard disk. The most important steps are: i) writing only the necessary data to the results file, ii) refrain from writing the restart file, and iii) refrain from writing results to the data file. The savings in disk space can be quite large. For larger parametric analyses it is helpful to generate the ABAQUS/Post script with MATLAB. It may also be helpful to generate a Unix script that executes ABAQUS/Standard once for each input file. Examples of MATLAB scripts to accomplish these tasks, as well as a sample Unix script, are in included in Appendices H and I. Ray Trace Images Photo-realistic images were created using a computer-rendering package. The Persistence of Vision Ray Tracer, or POV-Ray, is a graphics package that was used to produce Figures 11-1, II4, and 11-5. The software is available, free of charge, at http://www.povray.org. The images were useful for visualizing three-dimensional structures and for checking complicated structures for proper connectivity. POV-Ray interprets a scene description contained in a text file. Generally a MATLAB script is used to produce the scene-file from a MATLAB model. The scene-file includes camera position, lighting, and the structure itself. To produce the structure, each member is translated into a solid cylinder. Since the node positions and member connectivity are already determined, producing a POV-Ray scene file is straightforward. A MATLAB script to automatically generate a scene-file is included in Appendix J. A small POV-Ray file, which describes the Lattice Block unit cell, is also included in Appendix K. POV-Ray can produce images of original structures or deformed structures. Also, it is possible to generate a series of images that show increasing deformation. The series could even be combined into an animation of a particular deformation mode. -23- III. Lattice Block Material Geometry Description Lattice Block material is a three dimensional truss material available from JAMCORP in Wilmington, MA. The material is manufactured in square tiles (Figure 1-4). Two unit cells have been identified and are shown in Figures III-1 and 111-2. The first unit cell has edges that make 45-degree angles with those of the LBM tile in Figure 1-4. The second unit cell has more members but has useful symmetry planes. Also, the sides of the second unit cell lie parallel to those of the LBM tile, ensuring a simple relationship between forces on the tile and those on the unit cell. Because of its symmetry and its convenient orientation, the second unit cell will be used exclusively for considering LBM behavior. Henceforth we refer to this second unit cell as "the" unit cell. Figure III-1. Lattice Block unit cell with edges at 45 degrees to tile. The relative density of the unit cell is the ratio of member volume in the cell to the volume of the entire cell. Member volume is determined by multiplying member length by cross-section and summing over all members. This procedure inherently over-estimates the volume fraction by a small amount: at the nodes where members insect, some material is double-counted. 4 + 442+ 8AR Relative Density - p* - Vf = A AR A -24- + 1/4 1 'r 2 12(-1) l2 Figure III-2. Lattice Block unit cell with edges parallel to tile. Here p* is the density of the lattice block material, p is the density of the bulk solid, AR = h/i is the aspect ratio, r is the member radius, 1 is the length of the base, and h is the unit cell height. The JAMCORP material has the following dimensions: r = 0.0625", 1= 1.50", h = 0.925", AR = 0.617. The relative density is therefore 14%. Elastic Constants Consider the unit cell as a representative volume element, such as is commonly seen in continuum mechanics. The forces and displacements on the cell faces define stress and strain tensors. Assuming linear elasticity, stress and strain are related by a fourth rank compliance tensor, S. (111-2) F = So- The compliance tensor contains, in general, 81 constants. However the definition of shear strain requires that E12 023 = = 621, E13 = 631, and E23 = E32 . Equilibrium requires that C12 = 021, 013 = 031, and 032. This reduces the number of independent constants in S to 36 and permits the contracted notation for stress and strain. In the contracted notation strain is represented: -33*F3, E2 3 *Y 4 , E314y5, 023*04, 0314Y05, E 1 14Ei, E2 2 *E 2 , and e 12 -y 6. Also stress is represented: Ui140i, 022402, 033+03, and 012a06. Furthermore the compliance matrix is symmetric, which can be shown using virtual work (see, for example, Nye 1960). -25- 61 S11 S12 S1 3 S 14 S15 S 16 01 E2 S21 S22 S23 S24 S25 S26 (2 63 S31 S32 S 33 S3 4 S3 5 S36 473 Y4 S41 S42 S43 S44 S 45 S46 (74 S53 S54 S55 S56 '75 S63 S 64 S65 S66 _ _76 51 S52 r5 V6 _ z or _S61 S62 (111-3) X3 y or x2 C b x or xi Figure III-3. Lattice Block unit cell with dimensions a, b, and c. Further simplification of the compliance matrix is made based on symmetry in the unit cell. Consider a unit cell of dimensions a, b, and c, as shown in Figure 111-3, subject to normal stress al. A plane of symmetry lies parallel to the y-z plane and passes through x = a. The symmetry plane, which is perpendicular to the x-axis, guarantees that ai cannot produce shear strains y5 (z-x direction) or y6 (x-y direction). Another symmetry plane exists at y = stress and also symmetric about y = b. a 1 is a uniform normal b. Consequently the strain must be symmetric about y = b, so the shear strain y4 (z-y direction) must also be zero. The elements s4 1, s5 1, and S61 therefore vanish. Similar arguments show that y4, y5, and y6 are zero under normal stress S5 2 , S62, S 43 , S52, S 26 , and S6 3 02 or 03. Consequently s4 2, also vanish. Since the compliance matrix is symmetric, S14, S15, Si6, S24, S2 5 , S34 , S35 , and S36 must also equal zero. Finally, it can be shown that shear stress induces strain only in the sense of the applied stress. For example, consider o4 (z-y shear stress). The unit cell is symmetric about x = symmetric about the plane x = a. Consequently, for -26- Y4 a, and a4 is also loading, no shear can develop in the x- direction. Thus y5 (z-x shear strain) and y6 (x-y shear strain) must equal zero. Similarly, under 05 loading no shear can develop in the y-direction, so y4 and y6 must be zero. Therefore s45, s4 6, s5 4 , and s56 must equal zero. The compliance matrix is symmetric, so s4 and s65 must also equal zero. The linear elastic stress-strain relationship, after placing appropriate zeros in the compliance matrix, is shown in Equation 111-4. Recalling the symmetry of the compliance tensor, it is observed that nine constants fully describe the elastic behavior. 6 s11 s 12 s13 0 0 0 a- £2 s 23 s 22 s 23 0 0 0 U2 s13 s 23 s33 0 0 0 a3 y4 0 0 0 S44 0 0 -4 y5 0 0 0 s55 0 U5 _Y6 L0 0 0 0 0 0 s66 _ E3 _ (111-4) The compliance matrix takes the same form as that for an orthotropic material. However, orthotropy is a symmetry property in which materials are unchanged after 180 degree rotation about any principal axis. Rotating the unit cell 180 degrees about the x-axis gives a structure which cannot be superimposed on the original. Therefore the unit cell is not technically orthotropic. A final word on the compliance matrix: it can be re-written in terms of the familiar Young's modulus E, Poisson's ratio v, and shear modulus G, as shown in Equation 111-5. Three Young's moduli, six Poisson's ratios, and three shear moduli are needed for this representation. E V2 1 El £2 63 4 0 V13 E2 1 E3 V 23 E2 V3 1 0 El V 12 E3 1 V32 0 E2 0 0 0 0 0 0 0 0 0 0 E3 0 0 G4 0 0 - 2 U3 0 y5 L_Y _J 0 U5 0 0 0 1 G5 0 0 0 0 L a4 0 _[U_ 1 G6_ Poisson's ratio is defined as the negative ratio of strain in the i-direction to strain in thejdirection, where j is the loading direction. -27- (III-5) , where j is the loading direction Vi =L' (111-6) Ei Although twelve elastic constants appear in Equation 111-5, only nine are independent. The Poisson's ratios obey the reciprocal relation: Eil/i = Ejvj , where i, j= 1-3 and i j (111-7) Therefore only three of the Poisson's ratios are independent, and Equation 111-5 indeed contains only nine independent elastic constants. Analysis A unit cell can be assembled with 29 members and 15 nodes. The cell boundary cuts some members in half, leaving members that appear unconnected at one end. However the requirements for periodicity place constraints on these members, effectively reconnecting them to the structure. Also, some members lie on cell faces and are shared between adjacent cells. To account for sharing, these members are assigned one-half of the regular area. In 3D periodic LBM, some members are shared between four cells and must be assigned one-quarter the regular area. The mechanical response of an infinite plane of the truss material was calculated from that of the unit cell. Since the material is periodic before deformation, it must also be periodic after deformation, requiring periodic boundary conditions. For loading by a normal stress, it is sufficient to constrain the unit cell faces to remain flat, parallel and mutually perpendicular. For loading by a shear stress, we observe that each shear mode is independent: for example x-z shear is independent from y-z shear. Consequently, we model shear by imposing a single shear mode and then calculating the resultant stress. This approach leads to individual sets of boundary conditions for shearing in the x-z, y-z, and x-y planes. The core struts, those lying between the upper and lower faces, are identical in the x- and y-directions. It follows that the z-y and z-x shear modes exhibit identical properties. For example, consider x-z shear imposed by fixing the lower face and moving the upper face in the x-direction. Only struts in the core deform, while struts on both faces remain unstressed. If instead we had displaced the upper face in the ydirection the situation would be the same: only the core members would be stressed. Since the core struts exhibit 900 rotational symmetry, z-x and z-y shear response must be the same. In the actual truss material, the inner members that extend between the upper and lower faces meet at a point below (or above) the upper (or lower) faces. The inner strut offset, d, was -28- measured to be 2.4mm (Figure 111-4). A more detailed model was developed to include inner strut offset. The model included additional nodes at the correct endpoints of the inner struts. These were rigidly connected to nodes on the faces using linking in MATLAB and the Equation feature in ABAQUS: x-, y-, and z-translations were constrained to follow translations of nearby face-nodes. Figure 111-4. Side view of Lattice Block showing inner strut offset, d. The actual structure appears to be regular and we could not measure any variation in cell size (with resolution 0.2 mm). In a perfect structure, multiple members experience the same stress and should, theoretically, fail at the same load. In practice, tension tests produced a significant variation in the failure strain of the members: the average was 1.95% with a standard deviation of 1.25%. The models were modified by introducing a random perturbation to the node locations, simulating random variation within the individual struts, and guaranteeing that members would fail individually. Perturbations were applied to the x-, y-, and z-coordinates; each was chosen from a uniform distribution with mean 0 and range +/- 2.5 mm. Elastic and strength properties reported below represent a perfect structure; the perturbed results are reported afterward for comparison. Finally, the effect of the aspect ratio, h/b, of the unit cell on the elastic moduli and uniaxial strength of the truss material were calculated using the infinite planar model. The elastic properties were calculated for a perfect model neglecting inner strut offset. The strength properties were calculated for a perfect model including inner strut offset. Properties of solid material The composition of the aluminum alloy was measured using wavelength dispersive spectrometry (Jeol JXA-733 Superprobe, Peabody, Massachusetts). The composition of the aluminum alloy was found to be 95% Al, 4% Si, and 0.2% Fe, with traces of Cu and Zn. This composition is -29- similar to alloy 443, a casting alloy with 4.5 - 6.0 % Si. Since the truss material is manufactured through investment casting, we expect the aluminum to be a casting alloy. The uniaxial tensile stress-strain curve of the solid from which truss material was made was first measured. Individual struts were cut from a tile and machined into waisted specimens suitable for tension tests. The finished specimens had a waisted diameter of 2.54 mm and waisted length of 15.2 mm. They were loaded in tension in a mechanical testing machine (Model 4201, Instron Corp., Canton, MA) while measuring force with a load cell and strain with an extensometer of gauge length 12.5 mm. Seven specimens of the solid material were tested. The uniaxial compressive stress-strain curve of the solid was also measured. Individual struts were cut into 14mm long cylinders and tested in compression between steel platens (Model 4201, Instron Corp., Canton, MA). Force was measured with a load cell and displacement was measured with an LVDT (050 MHR, Lucas Shaevitz, Hampton, Virginia). Four specimens were tested in this manner. Solid Strut Material Response 350 300- Compresskion Test 250 0. 2200 - Tension Test 150 Cl 100 50 50 0 rII 0% I 5% 10% 15% Strain Figure 111-5. Typical uniaxial stress-strain curves for the solid. Typical uniaxial tensile and compressive stress-strain curves for the solid aluminum alloy specimens are shown in Figure 111-5. The tensile curve exhibits mild yielding and then brittle fracture, perhaps related to a void nucleation and growth mechanism. The compression curve exhibits yielding, strain hardening, and eventually a decrease in load corresponding to specimen buckling. The Young's Modulus, Es, is 69 GPa and the 0.2% offset yield strength, Y*ys, is 224 MPa. The strain to failure for the tensile stress-strain curve shown is 1.3 %; values varied from -30- 0.4% to 4.0% among the seven tests. The low ductility is typical of brittle aluminum casting alloys. Alloys 443.0-F, B443.0-F, and C443.0-F have yield strengths of 55 - 110 MPa, tensile strengths of 130 - 230 MPa, and elongation to failure of 8 - 10% (Aluminum and Aluminum Alloys, 1996). The tensile stress-strain curve shown in Figure 111-5 was used for the elastic, strain-hardening failure analyses since it gives a conservative estimate of the failure strain. Normal Stress / Strain Three Young's moduli and three Poisson's ratios describe the normal stress / strain elastic properties of Lattice Block. These are determined by deforming the periodic unit cell and examining the resultant stress and strain. Boundary conditions were determined separately for each deformation mode. As an example, the boundary conditions for compression in the xdirection are illustrated in Figure 111-6. Nodes that fall on the left and right faces are displaced in the x-direction. Nodes on front and back faces are linked so that the faces remain parallel. Nodes on the bottom face are restrained in the z-direction. Nodes on the top face are linked so that the top face remains parallel to the bottom face. The moduli for the JAMCORP material appear in Table 111-1. These were computed with dimensions and material properties obtained from JAMCORP's tiles. Included in these models was an inner strut offset equal to the measured value: d = 2.4 mm. The normalized Young's moduli and Poisson's ratios are plotted in Figure 111-7 and Figure 111-8 as a function of unit cell aspect ratio, h/b. The Young's moduli are normalized by the Young's modulus of the solid, E,, and the relative density, p*/ps, of the truss material. The normalized results are independent of solid modulus, member cross-section area, and overall unit cell size. These calculations neglected inner strut offset: d = 0. Three Poisson's ratios are plotted in Fig. 111-8; the three that have been omitted can be calculated using the reciprocal relation Eiv = Ejvj 1 . The uniaxial strength of the ideal infinite planar truss material is plotted against aspect ratio in Figure 111-9. The strengths have been normalized by the yield strength of the solid, T*ys and by the relative density, p*/ps of the truss material. Strength is defined as the peak stress. The model includes the inner-strut-offset refinement (d=2.4mm). For small aspect ratios the offset distance, d, becomes significant compared to the unit cell height so that the results are meaningful only for aspect ratios greater than about 0.4. - 31 - Boundary Conditions for loading in the x-direction X:disp by -0.5*U Y: link to 7 Z: Fixed X: disp by 0.5*U Y: link to 7 Z: Fixed Free Free Fixed -*4 6 7 F8 X: disp by -0.5*U Y: Free Z: Fixed 4 *. 5 X: disp by 0.5*U Y: Free Z: Fixed 24 disp by -0.5*U link to 2 Fixed ;(X: disp by 0.5*U X: Free Y: Fixed Z: Fixed Y: link to 2 Z: Fixed BOTTOM SURFACE z X: disp by -0.5**U Y: Free Z: Free -- * X: Link to 12 Y: Link to 13 Z: Link to 12 13 x X: disp by 0.5*U Y: Free Z: Free 14 X: Free 12 Y: Free Z: Free Lattice Block iuiitcell cell V-9 *10 X: disp by -0.5*U Y: Free Z: Free X: Link to 12 Y: Link to 9 Z: Link to 12 X: disp by 0.5*U Y: Free Z: Free TOP SURFACE Figure 111-6. Boundary conditions for compression in the x-direction. -32- Table 111-1. Moduli for the JAMCORP Lattice Block, including 2D periodic and 3D periodic values. p*/ps = 14.2 % 3D Periodic Value (GPa) p*/ps = 9.89 % 0.87 0.54 2.96 1.67 1.22 1.10 0.70 0.46 0.89 0.43 2D Periodic Value (GPa) Ex Ez Gxz Gyz Gxy Young's Moduli 0.6 - 0.5 - 0.4 - y-dir 0.3 w 0.2 z-dir x-dir 0.1 0.0 0 0.5 1 1.5 h/b (Aspect Ratio) Figure 111-7. Normalized Young's moduli for 2D periodic Lattice Block. -33- 2 Poisson's Ratios 1.2 1.0 * - * * 4 v 0.8 vxz 0.4 - e 0.2 y VyZ 0.0 AAA 0 AAA-A--------A 0.5 1 -A4 1.5 2 h/b (Aspect Ratio) Figure 111-8. Poisson's ratios for 2D periodic Lattice Block Normalized Strength for Periodic 2D Material 0.8 0.7 - c CL 0.6 0 0.5 E CD-E3- X-dir Y-dir 0.4 - 0. -o 0.3 CI) (D N ICU' 0.2 - ~0.0 0.4 0.9 1.4 1.9 Aspect Ratio (h/b) Figure 111-9. Normalized strength of 2D periodic Lattice Block. -34- Consider first the relative moduli for normal stress/strain. The z-direction modulus exhibits the greatest aspect ratio dependence. For small aspect ratios (a short unit cell) the material is very compliant, but at larger aspect ratios the material becomes much stiffer. The aspect ratio dependence occurs because of geometry of the members connecting the upper and lower surfaces. For small aspect ratios these members account for less volume of material in the cell, and the relative modulus in the z-direction is small. At larger aspect ratios these members are longer, in comparison to the rest of the cell, and account for more of the material volume. In the limit of very large aspect ratios these members are almost vertical and account for most of the material volume. At that limit, the relative modulus in the z-direction should approach unity, while the relative moduli in the x- and y- directions should be very small. The y-direction modulus is about 3.5 times larger than the x-direction modulus. The higher stiffness is expected because of the members that run across the upper and lower faces. A set runs parallel to the y-direction, but no comparable set exists in the x-direction. It is interesting to note that LBM is least anisotropic at aspect ratios near 0.90. Lattice Block Material can also be constructed in three dimensions, as is illustrated in Figure III10. Note that the unit cell is shifted by a half-width in the x-direction between vertical layers. A "true" unit cell, one that would pack to form three-dimensional LBM without half-cell shifts, would consist of two conventional unit cells stacked one above the other. A conventional unit cell is highlighted in Figure 111-10. If that were combined with the members below it, the aggregate would be a "true" unit cell. Note that the bottom half of the "true" unit cell is the mirror image (reflected across the x-y plane) of the top half. Consideration of three-dimensional periodic LBM will proceed using the same unit cell as before. Although this includes half of the "true" unit cell, the symmetry across the x-y plane allows the simplification. Members on the faces and edges are shared differently than in the twodimensionally periodic unit cell, so their effective cross-sectional area is different. Members in the interior are considered "whole" members and are assigned full cross-sectional area. Members on the faces are "half' members because they are shared between two adjacent cells. They carry one-half of a standard cross-sectional area. Members on the edges are "quarter" members because they are shared between four adjoining cells. They carry one-quarter of a standard cross-sectional area. -35- Figure III-10. Three-dimensional Lattice Block construction. Figure III-11. Three-dimensional semi-infinite Lattice Block. -36- A three-dimensional semi-infinite Lattice Block is illustrated in Figure 111-11. The unit cell was repeated in the x-, y-, and z-directions many times, with '/2cell shifts between vertical layers. The relative density for the three-dimensional periodic structure can be approximated as a function of 1, r, and AR. Again, this is an approximation because material at the member intersections is counted twice. 2+24 p* P AR f For the same values of AR +8 AR 2 +1/4 = 2 1 (3D periodic LBM) (111-8) 0.617, r = 0.0625 in, and 1= 1.50 in, as in the 2D periodic material, the 3D periodic material has a relative density 9.89%, well below the value of 14.2% for the 2D periodic material. The lower relative density occurs because the top and bottom faces contain half-thickness members, rather than the full-thickness members in the 2D periodic material. Normalized moduli for normal stress / strain are presented in Figure 111-12 as a function of aspect ratio. At small aspect ratios the material is stiffest in the y-direction and most compliant in the zdirection. As aspect ratio increases the material becomes stiffer in the z-direction and more compliant in the x- and y-directions. The x- and z- directions have identical moduli at AR = 0.5. The y- and z- direction have identical moduli near AR = 0.7. At large aspect ratios (> 1.0) the zdirection more than twice as stiff as the x- or y- directions. Poisson's ratios for normal stress / strain are presented in Figure 111-13 as a function of aspect ratio. At small aspect ratio the Poisson's ratios are very large or very small. In fact, for AR < 0.3, v12 and v 2 1 are negative and v31 and v32 approach infinity. The Poisson's ratios intersect at AR = 0.5, where v 12 = v 32 = 0.33, v13 = V31= 0.44, and V2 1 = V23= 0.12. At large aspect ratios (AR > 1) the Poisson's ratios appear to approach limiting values, with v 2 3 , v 31, and v 32 all tending toward zero. Normal stress / strain moduli for the two-dimensional and three-dimensional periodic structures are plotted together in Figure 111-14. The former is stiffer in the x- and y-directions, but less stiff in the z-direction. The two-dimensional structure's unit cell has unshared members on the top and bottom faces, giving it a higher relative density than the three-dimensional periodic structure. These unshared members account for the greater stiffness in the x- and y-directions. However these members increase the relative density by more than they do the stiffness in the z-direction, producing a decrease compared to the three-dimensional periodic structure. -37- 3D Periodic Lattice Block: Young's Moduli 0.8 0.7- 0. 0.6 - 0.5 - 0.4 - 0.3 - 0.2 - 0.1 - z-dir y-dir w 0.0 x-dir k 0 ~ 2 1.5 1 0.5 h/b (Aspect Ratio) Figure 111-12. Normalized moduli for 3D periodic Lattice Block. 3D Periodic Lattice Block: Poisson's Ratios 1.2 1.0 0.8 0.61v1 0.4 - 0.2 - V13 v13 -+ v23 0.0 V23 -0.2 0 0.5 1 1.5 h/b (Aspect Ratio) Figure 111-13. Poisson's ratios for 3D periodic Lattice Block. -38- 2 2D & 3D Periodic Lattice Block: Young's Moduli 0.8 solid = 2D dashed= 3D 0.70.6 - A* .. A" 0.5 '3_ z-dir y-dir - S0.4 .A** 0.2 0.0 1 0.5 0 1.5 2 h/b (Aspect Ratio) Figure 111-14. Normalized moduli for 2D and 3D periodic Lattice Block, plotted together. Dimensional elastic constants are calculated for a three-dimensional version of the JAMCORP material. The material has a unit cell with the same dimensions as found in the two-dimensional periodic structure, implying AR = 0.617. Assuming the three-dimensional version would also be made from aluminum, we take Es = 10*106 Psi. The results appear in Table 111-1. The threedimensionally periodic material is less stiff in all normal directions. Alternate Method for Normal Stress / Strain It is possible to compute the elastic constants through an alternate method, based on determining the stiffness matrix and inverting it. This method was developed at the beginning of this project. It simplifies the boundary conditions necessary for analyzing the periodic unit cell, but yields the elastic moduli in a less direct manner. We define the relationship between normal stress and normal strain on the unit cell through a stiffness matrix Cn. 1 L2 _3 i C11 C12 C13 F1 C2 1 C22 C2 3 C32 C3 3 _e _C 31 62 3 J -39- (111-9) The elastic constants cij are determined with three related models. First the cell faces are constrained such that Fl # 0, while E2 = 0 and -3 = 0. The analysis is run, meaning that we compute forces and displacements. Then the forces and stresses on each face are found, giving o1, 02, and 03. This is sufficient to solve for three elements of the stiffness matrix c11, c 2 2 , and c 3 3. C Ei and EI, Then the unit cell faces are constrained such that - 2 # 0, E 31 while gj {for E2 = 3 = 01 = 0 and 3= (111-10) 0, and we compute c 12 , c 22 , and c3 2 . Finally the unit cell faces are constrained such that E3 # 0, while g1 = 0 and E3 = 0, and we compute c 3 1, c 32 , and c 33. The compliance matrix for normal stress/strain, S,, is equal to the inverse of the stiffness matrix. El Si1 S12 S13 471 e 21 21 S22 S23 U2 _e3 _ _31 S32 S33 _P_73 _(J_1 Cn-1 S= (111-12) The compliance matrix for normal stress / strain can also be written in terms of Young's moduli and Poisson's ratios. C2 L-'3 - 1 V12 El V21 E2 E3- 1 V23 El E2 __- V32 E3 V3 1 El E2 V13 (111-13) U2 3 - E3 The diagonal elements of S, are the reciprocals of the Young's moduli. The off-diagonal elements are the ratios between a Young's modulus and a Poisson's ratio. At this point the Young's moduli and Poisson's ratios are readily calculated. Boundary Conditions:A DetailedExample Boundary conditions for the first analysis are explained to illustrate the overall approach. The goal is to load the unit cell such that EI # 0, but E2 = 0 and E3 = 0. Figure 111-15 illustrates a unit cell with the appropriate boundary conditions. The displacement is applied symmetrically: the left face displaces - U and the right face displaces 1/2 -40- U in the x-direction. The front and back faces are restrained, as are the top and bottom faces. Finally six nodes (1, 3, 6, 8, 10, and 14) are linked because otherwise they would have zero stiffness in the x- and z-directions. Boundary Conditions for loading in the x-direction link to 4 link to 7 link to 7 X: Free Y: Rest. Dy = 0 Z: Rest. dz = 0 7 16 link to 5 link to 7 link to 7 Compression in the xdirection (U is negative) Imposed Strain: s1l = nonzero 8 622 =0 633 = 0 X: Rest. dx = -1I2*U Y: Free Z: Rest. dz = - 4 X: Rest. dx = 112*U Y: F ree Z: Rest. dz = 0 24 X: linkto4 Y: link to 2 Z: link to 2 X: Free Y: Rest. dy = 0 Z: Rest. dz = 0 link to 5 link to 2 link to 2 BOTTOM SURFACE z x X: Rest. dx = -1I2*U Y: Rest. dy = 0 Z: Rest. dz = 0 X: Link to 12 Y: Link to 13 Z: Link to 12 I 13 Rest. dx = 112*U Rest. dy = 0 Rest. dz = 0 14 X: Rest. dx = 0 12 Y: Rest. dy = 0 Z: Free 11 -> 4 9 3D view of unit cell 4 110 X: Rest. dx = -1/2*U Y: Rest. dy = 0 Z: Rest. dz = 0 X: Link to 12 Y: Link to 9 Z: Link to 12 Rest. dx = 112*U Rest. dy = 0 Rest. dz = 0 TOP SURFACE Figure 111-15. Bondary conditions for x-dir compression using alternate method -41- (E2 = E3 = 0)- Shear Stress / Strain The shear moduli, G 4 , G5 , and G6 , were calculated using the periodic unit cell. Separate boundary conditions were required to determine each shear modulus. For z-x shear, bottom face is restrained in the x- and z-directions while the top face is displaced in the x-direction. The original and deformed unit cells are shown in Figure 111-16. A MATLAB script that generates this model is included in Appendix L. The shear moduli for the JAMCORP material, listed in Table 111-2, were calculated using the measured inner strut offset: d = 2.4 mm. Normalized shear moduli are plotted as a function of aspect ratio in Figure 111-17. Here the shear moduli are normalized by Young's modulus of the solid material, E,, and by the relative density, p*/ps. The normalized moduli were calculated under the assumption of no inner strut offset: d = 0. Shear strength is plotted as a function of aspect ratio in Figure 111-18. Shear strength is defined as the peak stress. As before, the shear strength is normalized by the yield stress of the solid material, oys, and the relative density, p*/ps. The shear moduli were calculated using the measured inner strut offset, d = 2.4 mm. As was anticipated, G 4 and G5 are identical. G4 and G5 correspond to z-y and z-x loading, which occur by translating the top surface in the x- and y-directions. Members connecting the top and bottom surfaces have 90 degree symmetry in the x-y plane. Thus translation of the top face with respect to the bottom face is identical in the x- and y- directions, and G4 and G5 must always be the same. Shear moduli G 4 and G 5 depend strongly on aspect ratio. At small aspect ratios the relative shear moduli G 4 and G5 are near zero. As the aspect ratio increases G4 and G5 rise rapidly, reach a peak around AR = 0.6, and then begin to decrease. In contrast, G6 has a value near 0.1 for small aspect ratios and declines slowly with increasing aspect ratio. -42- Shear Strain: e_ Shear Strain: ezx Figure 111-16. Original and deformed unit cells for shear loading. -43 - Table 111-2. Shear moduli for 2D and 3D periodic Lattice Block. 2D Periodic Value (GPa) p*/ps = 14.2 % 3D Periodic Value (GPa) P*/Ps = 9.89 % Gxz Gyz 0.70 0.46 Gxy 0.89 0.43 Shear Moduli 0.12 0.100.08 x-y shear 0.06 x-z, y-z shear 0.04 0.02 0.00 -0 1 0.5 1.5 h/b (Aspect Ratio) Figure 111-17. Normalized shear moduli for 2D periodic Lattice Block. -44 - 2 Normalized Shear Strength for Periodic 2D Material 0.24-X- Shear ZX 0 Shear ZY -A- Shear XY 0.20 ~0.20 -. 0.16 0.12 a, 0.08 0.04 0.00- 0.4 0.9 1.4 1.9 Aspect Ratio Figure 111-18. Normalized shear strength of 2D periodic Lattice Block. Shear moduli were also determined for a 3D periodic unit cell. The shear moduli for JAMCORP material are included in Table 111-2. The normalized shear moduli (neglecting inner strut offset) are plotted as a function of aspect ratio in Figure 111-19. G4 and G5 are again identical, and again exhibit strong aspect ratio dependence. At small aspect ratios they rise from zero to a peak of 0.07 near AR = 0.6. Further increase in aspect ratio lead to a steady decline in G 4 and G5 . In contrast G6 shows less aspect ratio dependence, declining slowly with increasing aspect ratio. Normalized shear moduli appear for comparison in Figure 111-19. The 2D periodic structure has a larger relative modulus for shear in the x-y direction. In contrast, the three-dimensionally periodic structure has a larger normalized modulus for shear in the z-y and z-x directions. Just as for normal stress / strain, these effects have to do with changes in stiffness and relative density from members on the top and bottom faces. -45 - 2D & 3D Periodic Lattice Block: Shear Moduli 0.12 solid = 2D dashed = 3D 0.10 x-y shear 0.08 "*A.-A CL L 0.04 x-z, y-z 0 shear -, --A -A . 0.02 0.00 0 1 0.5 1.5 2 h/b (Aspect Ratio) Figure 111-19. Normalized shear moduli for 2D and 3D periodic Lattice Block. Geometry Effects Other aspects of the Lattice Block geometry, in additional to aspect ratio, can have a significant effect on the mechanical properties. The most significant factors are edge effects and the inner strut offset. Small specimens behave differently than larger ones because of edge effects. These result from: 1) the effect of edge members of full, rather half, thickness, and 2) non-periodic deformations near the specimen edges. This effect is studied by writing a program to generate tiles with an arbitrary number of unit cells along each edge. JAMCORP tiles have a border that runs parallel to the x-direction. This border is included for comparison with experimental results. A six-by-six tile, with unit cell dimensions matching those of the JAMCORP material, is illustrated in Figure 111-20. -46- Figure 111-20. Lattice Block tile 6 cells wide by 6 cells deep. Square tiles were analyzed with edge lengths from one to ten cells. The Young's moduli are plotted in Figure 111-21 as a function of the number of unit cells along the tile edge. The relative density of each specimen is plotted in Figure 111-22, also as a function of the number of unit cells along the tile edge. Also included are results for two-dimensionally periodic LBM. Correlation with the periodic results improves with increasing tile size. The x-direction relative modulus is much larger than the 2D periodic value for small tile sizes. This is can be attributed to the border running in the x-direction. For increasing tile sizes the large number of internal cells dilutes the border effect, and E, approaches the 2D periodic value. For a 10 x 10 tile, the limit of this study, E is 22% larger than the 2D periodic value. The relative density also approaches the 2D periodic value for larger tiles. Again the discrepancy is related to the full members and the extra border along the edge. The smallest tile, a 1 x 1 cell, has a relative density 57% larger than the 2D periodic value. The largest tile analyzed, with size 10 x 10, has a relative density only 6% larger than the 2D periodic value. Non-periodic deformation of cells near the tile edges is shown in Figure 111-23. The drawing shows a 6 x 6 tile subject to a 5% strain in the z-direction, as seen from above. The edge effects are most clearly seen by comparing the curved edges of the deformed structure (dashed lines) to the original structure (solid lines). Curvature is much more pronounced in the x-direction, where the edges bow out near the center. This makes sense because Lattice Block has a larger stiffness in the y-direction. -47 - Lattice Block Modulus as a Function of Tile Size 5 .0 Exx ydir+ y-dir .5- 4 .5 4 .0 - E3- Eyy Ezz 3 .5 3 .0 VU 0 .....- 2 0 .----.----...-----------------.....---..---. 2D periodic: y-dir 2 .0 -z-dir .5 .0 2D periodic: x-dir 2D periodic: z-dir 0 .5 0.0 2 0 4 8 6 10 Tile Size (Num. of cells along each edge) Figure 111-21. Lattice Block modulus plotted as a function of tile size. Lattice Block Volume Fraction vs Tile Size 0.25 - a) C a) 0.20 0.15 - 2D periodic value 0 0.10 - E 0.05 - 4) . 0.000 2 4 6 8 Tile Size (Num. of cells along each edge) Figure 111-22. Relative density plotted as a function of tile size. -48 - 10 Load in z-direction 1'z "V Ca N "N" 21HZI V x-axis Figure 111-23. Non-periodic deformation of Lattice Block tile compressed in z-direction. There is good correlation between moduli for the infinite planar array and those for large tiles. This is the expected result. It confirms that large structures can be modeled effectively with a periodic unit cell analysis. The second important geometry effect is the inner strut offset. To illustrate this effect, moduli are plotted as a function of inner strut offset, d, in Figure 111-24. The data was generated using MATLAB scripts to create models with varying inner strut offset. The models had the same dimensions as the experimental specimens, discussed later. The moduli Ex, Ey, G 4, and G5 increase with increasing d. In contrast E, declines with increasing d. The inner strut offset effect is most significant for the shear moduli, G4 and G5 . Other geometry effects were studied as well. Models were generated with randomly perturbed nodes and loaded to failure in ABAQUS. The nodes were perturbed by a small, randomly computed amount, to simulate structural irregularities. Results for a specimen loaded in the xdirection are shown in Figure 111-25. Here the perturbations were uniformly distributed between 2.5 mm and 2.5 mm, and applied separately x-, y-, and z-coordinates of each node. Each curve labeled "Perturbed Nodes" represents a different set of random perturbations. Generally the effect on mechanical properties was small. The peak stress and failure strain decrease, and Young's Modulus decreases slightly as well. -49 - Effect of Inner Strut Offset on Calculated Modulus 5 Ey - calculated 4.5 - Ey -measured 4 co o 3.5 S 30 2.5 - E 2 C, - calculatedEz - measured 91.5 E, 1.5- 0 0.5-- 0 calculated e - 1 -f"-c1c 2 - x jmeasured 3 4 5 6 d (mm) Figure 111-24. Lattice Block moduli plotted as a function of inner strut offset. LBM Compression/Failure Model: X-dir 9 87 6First member fails. Analyses no longer converge. 0. Ul) 3 Distorted Nodes -Undistorted Nodes 2 10 0.0% 1.0% 0.5% 1.5% Strain Figure 111-25. Force-displacement curve for x-dir compression, comparing perturbed and unperturbed nodes. The linear dependence of modulus and strength on relative density was also verified. Periodic unit cell models were created in ABAQUS for three different relative densities. These were used to compute Young's modulus and peak strength for x-, y- and z-direction loadings. The results, -50- which are plotted in Figure 111-26 and Figure 111-27, confirm that Young's modulus and peak strength scale linearly with relative density. Modulus of Lattice Block Material vs Density 3500 3000 2500 0 2I --U- 20001500- -A- Ex Ey Ez 1000 500 0 5% 0 10% 15% Relative Density Figure 111-26. Lattice Block moduli as a function of relative density. Strength of Lattice Block Material vs Density 16 - a_ 14 Cz 12 10 - U- - X-dir Y-dr --e- Z-dir - - 864> 20- .... ..... F-- 5% 10% 15% Relative Density Figure 111-27. Lattice Block strength as a function of relative density. Defect Sensitivity The defect sensitivity of Lattice Block was examined by creating a series of models with more and more defects (missing struts). The models were based on a 6 cell by 6 cell Lattice Block -51- structure compressed in the z-direction. Originally the structure contained 769 members, and members were randomly selected and removed to generate defects. The deleted members were selected separately for each model, so each model had a different set of defects. The original structure is shown in Figure 111-28, and a structure with 100 missing members is shown in Figure 111-29. Figure 111-28. Lattice Block tile, 6 cells by 6 cells. Figure 111-29. Lattice Block tile with 100 missing members. The models were created automatically with a series of MATLAB scripts, solved using ABAQUS, and then results were tabulated using another MATLAB script. The script interp.m, -52- included in Appendix M, performed the data analysis: it converted force / displacement data to stress / strain data, and calculates the peak stress, 0.2% offset yield stress, and Young's modulus. In total 102 models were analyzed, containing between zero and 101 defects. The decrease in mechanical properties are plotted as a function of the fraction of missing struts in Figures 111-30 and 111-31. The scatter in the figures comes from randomly choosing the defect locations for each analysis. Straight lines drawn through the data suggest the properties decline linearly with the fraction of missing struts. Young's modulus and yield stress decrease at a rate of 1.5 times the fraction of missing struts, while the peak stress decreases at a rate of 1.7. This study indicates that Lattice Block is relatively insensitive to defects. If the defect rate were, say, 1%, then the mechanical properties would be better than 98% of the defect-free properties. Defect Sensitivity (z-dir compression) 1.00 0.95 y = -1.528x + 1.004 0.90 0 0.85 + Sy* / SyG 0 00 o Smax* / S_maxO + 0 0.80 y = -1.704x + 0.982 . 0.75 O.x 0 0.10 0.05 a 0.15 Fraction of Missing Struts Figure 111-30. Yield-stress and peak-stress defect sensitivity for Lattice Block. -53- Defect Sensitivity (z-dir compression) 1.00 1- 0.95 * + + + 0.90 y =-1.539x + 1.005 + 0.85 + + 0.80 0.75 0.00 0.05 0.10 0.15 Fraction of Missing Struts Figure 111-31. Young's modulus defect sensitivity for Lattice Block. Experimental Verification and Failure Analysis Procedure The uniaxial compressive response of the truss material was measured directly on specimens cut from the tiles. For loading in the x- and y- directions, the specimens were cut to be 5 cells long in the compression direction, and 1 cell long in the perpendicular direction. For loading in the zdirection, the specimens were constrained to be only one cell high in the loading direction as this was the height of the tiles obtained from the manufacturer. The Young's modulus in the zdirection was measured on small specimens (1.5 cells x 2 cells in area). Three specimens were used for each of the x-, y-, and z-direction tests. All of these specimens were tested using a 25kip capacity Instron testing machine (Model 1321, Instron Corporation, Canton, Massachusetts). However the capacity of this machine was insufficient to measure the strength of the truss material in the z-direction. Additional tests were performed on a 100 kip capacity machine (MTS Test Frame 311.21, Minneapolis, MN) using larger specimens (2 cells x 4 cells). The strength of the truss material in the z-direction was measured from these tests, using two specimens. We were unable to obtain reliable displacement data from the latter tests because the platens lacked mounting points for an LVDT, so a reliable stress-strain curve was not obtained. In all cases the specimens were tested in compression between steel platens. Platens on the 25 kip machine were -54- 25 mm thick, and platens on the 100 kip machine were 50 mm thick. Force was measured with a load cell and displacement was measured with LVDT's mounted directly to the platens (for the 25kip machine). Three specimens were tested in compression for each of the x-, and y-directions, and two were tested for each of the z-direction experiments. The shear response of the truss material was measured in accordance with ASTM standard C27361 (1994). A typical sample is shown in Fig. 111-32. Due to sample size requirements, it was possible only to measure the shear response in the z-x and z-y planes. A sample of the truss material of dimensions 12.75" x 2.25" was bonded to 0.5" thick aluminum plates using the structural adhesive FM-123-2 (Cytec, Harve de Grace, Maryland). The assembly was cured in an autoclave at 107 0C and 0.28 MPa for 2 hours. Tests were performed by pulling the sample in tension, along the diagonal of the specimen, as shown in the Fig. 111-32. Displacement was measured with two high-precision LVDT's (050 MHR, Lucas Shaevitz, Hampton, Virginia) mounted directly on rigid plates attached to the specimen. Force was again measured with a load cell. Four specimens were tested in shear: two in the z-x plane and two in the z-y plane. + Figure 111-32. Typical shear test specimen. -55- Results Typical stress-strain curves for loading the truss material in the x-, y- and z-directions are shown in Fig. 111-33. For loading in the x- and y- directions, the curves initially exhibit an increasing slope, corresponding to the specimens deforming slightly to contact the loading plates at each point across the loading surface. Subsequent loading produces a linear stress-strain relationship. Eventually the specimens begin to yield and the slope decreases slowly. When the first member fails the stress drops instantaneously. This and subsequent member failures are accompanied by audible pings. The specimens were partially unloaded for elastic modulus calculations; the unloading portions of the stress-strain curves overlap the loading curves. The properties of the truss material in the z-direction were measured in two sets of tests due to difficulties with the capacity of the testing machines and with measuring displacements. The first set gave the linear elastic portion of the stress-strain curve, shown in Fig. 111-33, while the second gave the failure stress. The average value of the compressive strength of the truss material in the z-direction is 9.01 MPa, with standard deviation 0.33 MPa. Experimental Response of Lattice Block Specimens 20 18 - y-dir 16 14 c12 10 8 - z-dir x-dir 6 4 2 - 0 0.0% 0.5% 1.5% 1.0% 2.0% 2.5% Strain X-direction: 5 cell x1 cell specimen -Y-direction: 1 cell x 5 cell specimen Z-direction: 1.5 cell x 2 cell specimen Figure 111-33. Typical stress-strain curves for loading in x-, y-, and z-directions. -56- Failure in specimens loaded in the x-direction corresponded to the sudden fracture of individual members loaded in tension (Fig 111-34). Failure in specimens loaded in the y-direction corresponded to buckling of individual top- and bottom-lattice members loaded in compression (Fig 111-35). Failure in specimens loaded in the z-direction corresponded to tensile fracture in topand bottom-members and buckling in core-members (Fig 111-36). A typical stress-strain curve for loading in shear in the z-x plane (equivalent to the z-y plane) is shown in Fig. 111-37. The curve is initially linear and gives a shear modulus of 1.17 GPa with a standard deviation of 0.11 GPa. The modulus was calculated from partial unloading curves, which overlap the loading curves exactly. After loading the stress dips slightly, rises again, and then declines slowly, corresponding to debonding between the specimen and the aluminum plates. As a result of debonding, we were unable to measure the yield and failure response in shear. Figure 111-34. Specimen compressed to failure in x-direction. Figure 111-35. Specimen compressed to failure in y-direction. -57 - Figure 111-36. Specimen compressed to failure in z-direction. Lattice Block Specimen Shear Test 1.8 1.6 1.4' 0. 1.2begins 1 -debonding u 0.8O5 0.6 0.40.20 0.0% 0.2% 0.4% 0.6% 0.8% 1.0% Strain Figure 111-37. Stress-strain curve for loading in z-x shear. Discussion The predicted and experimental data for elastic properties are compared in Table 111-3. The calculated values are the results obtained by modeling the exact geometry of the test. For example, the x-direction compression tests used 5 cell by 1 cell specimens, so the calculated value for x-direction modulus is obtained by modeling a 5 cell by 1 cell structure. The calculations used perfect models (no node perturbations) and included inner strut offset. The calculated modulus is plotted against the inner strut offset distance in Figure 111-24, together with the measured values. Agreement between the experimental data and model results is good. The -58- discrepancy between experiment and model for Ex, Ey, Ez, and Gz are -17%, +5%, +7%, and -27 %, respectively. Elastic properties for the infinite planar array and for an infinite truss material in three-dimensions were included in Table 111-1. Table 111-3. Predicted and experimental values for elastic properties of Lattice Block. Measured (GPa) Standard Deviation (GPa) Calculated (GPa) % Error Ex 1.151 0.03 0.961 - 17% EY 4.222 0.30 4.452 +5 % Ez Gxz Gyz 1.263 0.11 1.354 +7% 1.175 0.11 0.926 -27% Notes: 1. Specimen was 5 cell by 1 cell, aligned along x-direction. 2. Specimen was 5 cell by 1 cell, aligned along y-direction. 3. Specimen was 1.5 cells (x-dir) by 2 cells (y-dir). 4. Average from two models: a 1 cell by 2 cell model and a 2 cell by 2 cell model. 5. Shear specimens were 8.5 cells by 1.5 cells. Two were tested with the long axis along the x-dir, and two were tested with the long axis along the y-dir. Results were the same within scatter, as predicted by symmetry. 6. Average from two models: an 8 cell by 1 cell and a 9 cell by 2 cell model. The model also predicts the nonlinear stress-strain response of the truss material. Results from tests of the x- and y-direction compression are plotted together with model results in Figure 111-38 and Figure 111-39. The models include a random distortion to node positions to capture random variations in specimen geometry and material response. The x-direction model gives a good description of the measured compressive stress-strain curve. Results from tests of y-direction compression agree equally well during linear loading and yielding, but the model under-estimates failure stress. The elastic - hardening model (without material failure) gives a good description of the stress - strain curve up until failure. The measured strengths for loading in the x-, y- and zdirections are compared with the model results in Table 111-4. The model predicts U*x and *z well, but underestimates o*y. -59- LBM Compression/Failure Model: X-dir 9 I 8 7 Cz r------UISOred Nodes -Undistorted Nod I's I Experiment ,00 ,6 a- First member fails. Anal)yses no longer converge. 2-15 cn4 U)3 2 1 0 0.0% 0.5% 1.0% 1.5% 2.0% 2.5% Strain Figure 111-38. Comparison of model and experiment results for x-direction. LBM Compression/Failure Model: Y-dir 2018 - 16 - -------- Undistorted Nodes Experiment 14 - U) 12 - 10 - 8- Distorted Nodes Analyses no longer converge 642 0 0.0% 0.5% 1.0% 1.5% 2.0% 2.5% Strain Figure 111-39. Comparison of model and experiment results for y-direction. -60- Table 111-4. Measured and predicted strengths for finite Lattice Block specimens. Experiment (MPa) Standard Deviation (MPa) Model (MPa)1 Model ()/ Experiment ox 6.50 1.1 8.03 (7.28) 1.12 CY 18.31 1.0 15.11 (14.72) 0.80 CY 9.01 0.33 8.92 (8.42) 0.93 1. 2. Notes: Two values for each model are given. The first is for a geometrically perfect model, and the (second) is for a model that includes random distortions in initial node position. Specimen sizes: x- and y-dir specimens were 5 cells by 1 cell. The z-dir specimens were 2 cells by 4 cells. The larger discrepancy in ody may be understood by considering possible failure modes for individual members: yield and brittle failure in tension, yield and brittle failure in compression, and buckling. The model uses simple truss elements, and therefore captures only tension and compression failures. Buckling, which is physically possible, is neglected entirely in the simple model. The Euler buckling equation can be used to find the critical stress for a member of length 1 to buckle elastically. P = n "r12 2 2 7rt EI __D_ , where I = 64 for circular members (111-14) The critical elastic buckling stress for members in the JAMCORP Lattice Block, assuming pinned ends (n = 1), is shown below. In practice, the ends are closer to a fixed condition, giving even higher elastic buckling loads. Table 111-5. Critical buckling stress for Lattice Block members. Member Length oCr (MPa) 38.1 mm 296 30.2 mm 470 Since the aYS = 224 MPa for the solid material, the Euler equation predicts yield before elastic buckling. Insight into actual failure mechanisms is gained by considering relative stresses in the linear elastic model. Relative stresses in individual members, which are calculated by normalizing by -61- the maximum member stress, are displayed for x-, y-, and z-direction loading in Figure 111-40, Figure 111-41, and Figure 111-42. Specimens loaded in the x-direction exhibit the largest stress and strain in face members loaded in compression. These members probably yield first, in compression, leading to increased strain in surrounding members. Tensile-member stress and strain increase for compatibility, eventually leading to tensile member fracture. Finally compressive members bend and begin to crack on the tensile side. Specimens loaded in the ydirection exhibit the largest compressive stress in face members located parallel to the ydirection. These members run continuously through the specimen it the y-direction. Probably these members yield in compression and then buckle plastically during failure. Specimens loaded in the z-direction exhibit the largest stress in core members running between the upper and lower faces. Probably these yield in compression, and eventually buckle plastically. In addition, there is tensile fracture in the most highly loaded tensile members on the faces. As shown in Fig. 111-5, the material is stronger in compression. It is therefore plausible that members in compression deform elastically, reach the yield stress, and then fail through plastic buckling. Such a process suggests that they support higher ultimate stress and strain then members in tension, which fail by brittle fracture. It seems reasonable that the x-direction model is most accurate because members fail in tension, which is well captured by the tensile material response data and the truss analysis. The y-direction model may be less accurate because members fail in compression (buckling), which is poorly captured by the tensile material response data and the truss analysis. The z-direction model is somewhat more accurate because members fail in tension as well as compression, and the model captures the tensile failure mode. For a unit cell loaded in compression, the ratio of maximum tensile stress to maximum compressive stress is: for loading in the x-direction, 0.602; for loading in the y-direction, 0.337; and for loading in the z-direction, 0.347. Therefore tensile failure is most likely for loading in the x-direction, and buckling is most likely for loading in the y-direction. These predictions agree with the failures in Figure 111-34, Figure 111-35, and Figure 111-36. -62- Load in X-dir: Relative Member Stress l Maximum Compressive Stress Maximum Tensile Stress Intermediate Stress Levels 1.000 -0.518 -0.518 .518. 0.602 C. 2 2 .0 .602 2 2 6 2 .602 2 .602 8 8.1 1.000 y-axis Figure 111-40. Relative stresses in members, unit cell loaded in x-direction. Load in Y-dir: Relative Member Stress ani Maximum Compressive Stress Maximum Tensile Stress y Intermediate Stressr Leens Fiur 0.150 A 1.000 1.000 .150 000 -0.3377 .337 .- 07.37 .337 37 1 10. 1. 0.150 y-axis .7 0 1.000 x-axis Figure III-41. Relative stresses in members, unit cell loaded in y-direction. -63- Load in Z-dir: Relative Member Stress yi Maximum Compressiv Stress x Stress Maximum Tensile F Intermediate Stress Lee s -0.347 -0.069 .069 -0.069 .. 347 .8 .80 .000 8 .780.000 .00.780 80 7 -0. 9 y-axis 9 -. 6 x-axis Figure III-42. Relative stresses in members, unit cell loaded in z-direction. Comparison to Metal Foam Models for closed-cell foams suggest that uniaxial and shear loading induce axial forces in their members, giving them moduli and strengths which should vary linearly with relative density, similar to the truss material studied here. In practice, imperfections in the structure (for instance, curvature in the cell walls or highly elliptical cells) induce bending in the cell walls, reducing their properties to values substantially below those expected for ideal closed-cell foams (Andrews et al., 1999; Bart-Smith et al., 1999). The Young's moduli and compressive strength of the truss material are compared with those of metallic foams, and with model results for open-and closedcell foams, in Figure 111-43 and Figure 111-44. Most of the metallic foams in Figure 111-43 and Figure 111-44 are closed-cell: their Young's moduli and compressive strengths lie well below the model predictions for closed cell foams. The Young's modulus and compressive strength of the truss material significantly exceeds those of metallic foams for loading in the y-direction. For loading in the x- or z-directions, the Young's moduli of the truss material is comparable to those of metallic foams and the compressive strengths are equal to the strongest metallic foams. The Young's moduli, the shear moduli and the uniaxial compressive strengths of the truss material are compared with those of a commercially available, nearly isotropic, closed-cell metallic foam (trade name Alulight) in Table 111-6. The relative densities of the two materials are within 6% of each other. The truss material has superior properties in all cases with the exception of the Young's moduli for loading in the x- and z-directions. The shear moduli and the -64- uniaxial compressive strengths of the truss material in all three directions are significantly higher than those for the metallic foam. Relative Modulus vs Relative Density 100 T- I V V V 101 y-dir 0 ( 0 0 z- r x-dir x closed-cell 102 V w r X 4. V * Andrews (1 999a) Alcan open-cell, E3 Beals (1997) Alcan Simone (1998) Alcan V 0 0 Sugimura (1997) Alcan A A V V V Andrews (1 999a,b) Alporas Simone (1998) Alporas Sugimura (1997) Alporas Andrews (1 999a) Alulight Gradinger (1997) Alulight McCullough (1999) Alulight Andrews (1 999a) Fraunhofer Weber (1994) Fraunhofer Andrews (1 999a,b) ERG Bart-Smith (1998) ERG Dubbelday (1992) ERG Lattice block L/ 10-4 1(72 10-1 100 RELATIVE DENSITY, p/p Figure 111-43. Young's modulus comparison between Lattice Block and metal foams. -65- Relative Strength vs Relative Density 1O V 10'1 y-dir 3H /-dir x-dir (9 / z closed-cell w io2y o Andrews (1999a) Alcan Beals (1997) Alcan Prakash (1995) Alcan Simone (1998) Alcan VonHagen (1998)Alcan Andrews (1999a,b) Alporas Gioux (1999) Alporas Simone (1998) Alporas Sugimura (1997) Alporas VonHagen (1998)Alporas Andrews (1999a) Alulight Gradinger (1997) Alulight McCullough (1999) Alulight Andrews (1999a) Fraunhofer Banhart (1998) Fraunhofer Banh art (1995) Fraunhofer Weber (1994) Fraunhofer Thornton (1975) AJ-7%Mg Bart-Smith (1998) ERG Gioux (1999) ERG Triantafillou (1989) ERG Lattice block I O * I , open-cell 1 V * A 3 o X + + v + A v * 14 1C 2 1 _ ioo 0 RELATIVE DENSITY, p/p Figure 111-44. Strength comparison between Lattice Block and metal foams. -66- Table 111-6. Properties of Lattice Block compared to metal foam. Alulight Lattice Block' Es (GPa) 69 69 GPa Gys (MPa) 250 224 MPa 0.151 p*/ps 0.142 x-dir y-dir z-dir E* (GPa) 1.68 1.13 4.33 1.26 Gys* (MPa) 4.55 6.50 18.31 9.01 G* (GPa) 1.17 1.17 0.63 2 Notes 1. Lattice Block data are measured values, not model results. 2. G for Alulight estimated assuming v = 0.33 3. Gy was not measured for Lattice Block, so the model value is given. -67- 0.89 (est 3) IV. Octet Truss Material Geometry The octet truss material, shown in Figure IV- 1, is another three-dimensional truss material. The face members have length L, and the brace members (those in the core) have length LBIn contrast to Lattice Block, the brace members trace out tetrahedrons instead of square-pyramids. Also the face members intersect at 1200 angles instead of alternating 900 and 450 angles. Nathan Wicks proposed the periodic unit cell shown in Figure IV-2. Using that model, each unit cell contains 6 full face-members and three full brace-members. An alternative unit cell, shown in Figure IV-3, will be useful for calculating the mechanical properties. Figure IV-1. Computer generated image of octet truss material. It is helpful to define some quantities with respect to the unit cell geometry. The diagram in Figure IV-4 shows that the unit cell length is -L and the width is L. Also, the upper and lower faces are offset in the x-direction by a distance 8x, and the unit cell height is H. Sx=- 3 L2 3 L, -68- (IV-1) Figure IV-2. Periodic unit cell proposed by N. Wicks and J. Hutchinson. Figure IV-3. Alternative periodic unit cell. Yt --- L V I I I * I I I I I I * I I I I I I I I I I I I I Top face members Bottom face members Brace member I I I I I I I I I I I I I I I I I I * I I I 0 x ax= 3 L - 2 V3L L Figure IV-4. Diagram of N. Wicks' unit cell showing relevant dimensions. -69- Properties of an infinite array of the octet truss material were computed using the second unit cell (Figure IV-3). A MATLAB script, frame.m, defining the model, is included in Appendix N. It is also possible to generate a model containing an arbitrary number of unit cells. A MATLAB script to generate finite octet truss models is included in Appendix 0. The relative density of octet truss material can be expressed in terms of L, LB, and Ax, where the Ax is the cross-sectional area each members. PS As =V = 2 2+ ALB L0 ( B )2 _Y N. Fleck manufactured octet truss material using injection molding and manual assembly. Those samples have dimensions L = 10 mm, LB = 10 mm, and member diameter D = 2 mm, giving a member area Ax = 7ED 2/4 = 3.14 mm 2 . An infinite array of such an octet truss would have a relative density 40 %. Normal Stress / Strain Normal stress / strain response was calculated using the alternate unit cell (Figure IV-3) as its sides align more closely with three perpendicular axes. Since the unit cell is periodic, the moduli describe an infinite planar array. Young's moduli for the x-, y- and z- directions were determined using the MATLAB truss solver. The procedure involved: constructing a unit cell model (frame offset.m); compressing the model in the x-, y-, or z-directions (constrain x.m, constrainy.m, and constrain-z.m); solving for the nodal forces (solvetrusslink.m); and determining relevant stresses, strains, and moduli (main.m). All of the MATLAB scripts, except the truss solver, are included in Appendices P, Q, R, and S. The Young's moduli were calculated with the following formulas. 2U (IV-3) E, = C , where O. = 2bH E n E_ E = and E -=2U E = " "' , where U, = S E, ' 0P where U == 2aH (2a)(2b) -70- 2a " 2b and E =- " U H (IV-4) (IV-5) The unit cell in Figure IV-5 has width 2a, depth 2b, and height H. The force Pi denotes the force parallel to the i-direction on the displaced face. U is the applied displacement: for the x- and ydirections it is applied to both faces, but for the z-direction it is applied to the top face only. z H 2bH 2a Figure IV-5. Unit cell with dimensions 2a, 2b, and H Representative properties are calculated for the truss material described below. The relative density of the this material is 8.45 %. Table IV-1. Dimensions and properties for an octet truss material. Unit cell dimensions L 10 mm LB 10 mm Member diameter 1.0 mm Inner strut offset, d 0.75 mm Es 70 GPa -71- Young's Moduli EXX 1.32 GPa Eyy 1.31 GPa Ezz 1.16 GPa The unit cell does not have even orthotropic symmetry: 1800 rotations about the x-, y-, and zdirections do not leave the material unchanged. However the Young's moduli above are quite close: the smallest, Ez, differs from the largest, Exx, by only 12 %. Modulus variation as a function of L/LB was characterized using a parametric analysis. The MATLAB script parametric.m, included in Appendix T, generated and analyzed unit cell models over a range of L/LB. The moduli were normalized by the solid modulus, E,, and the relative density, p*/p,. Enor = E l (IV-6) The relative density, which is the same as the volume fraction, was calculated using the MATLAB script volumefrac.m in Appendix U. The script computes the total volume occupied members in the unit cell, accounting for half-thickness members on the edges, and divides by the unit cell volume. The normalized moduli are plotted as a function of L/LB in figure IV-6. Note that L/LB must be less than I3 because of geometry constraints. For small L/LB, the unit cell is tall and the brace members are nearly vertical. In this configuration the z-direction has a large normalized modulus, while the x- and y-directions have small normalized moduli. As L/LB inceases the z-direction loses stiffness while the x- and y-directions become more rigid. The moduli are approximately equal for L/LB= 0.9. As L/LB continues to increase, the x- and y-direction moduli increase slightly and the z-direction modulus approaches zero. Note that the x- and y-direction moduli are nearly identical over the full range of L/LB- -72- Octet Truss Material: Elastic Moduli 0.90 -0.80 0.70 z-dir -+- Exx Eyy -e- Ezz 0.60 --* 0.50 0.40 W x-dir 0.30 y-dir 0.20 0.10 0.00 - 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 L/Lb Figure IV-6. Normalized moduli for octet truss material. Shear Stress / Strain The stiffness of the octet truss material in shear was examined using the periodic unit cell. The alternate unit cell, shown in Figure IV-3, was loaded in zy-, zx-, and xy-shear using the MATLAB scripts constrain-zy-shear.m, constrainzxshear.m, and constrain_xy-shear.m. Each script defines constraints for a particular shear mode; the scripts are included in Appendices V, W, and X. The deformed unit cells are shown in Figure IV-7, Figure IV-8, and Figure IV-9, together with the original unit cell. The constraints for zy-shear are to restrain the bottom face in the y- and z-directions, restrain the top face in the z-direction, and displace the top face in the ydirection. Shear moduli for a particular octet truss material appear Table IV-2. -73- Load in zy shear x N x-axis y-axis Figure IV-7. Octet truss unit cell loaded in zy-shear. Load in zx shear U) x-axis y-axis Figure IV-8. Octet truss unit cell loaded in zx-shear. Load in xy shear x-axis y-axis Figure IV-9. Octet truss unit cell loaded in xy-shear. -74 - Table IV-2. Dimensions and shear moduli for an octet truss material Octet truss material specifications L 10mm LB 10mm Member diameter 1.0 mm Inner strut offset, d 0.75 mm Es 70 GPa Relative density p*/ps 8.45 % Shear Moduli Gzy 0.29 GPa Gzx 0.30 GPa GY 0.39 GPa Careful examination of Figure IV-7 reveals that the unit cell loaded in zy-shear is twisted slightly about the z-axis, in particular the top face is twisted. This twist indicates the deformation mode is somehow coupled to another other deformation modes. The result could be a consequence of the unit cell's absence of orthotropic symmetry. In this situation the shear moduli data should be valid, but we expect that additional constants are needed to fully describe the elastic response. A parametric analysis was performed to find the relationship between shear moduli and the unit cell dimensions. A series of unit cells were generated with a MATLAB script, each of which had a different value for L/LB. The unit cells were loaded in shear and used to compute shear moduli. The shear moduli, normalized by Es and p*/ps, are plotted as a function of L/LB in Figure IV-10. As before, geometry constraints require that L/LB <'13. The material has increasing normalized shear stiffness with increasing L/LB. For small L/LB the zy- and zx- moduli are very small, while the xy-modulus is somewhat larger. All three moduli incease with inceasing L/LB, up until L/LB =1.2. After that point, the zy- and zx-moduli decrease rapidly, while the xy-shear modulus continues to increase slowly. The zy- and zx- shear moduli are nearly identical for wide range of L/LB. -75 - Octet Truss Material: Shear Moduli 0.09 0.08 0.07 xy-shear 0.06 c0 zx-shear 0.05 C) LL zy-shear ..... 0.04 0.03 -+ Gzyn -i- Gzxn -e-Gxyn 0.02 0.01 n. -n 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 L/ Lb Figure IV-10. Normalized shear moduli for periodic octet truss. Geometry Effects The effect of finite specimen size was examined by studying models in three-point bending. Since three-point bending specimens are symmetric about the center, it is sufficient to study a halflength cantilever beam model. The models below are all cantilever beams. The effect of finite specimens is also known as the "edge effect," and it refers to differences in behavior between small and large specimens. Wicks and Hutchinson examined truss core optimization under three-point bending (2000). Their work neglected edge effects, essentially assuming the specimens were large enough that all deformation is periodic. The current analysis examines the three-point bending configuration to elucidate the significance of edge effects for small specimens. We normalize the results to compare specimens of different sizes. The approach adopted here is to compare the model results to traditional beam theory. The displacement at the tip of a simply loaded cantilever beam is given in the equation below. -76- S- and I= (IV-7) 12 3EI Here 8 is the tip displacement, 1 is the beam length, E is the Young's modulus, I is the areamoment for the cross-section, b is the cross-section width, and h is the cross-section height. A modified Young's modulus, E', can be defined to account for the relative density of the material: E' = Vf E. We substitute the modified Young's modulus in place of the original and denote the new force by P'. Solving for P' yields the following equation. P = 5 33 (IV-8) 1 We can apply a displacement 8 to a model and compute the reaction force P. We can then find a normalized force, P,, as follows. P Pn =_"P' _P P (IV-9) EV 5 3EVf I The normalized force is non-dimensional and should be independent of 8, E, Vf, I, and 1. Any variation in Pn among different model sizes can be attributed to edge effects. The normalized force is plotted as a function of model size in Figure IV- 11. A series of models were examined that had equal numbers of cells along the length and width. The models range from 2 by 2 cells up to 8 by 8 cells. The results indicate an increase in normalized force with increasing model size. The increase from the 2x2 to 3x3 model is 19%, while the increase from the 7x7 to the 8x8 model is 1.7%. Here, edge effects appear significant for models smaller than about 6x6. The normalized force is plotted as a function of model length in Figure IV- 12. Here the models are all two cells wide, but the length is increased from 2 to 10 cells. This study indicates that edge effects are significant for models less than 4 cells long. The normalized force is plotted as a function of model width in Figure IV-13. Here the models are all six cells long, but the width is increased from 2 to 8 cells. This study indicates that edge effects are significant for models less than 6 cells wide. -77- Octet Truss Material: Stiffness vs Model Size 0.5 0 ... ... ........ 0 0.4 00A 0.3 L.. 0 U- 0.2 0.1 0.0 1 5 3 7 9 Model Size (# of unit cells in x, y-dirs) Figure IV-11. Normalized force as a function of model size. Octet Truss Material: Stiffness vs Length 0.40 LL ).3 - 10 N ).2 - Model width = 2 cells Inner Strut offset = 0.75 mm 0 E .0 0 4 2 1 1 6 8 I I 10 12 Model Length (cells in x-dir) Figure IV-12. Normalized force as a function of model length. Octet Truss Material: Stiffness vs Width 0 U4) N 0 Z 0.5 0.4 0.3 0.2 0.1 0.0 0 Model length = 6 cells Inner Strut offset = 0.75 mm 2 4 6 8 Model Width (cells in y-dir) Figure IV-13. Normalized force as a function of model width. -78 - 10 A final study, shown in Figure IV- 14, examines the effect of inner strut offset on normalized force. The results show that normalized force decreases with increasing inner strut offset. All the data points are from 5x5 cell models with L = LB =10 mm. An inner strut offset of 1 mm causes a 35% decrease in normalized force compared to zero inner strut offset. Although Wicks and Hutchinson neglected inner strut offset, this study suggests that it can have a significant impact on bending stiffness. Octet Truss Material: Stiffness vs Offset 0.7 0.6 , 0 0.5 0.4 - N a 0.3 E 0.2 0.1 0.0 0.0 0.2 0.4 0.6 0.8 1.0 1.2 Inner Strut Offset (m) Figure IV-14. Normalized force as a function of inner strut offset. Buckle to Yield Transition Failure mechanisms for 3D truss materials include member yield and member buckling. Members loaded in tension always fail through a yield and fracture sequence. Members loaded in compression fail through some combination of elastic buckling, plastic yield, plastic buckling, and fracture. Images in Figure 111-34, Figure 111-35, and Figure 111-36 show various member failures in Lattice Block tests. We can use Euler buckling theory to develop some insight into expected failure modes. Consider a cylindrical member with length L, cross-sectional area A, and Young's modulus E. The critical forces for plastic yield and elastic buckling are given by the following equations. Plastic Yield: F, = U- A (IV-10) -79- Elastic Buckle: F- n2fs (IV- 11) 4e For some combination of member dimensions and material parameters, the critical force for plastic yield, Fy, will equal the critical force for elastic buckling, Fb. Setting Fy = Fb allows us to develop the following equation. UYS ES - 2;rA(IV- 41) 12) For a set of member dimensions, A and L, we can compute the material property ratio ays / E, such that the member would yield and buckle at the same load. For ays / E, smaller than this critical value, the member will yield before buckling. Conversely, for larger ays / ES, the member will buckle before yielding. Note that n 2 represents member-end constraints: n2= 1 for pinned ends, and n2 4 for fixed ends. The ratio ays E, for a variety of materials is computed in Table IV-3 (Data from Gere and Timoshenko, 1990). Also, the ratio n2 7rA /4L 2 is computed in Table IV-4 for the JAMCORP Lattice Block and two octet truss configurations. Table IV-3. The ratio a*YS / E, for a variety of materials. (Data from Gere and Timoshenko, 1990) Material ays / Es Aluminum: measured here 0.0032 Brass: red, hard 0.0059 Bronze, Manganese, Hard 0.0062 Cast iron, compression 0.0094 Nickel 0.0025 Nylon 0.0238 Rubber 15.2 Steel: stainless 0.0036 Titanium alloys 0.0086 -80- Table IV-4. The ratio n2 Z4 / 4L 2 for Lattice Block and octet truss configurations. nf 7tA / 4L 2 Material diameter (mm) A (mm 2) L (mm 2 ) For n = 1 For n = 2 Lattice Block 3.18 7.92 38.1 0.0043 0.0171 3.18 7.92 30.2 0.0068 0.0272 1 0.79 10.0 0.0062 0.0247 2 3.14 10.0 0.0247 0.0987 Octet Truss If / E > n2rA / 4L 2 we expect the member to buckle elastically. The long and short members of the JAMCORP Lattice Block are included in Table IV-4. For these members and the measured properties of aluminum, a, /E, < n2 zrA /4L 2, regardless of the value of n. This suggests that plastic yielding should occur before elastic buckling. The first octet truss entry in Table IV-4 should have interesting properties. Depending on n, the value of n2 A /4L2 falls between 0.006 and 0.025. Depending on the material from which the structure is manufactured, we should see different failure modes. If it were produced from the same aluminum as the JAMCORP material, then ay, / E, < n2 A / 4L2, and we expect failure through plastic yield. If it were produced from nylon, then ay / E > n2 A / 4L2, and we expect failure through elastic buckling. The hypothetical experiment might be carried even farther: we could manufacture the octet truss from materials with intermediate values of or /E, such as bronze, cast iron, and titanium. Then a determination of the initial failure mode could be used to estimate an effective n for the octet truss structure. The second octet truss entry in Table IV-4 represents the material manufactured by N. Fleck. Regardless of n, the value of n 2 zA / 4L 2 falls above that for ay, / E, for all of the materials in Table IV-3 except rubber. This might have been anticipated: the members are short columns, with a length only five times their diameter. Such a structure seems intuitively unlikely to buckle. This discussion also offers a justification for modeling 3D truss structures with truss elements. Typically member lengths are 8 to 12 times the member diameter. For this range, n2 7rA / 4L 2 falls inside [0.0043, 0.096] for n = 1, and inside [0.0171, 0.0386] for n = 2. The members are restrained at the ends, since they are connected to other members, so we expect the effective n to -81 - be larger than 1. Therefore n2.rA /4L 2 will typically be larger than 0y, / Es, so we expect members to undergo plastic yielding before elastic buckling. Truss elements effectively capture plastic yield, so truss models should accurately predict force/displacement curves through elastic deformation and initial yielding. After plastic buckling occurs, however, the truss model can no longer produce reliable results. -82- V. Truss Core Material Description Attaching solid face sheets to a 3D-truss tile produces a high stiffness, lightweight sandwich panel. We call this a truss core material, and a picture of a hypothetical material is shown in Figure V-1. Nathan Wicks and John Hutchinson compared the stiffness of the truss core material to that of honeycomb-core sandwich panels (2000). The results, reproduced in Figure V-2, plot a nondimensional weight as a function of a nondimensional stiffness. The relevant curves are "Sandwich Plate Truss Core" and "Sandwich Plate Honeycomb Core: H, same as Sandwich Plate with Truss Core." A sandwich plate with truss core is slightly heavier than a honeycomb plate with the same thickness and stiffness. However the truss-core plate is close, and offers an alternative to honeycomb-cores. The truss-core also has the advantage of an open structure that permits fluid passage. The traditional method for manufacturing sandwich panels involves producing the core and face sheets separately, then bonding the structure together. For truss core materials, this involves a lengthy process. Making the truss core requires three manufacturing processes: injection molding, manual assembly, and investment casting. Attaching the solid face sheets adds another, distinct, challenge. Although the best attachment procedure has not been determined, possibilities include structural adhesive, diffusion bonding, soldering, or welding. A more direct method might be considered for manufacturing truss core material. The core could be constructed from heavy-gauge wire, then attached directly to the face sheets using a welding process. This concept will be explored in the "Manufacturing" section below. Truss core material produced in this manner will not have truss members on the faces. A picture of the hypothetical material is shown in Figure V-3. Note that the top and bottom faces are solid, and the truss members are present only in the core. -83- Figure V-1. Truss core material made from Lattice Block and face sheets. 0.016 U.J14 F Truss Plate Sandwich Plate Truss Core 0.012 Sandwich Plate Honeycomb Core: Hc same as Sandwich Plate with Truss Core 0.010 W/pl 0.008 0.006 Sandwich Plate Honeycomb Core Hc/1= 0.1 0.004 0.002 - 0.000 0 0.001 0.0005 0.0015 0.002 Figure V-2. Comparison of optimal weights of truss plates, sandwich plates with truss cores, and sandwich plates with honeycomb cores. (reprinted from Wicks and Hutchinson, 2000) Figure V-3. Truss core made from wire core and face sheets. -84- Manufacturing A method for manufacturing truss core material is described schematically in Figure V-4. The core is constructed from metal wire, bent into an alternating, zig-zag pattern. The core is woven together with bent wire running in two directions. The first set of wires runs along the length of the material: it is bent and added to the structure incrementally as production moves along. The second set of bent-wire runs perpendicular to the production direction: each time the material is advanced a step, one new cross-wire must be inserted. Roll of sheet metal Electrodes (for spot-welding) (Finished Material) Truss core /4 Solid face sheets Bent wire rod Process direction Figure V-4. A schematic illustration for producing truss core material. The face sheets are made from sheet metal, which comes off two large rolls. The sheet metal is bent up and away from the wire during the assembly processes. The core and face sheets are attached with spot welding. A spot weld is located at each contact point between the bent-wire and face sheets. The wire-contacts are offset from each other so that each weld incorporates only one wire. Also, one of the spot-welding electrodes has to have an indentation to accommodate the bent, circular wire. Several prototypes were manufactured to test this process. The first prototype, shown in Figure V-5, demonstrates that circular rod can be bent and spot-welded to a flat metal sheet. The second prototype, shown in Figure V-6, demonstrates that two face sheets can be attached to a truss core. The face sheets appear wavy because large bends were necessary to accommodate for the electrodes. The third prototype, shown in Figure V-7, Figure V-8, and Figure V-9, was made with a smaller spot welder, using less severe face-sheet bends, and is more flat. All the prototypes were manufactured manually. The wire was bent using a hammer and a vice, one bend at a time. The structure was laid up by hand and aligned by sight. These prototypes are considered a successful demonstration of feasibility. -85- Figure V-5. The first truss core prototype. Figure V-6. The second truss core prototype. Figure V-7. The third truss core prototype. -86- Figure V-8. The third truss core prototype, side view. Figure V-9. Third truss core prototype: Note weld offsets. Figure V-10. Spot welding electrodes (two pairs). -87- In order to produce reasonable quantities of the truss core material, the process must be improved somewhat. The first consideration is making bent wire for the truss core. Bending wire with a vice and hammer is tedious and error prone. A major improvement would be to bend the wire with a machine. In a true production environment, the wire could be bent continuously during the manufacturing process. However the current goal is to produce only a half-dozen specimens, so the bent wire will be produced with a small, dedicate machine. The wire bending machine is shown in Figure V-11. It uses two specially designed wheels shown in Figure V-12 to bend the wire, alternating between upward- and downward-bends. Additional components include a handle, gears to increase mechanical advantage to 4.5:1, and bearings. The first prototype had gears driving the top wire-bending-wheel only. It was hoped that the top wheel would drive the bottom wheel and feed wire. The machine could produce one downward-bend, but was unable to make upward-bends and feed the wire. By removing the wire and turning it over, it was possible to produce the sample in Figure V-13. Although the machine was designed for 1/8" diameter wire, it produced tighter bends using 3/16" wire. The wire-bending machine was modified to include gearing for the bottom wheel and to better accommodate 1/8" diameter wire. The changes required moving the wheels closer together, necessitating a careful analysis of the wheel geometry. The wheels were modified slightly by adding a chamfer to make the three faces along each tooth, rather than two. Bent-wire produced with the second prototype is shown in Figure V-14. The changes caused the machine to feed wire and produce regular, well-aligned bends. However the bend-shape turned out to be different from that in Figure V-13. The change can be attributed to the chamfer on the bending-wheels: the wheel to wire contact point moved, which adjusted the bend pattern. Future work will focus on manufacturing and testing truss core specimens. The bent wire will be a manually laid-up and spot-welded to sheet metal, forming a truss core beam. The beams will be tested in compressing and bending to determine their mechanical properties. If the mechanical properties prove to be close to those expected for an ideal truss core material, it may be worthwhile to further develop this manufacturing process so it could be used in a production environment. -88- Figure V-11. Photo of wire-bending machine. 5- 5 0 4 -- 24-2 - -2- -2 0 1 -2 2 -1 0 1 Figure V-12. Set of wire bending wheels before and after adding chamfer. -89- 2 40 111 1illlilllllllllllllllllllllilllllllllllllllllllllilljlllllI %%1 00 111,illiiiillilljllllllllllllllllllIIIIIIIIIIIIIIIIIIIIIillllllllI Figure V-13. Bent wire produced with the wire bending machine, prototype one. Figure V-14. Bent wire produced with the wire bending machine, prototype two. -90- VI. Summary Three dimensional truss materials are lightweight, high-stiffness materials that can be used in the core of sandwich panels. Their mechanical properties vary linearly with relative density, which is the theoretical relationship for closed-cell metal foams. However truss materials actually achieve this relationship, because of their regular structure, whereas metal foams fall short of the theoretical prediction. The mechanical properties of truss materials were characterized for the case of an infinite array of material, using a periodic unit cell, and for the case of finite structures. The software package MATLAB was used for linear elastic analysis and to generate structures of arbitrary size. The software package ABAQUS was used for non-linear analysis, including prediction of yield- and failure-stress. Results from the analyses included mechanical property predictions for specific structures and parametric studies elucidating on the effect of a specific variable on the properties. Lattice Block is an orthotropic truss material. It was shown to be stiffer and stronger than Alulight, a metal foam of similar relative density. The specimens of Lattice Block which were actually tested had Young's moduli E.. = 1.15 GPa, Eyy = 4.22 GPa, and Ezz = 1.26 GPa, and peak stresses cy* = 6.50 MPa, cy* = 18.31 MPa, and az* = 9.01 MPa. The studies here characterized the normal moduli and strength, the shear moduli and strength, the magnitude of edge effects, and the defect sensitivity of Lattice Block. Comparison between model results and experimental results indicates that truss models accurately predict elastic response and the yield point. The truss models accurately predict failure behavior for tensile, but not buckling, failure modes. The octet truss material is another three-dimensional truss material. It was also examined using models of a periodic unit cell and finite structures. Investigations focused on the Young's moduli, the shear moduli, and the significance of edge effects. The x-, y-, and z-direction moduli of octet truss material fall closer together than for Lattice Block, meaning the material behaves in more isotropic manner. Using the Euler buckling equation, the relationship between the active failure mode and the member geometry and solid properties was demonstrated. Truss core material, a sandwich structure with a truss core and solid face sheets, is an ideal application for three-dimensional truss materials. This structure is almost as light as a honeycomb-core sandwich panel and has the additional benefit of an open space for fluid passage. Proposed here is a novel manufacturing technique for truss core material, incorporating -- 91 - sheet metal, metal wire, and spot welding. Three prototypes were produced to validate the feasibility of this approach. Investigation into improving the process has already begun, and certainly there is an opportunity for refinement and speed improvements. Several conclusions can be drawn from this work. We have demonstrated that truss-element modeling captures the elastic and yield behavior of three-dimensional truss materials. However the failure mode can be either tensile fracture or compressive plastic buckling, the latter of which is not well described with truss elements. It was shown that truss materials obey the expected linear relationship between mechanical properties and relative density. Correctly modeling geometric details such as the inner strut offset was shown to significantly improve the accuracy of model results. Finally, modeling complete (finite) structures allows us to understand subtle material characteristics such as edge effects. Future work might focus on heavily on the truss core material. Such work should begin by developing a manufacturing process such as the one proposed here. If such a process were worked out fairly well, it would then be important to characterize the mechanical properties of the truss core material. Interesting properties include the elastic and failure response in compression, shear, and bending. Also investigation of the defect sensitivity, especially in regard to manufacturing-induced defects, would probably be worthwhile. Finally, it might be useful to find a promising application for the truss core material and do an engineering case study. Possible applications include an aircraft deck, a car door panel, and a skateboard or snowboard. -92 - VII. References ABAQUS Manual Version 5.8. Hibbitt, Karlsson and Sorenson, Inc. Pawtucket, RI. Aluminum and Aluminum Alloys. J. R. Davis Ed. ASM Specialty Handbook. Menlo Park: ASM International, 1996. Andrews, E., Sanders, W. and Gibson, L.J. (1999) Compressive and Tensile Behaviour of Aluminum Foams. Mat. Sci. and Eng. A270, 113-124. ASTM Standard C273-94. Standard Test Method for Shear Properties of Sandwich Core Materials. American Society for Testing and Materials, 1994. Bart-Smith, H., Bastawros, A.-F., Mumm, D.R., Evans, A.G., Sypeck, D.J. and Wadley, H.N.G (1999) Compressive deformation and yielding mechanisms in cellular Al alloys determined using X-ray tomography and surface strain mapping. Gere, J. M. and S. Timoshenko. Mechanics of Materials.Boston: PWS-Kent Publishing Co., 1990. Gibson L. J. and Ashby M. F. CellularSolids: Structure and Properties,2 "d Ed. Cambridge, UK: Cambridge University Press, 1997. MATLAB Manual Version 5. The MathWorks, Inc., Natick, MA. Nye, J. F. Physical Propertiesof Crystals: Their Representationby Tensors and Matrices.New York: Oxford University Press, 1960. POV-Ray rendering engine for Windows, Version 3. 1a. Freeware, available at http://www.povray.org. Simone, A E. Gibson, L J. Aluminum Foams Producedby Liquid-State Processes.Acta Materialia. v 46 n 9 May 22 1998. p 3109-3123 Weaver, W. Jr. and J. Gere. Matrix Analysis of Framed Structures. 3rd Ed. New York: Van Nostrand Reinhold, 1990. Wicks, N. and Hutchinson, J. W. Optimal Truss Plates. 2000, unpublished paper. -93 - VIII. Appendix A. MATLAB script to create the Lattice Block unit cell (unit cell.m) % unit cell.m % Create Lattice Block periodic unit cell % Environment parameter defaults if -exist('t','var') t = 0.125; if -exist('a','var') a = 1.5; if -exist('b','var') b = 1.5; if -exist('c','var') c = 0.925; end end % length in x-direction end % length cell in y-direction end % height in z-direction % Cross section area Ax = pi*t^2/4; % Joint Information % Joint I x-pos y-pos z-pos Joints =[ 1, 0 0 2, .5*a 0 3, a 0 4, 0 .5*b 5, a .5*b 6, 0 b 7, .5*a b 8, a b 9, 0 0 10, .5*a 0 11, a 0 12, .5*a .5*b 13, 0 b 14, .5*a b 15, a b nj = size(Joints,1); % Member j-joint Members = 1, 2 2, 2 3, 5 4, 4 5, 4 0; 0; 0; 0; 0; 0; 0; 0; c; c; c; c; c; c; c;]; k -joint 4 5 7 7 6 6, 1 4 7, 2 7 8, 5 8 9, 3 5 10, 9 12 11, 10 12 12, 11 12 13, 12 13 14, 12 14 15, 12 15 16, 2 12 17, 4 12 18, 5 12 19, 7 12 20, 2 9 21, 2 11 22, 5 11 23, 5 15 24, 7 15 25, 7 13 26, 4 13 27, 4 9 28, 9 13 29, 11 15 m = size(Members,1); area Ax; Ax; Ax; Ax; .5*Ax; .5*Ax; Ax; % Lower surface .5*Ax; .5*Ax; Ax; Ax; Ax; Ax; Ax; Ax; Ax; Ax; Ax; Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; % Upper surface % Vertically diagonal % Upper surface, contd -94 - B. MATLAB script to generate finite Lattice Block structures (frame.m) % * *E. * * Environment parameters -- Unit cell dimensions: a, b, c, t %* %* %* Output variables --** % *** * Joint information matrix: Joints {#, x, y, z} Member information matrix: Members {#, j, k, Ax} ** * ***************** ******* *** % Environment parameter defaults if -exist('t','var') t if -exist('a','var') a if -exist('b','var') b if -exist('c','var') c if -exist('d','var') d if -exist('cellx','var') if -exist('celly','var') % Generate structure % Unit cell: Joints % Joints that appear in each % Joint# x y z Jec = [ 1, 0 0; % a 2, 0 b 0; 0 0 3, c; % a b c; 4, a 0 d; 5, % 6, 0 b d; 0 0 c-d; 7, % a 8, b c-d; 1; % Joints on back edge (.J be) Jbe = 0 2*b 1, 0; % a 2, 2*b 0; 0 2*b c; 3, % a 2*b c; 4, a 2*b 5, % d; 6, 0 2*b c-d; ]; % Joints on right edge Jre) Jre **** * * **************** 0.125; 0.75; 0.75; 0.925; 0.10; end end end end end cellx = 3; celly = 2; end end % % % % half-length in x-direction half-length cell in y-direction height in z-direction vertical offset for inner struts % # of cells along x-dir % # of cells along y-dir cell (Jec) bottom top bottom, inner strut top, inner strut bottom top bottom, inner strut % top, inner strut = 1, 2, 3, 4, % Joints Jfe = 1, 2, % Joints Jbc = 1, 2, 3, % Joints Jfc = 1, 2*a b 0; % 2*a 0 c; % 2*a b d; % 2*a 0 c-d; ]; % on front edge (Jfe) bottom top bottom, inner strut top, inner strut 0 0; % bottom 0 a 0 c;]; % top on back-right corner (Jbc) 2*a 2*b % bottom 0; 2*a 2*b c; % top 2*a 2*b c-d; ]; % top, inner strut on front-right corner (Jfc) 2*a 0 0;]; % bottom % Create joints jointsrepxy = cellx*celly*size(Jec,l); jointsrepx = cellx* (size(Jbe,1) + size(Jfe,1)); jointsrepy = celly*size(Jre,l); joints-norep = size(Jbc,l) + size(Jfc,l); nj = jointsrepxy + jointsrepx + joints_repy + joints-norep; Joints = zeros(nj,4); -95 - j = 1; for curx = l:cellx for cury = 1:celly k = j % each cell + (size(Jec,l)-l); Joints(j:k,l) = (j:k)'; % Number and translate Joints(j:k,2) = Jec(:,2) + (curx-l)*(2*a); % x-coord Joints(j:k,3) = Jec(:,3) + (cury-l)*(2*b); % y-coord Joints(j:k,4) = Jec(:,4); % z-coord j = j + size(Jec,l); end end for curx = 1:cellx % back edge cury = celly; k = j + (size(Jbe,l)-l); Joints(j:k,l) = (j:k)'; % Number and translate Joints(j:k,2) = Jbe(:,2) + (curx-l)*(2*a); % x Joints(j:k,3) = Jbe(:,3) + (cury-l)*(2*b); % y Joints(j:k,4) = Jbe(:,4); % z j = j + size(Jbe,l); end for cury = 1:celly % right edge curx = cellx; k = j + (size(Jre,l)-l); Joints(j:k,l) = (j:k)'; % Number and translate Joints(j:k,2) = Jre(:,2) + (curx-l)*(2*a); % x Joints(j:k,3) = Jre(:,3) + (cury-l)*(2*b); % y Joints(j:k,4) = Jre(:,4); % z j = j + size(Jre,1); end for curx = 1:cellx % front edge cury = 1; k = j + (size(Jfe,l)-l); Joints(j:k,l) = (j:k)'; % Number and translate Joints(j:k,2) = Jfe(:,2) + (curx-l)*(2*a); % x Joints(j:k,3) = Jfe(:,3) + (cury-l)*(2*b); % y Joints(j:k,4) = Jfe(:,4); % z j = j + size(Jfe,l); end for i=1; % front-right corner curx = cellx; cury = 1; k = j + (size(Jfc,l)-l); Joints(j:k,l) = (j:k)'; % Number and translate Joints(j:k,2) = Jfc(:,2) + (curx-l)*(2*a); % x Joints(j:k,3) = Jfc(:,3) + (cury-l)*(2*b); % y Joints(j:k,4) = Jfc(:,4); % z j = j + size(Jfc,l); end for i=1; % back-right corner curx = cellx; cury = celly; k = j + (size(Jbc,l)-l); Joints(j:k,l) = (j:k)'; Joints(j:k,2) = Jbc(:,2) % Number and translate + (curx-l)*(2*a); % x Joints(j:k,3) = Jbc(:,3) + (cury-l)*(2*b); % y Joints(j:k,4) = Jbc(:,4); % z j = j + size(Jbc); end % Unit Cell: Members % Members that appear in each unit cell (Mec) % Member | x1 yl zl x2 y2 z2 Mec = 1, 2, 3, 4, 5, 6, 7, 8, [ 0 0 0 a a a 0 0 b b b 0 0 2*b 0 0 0 0 0 0 0 0 c c 0 a a a 2*a 2*a 0 a 3*b 0 2*b 2*b b b 2*b b 0; 0; 0; 0; 0; 0; c; c; % bottom % top -96- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 % Members Mbr = 1, 2, 3, 4, 5, 6, % 7, % 8, 9, 10, 11, 12, 13, 14, % 15, % 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, % Members Mfe = 1, % 2, % 3, 4, % 5, % 6, ; % Members % Members Mre = [ 1, 2, 3, 4, % Members Mrf = [ 1, % Members Mrb = 0 2*b c a b c a b c a b c 0 0 c-d 0 b d 0 0 c-d 0 b d a 0 d a b c-d a b c-d a 0 d in back row (Mbr) O O O b b b a 0 a 0 a 2*b 0 2*b a 2*b 0 0 2*b a b a b a b 0 2*b a 2*b 0 b 0 b 0 b 0 a b a 2*b at 2*b 0 at front 0 0 a a 0 a 0 0 0 0 0 0 0 2*b 0 2*b 2*b b b 2*b 2*b 2*b b b 2*b 0 2*b 2*b 2*b b 2*b 0 b 2*b b b 2*b 2*b 0 0; % bottom 0; 0; 0; 0; 0; 0; 0; c; % top c; c; c; c; c; c; c; d; % Semi-vertical c-d; d; c-d; d; c-d; d; d; c-d; c-d; 0 a a a 2*a 2*a a 2*a 0 c c a c a a c c 2*a c 2*a c a c 2*a c-d 0 d 0 c-d a d a c-d a a d c-d 2*a c-d a d 2*a d 2*a eedge (Mfe) 0 0 0 0 c 0 0 d; % Semi-vertical c-d; d; c-d; c-d; d; d; c-d;]; 0 0 0 0 0 a b a 3*b 2*a 0 2*a 2*b 0 b 0 2*b a 0 a b a b a 2*b 2*a b 2*a 0 c c a 2*a a a 2*a b 0 0 b 0 0 c; c; c; c; 0; % bottom 0; 0; c; % top c; c; at left edge: Nothing additional at right edge: 2*a b 0 2*a 3*b 0; 2*a 0 c 2*a 2*b c; 2*a 0 c-d 2*a b d; 2*a b d 2*a 2*b c-d; at right-front corner (Mrf) 2*a 0 0 2*a b at right-back corner (Mrb) % bottom % top % Semi-vertical 1; 0;]; % bottom [ 1, 2*a b 0 2*a 2*b 0; % bottom 2, 2*a 0 c 2*a 2*b c; % top 3, 2*a 0 c-d 2*a b d; % semi-vertical 4, 2*a b d 2*a 2*b c-d; ]; % Create members members-rep-x = cellx*(size(Mfe,l) + size(Mbr,l)); members-repy = (celly-l)*(size(Mre,l)); members-repxy = cellx*(celly-l)*(size(Mec,l)); members-no-rep = size(Mrf,l) + size(Mrb,l); nm = membersrepx+members-rep-y+membersrep xy+members-norep; -97 - Members m = =z eros(nm,4); 0; for curx = L:cellx % each cell, except if (cell y>1) for c ury = 1:(celly-1) fo i = 1:size(Mec,l) ix = Mec(i,2) + (curx-l)*(2*a); jy = Mec(i,3) + (cury-1)*(2*b); jz = Mec(i,4); kx = Mec(i,5) + ky = Mec(i,6) + kz = Mec(i,7); Members(i+m,l) = Members(i+m,2) = Members(i+m,3) = back row % j-joint, x- position % j-joint, y- position % j-joint, z-position (curx-l)*(2*a);, % k-joint, x- position (cury-1)*(2*b); % k-joint, y- position % k-joint, z- position i+m; find-joint(Joints,jx,jy,jz); find-joint(Joints,kx,ky,kz); end m = m + size(Mec,l); end end end for curx = l:cellx % back row cury = celly; for i =1:size(Mbr,l) ix = Mbr(i,2) + (curx-l)*(2*a); % j-joint, x- position jy = Mbr(i,3) + (cury-l)*(2*b); % j-joint, y- position jz = Mbr(i,4); % j-joint, z-position kx = Mbr(i,5) + (curx-l)*(2*a); % k-joint, x- position ky = Mbr(i,6) + (cury-l)*(2*b); % k-joint, y- position kz = Mbr(i,7); % k-joint, z-position Members(i+m,l) = i+m; Members(i+m,2) = find-joint(Joints,jx,jy,jz); Members(i+m,3) = find-joint(Joints,kx,ky,kz); end m = m+size(Mbr,l); end for curx = 1:cellx % front edge cury = 1; for i = 1:size(Mfe,l) jx = Mfe(i,2) + (curx-l)*(2*a); j-joint, X- position jy = Mfe(i,3) + (cury-l)*(2*b); j-joint, y- position jz = Mfe(i,4); j-joint, Z- position kx = Mfe(i,5) + (curx-l)*(2*a); k-joint, x- position ky = Mfe(i,6) + (cury-l)*(2*b); k-joint, y- position kz = Mfe(i,7); k-joint, Z- position Members(i+m,l) = m+i; Members(i+m,2) = findjoint(Joi nts,jx,jy,jz); Members(i+m,3) = find-joint(Joi nts,kx,ky,kz); end m = m+size(Mfe,l); end % left edge: no additional members if (celly>1) for cury = 1:(celly-1) % right edge curx = cellx; for i = 1:size(Mre,l) jx = Mre(i,2) + (curx-l)*(2*a); % j-joint, x-position jy = Mre(i,3) + (cury-l)*(2*b); % j-joint, y-position jz = Mre(i,4); % j-joint, z-position kx = Mre(i,5) + (curx-l)*(2*a); % k-joint, x-position ky = Mre(i,6) + (cury-1)*(2*b); % k-joint, y-position kz = Mre(i,7); % k-joint, z-position Members(i+m,l) = m+i; Members(i+m,2) = find joint(Joints,jx,jy,jz); Members(i+m,3) = findjoint(Joints,kx,ky,kz); end m = m+size(Mre,l); end end curx = cellx; % Corners: right-front cury = 1; for i = 1:size(Mrf,l) -98- ix = Mrf(i,2) + jy = Mrf(i,3) + jz = Mrf(i,4); kx = Mrf(i,5) + ky = Mrf(i,6) + kz = Mrf(i,7); Members(i+m,1) = Members(i+m,2) = Members(i+m,3) = end (curx-l)*(2*a); % j-joint, x-position (cury-l)*(2*b); % j-joint, y-position % j-joint, z-position (curx-l)*(2*a); % k-joint, x-position (cury-l)*(2*b); % k-joint, y-position % k-joint, z-position m+i; find-joint(Joints,jx,jy,jz); find-joint(Joints,kx,ky,kz); m = m+size(Mrf,1); curx = cellx; cury = celly; % Corners: right-back for i = 1:size(Mrb,1) ix = Mrb(i,2) + (curx-1)*(2*a); % j-joint, x-position jy = Mrb(i,3) + (cury-1)*(2*b); % j-joint, y-position jz = Mrb(i,4); % j-joint, z-position kx = Mrb(i,5) + (curx-1)*(2*a); % k-joint, x-position ky = Mrb(i,6) + (cury-l)*(2*b); % k-joint, y-position kz = Mrb(i,7); % k-joint, z-position Members(i+m,1) = m+i; Members(i+m,2) = findjoint(Joints,jx,jy,jz); Members(i+m,3) = find-joint(Joints,kx,ky,kz); end m = m+size(Mrb,1); % Check if members are the same for i=l:m for j = i:m if (Members(i,2)==Members(j,2))&(Members(i,3)==Members(j,3) )&(i-=j) fprintf(1,'Members %d and %d are the same\n',i,j); elseif (Members(i,2)==Members(j,3))&(Members(i,3)==Members(j,2) )&(i-=j) fprintf(1,'Members %d and %d are the same\n',i,j); end end end % Add member areas Ax = pi*t^2/4; Members(:,4) = Ax; % Change variable names nj = size(Joints,l); m = size(Members,l); JI = zeros(nj,7); MI = Members; JI(:,1:4) = Joints; -99- C. MATLAB truss solver (solvetruss_link.m) % SOLVETRUSSLINK.M * % * Solve linear elastic truss problem % * with improved support for linked joints a * * * * Environment parameters * ---- Young's Modulus: E Joint information matrix: JI {#, x, y, z, xc, yc, zc} Member information matrix: MI {#, j, k, Ax} -- Restrained joint displacements: RJD {#, xd, yd, zd} Linked joint information matrix: LJI {#, #px, #py, #pz} Actions applied at joints: AAJ {#, ax, ay, az} --- Output variables -Member information for stiffness: MIS {#, -Global stiffness matrix: Sj {3nj x 3nj} -Displacements at each joint: Dj --- L, Cx, Cy, Cz} Actions at each joint: Aj Member end actions: Am4 % Environment parameters: check to make sure they exist if -exist('JI','var') disp('ERROR: "JI" not defined'); end if -exist('MI','var') disp('ERROR: "MI" not defined'); end if -exist('RJD','var') disp('ERROR: "RJD" not defined'); end if -exist('LJI','var') disp('ERROR: "LJI" not defined'); end if -exist('AAJ','var') disp('ERROR: "AAJ" not defined'); end nj = size(JI,1); m = size(MI,l); % Setup and solve the truss problem % Member information for stiffness: MIS % col. 1) Member Number % col. 2) Length % col. 3) Direction cosine Cx % col. 4) Direction cosine Cy % col. 5) Direction cosine Cz MIS = zeros(m,5); for i = 1:m jx = JI(MI(i,2),2); kx = JI(MI(i,3),2); % joint jy = JI(MI(i,2),3); ky = JI(MI(i,3),3); jz = JI(MI(i,2),4); kz = JI(MI(i,3),4); dx = kx-jx; dy = ky-jy; dz = kz-jz; L = sqrt(dx^ 2 + dyA2 + dzA2); Cx = dx/L; Cy = dy/L; Cz = dz/L; MIS(i,1) = i; % Col. MIS(i,2) = L; % Col. MIS(i,3) = Cx; MIS(i,4) = Cy; MIS(i,5) = Cz; % Col. end % Stiffness matrix Sj Sj = zeros(3*nj); for i = 1:m A = MI(i,4); dat a 1 2 3-5 % Member prop erties L = MIS(i,2); Cx=MIS(i,3); Cy=MIS(i,4); Cz=MIS(i,5); Smjj = (E*A/L)*[ Cz*Cx; Cy*Cx CxA2 Cx*Cy CyA2 Cx*Cz Cy*Cz Smjk = -1*Smjj; Cz*Cy; Cz^2; % Member stif fness 1; Smkj = -1*Smjj; Smkk = Smjj; -- 100- j MI(i, 2); j = 3*j-2; k1 j2 3*j-1; k2 j3 3*j; k3 Sj (jl:j3,jl:j3) = Sj(j 1:j3, kl:k3) = Sj(kl:k3,jl:j3) = Sj(kl:k3,kl:k3) = % Joint numbers k = MI(i,3); = 3*k-2; = 3*k-1; = 3*k; Sj (jl:j3,jl:j3) Sj(jl:j3,kl:k3) Sj(kl:k3,jl:j3) Sj(kl:k3,kl:k3) + + + + Smjj; % Joint stiffness Smj k; Smkj; Smkk; end % Joint information rearrangement: JIR % col. 1) Joint Number % col. 2) Indexes for all possible displacements % col. 3) Joint Restraint List % col. 4) Cumulative restraint list % col. 5) Cumulative linked list % col. 6) Revised displacement indexes JIR = zeros(3*nj,6); for j = l:nj j1 = 3*j-2; j2 = 3*j-1; JIR(jl,1) = j; JIR(j2,1) = j; JIR(j3,1) = j; JIR(jl,2) = j1; j3 = 3*j; % Col.1 - joint numb er % Col.2 - displacement index JIR(j2,2) = j2; JIR(j3,2) = j3; JIR(jl,3) = JI(j,5); % Col.3 - free/rest/link JIR(j2,3) = JI(j,6); % JIR(j3,3) = JI(j,7); % for ji= [jl,j2,j3] frl = JIR(ji,3); if (ji==l) if % Cumulative lists % first line % jl is restrained % j1 is linked (frl==l) JIR(ji,4)=1; elseif (frl==-l) JIR(ji,5)=l; end else if x y z (frl==l) JIR(ji,4)=JIR(ji-1,4)+1; % other lines % ji is restrained else JIR(ji,4)=JIR(ji-1,4); end if (frl==-l) JIR(ji,5)=JIR(ji-1,5)+1; % ji is linked else JIR(ji,5) = JIR(ji-1,5); end end end end nres = JIR(3*nj,4); nlnk = JIR(3*nj,5); ndof = 3*nj - (nres+nlnk); % New displacement indices for i = 1:3*nj oldindex=JIR(i,2); Cr=JIR(i,4); Cl=JIR(i,5); newindex=oldindex-(Cr+Cl); if (JIR(i,3)==O) elseif(JIR(i,3)==l) newindex=Cr+ndof; elseif(JIR(i,3)==-l) newindex=Cl+ndof+nres; end JIR(i,6) = new-index; end % Rearrange stiffness matrix Sjratemp = zeros(3*nj); Sjra = zeros(3*nj); for i=1:3*nj % rows oldindex = i; newindex = JIR(oldjindex,6); Sjratemp(newjindex,:) = Sj(oldjindex,:); end for i=1:3*nj % columns oldindex = i; new_index = JIR(old-index,6); Sjra (:,new-index) = Sjra-temp(: ,old-index); end -101- % free % restrained % linked % Partition stiffness matrix fmin = 1; fmax = ndof; rmin = ndof+i; rmax = ndof+nres; lmin = ndof+nres+i; imax = 3*nj; Sff = Sjra(fmin:fmax,fmin:fmax); Sfr = Sjra(fmin:fmax,rmin:rmax); Sf1 = Sjra(fmin:fmax,imin:lmax); Srf = Sjra(rmin:rmax,fmin:fmax); Srr = Sjra(rmin:rmax,rmin:rmax); Srl = Sjra(rmin:rmax,imin:lmax); Slf = Sjra(lmin:lmax,fmin:fmax); Slr = Sjra(lmin:lmax,rmin:rmax); Sii = Sjra(lmin:lmax,imin:lmax); % Link Matrix: LM LM = zeros(nlnk,3*nj); for j=:nj ji = 3*j-2; j2 = 3*j-1; j3 = 3*j; if (JIR(jl,3)==-i) % x-dir lrow = JIR(ji,5); parentjoint = LJI(j,2); parent_.disp-old = parent_joint*3-2; parentdisp-new = JIR(parent_disp_old, 6); lcol = parent-dispnew; LM(lrow,lcol) = 1; end if (JIR(j2,3)==-i) % y-dir lrow = JIR(j2,5); parent_joint = LJI(j,3); parent_.disp-old = parentjoint*3-1; parentdispnew = JIR(parentdisp_old,6); lcol = parent.disp-new; LM(lrow,lcol) = 1; end if (JIR(j3,3)==-i) % z-dir = JIR(j3,5); parentjoint = LJI(j,4); lrow parent-disp_old = parentjoint*3; parent-dispnew = JIR(parentdisp_old,6); lcol = parent_dispnew; LM(lrow,lcol) = 1; end end Lf = LM(:,fmin:fmax); Lr = LM(:,rmin:rmax); Ll = LM(:,lmin:lmax); % Actions applied at joints Aj = zeros(3*nj,i); for j=l:nj ji = 3*j-2; j2 = 3*j-1; j3 = 3*j; Aj(jl) = AAJ(j,2); Aj(j2) = AAJ(j,3); Aj(j3) = AAJ(j,4); end % Displacements at restrained joints Dr = zeros(nres,i); for j=:nj ji = 3*j-2; j2 = 3*j-1; j3 = 3*j; if (JIR(ji,3)==i) % x-dir j1inew = JIR(jl,6); Dr(jlnew-ndof) = RJD(j,2); end if (JIR(j2,3)==) % y-dir j2_new = JIR(j2,6); Dr(j2_new-ndof) = RJD(j,3); -102- end if (JIR(j3,3)==1) j3_new = JIR(j3,6); Dr(j3_new-ndof) = RJD(j,4); end % z-dir end % Combined load vector Ac = Aj; % Rearrange Ac Acra = zeros(3*nj,1); for i=1:3*nj old_index = i; new_index = JIR(old-index,6); Acra(new_index) = Ac(old_index); end % Loads (combined) associated with displacements Afc = Acra(fmin:fmax); Arc = Acra(rmin:rmax); Alc = Acra(lmin:lmax); % % % % % % % Solve for displacements if (rank(Sff+Sfl*Lf)<ndof) disp('Singular stiffness matrix, displacements set to zero'); Df = zeros(ndof,l); else Df = inv(Sff+Sfl*Lf)*(Afc-Sfr*Dr-Sfl*Lr*Dr); end % Solve for displacements A_soln = Sff + Lf'*Slf + Sfl*Lf + Lf'*Sll*Lf; b_soln = Afc + Lf'*Alc - (Sfr + Lf'*Slr + Sfl*Lr + Lf'*Sll*Lr)*Dr; x_soln = inv(Asoln)*bsoln; Df = x-soln; Dl = [Lf Lr]*[Df; Dr]; % Joint displacements using old joint numbers Dj = zeros(3*nj,l); for i=1:3*nj if (JIR(i,3)==1) Dj(i) = Dr(JIR(i,4)); end if (JIR(i,3)==0) Dj(i) = Df(JIR(i,6)); end if (JIR(i,3)==-1) Dj(i) = Dl(JIR(i,5)); end end % restrained % free % linked % Reactions added to Aj Af = -1*Afc + Sff*Df + Sfr*Dr + Sfl*Dl; Ar = -1*Arc + Srf*Df + Srr*Dr + Srl*Dl; Al = Slf*Df + Slr*Dr + Sll*Dl; for i=1:3*nj oldindex = i; if (JIR(i,3)==1) restindex = JIR(i,4); Aj(oldjindex) = Ar(rest-index); elseif (JIR(i,3)==O) freeindex = JIR(i,6); Aj(oldjindex) = Af(free index); elseif (JIR(i,3)==-1) % map reactions at linked nodes back to parents linkindex = JIR(i,5); jointnum = ceil(i/3); jointdir = i - (joint_num-l)*3; parent-num = LJI(jointnum,joint_dir+l); parentindex = 3*(parentnum-1) + jointIdir; Aj(parent_index) = Aj(parent-index)+Al(linkjindex); end end % Member end actions -103- % Tensile force on members: Am4 Am4 = zeros(m, 1); for i=1:m A = MI(i,4); L = MIS(i,2); Cx=MIS(i,3); Cy=MIS(i,4); Cz=MIS(i,5); j MI(i,2); k = MI(i,3); 1= 3*j-2; k1 = 3*k-2; j2 3*j-1; k2 = 3*k-1; j3 3*j; k3 = 3*k; dx = Dj(jl) - Dj(kl); dy = Dj(j2) % Member properties % Joint numbers % displacements - Dj(k2); dz = Dj(j3) - Dj(k3); Am4(i) = -1*(E*A/L)*(dx*Cx + dy*Cy + dz*Cz); End -104- D. ABAQUS input file for a three cell by two cell Lattice Block structure *HEADING cellx=3, celly=2, d=0.100000 *PREPRINT, ECHO=NO, MODEL=NO, HISTORY=NO ** **Nodal coordinates *NODE 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 017, 018, 019, 020, 021, 022, 023, 0.75, 0, 0, 0.75, 0.75, 0, 0, 0.75, 0.75, 0, 0, 0.75, 0.75, 0, 0, 0.75, 2.25, 1.5, 1.5, 2.25, 2.25, 1.5, 1.5, 024, 2.25, 025, 2.25, 026, 1.5, 027, 028, 029, 030, 031, 032, 033, 034, 035, 036, 037, 038, 039, 040, 1.5, 2.25, 2.25, 1.5, 1.5, 2.25, 3.75, 3, 3, 3.75, 3.75, 3, 3, 3.75, 041, 3.75, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, 052, 053, 054, 055, 056, 057, 058, 059, 060, 3, 3, 3.75, 3.75, 3, 3, 3.75, 0, 0.75, 0, 0.75, 0.75, 0, 1.5, 2.25, 1.5, 2.25, 2.25, 1.5, 0, 0.75, 0, 0.75, 0, 0.75, 0, 0.75, 1.5, 2.25, 1.5, 2.25, 1.5, 2.25, 1.5, 2.25, 0, 0.75, 0, 0.75, 0, 0.75, 0, 0.75, 1.5, 2.25, 1.5, 2.25, 1.5, 2.25, 1.5, 2.25, 0, 0.75, 0, 0.75, 0, 0.75, 0, 0.75, 1.5, 2.25, 1.5, 2.25, 1.5, 2.25, 1.5, 2.25, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 0 0.925 0.925 0.1 0.1 0.825 0.825 0 0 0.925 0.925 0.1 0.1 0.825 0.825 0 0 0.925 0.925 0.1 0.1 0.825 0.825 0 0 0.925 0.925 0.1 0.1 0.825 0.825 0 0 0.925 0.925 0.1 0.1 0.825 0.825 0 0 0.925 0.925 0.1 0.1 0.825 0.825 0 0 0.925 0.925 0.1 0.825 0 0 0.925 0.925 0.1 0.825 -105- 061, 062, 063, 064, 065, 066, 067, 068, 069, 070, 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, ** 3, 3.75, 3, 3.75, 3.75, 3, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 4.5, 4.5, 4.5, 3, 3, 3, 3, 3, 3, 0.75, 0, 0.75, 0, 2.25, 1.5, 2.25, 1.5, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0 0 0.925 0.925 0.1 0.825 0 0.925 0.1 0.825 0 0.925 0.1 0.825 0 0.925 0 0.925 0 0.925 0 0 0.925 0.825 Element definitions ** *ELEMENT, ELSET=EL, TYPE=T3D2 001, 2, 10 002, 2, 1 003, 2, 9 004, 1, 9 005, 1, 18 006, 9, 18 007, 3, 11 008, 3, 4 009, 11, 4 010, 4, 12 011, 4, 19 4, 27 012, 013, 7, 6 014, 6, 15 015, 7, 5 016, 6, 8 017, 5, 8 018, 8, 13 019, 8, 22 020, 5, 23 021, 18, 26 022, 18, 17 023, 18, 25 024, 17, 25 025, 17, 34 026, 25, 34 027, 19, 27 028, 19, 20 029, 27, 20 030, 20, 28 031, 20, 35 032, 20, 43 033, 23, 22 034, 22, 31 035, 23, 21 036, 22, 24 037, 21, 24 038, 24, 29 039, 24, 38 040, 21, 39 041, 34, 42 042, 34, 33 043, 34, 41 -106- 044, 045, 046, 047, 048, 049, 050, 051, 052, 053, 054, 055, 056, 057, 058, 059, 060, 061, 062, 063, 064, 065, 066, 067, 068, 069, 070, 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, 093, 094, 095, 096, 097, 098, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 33, 33, 41, 35, 35, 43, 36, 36, 36, 39, 38, 39, 38, 37, 40, 40, 37, 10, 10, 10, 9, 9, 50, 11, 11, 51, 12, 12, 12, 15, 14, 15, 14, 16, 13, 16, 54, 53, 26, 26, 26, 25, 25, 56, 27, 27, 57, 28, 28, 28, 31, 30, 31, 30, 32, 29, 32, 60, 59, 29, 42, 42, 42, 41, 41, 62, 43, 43, 63, 44, 44, 41 67 67 43 36 36 44 68 72 38 47 37 40 40 45 69 70 49 9 50 50 26 26 51 12 12 52 27 57 14 54 13 16 53 16 30 53 60 55 25 56 56 42 42 57 28 28 58 43 63 30 60 29 32 59 32 46 59 66 47 61 41 62 62 71 71 63 44 44 64 72 -107- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, ** 44, 47, 46, 47, 46, 48, 45, 48, 66, 65, 45, 75, 76, 77, 78, 79, 80, 67, 68, 70, 69, 81, 71, 72, 74, 73, 83 46 66 45 48 65 48 73 65 84 74 2 4 18 20 34 36 71 72 69 74 67 82 83 73 84 *Define cross section *SOLID SECTION, MATERIAL=ALUM, ELSET=EL 0.0122718, *MATERIAL, NAME=ALUM *ELASTIC le+007, 0.3 *PLASTIC, HARDENING=ISOTROPIC 26000, 0 26054, 0.0001 28971, 0.0005 31157, 0.0012 32766, 0.0021 34041, 0.0032 34797, 0.0044 35395, 0.0059 35973, 0.0073 36341, 0.0089 1000, 0.009 100, 0.0091 10, 0.0092 1, 0.0093 *NSET, NSET=TOP 004, 011, 012, 019, 020, 027, 064, 068, 072, 076, 078, 080, *NSET, NSET=BOT 002, 009, 010, 017, 018, 025, 062, 067, 071, 075, 077, 079, *NSET, NSET=MSTR 003, 001 *NSET, NSET=TOPMS 003 *MPC PIN, 005, 001 PIN, 006, 002 PIN, 007, 003 PIN, 008, 004 PIN, 013, 009 PIN, 014, 010 PIN, 015, 011 PIN, 016, 012 PIN, 021, 017 PIN, 022, 018 PIN, 023, 019 028, 035, 036, 043, 044, 051, 052, 057, 058, 063 083 026, 033, 034, 041, 042, 049, 050, 055, 056, 061 081, 082 -108- PIN, 024, 020 PIN, 029, 025 PIN, 030, 026 PIN, 031, 027 PIN, 032, 028 PIN, 037, 033 PIN, 038, 034 PIN, 039, 035 PIN, 040, 036 PIN, 045, 041 PIN, 046, 042 PIN, 047, 043 PIN, 048, 044 PIN, 053, 050 PIN, 054, 051 PIN, 059, 056 PIN, 060, 057 PIN, 065, 062 PIN, 066, 063 PIN, 069, 067 PIN, 070, 068 PIN, 073, 071 PIN, 074, 072 PIN, 084, 083 *EQUATION 2 TOP, 3, 1.0, 003, 2 BOT, 3, 1.0, 001, 2 049, 1, 1.0, 050, 2 052, 1, 1.0, 012, 2 055, 1, 1.0, 050, 2 058, 1, 1.0, 028, 2 061, 1, 1.0, 056, 2 064, 1, 1.0, 044, 2 075, 1, 1.0, 001, 2 076, 1, 1.0, 004, 2 077, 1, 1.0, 001, 2 078, 1, 1.0, 020, 2 079, 1, 1.0, 017, 2 080, 1, 1.0, 036, 2 081, 1, 1.0, 033, 2 082, 1, 1.0, 062, ** 3, -1.0 3, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 1, -1.0 Loading step ** *STEP, NLGEOM = YES, INC=50 *STATIC, STABILIZE 0.01, 1, le-6, 0.01 *BOUNDARY 001, 1,3, 0 002, 1,, 0 003, 3,, -0.1 *NODE FILE, NSET=MSTR U, RF *EL PRINT, FREQUENCY=0 *NODE PRINT, FREQUENCY=0 -109- *EL FILE, FREQUENCY=Q **RESTART, WRITE *END STEP -110- E. MATLAB script to convert MATLAB models to ABAQUS input files (abaqus.m) % abaqus.m % Translate model to abaqus input file % -Filename and description: ab job %-- % Model description: JI, MI, LJI, RJD Output: file <ab-job>.inp if -exist('mat-fname','var') mat-fname='matprop.txt'; end if -exist('ab-job','var') ab_job = 'default'; end filename = [output-path '\' abjob '.inp']; % Open output file fp = fopen(filename,'w'); fprintf(fp,'*HEADING\n'); % Header fprintf(fp,'cellx=%d, celly=%d, d=%f\n',cellx,celly,d); fprintf(fp,'**\n*PREPRINT, ECHO=NO, MODEL=NO, HISTORY=NO\n**\n'); fprintf(fp,'**Nodal coordinates\n**\n*NODE\n'); fprintf(fp,'%03d, % 8.4g, % 8.4g, % 8.4g\n',JI(:,1:4)'); fprintf(fp,'**\n** Element definitions\n**\n'); Elements fprintf(fp,'*ELEMENT, ELSET=EL, TYPE=T3D2\n'); fprintf(fp,'%03d, %3d, %3d\n',MI(:,1:3)'); fprintf(fp,'**\n** Define cross section\n**\n'); fprintf(fp,'*SOLID SECTION, MATERIAL=ALUM, ELSET=EL\n'); fprintf(fp,'%g,\n',Ax); fprintf(fp,'*MATERIAL, NAME=ALUM\n'); % Material properties fpm = fopen(matjfname,'r'); for i=1:2 fgetl(fpm); end elas = fscanf(fpm,'E = %f, v = %f\n',2); fprintf(fp,'*ELASTIC\n%g, %g\n',elas); fgetl(fpm); plas = fscanf(fpm,'%f',[2, inf]); fprintf(fp,'*PLASTIC, HARDENING=ISOTROPIC\n'); fprintf(fp,'%6g, %6g\n',plas); fclose(fpm); % Nodes % fprintf(fp,'*NSET, NSET=TOP\n'); % Node Sets for Constraints i = 0; % Top face for j = 1:size(JI,l) if (JI(j,4) == c) switch i case 0, top-master = j; i = i+1; case 1, fprintf(fp,'%03d',j); i = i+l; case 16, fprintf(fp,', %03d\n',j); i = 1; otherwise, fprintf(fp,', %03d',j); i = i+1; end end end fprintf(fp,'\n'); fprintf(fp,'*NSET, NSET=BOT\n'); % Node Sets for Constraints i = 0; % Bottom face for j = 1:size(JI,l) if (JI(j,4) == 0) switch i case 0, bot-master = j; i = i+1; case 1, fprintf(fp,'%03d',j); i = i+1; case 16, fprintf(fp,', %03d\n',j); i = 1; otherwise, fprintf(fp,', %03d',j); i = i+l; -111- end end end fprintf(fp,'\n'); fprintf(fp,'*NSET, NSET=MSTR\n'); fprintf(fp,'%03d, %03d\n',top-master,botmaster); fprintf(fp,'*NSET, NSET=TOPMS\n'); fprintf(fp,' %03d\n',topmaster); fprintf(fp,'*MPC\n'); % Inner strut nodes for j = 1:size(JI,1) if (JI(j,5:7) == [-1 -1 -1]) fprintf(fp,'PIN, %03d, %03d\n',j,LJI(j,2)); end end fprintf(fp,'*EQUATION \n'); % Constrain these in z-dir fprintf(fp,'2\nTOP, 3, 1.0, %03d, 3, -1.0\n',topmaster); fprintf(fp,'2\nBOT, 3, 1.0, %03d, 3, -1.0\n',botmaster); for j = 1:size(JI,1) % Other linked nodes for i = 1:2 ci = c2 = (JI(j,i+4) == -1); (sum(JI(j,5:7)) -= -3); if ( ci & c2 ) fprintf(fp,'2\n%03d, %d, 1.0, %03d, %d, -1.0\n', j, i, LJI(j,i+1), i); end end end fprintf(fp,'**\n** Loading step\n**\n'); % Loading fprintf(fp,'*STEP, NLGEOM = YES, INC=50\n'); fprintf(fp,'*STATIC, STABILIZE\n'); fprintf(fp,' 0.01, 1, le-6, 0.01\n'); fprintf(fp, '*BOUNDARY\n'); fprintf(fp,'%03d, 1,3, 0\n',botmaster); fprintf(fp,'%03d, 1,, 0\n',find-joint(JI,0,b,0)); fprintf(fp,'%03d, 3,, %g\n',topmaster,U); fprintf(fp,'*NODE FILE, NSET=MSTR\n U, RF\n'); fprintf(fp,'*EL PRINT, FREQUENCY=0\n'); fprintf(fp,'*NODE PRINT, FREQUENCY=0\n'); fprintf(fp,'*EL FILE, FREQUENCY=0\n'); fprintf(fp,'**RESTART, WRITE\n'); fprintf(fp,'*END STEP\n'); fclose(fp); -112- F. Parameterized ABAQUS input file for use with ABAQUS/Design *HEADING Unit cell, periodic, with inner strut offset *PREPRINT, ECHO=NO, CONTACT=NO, MODEL=NO, HISTORY=NO *PARAMETER a b c d t u = 1.5 = 1.5 = 0.925 = 0.093 = 0.125 = -0.3 # # # # # # x-dir dimension y-dir dimension z-dir dimension inner strut offset Member thickness Applied displacement ah = a/2 bh = b/2 cl = c - d area = 3.14159*t*t/4 areah = area/2; *NODE 01, 0, 0, 02, <ah>, 0, 03, <a>, 0, 04, 0, <bh>, 05, <a>, <bh>, 06, 0, <b>, 07, <ah>, <b>, 08, <a>, <b>, 09, <ah>, 0, 10, 0, <bh>, 0 0 0 0 0 0 0 0 <d> <d> 11, 12, <d> <d> 13, 14, <ah>, <b>, <a>, <bh>, 0, 0, <cl> <ah>, <bh>, <cl> 15, 16, <a>, 0, 0, <cl> <b>, <cl> 17, <a>, <b>, <cl> 18, 19, 20, 0, <ah>, <a>, 0, 0, 0, <c> <c> <c> 21, <ah>, <bh>, <c> 22, 0, <b>, <c> 23, <ah>, <b>, <c> 24, <a>, <b>, <c> *ELEMENT, TYPE=T3D2, ELSET=SIDE 01, 02, 03, 04, 05, 06, 07, 08, 01, 04, 03, 05, 10, 09, 09, 12, 04 06 05 08 13 13 15 15 09, 10, 12, 11, 17 17 11, 12, 13, 14, 11, 10, 18, 20, 16 16 22 24 *ELEMENT, TYPE=T3D2, ELSET=INNER 15, 16, 17, 18, 19, 20, 21, 22, 02, 04, 02, 02, 05, 10, 09, 12, 04 07 07 05 07 14 14 14 23, 24, 11, 18, 14 21 25, 26, 19, 20, 21 21 --113-- 27, 28, 29, 21, 21, 21, 22 23 24 *SOLID SECTION, ELSET=SIDE, MATERIAL=ALUM <areah> *SOLID SECTION, ELSET=INNER, MATERIAL=ALUM <area> Define contact ** ** *CONTACT NODE SET, NAME=C_0 04, 18, 22 *CONTACT NODE SET, NAME=C_1 5, 20, 24 ** Define rigid surfaces for contact loading *PARAMETER = 0 x0 x1 yO yl zO = = = = a -.2*b 1.2*b -.2*c z1 = 1.2*c *NODE 100, <xO>, 101, <xl>, <yO>, <zO> <yO>, <zO> 102, 103, <xl>, <x0>, <yl>, <zO> <yl>, <zO> 104, 105, <xO>, <xl>, <yO>, <zi> <yO>, <zi> 106, <xl>, <yl>, <zi> 107, <xO>, <yl>, <zi> *NSET, NSET=PLT_0 100 *NSET, NSET=PLT_1 106 *ELEMENT, ELSET=PLT_0, TYPE=R3D4 200, 100, 103, 107, 104 *RIGID BODY, ELSET=PLT_0, REFNODE=100 *ELEMENT, ELSET=PLT_1, TYPE=R3D4 201, 101, 102, 106, 105 *RIGID BODY, ELSET=PLT_1, REFNODE=106 *SURFACE DEFINITION, NAME=PLT_0_S PLT_0, SPOS *SURFACE DEFINITION, NAME=PLT_1_S PLT_1, SNEG *SURFACE INTERACTION, NAME=HARD_CON 1.0 *CONTACT PAIR, INTERACTION=HARD_CON C_0, PLT_0_S *CONTACT PAIR, INTERACTION=HARDCON C_1, PLT_1_S ** Material property: Aluminum *MATERIAL, *ELASTIC NAME=ALUM 10E6, 0.3 *PLASTIC, HARDENING=ISOTROPIC 26000, 0 28971, 0.0005 31157, 0.0012 32766, 0.0021 34041, 0.0032 34797, 0.0044 35395, 0.0059 35973, 0.0073 36341, 0.0089 36000, 0.0092 35000, 0.0095 32000, 0.0099 1000, 0.0133 -- 114- 10, 0.0136 1, 0.0138 1, 0.0139 *MPC PIN, 09, 02 PIN, 12, 05 PIN, PIN, 11, 10, 07 04 PIN, PIN, PIN, PIN, 14, 13, 15, 17, 19 18 20 24 PIN, 16, 22 *EQUATION 2 01, 2 01, 2 01, 2 03, 2 03, 2 03, 2 06, 2 06, 2 06, 2 08, 1, 1.0, 04, 1, -1.0 2, 1.0, 02, 2, -1.0 3, 1.0, 04, 3, -1.0 1, 1.0, 05, 1, -1.0 2, 1.0, 02, 2, -1.0 3, 1.0, 05, 3, -1.0 1, 1.0, 04, 1, -1.0 2, 1.0, 07, 2, -1.0 3, 1.0, 04, 3, -1.0 1, 1.0, 05, 1, -1.0 08, 2, 1.0, 2 08, 3, 1.0, 2 07, 2, -1.0 19, 21, 1, -1.0 ** node 01 ** node 03 ** node 06 ** node 08 ** node 19 ** .lode 23 2 05, 3, -1.0 1, 1.0, 2 19, 2, 1.0, 2 19, 3, 1.0, 18, 2, -1.0 21, 3, -1.0 2 23, 1, 1.0, 2 23, 2, 1.0, 2 23, 3, 1.0, 21, 1, -1.0 22, 2, -1.0 21, 3, -1.0 ** ** Loading ** *STEP, NLGEOM=YES, INC=50 *STATIC, STABILIZE 0.01, 1, 1E-6, .01 *BOUNDARY 21, 3,, 0 PLT_0, 1, 6, 0 PLT_1, 1,, <u> PLT_1, 2, 6, 0 *NODE PRINT, FREQUENCY=0 *EL PRINT, FREQUENCY=0 *NODE FILE U, RF *PRINT, FREQUENCY=0, CONTACT=NO **RESTART, WRITE *END STEP --115 - G. Sample ABAQUS/Post input script results, file=def_1 read curve, var=u3, name=disp, node=3 read curve, var=rf3, name=forc, node=3 define curve, operation=combine, name=f_d disp, -1 forc, -1 set, xy print file=def_l.txt print curve f-d results, file=def_2 read curve, var=u3, name=disp, node=3 read curve, var=rf3, name=forc, node=3 define curve, operation=combine, name=f_d overwrite disp, -1 forc, -1 set, xy print file=def_2.txt print curve f-d results, file=def_3 read curve, var=u3, name=disp, node=3 read curve, var=rf3, name=forc, node=3 define curve, operation=combine, name=f_d overwrite disp, -1 forc, -1 set, xy print file=def_3.txt print curve f-d results, file=def_4 read curve, var=u3, name=disp, node=3 read curve, var=rf3, name=forc, node=3 define curve, operation=combine, name=f_d overwrite disp, -1 forc, -1 set, xy print file=def_4.txt print curve f-d end -- 116-- H. MATLAB script to generate ABAQUS/Post input script (post-script.m) % postscript.m % Write script to run ABAQUS/post fp = fopen([output-path '\' 'post.sct'],'w'); for numremove = minremove:minremove+steps ab-job = ['def_' num2str(num-remove)]; fprintf(fp,'results, file=%s\n',ab job); fprintf(fp,'read curve, var=u3, name=disp, node=3\n\n'); fprintf(fp,'read curve, var=rf3, name=forc, node=3\n\n'); fprintf(fp,'define curve, operation=combine, name=f-d\n'); if (numrremove -= min-remove) fprintf(fp,'\n'); end fprintf(fp,'disp, -1\nforc, -1\n'); fprintf(fp, 'set, xy print file=%s.txt\n',ab-job); fprintf(fp,'print curve\nfd\n\n'); end fclose(fp); -117- I. Sample Unix script to run ABAQUS/Standard # rundefect - 20 abaqus simulations abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus echo ' abaqus job=def_1 interactive ' job=def_2 interactive ' job=def_3 interactive ' job=def_4 interactive ' job=def_5 interactive ' job=def_6 interactive ' job=def_7 interactive ' job=def_8 interactive ' job=def_9 interactive ' job=def_10 interactive ' job=def_11 interactive ' job=def_12 ' job=def_13 ' job=def_14 ' job=def_15 ' job=def_16 ' job=def_17 ' job=def_18 ' job=def_19 ' job=def_20 interactive interactive interactive interactive interactive interactive interactive interactive interactive -118- J. MATLAB script to automatically generate a POV-Ray scene file (raytrace.m) ************* % *************RAYTRACE.M %* Scene file language for processing with POV-Ray * filename = 'unit cell.pov'; fpt = fopen(filename,'w'); % ray trace output header = [ '#include "colors.inc"' '#include "textures.inc"' 'camera { location' ' % header <1e-3,4e-3,-5e-3>' ' lookat <1.2e-3, .3e-3,-.5e-3>' ' angle 301' 'background (White)' 'lightsource {' ' <1e-3,10e-3,-10e-3>' color White' shadowless }' 'lightsource { ' <1e-3,10e-3,-10e-3>' ' color White' ' shadowless }' 1; for i = 1:length(header) fprintf(fpt,'%s\n',char(header(i))); end for i=l:size(MEMBERS,l) ix = NODES(MEMBERS(i,2),2); jy = NODES(MEMBERS(i,2),3); iz = NODES(MEMBERS(i,2),4); kx = NODES(MEMBERS(i,3),2); ky = NODES(MEMBERS(i,3),3); kz = NODES(MEMBERS(i,3),4); if (abs(MEMBERS(i,4)-Ax) < le-5*Ax) % draw structure color = 'Grey'; else color = 'Blue'; end fprintf(fpt,'\ncylinder{\n'); fprintf(fpt,' <%.4f, %.4f, %.4f>,\n',jx,jz,-l*jy); fprintf(fpt,' <%.4f, %.4f, %.4f>,\n',kx,kz,-1*ky); // fprintf(fpt,' %f fprintf(fpt,' pigment {color %s} Radius\n',diam); }\n',color); end fclose(fpt); -119- K. POV-Ray scene file that describes the Lattice Block unit cell (unit cell.pov) #include "colors.inc" #include "textures.inc" camera { location <1.7,2.8,-5.0> look-at <0.75,0.32,-0.75> angle 30 background {White} light-source { <1,10,-10> color White shadowless } light-source { <1,10,-10> color White shadowless cylinder[ <0.7500,0.0000,0.0000>, <0.0000,0.0000,-0.7500>, 0.062500 // Radius pigment {color Grey) cylinder{ <0.7500,0.0000,0.0000>, <1.5000,0.0000,-0.7500>, 0.062500 // Radius pigment {color Grey) cylinder{ <1.5000,0.0000,-0.7500>, <0.7500,0.0000,-1.5000>, 0.062500 // Radius pigment {color Grey) cylinder{ <0.0000,0.0000,-0.7500>, <0.7500,0.0000,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.0000,0.0000,-0.7500>, <0.0000,0.0000,-1.5000>, 0.062500 // Radius pigment {color Grey) cylinder{ <0.0000,0.0000,0.0000>, <0.0000,0.0000,-0.7500>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.0000,0.0000>, <0.7500,0.0000,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <1.5000,0.0000,-0.7500>, <1.5000,0.0000,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <1.5000,0.0000,0.0000>, <1.5000,0.0000,-0.7500>, -120- 0.062500 // Radius pigment {color Grey) } cylinder{ <0.0000,0.9250,0.0000>, <0.7500,0.9250,-0.7500>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.9250,0.0000>, <0.7500,0.9250,-0.7500>, 0.062500 // Radius pigment {color Grey) cylinder{ <1.5000,0.9250,0.0000>, <0.7500,0.9250,-0.7500>, 0.062500 // Radius pigment {color Grey) cylinder{ <0.7500,0.9250,-0.7500>, <0.0000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.9250,-0.7500>, <0.7500,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.9250,-0.7500>, <1.5000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder( <0.7500,0.0000,0.0000>, <0.7500,0.9250,-0.7500>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.0000,0.0000,-0.7500>, <0.7500,0.9250,-0.7500>, 0.062500 // Radius pigment {color Grey) cylinder{ <1.5000,0.0000,-0.7500>, <0.7500,0.9250,-0.7500>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.0000,-1.5000>, <0.7500,0.9250,-0.7500>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.0000,0.0000>, <0.0000,0.9250,0.0000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.0000,0.0000>, -- 121 - <1.5000,0.9250,0.0000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <1.5000,0.0000,-0.7500>, <1.5000,0.9250,0.0000>, 0.062500 // Radius pigment {color Grey) cylinder{ <1.5000,0.0000,-0.7500>, <1.5000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.7500,0.0000,-1.5000>, <1.5000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey} cylinder{ <0.7500,0.0000,-1.5000>, <0.0000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.0000,0.0000,-0.7500>, <0.0000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.0000,0.0000,-0.7500>, <0.0000,0.9250,0.0000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <0.0000,0.9250,0.0000>, <0.0000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) } cylinder{ <1.5000,0.9250,0.0000>, <1.5000,0.9250,-1.5000>, 0.062500 // Radius pigment {color Grey) -122- L. MATLAB script to generate periodic unit cell model in z-x shear (shear5.m) % *SHEAR5.M % Dimensions of base, height if -exist('b') b = 1.5; end if -exist('h') h = 0.925; end if -exist('t') t = 0.125; end % Member thickness % Cross section area Ax = pi*(t^2)/4; % Restraints Rx = 1; Ry = 1; Rz = 1; % Joint Information % Joint JI =[ 1, 2, 3, 4, 5, I x-pos y-pos z-pos x-rest y-rest z-rest 0 .5*b b 0 b 0 0 0 .5*b .5*b 0 0 0 0 0 -1 1 -1 1 1 -1 0 -1 0 0 -1; %Lnk 1; -1; %Lnk 1; 1; -1; 6, 0 b 0 -1 -1 7, .5*b b 0 1 0 %Lnk 1; 8, b b 0 -1 -1 9, 0 0 h 1 0 10, .5*b 0 h -1 -1 -1; 11, 12, 13, 14, 15, b .5*b 0 .5*b b 0 .5*b b b b h h h h h 1 1 1 -1 1 0 1 0 -1 0 1; 1; 1; -1; %Lnk 1;]; -1; %Lnk 1; %Lnk nj = size(JI,1); % Restrained Joint Displacements % Joint x-dir y-dir z-dir RJD = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0 -1*U/2 0 -1*U/2 -1*U/2 0 -1*U/2 0 U/2 0 U/2 U/2 U/2 0 U/2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 % Member Information % Member j-joint k-joint MI = 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0;]; area [ 1, 2 4 Ax; 2, 3, 4, 2 5 4 5 7 7 Ax; Ax; Ax; 5, 4 6 .5*Ax; 6, 7, 1 2 4 7 .5*Ax; Ax; 8, 9, 10, 11, 5 3 9 10 8 5 12 12 .5*Ax; .5*Ax; Ax; Ax; 12, 13, 11 12 12 13 Ax; Ax; % Lower surface % Upper surface -123- 14, 12 15, 12 16, 2 17, 4 18, 5 19, 7 20, 2 21, 2 22, 5 23, 5 24, 7 25, 7 26, 4 27, 4 28, 9 29, 11 m = size(MI,l); 14 15 12 12 12 12 9 11 11 15 15 13 13 9 13 15 Ax; Ax; Ax; Ax; Ax; Ax; .5*Ax; % Vertically diagonal .5*Ax; .5*Ax; .5*Ax; .5*Ax; .5*Ax; . 5*Ax; .5*Ax; .5* *Ax; % Upper surface, contd .5*Ax; % Linke d Joint Information: LJI Depends on joint number: % Joint x y z LJI = 4 0 5 0 0 4 0 5 0 12 0 0 0 12 0 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4 0 5 0 0 4 0 5 0 12 0 0 0 12 0 4; 0; 5; 0; 0; 4; 0; 5; 0; 12; 0; 0; 0; 12; 0; % Actions applied at joints % Joint x-dir y-dir z-dir AAJ = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0;]; -124- M. MATLAB script to interpret force / displacement data (interp.m). % interp.m % Open and process results files for defect sensitivity % Data from ABAQUS/Post output (text files) folder = input('Folder: ','s'); yieldtol = 0.2e-2; % Tolerance for yield stress a = 0.75; % half-length in x-direction, in b = 0.75; % half-length cell in y-direction, in c = 0.925; % height in z-direction, in d = 0.10; % vertical offset for inner struts, in cellx = 6; % # of cells along x-dir celly = 6; % # of cells along y-dir disp('Note: model parameters are specified in interp.m'); base-path = 'd:\research\lattice block\defect sensitivity'; fout = fopen([base-path '\' folder '\' 'results.txt'],'a'); fprintf(fout,'num\tE (psi)\tey\tSy (psi)\tS-max(psi)\r\n'); i = 1; filename = [basepath '\' folder '\def_' num2str(i) '.txt']; fin = fopen(filename,'r'); while (fin -= -1) for j=1:9 fgetl(fin); end data = fscanf(fin,'%f', [2,inf]); fclose(fin); D = data(l,:); Strain = D / c; F = data(2,:); Stress = F / (2*a*cellx* 2*b*celly); E = Stress(l)/Strain(l); S_max = max(Stress); k = 1; while ( Stress(k) > E*(Strain(k) - yield-tol) ), k = k+l; slopel = E; interceptl = 0 - slopel*yield_tol; slope2 = (Stress(k)-Stress(k-1)) / (Strain(k)-Strain(k-1)); intercept2 = Stress(k) - slope2*Strain(k); A = [slopel -1; slope2 -1]; B = [-1*interceptl; -1*intercept2 ]; end C = inv(A)*B; ey = C(M); Sy = C(2); fprintf(fout,'%03d \t %g \t %g \t %g \t %g\r\n',i,E,ey,Sy,S_max); if (i==l) plot(Strain,Stress,'k-o'); hold on; plot([0, 1.2*ey],[0 1.2*E*ey],'b-'); plot([yield~tol ey],[0 Sy],'rx-'); end i = i+l; filename = [basepath '\' folder '\def_' num2str(i) '.txt']; fin = fopen(filename,'r'); end fclose(fout); -125- N. MATLAB script to define the octet truss periodic unit cell (frame.m) % frameoffset.m % Norman Fleck's Material - Unit cell model with inner strut offset % Tetrahedron-base, 1 layer thick if if if if -exist('L','var') L = 10e-3; -exist('Lb','var') Lb = 10e-3; end -exist('diam','var') diam = le-3; -exist('ofst','var') ofst = 0.5e-3; end H = sqrt(Lb^2 - L^2/3) delx = sqrt(3)*L/3; + 2*ofst; nd % Face member % Brace member % Diameter of member % Inner strut offset % Height of unit cell x-dir offset between faces Member area Ax = pi*(diamA2)/4; x % node# a = sqrt(3)/2*L; b = L/2; nd y z 0 0 0 b b 2*b 2*b 2*b 0 0 0 b b 2*b 2*b 2*b 0 b b 2*b 0 b b 2*b 0; 0; 0; 0; 0; 0; 0; 0; % Lower face H; H; H; H; H; H; H; H; % Upper face NODES = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, % Mem# 0 a 2*a 0 2*a 0 a 2*a delx a+delx 2*a+delx delx 2*a+delx delx a+delx 2*a+delx a 0 2*a a a+delx delx 2*a+delx a+delx jl j2 ofst; ofst; ofst; ofst; H-ofst; H-ofst; H-ofst; H-ofst; % Offset lower face % Offset upper face area MEMBERS 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1 2 4 4 2 5 2 3 5 9 10 12 12 10 13 10 11 13 18 17 20 17 20 4 4 6 7 7 7 5 5 8 12 12 14 15 15 15 13 13 16 22 22 22 21 24 % Lower face 0.5*Ax; Ax; 0.5*Ax; Ax; Ax; Ax; Ax; 0.5*Ax; 0.5*Ax; 0.5*Ax; % Upper face Ax; 0. 5*Ax; Ax; Ax; Ax; Ax; 0.5*Ax; 0.5*Ax; 0.5*Ax; Ax; % Brace members Ax; 0.5*Ax; 0.5*Ax; -126- 24, 25, 26, 19 19 19 21 24 23 Ax; Ax; 0.5*Ax; ]; -127- 0. MATLAB script to generate finite octet truss models (frameoffset.m). % % % % frame.m Norman Fleck's Material - matlab model Tetrahedron-base, 1 layer thick Unit cell from Nathan Wick's paper, add inner strut offset if if if if if if -exist('L', 'var') L = 1; end -exist('Lb','var') Lb = 1; -exist('Rx','var') Rx = 2; -exist('Ry','var') Ry = 2; -exist('E','var') E = 1e7; -exist('ofst','var') ofst = 0.05; H = sqrt(Lb^2 - L^2/3)+ 2*ofst; % Face member end end end end end % Brace member % % % % % Height of unit cell dx = sqrt(3)*L/3; delx = dx; faces % x-dir offset between % upper and lower % ********* Create nodes ********** % Nodes in each cell (nec) % node# x y nec = [ 1, 0 2, sqrt(3)*L/2 0 3, dx 4, sqrt(3)*L/2+dx 0 5, 0 6, sqrt(3)*L/2 0 7, dx 8, sqrt(3)*L/2+dx 0 z L/2 H; H; L/2 0; 0; H-ofst; L/2 H-ofst; L/2 ofst; I; ofst; % Nodes on back row (+x dir) nbr = [ 1, sqrt(3)*L sqrt(3)*L+dx sqrt(3)*L sqrt(3)*L+dx 2, 3, 4, L/2 L/2 L/2 L/2 H; 0; H-ofst; ]; ofst; % Nodes on deepest row (+y dir) ndr = [ 1, sqrt(3)*L/2 L 2, sqrt(3)*L/2+dx L 3, sqrt(3)*L/2 L 4, sqrt(3)*L/2+dx L H; 0; H-ofst; ofst; ]; global NODES; NODES = [ 0 0 0 0 1; % initialize node array i = 1; for rx = 0:Rx-1 for ry = 0:Ry-l for n = l:size(nec,l) % (all cells) nx = nec(n,2) + rx*sqrt(3)*L ny = nec(n,3) + ry*L; nz = nec(n,4); NODES(i,:) i = i + 1; = [i, nx, ny, nz] end if (rx == Rx - 1) % (back row) for n = l:size(nbr,l) nx = nbr(n,2) + rx*sqrt(3 ny = nbr(n,3) + ry*L; nz = nbr(n,4); NODES(i,:) = [i, nx, ny, nz]; i = i + 1; end end if (ry == Ry - # of unit cells in x-dir # of unit cells in y-dir Young's modulus Inner strut offset 1) % (deepest row) for n = 1:size(ndr,l) -128- nx = ndr(n,2) + rx*sqrt(3)*L; ny = ndr(n,3) + ry*L; nz = ndr(n,4); NODES(i,:) = i = i + 1; [i, nx, ny, nz]; end end end end **** * % *Create members % Members in each cell (mec) % mem# x1 x2 mec = [ 1, 0 sqrt(3)*L/2 L 2, 0 sqrt(3)*L/2 0 3, sqrt(3)*L/2 H; 4, sqrt(3) *L/2 L/2 H; 5, sqrt(3) *L/2 L/2 H; 6, dx sqrt(3)*L/2+dx L 7, dx sqrt(3)*L/2+dx 0 8, sqrt(3)*L/2+dx 0; 9, sqrt(3)*L/2+dx L 0; 10, sqrt(3)*L/2+dx 0 0; 11, 0 L/2 ofst; 12, sqrt(3)*L/2 L L/2 ofst; 13, sqrt(3)*L/2 0 L/2 ofst; 14, sqrt(3)*L/2 0 ofst; 15, sqrt(3)*L/2+dx 0 H-ofst; 16, sqrt(3)*L/2+dx L H-ofst; ]; % Members on back row (+x dir) mbr = [ 1, sqrt(3)*L+dx L/2 H-ofst; 1; **** H; MEMBERS = [ 0 0 0 ]; i = 1; tol = 0.00le-3; for rx = 0:Rx-1 for ry = 0:Ry-1 zl L/2 H % (top face) L/2 H H; H sqrt(3)*L/2 H sqrt (3) *L H sqrt (3) *L L 0 L/2 % (bottom face) 0 L/2 0; 0 sqrt (3)*L/2+dx L 0 sqrt(3)*L+dx L/2 0 sqrt(3)*L+dx L/2 H-ofst L/2 dx % (brace) H-ofst dx H-ofst dx H-ofst sqr t(3)*L/2+dx 0 ofst sqrt (3)*L L/2 ofst sqrt (3) *L L/2 L/2 % (brace) ofst % Members on deepest row (+y dlir) mdr = [ 1, sqrt(3)*L/2 L ofst; ]; % (brace) % Members between cells mbc = [ 1, sqrt(3)*L/2 0 H; % (top) 2, sqrt(3)*L/2+dx 0 (bottom) yl z2 H-ofst H 0 sqr t(3)*L/2+dx sqrt (3) *L/2 sqrt(3)*L/2 +dx L % initialize member array % tolerance -129- sqrt(3) *L L L 0; 1; % for n = 1:size(mec,1) nx = mec(n,2) + rx*sqrt(3)*L; ny = mec(n,3) + ry*L; nz % (all cells) = mec(n,4); n1 = fj(nx,ny,nz,tol); nx = mec(n,5) + rx*sqrt(3)*L; ny = mec(n,6) + ry*L; nz = mec(n,7); n2 = fj(nx,ny,nz,tol); MEMBERS(i,:) = [i, n1, n2]; i = 1 + 1; end if (rx == Rx - 1) for n = 1:size(mbr,l) nx = mbr(n,2) + rx*sqrt(3)*L; ny = mbr(n,3) + ry*L; nz = mbr(n,4); nl = fj(nx,ny,nz,tol); nx = mbr(n,5) + rx*sqrt(3)*L; % (back row) ny = mbr(n,6) + ry*L; nz = mbr(n,7); n2 = fj(nx,ny,nz,tol); MEMBERS(i,:) = [i, n1, n2]; i = i + 1; end en d if (ry == Ry - 1)% for n = 1:size(mdr,l) nx = mdr(n,2) + rx*sqrt(3)*L; ny = mdr(n,3) + ry*L; nz = mdr(n,4); n1 = fj(nx,ny,nz,tol); nx mdr(n,5) + rx*sqrt(3)*L; ny = mdr(n,6) + ry*L; (deepest row) nz = mdr(n,7); n2 = fj(nx,ny,nz,tol); MEMBERS(i,:) = [i, n1, n2]; i = i + 1; end end if ( (rx > 0) & (ry > 0) ) % members bet ween cells for n = 1:size(mbc,l) nx = mbc(n,2) + (rx-0.5)*sqrt(3)*L; ny = mbc(n,3) + (ry-0.5)*L; nz = mbc(n,4); n1 = fj(nx,ny,nz,tol); nx = mbc(n,5) + (rx-0.5)*sqrt(3)*L; ny = mbc(n,6) + (ry-0.5)*L; nz = mbc(n,7); n2 = fj(nx,ny,nz,tol); MEMBERS(i,:) = i = i + 1; [i, n1, n2]; end end end end % check for repeated nodes for n = 1:size(NODES,l) for i = n+1 : size(NODES,l) if( (NODES(n,2)==NODES(i,2)) & (NODES(n,3)==NODES(i,3)) fprintf(l,'Nodes %d and %d are the same\n',n,i); end end end % check for repeated members for n = l:size(MEMBERS,l) for i = n+1 : size(MEMBERS,1) -130- & (NODES(n,4)==NODES(i,4)) if( (MEMBERS(n,2)==MEMBERS(i,2)) & (MEMBERS(n,3)==MEMBERS(i,3)) fprintf(1, 'Members %d and %d are the same\n',n,i); end end end -131- P. MATLAB script to compress octet truss in x-direction (constrain-x.m) % constrainx.m % Constrain unit cell for loading in x-dir U = -0.le-3; if -exist('U','var') magnitude end % applied to each side JI = zeros(size(NODES,1),7); JI(:,1:4) = NODES; MI = MEMBERS; AAJ = zeros(size(NODES,1),4); AAJ(:,l) = transpose(l:size(NODES,1)); % Restrained Joint Displacements % J# x-dir y-dir z-dir RJD = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -l*U 0 +1*U -l*U +1*U -1*U 0 +1*U -l*U 0 +1*U -1*U +1*U -1*U 0 +1*U 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; % Linked Joint Information: LJI % Depends on joint number: % J# x-dir y-dir z-dir LJI = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 2 0 0 7 0 7 10 0 10 0 0 15 0 0; 0; 0; 0; 0; 0; 0; 0; 12; 0; 13; 0; 0; 12; 0; -132- % displacement 16, 17, 18, 19, 20, 21, 22, 23, 24, 0 2 4 5 7 10 12 13 15 13; 2; 4; 5; 7; 10; 12; 13; 15; 15 2 4 5 7 10 12 13 15 % Inner strut joints ]; for i = 1:size(NODES,1) for j = 2:4 if (RJD(i,j) ~= 0) JI(i,j+3) = % restrain all displaced nodes 1; elseif (LJI(i,j) > 0) JI(i,j+3) = -1; end % identify linked nodes end end % Restrain zero-displacement nodes for i = 1:8, JI(i,7) = 1; end JI(4,6) = 1; JI(13,6) = 1; % bottom face restrained in z-dir % node 4 in y-dir % node 13 in y-dir -133- Q. MATLAB script to compress octet truss in y-direction (constrain-y.m) % constrain-y.m % Constrain unit cell for loading in y-dir U = -0.le-3; if -exist('U','var') magnitude end % applied to each side JI = zeros(size(NODES,1),7); JI(:,1:4) = NODES; MI = MEMBERS; AAJ zeros(size(NODES,1),4); AAJ(:,l) = transpose(l:size(NODES,1)); % Restrained Joint Displacements % J# x-dir y-dir z-dir RJD = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1*U -1*U -1*U 0 0 +1*U +1*U +1*U -1*U -1*U -1*U 0 0 +1*U +1*U +1*U 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; ]; % Linked Joint Information: LJI % Depends on joint number: % J# x-dir y-dir z-dir LJI = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4 0 5 0 0 4 0 5 12 0 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 12; 0; 13; 0; 0; 14, 12 0 12; 15, 0 0 0; -134- % displacement 16, 17, 18, 19, 20, 21, 22, 23, 24, 13 2 4 5 7 10 12 13 15 0 2 4 5 7 10 12 13 15 13; 2; 4; 5; 7. 10; 12; 13; 15; for i = 1:size(NODES,1) for j = 2:4 if (RJD(i,j) ~= 0) JI(i,j+3) = 1; elseif (LJI(i,j) > 0) JI(i,j+3) = -1; % restrain all displaced nodes % identify linked nodes end end end % Restrain zero-displacement rodes for i = 1:8, JI(i,7) = 1; end JI(4,5) = 1; % bottom face restrained in z-dir % node 4 in x-dir -135- R. MATLAB script to compress octet truss in z-direction (constrain-z.m) % constrainz.m % Constrain unit cell for loading in z-dir U = -0.1e-3; if -exist('U','var') magnitude JI = zeros(size(NODES,1),7); JI(:,1:4) = NODES; MI = MEMBERS; AAJ = zeros(size(NODES,1),4); AAJ(:,l) = transpose(l:size(NODES,1)); % Restrained Joint Displacements % J# x-dir y-dir z-dir RJD = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; +1*U; +1*U; +1*U; +1*U; +1*U; +1*U; +1*U; +1*U; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; ]; % Linked Joint Information: LJI % Depends on joint number: % J# x-dir y-dir z-dir LJI = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, [ 4 0 5 0 0 3 0 5 12 0 13 0 0 12 0 13 2 0 2 0 0 7 0 7 10 0 10 0 0 15 0 15 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; -136- end % displacement 17, 18, 19, 20, 21, 22, 23, 24, 2 4 5 7 10 12 13 15 2 4 5 7 10 12 13 15 2; % Inner strut joints 4. 5; 7. 10; 12; 13; 15; ]; for i = 1:size(NODES,1) for j = 2:4 (RJD(i,j) ~= 0) JI(i,j+3) = 1; elseif (LJI(i,j) > 0) JI(i,j+3) = -1; % restrain all displaced nodes if % identify linked nodes end end end % Restrain zero-displacement nodes for i = 1:8, JI(i,7) = 1; end JI(2,6) = 1; JI(4,5) = 1; % bottom face restrained in z-dir % node 2 in y-dir % node 4 in x-dir -137- S. MATLAB script to calculate normal stress /strain properties of octet truss (main.m) % main.m % Octet truss material: unit cell analysis end FLength = 10e-3; % Face member, m if -exist('Lb','var') Lb = 10e-3; end % Brace member, m if -exist('E','var') E = 70e9; end % Young 's modulus, Pa if -exist('diam','var') end diam = 1.30e-3; % Diameter of member,i if -exist('ofst','var') end ofst = 0.75e-3; % Inner strut offset,i if -exist('U','var') U = -le-3; end % displacement magnitude, m if -exist('FLength','var') % Model parameters: L = FLength; fprintf(l,'MODEL PARAMETERS:\n'); fprintf(l,'L = %f m Lb = %f m\n',L,Lb); fprintf(1,'E = %g pa diam= %f m\n',E,diam); fprintf(1,'offset = %f m U = %f m\n',ofst,U); fprintf(1,'\nRESULTS:\n'); % Load in x-dir L = FLength; frame_offset constrain_x solvetrusslink L = FLength; volumefrac P = 0; i = 0; for j = 1:size(NODES,l) % Calculate net force in x-direction nx = NODES(j,2); ny = NODES(j,3); nz = NODES(j,4); switch nz case 0 if ( = 2*a), P = P + Aj(3*j-2); i=i+l; end case H if (nx == 2*a + delx), P = P + Aj(3*j-2); i=i+l; end end end fprintf(1,'\nNet Force in x-dir = %f (including %d nodes)\n',P,i); stress = P / (2*b*H); strain = 2*U / (2*a); Ex = stress / strain; Exn = (Ex/E)*(1/vf); fprintf(1,'stress = %f Pa\n',stress); fprintf(1,'strain = %f\n',strain); fprintf(1,'X-dir modulus = %g Pa\n',Ex); fprintf(l,'Normalized X-dir modulus = %f\n',Exn); figure(l); clf; draw; title('Load in x-dir'); drawdef; % Load in y-dir L = FLength; frame_offset constrain-y solve-truss-link L FLength; P = 0; i = 0; for j = 1:size(NODES,l) ny = NODES(j,3); nz = NODES(j,4); if (ny==L)&( (nz==0) P = P + Aj(3*j-1); % Calculate net force in y-direction | (nz==H) i=i+l; end end -138- fprintf(1,'\nNet Force in y-dir = %f (including %d nodes)\n',P,i); stress = P / (2*a*H); strain = 2*U / (2*b); Ey = stress / strain; Eyn = (Ey/E)*(l/vf); fprintf(l,'stress = %f Pa\n',stress); fprintf(1,'strain = %f\n',strain); fprintf(l,'Y-dir modulus = %g Pa\n',Ey); fprintf (1, 'Normalized Y-dir modulus = %f\n',Eyn); figure(2); clf; draw; drawdef; title('Load in y-dir'); % Load in z-dir L = FLength; frame-offset constrain_z solve_truss_link L = FLength; P = 0; i = 0; for j = 1:size(NODES,l) nz = NODES(j,4); if (nz == H), P = P + Ai(3*j); % Calculate net force in z-direction i=i+l; enc end fprintf (1, '\nNet Force in z-dir = %f stress = P / (2*a*2*b); strain = U / H; Ez = stress / strain; Ezn = (including %d nodes) \n',P,i); (Ez/E)*(l/vf); fprintf(l,'stress = %f Pa\n',stress); fprintf(l,'strain = %f\n',strain); fprintf(1,'Z-dir modulus = %g Pa\n',Ez); fprintf(1,'Normalized Z-dir modulus = %f\n',Ezn); figure(3); clf; draw; title('Load in z-dir'); drawdef; fprintf(1,'Volume fraction vf = %f%%\n',vf); -139- T. MATLAB script for parametric analysis of octet truss (parametric.m) % % % % parametric.m Octet truss material: unit cell analysis Script to examine range of L / Lb Normalize results L_Lb-min = .1; L_Lbmax = 1.7; L_Lb-steps = 30; % Ratio of L / Lb F Length = 10e-3; if -exist('E','var') end % Young' s modulus, Pa if -exist('diam','var') % Diameter of member, m if -exist('ofst','var') % Inner strut offset, m if -exist('U','var') end % displa cement magnitude, m if -exist('FLength','var') end E = 70e9; % Face member, m diam = 2.0e-3; end ofst = 0.75e-3; end U = -0.1e-3; fp = fopen('Results.txt','w'); % Model parameters: for pntr = [1 fp]; fprintf(pntr,'MODEL PARAMETERS:\n'); fprintf(pntr,'L = %f m \n',FLength); fprintf(pntr, 'E = %g pa diam = %f m\n',E,diam); fprintf(pntr,'offset = %f m U = %f m\n',ofst,U); fprintf(pntr,'\nSCRIPT PARAMETERS\n'); fprintf(pntr,'L/Lb: min = %g, max=%g, steps=%d\n', L_Lb_min,LLbmax,L Lb steps); fprintf(pntr,'\nPROGRESS:\n'); end fprintf(fp,'L/Lb\tEnx\tEny\tEnz'); for LLb = logspace (log10 (LLb-min),log10 (LLb-max),LLb_steps) fprintf(1,'.'); L = FLength; Lb = L / LLb; fprintf(fp,'\n%f\t',LLb); frameoffset; constrain-x; solvetruss-link; L = FLength; volumefrac; P = 0; i = 0; for j = 1:size(NODES,l) % x-direction nx = NODES(j,2); nz = NODES(j,4); switch nz if (nm case 0, case H, if == 2*a), (nx == 2*a + delx), P = P + Aj(3*j-2); P = P + Aj(3*j-2); i=i+l; i=i+l; end end if (i ~= 6) fprintf(l,'Error: %d nodes in x-dir force\n',i); end stress = P / (2*b*H); strain = 2*U / (2*a); Ex = stress / strain; Exn = (Ex/E)*(l/vf); fprintf(fp,'%f\t',Exn); L = FLength; frame-offset; P = 0; i = 0; constrain-y; solve-truss_link; L = FLength; for i = 1:size(NODES,l) % y-direction ny = NODES(j,3); nz = NODES(j,4); if (ny == L)&( (nz==0) I (nz==H) P = P + Aj(3*j-1); i=i+l; end -140- end end end if (i ~= 6) fprintf(1,'Error: %d nodes in y-dir force\n',i); end stress = P / (2*a*H); strain = 2*U / (2*b); Ey = stress / strain; Eyn = (Ey/E)*(l/vf); fprintf(fp,'%f\t',Eyn); L = FLength; frame_offset; constrain-z; solvetruss-link; L = FLength; P = 0; i = 0; for j = 1:size(NODES,l) % z-direction nz = NODES(j,4); if (nz == H), P = P + Aj(3*j); i=i+l; end end if (i ~= 8) fprintf(l,'Error: %d nodes in y-dir force\n',i); end stress = P / (2*a*2*b); strain = U / H; Ez = stress / strain; Ezn = (Ez/E)*(l/vf); fprintf(fp,'%f\t',Ezn); end fprintf(fp,'\n\n'); fprintf(l,'\n'); fclose(fp); -141- U. MATLAB script to calculate the volume fraction for an octet truss structure (volumefrac.m). % Calculate Volume Fraction % Volume fraction TotalLength = 0; for i = jx = jy = jz = kx = ky = kz = 1:size(MEMBERS,l) NODES(MEMBERS(i,2),2); NODES(MEMBERS(i,2),3); NODES(MEMBERS(i,2),4); NODES(MEMBERS(i,3),2); NODES(MEMBERS(i,3),3); NODES(MEMBERS(i,3),4); TotalLength = TotalLength + sqrt( (jx-kx)^2 + (jy-ky)^2 + (jz-kz)^2 ); end MemberVolume = Ax*TotalLength; SurfaceArea = (sqrt(3)/2)*L^2 * ( Rx*Ry + (Rx-l)*(Ry-1) ); Volume = H*SurfaceArea; vf = MemberVolume / Volume -142- V. MATLAB script to load octet truss unit cell in zy-shear (constrain_zy_shear.m) % constrain-zyshear.m % Constrain unit cell for loading in zy-shear end U = 0.le-3; if -exist('U','var') magnitude % applied to each side JI = zeros(size(NODES,1),7); JI(:,1:4) = NODES; MI MEMBERS; AAJ = zeros(size(NODES,1),4); AAJ(:,l) = transpose(l:size(NODES,1)); % Restrained Joint Displacements % J# x-dir y-dir z-dir RJD = [ 1, 2, 3, 4, 5, 6, 7, 8, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9, 10, 11, 0 0 0 +1*U +1*U +1*U 12, 0 +1*U 13, 14, 15, 16, 0 0 0 0 +1*U +1*U +1*U +1*U 17, 18, 19, 20, 21, 22, 23, 24, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; J; Linked Joint Information: LJI Depends on joint number: J# x-dir y-dir z-dir LJ I = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2 0 2 0 0 7 0 7 10 0 10 0 0 15 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 17, 2 2 2; 18, 19, 4 5 4 5 4; 5; 20, 7 7 7; 21, 22, 23, 10 12 13 10 12 13 10; 12; 13; % Inner strut joints - 143 - % displacement 24, 15 15 15; 1; for i = 1:size(NODES,l) for j = 2:4 if (RJD(i,j) ~= 0) JI(i,j+3) = % restrain all displaced nodes 1; elseif (LJI(i,j) > 0) JI(i,j+3) = -1; end % identify linked nodes end end % Restrain zero-displacement nodes for i = 1:8 JI(i,6:7) = [1 1]; end for i = 9:16 % bottom face restrained in y,z-dir % top face restrained in z-dir JI(i,7) = 1; end JI(4,5) = 1; % node 4 in x-dir -144- W. MATLAB script to load octet truss unit cell in zx shear (constrainzxshear.m) % constrainzxshear.m % Constrain unit cell for loading in zx-shear U = if -exist('U','var') magnitude 0.le-3; end % applied to each side JI = zeros(size(NODES,1),7); JI(:,1:4) = NODES; MI = MEMBERS; AAJ = zeros(size(NODES,1),4); AAJ(:,l) = transpose(l:size(NODES,1)); % Restrained Joint Displacements % J# x-dir y-dir z-dir RJD = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0 0 0 0 0 0 0 0 +1*U +1*U +1*U +1*U +1*U +1*U +1*U +1*U 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; ]; % Linked Joint Information: LJI % Depends on joint number: % J# x-dir y-dir z-dir LJI = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 4 5 7 10 12 13 2 0 2 0 0 7 0 7 10 0 10 0 0 15 0 15 2 4 5 7 10 12 13 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 2; 4; 5; 7; 10; 12; 13; % Inner strut joints - 145 - % displacement 24, 15 15 15; 1; for i = 1:size(NODES,l) for j = 2:4 if (RJD(i,j) ~= 0) JI(i,j+3) = 1; elseif (LJI(i,j) > 0) JI(i,j+3) = -1; end end end % restrain all displaced nodes % identify linked nodes % Restrain zero-displacement nodes for i = 1:8 JI(i,7) = 1; JI(i,5) = 1; end for i = 9:16 % bottom face restrained in x,z-dir % top face restrained in z-dir JI(i,7) = 1; end JI(4,6) = 1; % node 4 in y-dir -146- X. MATLAB script to load octet truss unit cell in xy shear (constrainxyshear.m) % constrainxy_shear.m % Constrain unit cell for loading in xy-shear U = if -exist('U','var') magnitude 0.le-3; end % applied to each side JI = zeros(size(NODES,1),7); JI(:,1:4) = NODES; MI = MEMBERS; AAJ = zeros(size(NODES,1),4); AAJ(:,l) = transpose(l:size(NODES,1)); % Restrained Joint Displacements % J# x-dir y-dir z-dir RJD = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0 0 0 0 0 +1*U +1*U +1*U 0 0 0 0 0 +1*U +1*U +1*U 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; ]; % Linked Joint Information: LJI % Depends on joint number: % J# x-dir y-dir z-dir LJI = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 4 5 20, 7 7 21, 22, 23, 24, 10 12 13 15 10 12 13 15 2; 0; 2; 0; 0; 7; 0; 7; 10; 0; 10; 0; 0; 15; 0; 15; 2; 4; 5; % Inner strut joints 7; 10; 12; 13; 15; ]; -147- % displacement for i = 1:size(NODES,l) for j = 2:4 if (RJD(i,j) ~= 0) JI(i,j+3) = 1; elseif (LJI(i,j) > 0) JI(i,j+3) = -1; end end end % restrain all displaced nodes % identify linked nodes % Restrain zero-displacement nodes for i = [1, 2, 3, 9, 10, 11] % Front face restrained in x,y-dir JI(i,5:6) = [1 1]; end for i = (6, 7, 8, 14, 15, 16] % back face restrained in y-dir JI(i,6) = 1; end JI(4,7) = 1; % node 4 in z-dir -148-