BB Brent Bielefeldt
Analysis and Characterization of Muscular-Skeletal Structures via Genetic Programming
Created on 2017.06.02 157 views
The development of morphing structures incorporating compliant regions or active materials is a complex problem for which the design space is vast and there may be an infinite number of solutions associated with a given set of goals and constraints. The full topological (i.e., structural layout) design problem in particular requires the consideration of structural member sizing, placement, material assignment, etc. To explore this complex design space, we propose a genetic programming approach to the morphing structure design problem and specifically consider the use of a Lindenmayer system (L-system) to formalize the encoding of the structural layout. For a variety of case studies (cantilevered trusses, tensile inverter mechanisms, and compressive inverter mechanisms) it has been shown that a family of solutions allowed to "evolve" over generations can eventually produce effective muscular-skeletal configurations suitable for adaptive structures development. Furthermore, open-source scripted computer-aided drafting (CAD) methods have been used to convert L-system formalized designs into 3-D bodies, and additive manufacturing has been employed for the fabrication of fully functional prototypes. Additional work on this project has leveraged intersection algorithms to “trim” hanging branches that serve no structural purpose. For this project, Abaqus serves as the finite element solver used to analyze the mechanical response of each potential design. Additionally, Abaqus CAE’s basis in the Python scripting language is essentially in enabling the use of existing libraries (such as Distributed Evolutionary Algorithms in Python, or DEAP) and open source scripted CAD methods (FreeCAD). In addition to exploring topological optimization using this unique approach, this project has resulted in several advancements in how genetic optimization can be conducted in Abaqus, the most important of which is single-analysis parallelization. When considering the individuals in a generation (for this project, 60 to 100 individuals in a generation optimized over 400 to 1,000 generations), analyzing each member individually (i.e., constructing each part, applying boundary conditions, running an analysis, and post-processing) can result in large computation times, even if the mechanisms considered are relatively simple. On the other hand, performing many runs in parallel is not feasible due to the high number of license token checkouts required. Alternatively, we propose instancing all members of each population, assessing the entire population simultaneously in a single analysis, and then post-processing the set of members. Provided the mechanisms remain simple and deformations remain small, this can greatly reduce computation times. For non-linear analysis (e.g., large deformations), in which simultaneous consideration of the entire population becomes unfeasible, we propose batch parallelization, where populations are analyzed in groups or batches of user-specified size.
Discover the team
Who’s behind this project
Discover the solution
Software used for this project