This relates generally to structural design and particularly to optimizing structural design using finite-element analysis.
Topology optimization (TO) is a process of searching for structures of a mechanical object to improve or maximize its resistance to external forces under object weight constraints. Topology optimization can reduce the cost and improve the quality of manufactured mechanical objects. A physical model is generally used by a topology optimizer to describe object deformations under external forces. A topology optimizer may iteratively update the structure of a mechanical object until an optimal structure is found. During each iteration, the topology optimizer may use the physical model to find object deformations, which may then be used to perform sensitivity analysis and compute the direction of structure updates.
Thus, topology optimization can be an important step for automatic design of mechanical parts. Some TO approaches use a Finite Element Analysis (FEA) approach. An FEA approach is a procedure to divide a mechanical object into a set of nodes plus elements and represent physical model as a set of equations. Accordingly, an FEA approach also involves techniques for solving the set of equations. However, conventional FEA approaches require large amount of computational resources. In particular, conventional FEA approaches have a high iterative cost. The iterative cost includes the computational time and algorithmic complexity for a topology optimizer to update the mechanical object structure once.
The present disclosure describes TO approaches that incur lower iterative costs. Unlike conventional approaches that require exact inversions of large FEA system matrices at every iteration, some TO approaches described herein reformulate the problem as a bilevel optimization that can be solved using a first-order algorithm. For example, some TO approaches described herein only invert the system matrix approximately. In this way, a lower iterative cost is incurred, and users can preview the TO results interactively for fast design updates. During topology optimization users may prefer to quickly preview and update a partially optimized mechanical structure. Accordingly, a preferred topology optimizer incurs a low iterative cost (to allow users preview the partially results) and converges to locally optimal structures.
Some embodiments include a topology optimizer with a low iterative cost and guaranteed convergence using a Solid Isotropic Material with Penalization (SIMP) model. A SIMP model includes a set of assumptions on the structure representation of a mechanical object and the underlying physical model. A SIMP model assumes that a mechanical object is divided into a set of elements, and the structure is represented by the extent to which each element is filled with material. Further, a SIMP model assumes the material responds isotropically to external forces and the relationship between force and deformation is linear.
An example optimizer uses an FEA approach to divide the mechanical object into a set of nodes plus elements and iteratively updates the structure of the object. In this example, during each iteration, a FEA is performed to derive a set of linear equations representing the physical model. Then an approximate (partial) solution is found for the set of linear equations. Next, the partial solution is used to perform a sensitivity analysis, which is used to update the object structure.
Accordingly, in one aspect, some embodiments include a method of optimizing a structural design performed at a computing system having memory and one or more processors, the method including: (i) obtaining a set of constraints for a structure, including an external force constraint; (ii) partitioning a design space for the structure into a plurality of cells; and (iii) in accordance with the external force constraint being applied to the structure: (a) obtaining an approximate finite element analysis (FEA) solution for the plurality of cells based on the set of constraints; (b) performing a sensitivity analysis on the plurality of cells based on the approximate FEA solution; and (c) updating a structural model for the structure based on the sensitivity analysis of the plurality of cells.
In another aspect, some embodiments include a computing system, including: one or more processors; memory; and one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs comprising instructions for: (i) obtaining a set of constraints for a structure, including an external force constraint; (ii) partitioning a design space for the structure into a plurality of cells; and (iii) in accordance with the external force constraint being applied to the structure: (a) obtaining an approximate finite element analysis solution for the plurality of cells based on the set of constraints; (b) performing a sensitivity analysis on the plurality of cells based on the approximate FEA solution; and (c) updating a structural model for the structure based on the sensitivity analysis of the plurality of cells.
Thus, systems and devices are provided with methods for structural design optimization, thereby increasing the effectiveness, efficiency, and user satisfaction with such systems and devices. Such systems, devices, and methods optionally complement or replace conventional systems, devices, and methods for structural design optimization.
For a better understanding of the various described embodiments, reference should be made to the Detailed Description below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, it will be apparent to one of ordinary skill in the art that the various described embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
Several techniques have contributed to the trend of lightweight, low-cost mechanical designs. For example, commodity-level additive manufacturing has been improved with 3D printers and user-friendly modeling software, making it possible for inexperienced users to prototype devices, consumer products, and low-end robots. While the appearance of a mechanical part can be intuitive to perceive and modify, other essential properties, such as structural robustness, fragility, vibration frequencies, and manufacturing cost, are harder to visualize and manage. These properties can highly impact the ultimate performance criteria, including flexibility, robotic maneuverability, and safety. For example, the mass and inertia of a collaborative robot may need to be carefully controlled to avoid causing harm to a person if they collide. As another example, for some manipulators on spacecrafts, the length of each part should be optimized to maximize the end-effector reachability while meeting strict weight limits. For these reasons, mechanical designers rely on TO procedures to identify an optimal structure for mechanical parts (e.g., by tuning their center-of-mass, inertia, infill pattern, and/or material distribution). However, current TO procedures can pose a computational bottleneck. For example, some TO procedures rely on FEA to predict the relationship between the extrinsic (e.g., boundary) loads and intrinsic status (e.g., stress, strain, and energy densities) of a mechanical part. As mentioned above, FEA predictions are made by solving systems of equations (e.g., linear or non-linear) during each iteration of the topology optimization procedure. In some situations, the design space and resulting system size can be very large due to the requirement of designing fine-grained material shapes. Thus, in some situations, even after aggressive optimization, the total time spent on FEA is typically at the level of hours.
The SIMP model is generally used to search for fine-grained geometric shapes by optimizing the infill levels. In some conventional TO approaches, the computation resources are predominated by solving the system of equations to the machine precision. In some scenarios such precision for intermediary TO iterations is unnecessary as the system need only be exactly solved on final convergence. To this end, the present disclosure describes embodiments that maintain an approximate solution that is refined over iterations. Such a TO approach corresponds to a bilevel reformulation of the SIMP problems. Some embodiments include a first-order algorithm to solve such bilevel problems with guaranteed convergence to a first-order critical point of moderate accuracy. Compared with conventional TO approaches, the first-order algorithm incurs a lower iterative cost of O(E log E), where E is the number of decision variables. This allows the mechanical designers to interactively preview the TO results and accelerate the loops of design refinement. Moreover, some embodiments include a GPU-based architectures that achieve an asymptotic iterative cost of O(log E).
Some embodiments include an assumption that the boundaries of a mechanical object are defined. For example, the boundary of a mechanical object may be a contour defining a boundary of a region the object can occupy. In addition to a boundary contour, some embodiments assume that fixed points and external forces are labeled by a user. The fixed points are points fixed to other objects that cannot move. The external forces are the forces that will be applied to the object during use. Some embodiments assume that a user has defined a maximal amount of material that can be used to manufacture the object. Thus, in accordance with some embodiments, TO approaches described herein generate locally optimal internal structures given a set of external forces on a mechanical object and the maximal amount of material.
Turning now to the figures,
The computing system 300 optionally includes a user interface 306 comprising a display device 308 and one or more input devices or mechanisms 310. In some embodiments, the input devices include a keyboard and/or mouse. In some embodiments, the input devices include a “soft” keyboard, which is displayed as needed on the display device 308, enabling a user to “press keys” that appear on the display 308. In some embodiments, the display 308 and input devices 310 include a touch screen display (also called a touch sensitive display).
In some embodiments, the memory 314 includes high-speed random-access memory, such as DRAM, SRAM, DDR RAM or other random-access solid-state memory devices. In some embodiments, the memory 314 includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. In some embodiments, the memory 314 includes one or more storage devices remotely located from the CPU(s) 302. The memory 314, or alternately the non-volatile memory device(s) within the memory 314, is, or includes, a non-transitory computer readable storage medium. In some embodiments, the memory 314, or the computer readable storage medium of the memory 314, stores the following programs, modules, and data structures, or a subset thereof:
Each of the above identified executable modules, applications, or sets of procedures may be stored in one or more of the previously mentioned memory devices, and corresponds to a set of instructions for performing a function described above. The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various embodiments. In some embodiments, the memory 314 stores a subset of the modules and data structures identified above. Furthermore, the memory 314 may store additional modules or data structures not described above.
Although
The computing system obtains (402) a set of constraints for a structure (e.g., a mechanical object), including an external force constraint (e.g., the force 112). In some embodiments, the computing system obtains the set of constraints from a user (e.g., via a graphical user interface). In some embodiments, the set of constraints includes (404) a constraint for an amount of material for the structure and one or more constraints for fixed point locations of the structure (e.g., the fixed points 104-1 and 104-2).
The computing system partitions (406) a design space (e.g., the region 102) for the structure into a plurality of cells (e.g., the cells 110). The computing system obtains (408) an approximate finite element analysis (FEA) solution for the plurality of cells based on the set of constraints in accordance with the external force constraint being applied to the structure. In some embodiments, the approximate FEA solution describes (410) an object deformation for the structure (e.g., as illustrated in
In some embodiments, the computing system applies (414) a pre-conditioning matrix (e.g., a symmetric positive-definite matrix) to a set of linear equations representing the structure.
In some embodiments, the computing system performs (416) one or more iterations of the Jacobi method. For example, an algorithm is applied to determine solutions of a strictly diagonally dominant system of linear equations, where each diagonal element is solved for, and an approximate value is plugged in.
The computing system performs (418) a sensitivity analysis on the plurality of cells based on the approximate FEA solution (e.g., as illustrated in
The computing system updates (420) a structural model for the structure based on the sensitivity analysis of the plurality of cells. For example, a projected gradient is used to update the infill levels along the search direction with an adaptive step size.
In some embodiments, the computing system obtains (422) an update direction from the sensitivity analysis and computes a decreasing step size for the update direction, where the structural model for the structure is updated based on the update direction and the step size. For example, a series of step sizes are used that decrease over iterations to ensure convergence.
In some embodiments, the structural model updated based on the update direction and the step size is (424) a preliminary model, and the computing system generates a refined model update from the preliminary model in accordance with one or more material requirement constraints for the structure. In some embodiments, for a point in the preliminary model determined to be outside of the one or more material requirement constraints for the structure, the computing system selects (426) a replacement point having a minimum Euclidean distance from the point. For example, a projected gradient is used to update the infill levels along the search direction with an adaptive step size. Such an update may lead to an infill level outside the feasible domain. To correct this, the infill level is projected back to the closest point in the feasible domain under Euclidean distance in accordance with some embodiments. In some embodiments, the computing system solves (428) a piecewise linear equation to clamp points of the preliminary model update in accordance with the one or more material requirement constraints for the structure.
In some embodiments, the computing system: (i) generates (430) a second approximate FEA solution based on the updated structural model; (ii) performs a second sensitivity analysis based on the second approximate FEA solution; (iii) updates the structural model again based on the second sensitivity analysis; and (iv) displays the structural model to the user. In some embodiments, the computing system generates (432) approximate FEA solutions and corresponding sensitivity analyses until a convergent structural model is obtained.
In light of these principles, we now turn to certain embodiments.
In another aspect, some embodiments include a computing system including one or more processors and memory coupled to the one or more processors, the memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing any of the methods described herein (e.g., A1-A13 above).
In yet another aspect, some embodiments include a non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a computing system, the one or more programs including instructions for performing any of the methods described herein (e.g., A1-A13 above).
Many modifications and variations of this disclosure can be made without departing from its spirit and scope, as will be apparent to those skilled in the art. The specific embodiments described herein are offered by way of example only, and the disclosure is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled.
It will also be understood that, although the terms first, second, etc. are, in some instances, used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first object could be termed a second object, and, similarly, a second object could be termed a first object, without departing from the scope of the various described embodiments. The first object and the second object are both objects, but they are not the same object unless explicitly stated as such.
The terminology used in the description of the various described embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various described embodiments and the appended claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “includes,” “including,” “comprises,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the scope of the claims to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen in order to best explain the principles underlying the claims and their practical applications, to thereby enable others skilled in the art to best use the embodiments with various modifications as are suited to the particular uses contemplated.