Method for applying generative design to configuration of mechanical component
Through the design engine, the user interface is generated and formal problem definitions are generated. Combined with optimization algorithms, the problem of lack of automation tools in mechanical component design is solved, and the automation and programming technology of the design process is realized.
Patent Information
- Application Number
- CN202510197772.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2017-12-26
- Filing Date
- 2018-12-13
- Publication Date
- 2025-06-27
AI Technical Summary
The lack of automation tools in the design of mechanical components has resulted in the design process relying on manual execution and repeated trials, and the inability to effectively apply programming technology.
Generate user interfaces through the design engine, capture input data related to design problems, generate formal problem definitions, and generate a set of design options using optimization algorithms.
It realizes the application of programming technology in mechanical component design and automates the design process, reducing the dependence of manual design and the number of repeated trials.
Smart Images

Figure CN120217575A_ABST
Abstract
Description
[0001] Divisional Application Information
[0002] This divisional patent application is a divisional application of the patent application with an application date of December 13, 2018, an application number of 201880083896.0, and an invention title of "Method for Applying Generative Design to the Configuration of Mechanical Components".
[0003] Cross - Reference to Related Applications
[0004] This application claims the benefit of U.S. Patent Application Serial No. 15 / 854,234, filed on December 26, 2017, which is hereby incorporated by reference herein.
[0005] Background of the Invention Field of the Invention
[0006] Embodiments of the present invention generally relate to computer-aided design and, more particularly, to techniques for applying generative design to the configuration of mechanical components.
[0007] Description of Related Art
[0008] In the context of mechanical design and engineering, an "assembly" is a collection of mechanical parts that are coupled together in a way that achieves a specific function to solve a specific design problem. An example of an assembly is an automotive transmission, which includes a collection of gears that are coupled together to provide torque conversion. The design problem solved in this example is the need to transfer torque from an automotive crankshaft to an automotive wheel.
[0009] Designing a mechanical assembly is typically a multi-step process performed manually. Initially, a designer formulates the design problem to be solved by a mechanical assembly by determining a set of goals that the assembly should meet. For example, when formulating the above automotive transmission design problem, a designer can determine that the transmission should achieve a specific gear ratio in order to convert the input torque received from the automotive crankshaft into an output torque applied to the automotive wheel. In combination with determining the set of goals, the designer can further define the design problem by determining a set of design constraints that the assembly should not violate. For example, in the transmission design problem discussed above, the designer can determine that the mass of the transmission should not exceed a specific value.
[0010] Once a designer has determined various goals and constraints, the designer selects the mechanical parts to be included in the component. For example, a designer of a transmission can select a set of gears to be included in the transmission. Finally, the designer determines the specific physical couplings between the selected parts to achieve different goals without violating the various constraints. For example, a transmission designer can determine the specific arrangement of the selected gears to achieve the desired conversion between input torque and output torque.
[0011] Through a design process similar to the above process, a designer generates designs for various mechanical components. Once a specific design has been created using such a design process, the designer typically tests the design via computer simulation to determine whether the goals are met without violating the constraints. This overall process can be repeated indefinitely in a trial-and-error manner until a successful design is found.
[0012] Conventional computer-aided design (CAD) applications do not provide tools to assist with all aspects of the above design process. Therefore, the designer must perform some or all of the above steps manually and / or mentally based on personal intuition and experience. In particular, a designer typically formulates a design problem mentally and then proceeds directly to the selection and arrangement of parts to create the relevant mechanical component. However, the problem is that this conventional approach of the designer does not allow the application of programming techniques when generating a mechanical component design.
[0013] More specifically, programming techniques for solving design problems typically require structured input that describes the design goals and design constraints. However, as described above, since a designer often formulates a design problem mentally, no such input is generated, which precludes the possibility of using programming techniques when designing a mechanical component. Therefore, the designer is forced to rely on the above-described lengthy trial-and-error design process.
[0014] As previously mentioned, what is needed in the art is a more efficient technique for designing mechanical components. Summary of the Invention
[0015] Various embodiments of the present invention set forth a computer-implemented method for generating design options for a mechanical component, including: generating a partial design that defines a part of the mechanical component based on first data received via a user interface, determining a set of design criteria associated with the partial design based on second data received via the user interface, generating a problem definition based on the partial design and the set of criteria via one or more operations performed by one or more processors, and causing one or more additional operations to be performed by one or more processors based on an optimization algorithm based on the problem definition to generate a set of design options, wherein each design option included in the set of design options includes a different mechanical component that is derived from the partial design and meets the set of design criteria.
[0016] At least one advantage of the techniques described herein is that programming techniques can be applied to generate design options based on a problem definition generated via a user interface. Thus, the conventional manual design process for mechanical components can be largely automated.
[0017] Brief Description of the Drawings
[0018] In order to understand the manner in which the above-described features of the present invention can be obtained, the present invention will be described in more detail by reference to the embodiments, which were briefly summarized above, some of which are illustrated in the accompanying drawings. It should be noted, however, that the drawings illustrate only typical embodiments of the present invention and should not be considered limiting of its scope, as the present invention may admit of other equivalent embodiments.
[0019] Figure 1 A system configured to implement one or more aspects of the present invention is shown;
[0020] Figure 2 is a more detailed illustration of a Figure 1 design engine according to various embodiments of the present invention;
[0021] Figure 3 is a more detailed illustration of a Figure 1 user interface according to various embodiments of the present invention;
[0022] Figure 4 is a more detailed illustration of a Figure 1 design option according to various embodiments of the present invention; and
[0023] Figures 5A - 5B A flowchart setting forth method steps for automatically generating design options for a mechanical component according to various embodiments of the present invention. Detailed Description
[0024] In the following description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without one or more of these specific details.
[0025] As described above, using the conventional method of designing mechanical components, designers formulate design problems in an ad hoc manner based on intuition and experience. Since this conventional design process does not produce any structured data defining the design problem, in general, programming techniques (especially generative design algorithms) cannot be applied to generate designs for mechanical components.
[0026] To address these issues, embodiments of the present invention include a design engine configured to generate a user interface for capturing input data related to a design problem. Based on this input data, the design engine then generates a formal problem definition that can be processed by a goal-driven optimization algorithm to generate a series of potential design options. Each design option describes a mechanical component that represents a potential solution to the design problem. The advantage of this approach is that programming techniques can be applied to generate design options based on the problem definition generated via the user interface. Thus, the conventional manual design process for mechanical components can be largely automated.
[0027] System Overview
[0028] Figure 1 A system configured to implement one or more aspects of the present invention is shown. As shown, system 100 includes a computing device 110 coupled to a cloud computing platform 160. Computing device 110 includes a processor 120, an input / output (I / O) device 130, and a memory 140.
[0029] Processor 120 includes any technically feasible set of hardware units configured to process data and execute software applications. Processor 120 can include, for example, one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more application-specific integrated circuits (ASICs), and any combination thereof. I / O device 130 includes any technically feasible set of devices configured to perform input and / or output operations, including a display device 132 that displays a user interface (UI) 134, a keyboard 136, and a mouse 138. I / O device 130 can further include other types of input and / or output devices not shown herein. Memory 140 includes any technically feasible set of storage media configured to store data and software applications. Memory 140 can be, for example, a hard disk, random access memory (RAM) modules, read-only memory (ROM), and any combination thereof. Memory 140 includes a design engine 142 and a data store 144.
[0030] Design engine 142 is a software application that, when executed by processor 120, performs a series of operations to automatically generate a design for a mechanical component that solves a specific design problem. In doing so, design engine 142 first generates and then renders UI 134 for display via display device 132. UI 134 exposes a set of graphical tools to the end user. The end user can interact with these graphical tools via display device 132, interacting with keyboard 136, mouse 138, and / or other I / O devices 130. Based on the data captured via these interactions, design engine 142 generates a problem definition 150.
[0031] The problem definition 150 is a data structure that formally describes the above design problem. A given problem definition 150 can indicate the specific components to be included in the design of a mechanical assembly, any physical relationships between those components, the set of goals that the mechanical assembly design should satisfy, the set of constraints that these designs should not violate, and the optimization parameters to be applied when generating the design. As described in more detail below in conjunction with Figures 2 - 5B The design engine 142 performs a series of operations to generate the problem definition 150. Each such operation can be performed based on data captured via a separate graphical tool presented via the UI 134.
[0032] Once the design engine 142 generates the problem definition 150, the design engine 142 then sends the problem definition to the cloud computing platform 160. The cloud computing platform 160 includes computing devices (not shown) configured to execute various types of optimization algorithms. These algorithms can include multi-objective solvers, generative design algorithms, evolutionary and / or genetic algorithms, artificial neural networks including convolutional neural networks and deep learning neural networks, machine learning models, and any other type of goal-oriented programming process for generating solutions to complex multi-variable design problems. In one embodiment, the functionality of the cloud computing platform 160 is implemented by the design engine 142.
[0033] The cloud computing platform 160 processes the design problem 150 and then iteratively generates one or more design options 170 through a generative design process. A given design option 170 represents the design of a mechanical assembly consisting of a set of specific components that are coupled together in a specific way that meets the goals indicated in the problem definition 150 without violating the constraints indicated in the problem definition 150.
[0034] According to the technology briefly described so far, the design engine 142 and the UI 132 provide tools for the designer of a mechanical assembly to assist in formulating the design problem as a structured problem definition. Based on a given problem definition, one or more optimization algorithms can be executed to generate multiple design options representing solutions to the relevant design problem. Thus, the design engine 142 represents a technological improvement over conventional methods of generating mechanical assemblies because generating the problem definition in the manner described allows for the programmatic generation of multiple design options. As described in more detail below in conjunction with Figure 2 The design engine 142 is described in more detail.
[0035] Figure 2 is according to various embodiments of the present invention Figure 1A more detailed description of the design engine. As shown, the UI engine 142 includes an element module 200, an input module 210, a standard module 220, a parameter module 230, a graphics module 240, and a definition generator 250. The element module 200, the input module 210, the standard module 220, and the parameter module 230 are configured to interoperate with the graphics module 240 to generate different parts of the UI 134.
[0036] Specifically, the element module 200 reads the element library 202 from the data store 144 and then displays a set of elements to the end user via the UI 134. The set of elements can include components such as solid bodies, springs, and dampers, as well as various types of joints and other parts that may be associated with mechanical components. Based on the interaction of the end user with the UI 132, the design engine 142 identifies a selected subset of the set of elements to be included in any design option 170 generated by the cloud computing platform 160, as described in more detail below in conjunction with Figure 3 More detailed description.
[0037] The input module 210 reads the input expressions 212 from the data store 144 and then displays a set of default expressions to the end user via the UI 134. These expressions can include mathematical relationships that indicate specific forces applied to the selected elements. Via interaction with the UI 132, the end user can edit the input expressions 212 and add new input expressions, as described in more detail below in conjunction with Figure 3 More detailed description.
[0038] The standard module 220 is a software module configured to read the preset standards 322 from the data store 144 and then present these preset standards to the end user via the UI 132. These standards can include objective functions that the design options 170 are to meet and constraints that these design options should not violate. Via interaction with the UI 132, the end user can edit the preset standards 222 and add new standards, as described in more detail below in conjunction with Figure 3 More detailed description.
[0039] The parameter module 230 is a software module configured to read the parameter default values 232 from the data store 144 and then present these default values to the end user via the UI 132. The parameter default values 232 include default values of input parameters associated with the optimization algorithms executed by the cloud computing platform 160, which include the maximum number of iterations and the maximum number of components to be incorporated into the design option 170, etc. Via interaction with the UI 132, the end user can edit the parameter default values 232 and add new optimization parameters, as described in more detail below in conjunction with Figure 3 More detailed description.
[0040] In general, each of the various modules discussed above generates a different part of the UI 134 and, in doing so, presents the end user with different tools that allow for the capture of specific data. Data can be captured in a sequential manner based on previously captured data, so the design engine 142 can perform a series of operations, where one operation depends on the output of a previous operation. For example, the element module 200 can generate a selected subset of elements to include in the design option 170, as described above, and then the input module 210 can receive one or more inputs to apply to one or more of the elements included in that subset.
[0041] After capturing the various input data discussed above, the UI 134 provides this input data to the definition generator 250. The definition generator 250 then generates the problem definition 150 and sends this problem definition to the cloud computing platform 160 to initiate the generation of the design option 170. In this way, each module of the design engine 142 can perform different steps in the overall process to generate the problem definition 150 and then obtain the design option 170.
[0042] Exemplary formulation of a design problem
[0043] Figure 3 is in accordance with various embodiments of the present invention Figure 1 A more detailed illustration of the user interface. As shown, the UI 134 includes a definition panel 300, a component panel 310, a joint panel 320, and a design space 330. The design space 330 includes a partial design 340.
[0044] The definition panel 300 is an interactive area configured to collect inputs related to the design problem to be solved via the generation of mechanical components. The definition panel 300 generally stores the data used by the definition generator 250 described above to generate the problem definition 150, including various attributes of the partial design 340. The design engine 142 generates the partial design 340 based on the end user's interaction with the component panel 310 and the joint panel 320.
[0045] The component panel 310 includes a set of component types that can be incorporated into the partial design 340 and any design options 170 generated for the mechanical assembly. These component types can include rigid bodies, beams, springs, and dampers, as well as ports configured to transmit forces, and other types of components. The end user can select the component types to be included in the component panel 310 from a library of available component types via the add button 312. When iteratively generating the design options 170, the cloud computing platform 160 can only incorporate these selected component types into a given design option 170. Based on the end user's interaction with the component panel 310, the design engine 142 includes specific components in the partial design 340. Based on the end user's interaction with the design space 330, the design engine 142 arranges these components. The UI 134 can also allow the end user to define additional component types by entering into the UI 134 mathematical expressions that describe the dynamic behavior of these additional component types.
[0046] The joint panel 320 includes a set of joints that can be incorporated into the partial design 340 and any design options 170 generated for the mechanical assembly. These joint types can include fixed joints, spherical joints, and pin joints, as well as other types of joints. The end user selects the joint types to be included in the joint panel 320 from a library of available joint types via the add button 322. When iteratively generating the design options 170, the cloud computing platform 160 can only incorporate these selected joint types. Based on the end user's interaction with the joint panel 320, the design engine 142 determines the specific joints to be included in the partial design 340. Then, the design engine 142 can arrange these joints based on the end user's interaction with the design space 330. In one embodiment, the UI 134 allows the end user to define additional joint types by entering into the UI 134 mathematical expressions that describe the dynamic behavior of these additional joint types.
[0047] Based on the end user's interaction with the component panel 310, the joint panel 320, and the design space 330, the design engine 142 generates the partial design 340 to include a collection of elements (components and / or joints). In the example shown, the partial design 340 includes a chassis 342, ports 344, springs 346 and 356, wheels 348 and 358, and ports 350 and 360. Specific loads are applied to ports 350 and 360, as shown. The partial design 340 can reflect the design of an automobile. These various elements conceptually form the backbone of the design options 170. When iteratively generating the design options 170, the cloud computing platform 160 uses the partial design 340 as a starting point to constrain further design iterations.
[0048] In one embodiment, the design engine 142 provides access to a design library of preconfigured designs and partial designs of mechanical components via the UI 134. The design library can be stored in the data store 144 and populated based on previous end-user interactions with the UI 134. The end user can browse the design library via the UI 134 and then select one or more designs or partial designs to input into the cloud computing platform 160 during the generative design process. If a complete design is selected, the design engine 142 can initiate optimization to modify the parameters of the design to meet the design criteria. If a partial design is selected, the design engine 142 can initiate optimization to incorporate additional elements into the design and then optimize the parameters of those components to meet the design criteria.
[0049] In operation, the design engine 142 processes the partial design 340 (or the preconfigured design selected from the design library) and then populates the definition panel 300 with various data associated with the partial design 340, the various data including elements 302 and inputs 304. The elements 302 list all the components and joints included in the partial design 340 and the metadata associated with those elements. For example, the elements 302 can indicate the chassis 342 and also indicate the ports 344 coupled to the chassis. The inputs 304 include expressions that describe the loads applied to the ports included in the partial design 340. These expressions can include constant values, time-varying functions, or any other mathematical formulation of a force.
[0050] The design engine 142 also populates the definition panel 300 with criteria 306. Those criteria can include objective functions and constraint expressions. A given objective function can have any mathematically viable form, although objective functions are typically defined as equations. Each objective function indicates a goal that any design option 170 should meet. For example, a given objective function can indicate that the displacement of the chassis 342 over time should be equal to a specific time-varying function. Initially, the criteria 306 can include the preset criteria 222 described above in connection with Figure 3 the description.
[0051] Although constraints typically take the form of inequalities, a given constraint expression can have any mathematically viable form. Each constraint expression indicates a constraint that any design option 170 should not violate. For example, a given constraint expression can indicate that the displacement of the chassis 342 should not exceed a specific value. The end user can directly specify the objective functions and constraint expressions included in the criteria 322 or select preset objectives and constraints from a library of available options. In the example shown, the objectives "Comfort-1" and the constraint "Comfort-2" are selected.
[0052] The design engine 142 also populates the definition panel 300 with optimization parameters 308. The optimization parameters 308 are input values that control the execution of an optimization algorithm performed by the cloud computing platform 160 when iteratively generating design options 170. In the example shown, the optimization parameters 308 indicate the maximum number of elements to be included in the design option 170, the maximum number of algorithm iterations, and the depth / width (D / B) search ratio. Those familiar with algorithm optimization will understand that other parameters can also be included in the optimization parameters 308.
[0053] Via interaction with the end user, the UI 134 captures a large amount of data associated with the mechanical component design problem. The design engine 142 performs a series of related operations to process this data. For example, the design engine 142 can process the end user input to generate the physical arrangement of the selected elements indicated in the partial design 340. Then, based on the physical arrangement of the elements, various inputs to specific elements within the arrangement are generated based on the end user's interaction with the definition panel 300. Based on the data captured via the UI 134, the design engine 142 then generates the problem definition 150 as Figure 1 shown. Similarly, the problem definition 150 is a data structure that formally represents the design problem. Based on the problem definition 150, the cloud computing platform 160 generates design options 170. Each design option 170 is an extension of the partial design 340 and, when subjected to the inputs 304 indicated via the definition panel 300, adheres to the various criteria 306 indicated via the definition panel 300. Figure 4 An exemplary design option 170 is shown.
[0054] Figure 4 is one of the design options according to various embodiments of the present invention Figure 1 An exemplary illustration. As shown, the design option 170 includes the various elements included in the partial design 340 discussed above in connection with Figure 3 and also includes additional elements introduced via iterative optimization. These elements include beams 400, springs 402, and dampers 406 and 416. Similarly, the partial design 340 represents the starting point for generating a given design option 170, and thus any elements found in the partial design 340 should also be included in the given design option 170.
[0055] During optimization, the cloud computing platform 160 implements a generative design process to include additional elements into the partial design 340. Then, the cloud computing platform 160 tests the resulting design to determine the level of compliance with the criteria 304 when the design is subjected to the input 302. Successful designs that meet the criteria 304 can be used in an evolutionary manner to inform further design iterations.
[0056] Generally referring to Figures 3 - 4, when generating the UI 134, the design engine 142 advantageously provides a set of discrete interaction tools to the designers of mechanical components to assist in formulating design problems. Based on a series of interactions of end users with these tools, the design engine 142 executes a relevant sequence of operations to generate the problem definition 150. Since the design engine 142 generates the problem definition 150 to represent the design problem, programming techniques can be applied to generate multiple feasible design options for solving the design problem. The method implemented by the design engine 142 is described below in a step-by-step manner with reference to FIG. 5.
[0057] Figures 5A - 5B FIG. [X] illustrates a flowchart of method steps for generating a problem definition via a user interface according to various embodiments of the present invention. Although the method steps are described in the context of Figures 1 - 4 a system, those skilled in the art will understand that any system configured to execute the method steps in any order is within the scope of the present invention.
[0058] As Figure 5A shown, method 500 begins at step 502, where the design engine 142 determines a set of available element types based on data captured via the UI 134. Those element types can include mechanical components such as solid bodies or springs, and joints such as spherical joints. At step 504, the design engine 142 generates one or more element type panels presenting the set of available element types. For example, the design engine 142 can generate a component panel 310 or generate the Figures 3 - 4 joint panel 320 shown in FIG. [X]. At step 506, the design engine 142 generates a partial design and then renders a design space including the partial design. The design engine 142 generates the partial design based on end user selections of one or more elements. At step 508, the design engine 142 generates a definition panel to include any elements included in the design space.
[0059] At step 510, the design engine 142 determines any input expressions associated with ports included in the design space via the definition panel. These input expressions can include mathematical descriptions of time-varying loads applied to elements in the design space and other expressions. At step 512, the design engine 142 determines target criteria and / or constraint criteria associated with any elements in the design space via the definition panel. The target criteria can include objective functions, while the constraint criteria can include constraint expressions.
[0060] The method concludes at Figure 5BContinue in. In step 514, the design engine 142 determines the parameters for configuring the optimization algorithm. These parameters can include the maximum number of algorithm iterations and other algorithm inputs. In step 516, the design engine 142 generates a problem definition that describes the design problem based on the data determined via the design space and the definition panel. The problem definition is a data structure with a format that can be processed by the optimization algorithm. This format can be reflected in the definition panel 300. In step 518, the design engine 142 sends the problem definition to the cloud computing platform for optimization. In step 520, the design engine 142 receives the design option 170, which solves the design problem described by the problem definition. In step 522, the design engine 142 renders a graph depicting the element components included in the design option for display. For example, the design engine 142 can render Figure 4 the design option 170 shown in detail in
[0061] In summary, the design engine automates various parts of the mechanical component design process. The design engine generates a user interface that presents tools for capturing input data related to the design problem. Based on the input data, the design engine performs various operations to generate a formal problem definition that can be processed by a goal-driven optimization algorithm. The goal-driven optimization algorithm generates a series of potential design options. Each design option describes a mechanical component that represents a potential solution to the design problem.
[0062] At least one advantage of the above method is that programming techniques can be applied to generate generative design options based on the problem definition generated via the user interface. Therefore, the conventional manual design process for mechanical components can be greatly automated.
[0063] 1. Some embodiments of the present invention include a computer-implemented method for generating design options for a mechanical component, the method comprising: generating a partial design that defines a part of the mechanical component based on first data received via a user interface, determining a set of design criteria associated with the partial design based on second data received via the user interface, generating a problem definition via one or more operations performed by one or more processors based on the partial design and the set of criteria, and causing one or more additional operations based on an optimization algorithm to be performed by the one or more processors based on the problem definition to generate a set of design options, wherein each design option included in the set of design options includes a different mechanical component derived from the partial design and satisfying the set of design criteria.
[0064] 2. The computer-implemented method according to clause 1, wherein the set of design criteria indicates a first objective function that should be satisfied by a first element included in the partial design and each design option included in the set of design options.
[0065] 3. The computer-implemented method according to any one of clauses 1 and 2, wherein the set of design criteria indicates a first element that should not be included in the partial design and a first constraint expression violated by each design option included in the set of design options.
[0066] 4. The computer-implemented method according to any one of clauses 1, 2, and 3, wherein the partial design includes at least one of a solid body, a spring, a damper, and a beam.
[0067] 5. The computer-implemented method according to any one of clauses 1, 2, 3, and 4, wherein the partial design further includes at least one port configured to transfer a force to a first element included in the partial design.
[0068] 6. The computer-implemented method according to any one of clauses 1, 2, 3, 4, and 5, wherein the partial design includes at least one of a fixed joint, a spherical joint, and a pin joint.
[0069] 7. The computer-implemented method according to any one of clauses 1, 2, 3, 4, 5, and 6, further comprising receiving, via the user interface, a selection of one or more element types from a library of available element types, wherein each design option included in the set of design options includes only the one or more element types.
[0070] 8. The computer-implemented method according to any one of clauses 1, 2, 3, 4, 5, 6, and 7, wherein the optimization algorithm includes a multi-objective solver or a generative design algorithm.
[0071] 9. The computer-implemented method according to any one of clauses 1, 2, 3, 4, 5, 6, 7, and 8, further comprising: generating a first portion of the user interface, wherein the first data is received via the first portion and the first portion displays elements included in the partial design; and generating a second portion of the user interface, wherein the second data is received via the second portion and the second portion displays the set of design criteria.
[0072] 10. The computer-implemented method according to any one of clauses 1, 2, 3, 4, 5, 6, 7, 8, and 9, further comprising: determining a first input applied to a first element of the partial design based on third data received via the user interface; and generating a third portion of the user interface, wherein the third data is received via the third portion and the third portion displays the first input.
[0073] 11. Some embodiments of the present invention include a non-transitory computer-readable medium storing program instructions that, when executed by a processor, cause the processor to generate design options for a mechanical component by performing the following steps: generating a partial design that defines a part of the mechanical component based on first data received via a user interface; determining a set of design criteria associated with the partial design based on second data received via the user interface; generating a problem definition via one or more operations performed by one or more processors based on the partial design and the set of criteria; and causing one or more additional operations performed by one or more processors based on an optimization algorithm to generate a set of design options based on the problem definition, wherein each design option included in the set of design options includes a different mechanical component derived from the partial design and satisfying the set of design criteria.
[0074] 12. The non-transitory computer-readable medium according to clause 11, wherein the set of design criteria indicates a first objective function that should be satisfied by a first element included in the partial design and each design option included in the set of design options.
[0075] 13. The non-transitory computer-readable medium according to any one of clauses 11 and 12, wherein the set of design criteria indicates a first constraint expression that should not be violated by a first element not included in the partial design and each design option included in the set of design options.
[0076] 14. The non-transitory computer-readable medium according to any one of clauses 11, 12, and 13, wherein the partial design includes at least one of a solid body, a spring, a damper, and a beam.
[0077] 15. The non-transitory computer-readable medium according to any one of clauses 11, 12, 13, and 14, wherein the partial design further includes at least one port configured to transfer a force to a first element included in the partial design.
[0078] 16. The non-transitory computer-readable medium according to any one of clauses 11, 12, 13, 14, and 15, wherein the partial design includes at least one joint configured to couple between a first element and a second element included in the partial design.
[0079] 17. The non-transitory computer-readable medium according to any one of clauses 11, 12, 13, 14, 15, and 16 further includes the following steps: receiving, via the user interface, a selection of one or more element types from a library of available element types, wherein each design option in the design option set includes only the one or more element types.
[0080] 18. The non-transitory computer-readable medium according to any one of clauses 11, 12, 13, 14, 15, 16, and 17 further includes: generating a first portion of the user interface, wherein the first data is received via the first portion, and the first portion displays elements included in the partial design; generating a second portion of the user interface, wherein the second data is received via the second portion, and the second portion displays the set of design criteria; and generating a third portion of the user interface, wherein the third data is received via the third portion, the third data indicates a first input applied to a first element of the partial design, and the third portion displays the first input.
[0081] 19. The non-transitory computer-readable medium according to any one of clauses 11, 12, 13, 14, 15, 16, 17, and 18 further includes: determining a first optimization parameter input to the optimization algorithm based on fourth data captured via the user interface; and generating a fourth portion of the user interface, wherein the fourth data is received via the fourth portion, and the fourth portion displays the first optimization parameter.
[0082] 20. Some embodiments of the present invention include a system for generating design options for a mechanical component, including: a memory that stores a design engine; and a processor that, when executing the design engine, is configured to perform the following steps: generating a partial design that defines a part of the mechanical component based on first data received via a user interface; determining a set of design criteria related to the partial design based on second data received via the user interface; generating a problem definition via one or more operations executed by the processor based on the partial design and the set of criteria; and causing one or more additional operations executed by the processor based on an optimization algorithm to generate a set of design options based on the problem definition, wherein each design option included in the set of design options includes a different mechanical component derived from the partial design and satisfying the set of design criteria.
[0083] Any and all combinations of any claim elements recited in any claim and / or any elements described in this application, in any way, fall within the intended scope of the present invention and protection.
[0084] The description of the various embodiments has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.
[0085] Aspects of the present embodiments may be embodied in a system, a method, or a computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects that may generally be referred to herein as a "module" or "system". In addition, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.
[0086] Any combination of one or more computer-readable media may be utilized. The computer-readable media may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[0087] Aspects of the present disclosure have been described above with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions / acts specified in one or more blocks of the flowchart and / or block diagram. Such a processor may be, but is not limited to, a general purpose processor, a special purpose processor, an application specific processor, or a field programmable gate array or the like.
[0088] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of code that includes one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by a system based on dedicated hardware for performing the specified functions or actions, or by combinations of dedicated hardware and computer instructions.
[0089] Although the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the present disclosure may be devised without departing from the basic scope thereof, and the scope of the present disclosure is determined by the appended claims.
Claims
1. A computer-implemented method for generating design options for a mechanical component, the method comprising: Receiving, via a graphical user interface, one or more optimization parameters associated with an optimization algorithm; Generating, via one or more processors included in a computing system, a problem definition based on a partial design of at least a portion of the mechanical component and a set of design criteria; Executing, via the one or more processors, the optimization algorithm to generate a first set of design options based on the problem definition and the one or more optimization parameters, wherein each design option included in the first set of design options comprises a different mechanical component derived from the partial design and meeting the set of design criteria; As part of a first design iteration, when the one or more design options are subject to interactive user input, analyzing a level of compliance with the set of design criteria to identify one or more successful design options included in the one or more design options; and As part of a second design iteration, generating a second set of design options based on the one or more successful design options identified as part of the first design iteration.
2. The computer-implemented method according to claim 1, wherein, The set of design criteria indicates a first objective function that a first element included in the partial design should satisfy.
3. The computer-implemented method according to claim 1, wherein, The set of design criteria indicates a first objective function that each design option included in the first set of design options should satisfy.
4. The computer-implemented method according to claim 1, wherein, The set of design criteria indicates a first constraint expression that a first element included in the partial design should not violate.
5. The computer-implemented method according to claim 1, wherein The set of design criteria indicates a first constraint expression that any design option included in the first set of design options should not violate.
6. The computer-implemented method according to claim 1, wherein, The partial design includes at least one of a solid body, a spring, a damper, or a beam.
7. The computer-implemented method according to claim 6, wherein, The partial design further includes at least one component that transfers a force to a first element included in the partial design.
8. The computer-implemented method according to claim 1, wherein The partial design includes at least one of a fixed joint, a spherical joint, or a pin joint.
9. The computer-implemented method according to claim 1, further comprising receiving, via a user interface, a selection of one or more element types from a library of available element types, wherein each design option included in the first set of design options includes only the one or more element types.
10. The computer-implemented method according to claim 1, wherein, The optimization algorithm includes a multi-objective solver or a generative design algorithm.
11. One or more non-transitory computer-readable media storing program instructions that, when executed by one or more processors, cause the one or more processors to generate design options for a mechanical component by performing the following steps: Receiving, via a graphical user interface, one or more optimization parameters associated with an optimization algorithm; Generating, via one or more processors included in a computing system, a problem definition based on a partial design associated with at least a portion of the mechanical component and a set of design criteria; Execute the optimization algorithm via the one or more processors to generate a first set of design options based on the problem definition and the one or more optimization parameters, wherein each design option included in the first set of design options includes different mechanical components associated with the set of design criteria; As part of a first design iteration, when the first set of design options is subject to interactive user input, analyze the level of compliance with the set of design criteria to identify one or more successful design options included in the first set of design options; and As part of a second design iteration, generate a second set of design options based on the one or more successful design options.
12. The one or more non-transitory computer-readable media according to claim 11, wherein, The set of design criteria indicates a first objective function that a first element included in the partial design should satisfy.
13. The one or more non-transitory computer-readable media according to claim 11, wherein, The set of design criteria indicates a first objective function that each design option included in the first set of design options should satisfy.
14. The one or more non-transitory computer-readable media according to claim 11, wherein, The set of design criteria indicates a first constraint expression that a first element included in the partial design should not violate.
15. One or more non-transitory computer-readable media according to claim 11, wherein, The set of design criteria indicates a first constraint expression that any design option included in the first set of design options should not violate.
16. The one or more non-transitory computer-readable media according to claim 11, wherein, The partial design includes at least one of a solid body, a spring, a damper, or a beam.
17. One or more non-transitory computer-readable media according to claim 16, wherein, The partial design further includes at least one component that transfers force to a first element included in the partial design.
18. The one or more non-transitory computer-readable media according to claim 11, wherein, The partial design includes at least one of a fixed joint, a spherical joint, or a pin joint.
19. The one or more non-transitory computer-readable media according to claim 11, further comprising receiving, via a user interface, a selection of one or more element types from a library of available element types, wherein each design option included in the first set of design options includes only the one or more element types.
20. One or more non-transitory computer-readable media according to claim 11, wherein, The optimization algorithm includes a multi-objective solver or a generative design algorithm.
21. A system, comprising: One or more memories, the one or more memories including instructions; And One or more processors, the one or more processors coupled to the one or more memories and configured to perform the following steps when executing the instructions: Receive, via a graphical user interface, one or more optimization parameters associated with an optimization algorithm; Generate a problem definition based on a partial design and a set of design criteria associated with at least a portion of mechanical components via one or more processors included in a computing system; Execute the optimization algorithm via the one or more processors to generate a first set of design options based on the problem definition and the one or more optimization parameters, wherein each design option included in the first set of design options includes different mechanical components; As part of a first design iteration, when the first set of design options is subject to interactive user input, analyze the level of compliance with the set of design criteria to identify one or more successful design options included in the first set of design options; and As part of a second design iteration, generate a second set of design options based on the one or more successful design options.