Automatic design of mechanical components estimated using a distribution algorithm

By using the probabilistic method of the design engine, high-performance mechanical components that meet design goals can be generated quickly, solving the problem of excessive time consumption for complex designs in existing technologies and realizing efficient design space exploration and component generation.

CN113795842BActive Publication Date: 2026-03-13AUTODESK INC
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-04-22
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing technologies are too time-consuming in generating designs for complex mechanical components, especially when there are numerous design variables. Conventional algorithms struggle to efficiently explore the design space and generate feasible CAD components.

Method used

Employing a design engine, a design ensemble is generated using probabilistic methods, including design initialization, fixing infeasible designs, dynamic simulation, performance evaluation, correlation analysis, and probabilistic model generation, to quickly generate high-performance designs that meet design objectives.

Benefits of technology

It enables the generation of complex CAD components in a shorter time, effectively explores a large design space, and improves the efficiency and applicability of the design process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113795842B_ABST
    Figure CN113795842B_ABST
Patent Text Reader

Abstract

The design engine implements a probabilistic method to generate designs for computer-aided design (CAD) components. The design engine initially generates a group of designs based on a problem definition associated with the design problem. Each design includes a randomly generated set of design values ​​assigned to various design variables. The design engine fixes any infeasible designs in the group and then performs dynamic simulations using the group. The design engine selects the highest-performing design and identifies the design variables that are correlated with each other based on those high-performing designs. The design engine generates a probabilistic model that indicates the conditional probabilities between design values ​​associated with the relevant design variables. The design engine then iteratively samples the probabilistic model to generate subsequent groups of designs. In this way, the design engine can automatically generate designs for mechanical components significantly faster than possible using conventional algorithmic design techniques.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims priority to U.S. Provisional Patent Application No. 62 / 837,156, filed April 22, 2019, entitled "Generative Design of Mechanical Assemblies Using Estimation of Distribution Algorithm," and U.S. Patent Application No. 16 / 434,085, filed June 6, 2019. The subject matter of these related applications is hereby incorporated by reference. Background of the Invention Technical Field

[0004] The embodiments of the present invention generally relate to computer-aided design techniques, and more specifically to the automatic design of mechanical components estimated using distributed algorithms. Background Technology

[0006] In a typical mechanical engineering and design workflow, designers use computer-aided design (CAD) applications to generate CAD models representing mechanical components. Designers can also use CAD applications to combine two or more CAD models to create CAD assemblies. The CAD models included in a CAD assembly are often linked together in a way that performs a specific function to solve a particular design problem. For example, a CAD assembly representing a car transmission might include a set of CAD models representing gears that are linked together to provide torque conversion. The design problem addressed in this example is the need to transmit torque from the car's crankshaft to its wheels.

[0007] Generating CAD components using CAD applications is typically a manual, multi-step process. Initially, the designer formulates the design problem the CAD component aims to solve by defining a set of design goals it should satisfy. For example, in formulating the automotive transmission design problem described above, the designer might determine that the transmission should achieve a specific conversion ratio to convert the input torque received from the crankshaft into output torque applied to the wheels. Combining this set of design goals, the designer can further define the design problem by determining the set of design constraints the CAD component should not violate. For example, in the transmission design problem discussed above, the designer might determine that the transmission's mass should not exceed a certain value. Once the various design goals and constraints are defined, the designer can use CAD applications to generate the CAD component by manually generating and combining a set of different CAD models. For example, a transmission designer might determine a specific arrangement of CAD models representing a selected set of gears to generate a CAD component that achieves the required conversion between input and output torque.

[0008] As mentioned earlier, through the design process described above, the designer generates CAD components designed to solve a specific design problem. Once generated, the designer can further test the CAD components via computer simulation to determine whether they meet various design objectives without violating different constraints. The design process is typically iteratively repeated in a trial-and-error manner to explore the overall design space associated with the specific design problem and generate one or more successful designs.

[0009] Conventional design processes (such as those described above) can be automated to some extent using various algorithmic techniques. For example, derivational design techniques can be implemented to automatically generate CAD components that meet design objectives without violating design constraints. Alternatively, constraint-based programming techniques can be implemented to identify feasible CAD components that meet the specified design objectives to varying degrees. Such algorithmic techniques simplify the design process by reducing the number of manual operations that designers must perform.

[0010] One drawback of implementing algorithmic techniques in the design process is that these techniques typically explore the design space in an exhaustive manner, which can be excessively time-consuming. Therefore, implementing algorithmic techniques does not necessarily simplify the design process. This problem is exacerbated when algorithmic techniques are applied to complex design problems with numerous design variables. In such cases, the design space becomes very large, and the CAD components generated by the algorithm may become correspondingly complex. Therefore, algorithmic techniques may ultimately consume even more time when generating feasible CAD components that solve complex design problems.

[0011] As explained above, there is a need in the art for more effective techniques for designing mechanical components. Summary of the Invention

[0012] Various implementations include a method for generating computer-based implementations of designs that solve a design problem, the method comprising: generating a first plurality of designs, the first plurality of designs being based on a problem definition associated with the design problem and including a first set of design values; generating a first model, the first model indicating a first probability distribution associated with the first set of design values ​​and being based on the first plurality of designs; and generating a second plurality of designs based on one or more samples extracted from the first model, wherein the second plurality of designs, compared to the first set of designs, includes a greater number of designs that satisfy a first design objective set forth in the problem definition.

[0013] The disclosed technology has at least one technical advantage over existing technologies in that it can automatically generate complex CAD components that solve complex design problems faster than when using conventional algorithmic techniques. Attached Figure Description

[0014] By referring to various embodiments, the above-described features of the various embodiments can be understood in a more detailed description of the inventive concept briefly described above, some of which are illustrated in the accompanying drawings. However, it should be noted that the drawings only illustrate typical embodiments of the inventive concept and should therefore not be considered as limiting the scope in any way, and other equivalent embodiments exist.

[0015] Figure 1 A system configured to implement one or more aspects of various implementation schemes is shown;

[0016] Figure 2A It is based on various implementation plans. Figure 1 Examples of design problems;

[0017] Figure 2B It is based on various implementation plans. Figure 1 An example of one of the design options;

[0018] Figure 3 It is based on various implementation plans. Figure 1 A more detailed illustration of the design engine;

[0019] Figures 4A to 4B This paper presents a first example of how to fix an infeasible design based on various implementation schemes;

[0020] Figures 4C to 4D A second example illustrates how to fix an infeasible design based on various other implementation schemes;

[0021] Figure 5 Various implementation schemes are shown. Figure 3How a performance evaluator can identify one or more high-performance designs;

[0022] Figures 6A to 6B This illustrates one or more design elements associated with one or more relevant design variables according to various implementation schemes;

[0023] Figure 7 It is based on various implementation plans. Figure 3 Examples of probability models;

[0024] Figure 8 It is based on various implementation plans. Figure 3 A more detailed diagram of the probability generator; and

[0025] Figure 9 It is a flowchart of the method steps for generating multiple designs to solve a given design problem, based on various implementation schemes. Detailed Implementation

[0026] In the following description, numerous specific details are set forth to provide a more thorough understanding of various embodiments. However, it will be apparent to those skilled in the art that the inventive concept can be practiced without one or more of these specific details.

[0027] As mentioned above, conventional algorithmic techniques for generating CAD components are often too slow to serve as a viable alternative to the traditional manual design process, especially when the complex design problem warrants the design of complex CAD components.

[0028] To address these issues, various implementations include a design engine that implements probabilistic methods to generate designs for CAD components. The design engine initially generates a design ensemble based on a problem definition associated with the design problem. The problem definition describes various design variables that can be assigned specific values ​​to represent different design elements, including mechanical joint elements and mechanical component elements. Each design in the initial design ensemble includes a randomly generated set of design values ​​assigned to the various design variables. By using constraint-oriented programming techniques, the design engine repairs any infeasible designs included in the design ensemble. The design engine then performs dynamic simulations with each design included in the design ensemble to generate performance data. The performance data indicates the extent to which the various designs satisfy one or more design objectives described in the problem definition. The design engine ranks the designs based on the performance data and selects the best-performing or highest-performing design included in the design ensemble.

[0029] Based on the selected design, the design engine generates a probabilistic model that indicates various conditional probabilities among specific values ​​of various design variables. The design engine generates the probabilistic model by first establishing statistical correlations among the design variables and then calculating the conditional probabilities among specific design values ​​that can be assigned to those design variables. The design engine then generates a subsequent design group based on the probabilistic model. Each design in the subsequent design group includes a set of design values ​​generated based on samples extracted from the probabilistic model. The design engine iteratively performs the above process to generate an increasingly sophisticated set of design options.

[0030] The disclosed technique has at least one technical advantage over existing technologies in that it can automatically generate complex CAD components for solving complex design problems faster than when using conventional algorithmic techniques. Another technical advantage of the disclosed technique over existing technologies is that it can more effectively explore the large design space associated with complex design problems without consuming a significant amount of time, which is typical for conventional algorithmic techniques that frequently perform exhaustive design space searches. Therefore, the disclosed technique can be applied to a wider range of design problems compared to conventional algorithmic techniques. These technical advantages represent one or more technological advancements superior to existing methods.

[0031] System Overview

[0032] Figure 1 A system configured to implement one or more aspects of various implementation schemes is illustrated. As shown, system 100 includes one or more clients 110 and one or more servers 130 coupled together via network 150. A given client 110 or a given server 130 can be any technically feasible type of computer system, including desktop computers, laptop computers, mobile devices, virtualized instances of computing devices, distributed and / or cloud-based computer systems, etc. Network 150 can be any technically feasible set of interconnected communication links, including local area networks (LANs), wide area networks (WANs), world wide networks, or the Internet, etc.

[0033] As further shown, client 110 includes a processor 112, input / output (I / O) devices 114, and memory 116 interconnected. Processor 112 includes any technically feasible group of hardware units configured to process data and execute software applications. For example, processor 112 may include one or more central processing units (CPUs). I / O devices 114 include any technically feasible group of devices configured to perform input and / or output operations, including, for example, display devices, keyboards, and touchscreens.

[0034] Memory 116 includes any technically feasible storage medium configured to store data and software applications, such as hard disks, random access memory (RAM) modules, and read-only memory (ROM). Memory 116 includes database 118 and design engine 120(0). Design engine 120(0) is a software application that, when executed by processor 112, interoperates with a corresponding software application executed on server 130, as described in more detail below.

[0035] Server 130 includes a processor 132, I / O devices 134, and memory 136 connected together. Processor 132 includes any technically feasible group of hardware units, such as one or more CPUs, configured to process data and execute software applications. I / O devices 134 include any technically feasible group of devices, such as a display device, keyboard, or touchscreen, configured to perform input and / or output operations.

[0036] Memory 136 includes any technically feasible storage medium configured to store data and software applications, such as hard disks, RAM modules, and ROM. Memory 136 includes database 118(0) and design engine 120(1). Design engine 120(1) is a software application that interoperates with design engine 120(0) when executed by processor 132.

[0037] Generally, databases 118(0) and 118(1) represent separate portions of a distributed storage entity. Therefore, for simplicity, databases 118(0) and 118(1) are collectively referred to below as database 118. Similarly, design engines 120(0) and 120(1) represent separate portions of a distributed software entity configured to perform any and all operations of the present invention described herein. Therefore, for simplicity, design engines 120(0) and 120(1) are collectively referred to below as design engine 120.

[0038] In operation, the design engine 120 is configured to generate a problem definition 122 based on user interaction. The problem definition 122 includes various data that at least partially define the engineering problem to be solved by the mechanical component. For example, the problem definition 122 may include geometry associated with the engineering problem, a set of design objectives associated with the engineering problem, and / or a set of design constraints associated with the engineering problem, etc. The following is combined with… Figure 2A An exemplary problem definition is described. Based on problem definition 122, design engine 120 generates one or more design options 124. Each design option 124 defines a CAD component that at least partially solves the engineering problem defined via problem definition 122. The following is combined with... Figure 2BExemplary design option 124 is described.

[0039] Exemplary problem definition and corresponding design options

[0040] Figure 2A It is based on various implementation plans. Figure 1 An example of a design problem. As shown, design problem 122 includes environment object 1 (EO1), environment object 2 (EO2), joints J1 to J8, design variables X1 to X5, and design objective 200. EO1 and EO2 represent pre-existing 3D geometry associated with the engineering problem. In the example shown, EO1 might be the chassis of a car, while EO2 might be the wheels of the car, which need to be connected to the chassis via some mechanical component.

[0041] Joints J1 through J8 represent specific points where components can be connected to generate a CAD assembly. These components may include beams, springs, baffles, etc. A specific joint type can be assigned to a given joint, but this assignment may be omitted. Joints J1 through J8 are initially located by the user through interaction with design engine 120. The user can also define one or more design objectives, such as design objective 200, through interaction with design engine 120. Design objective 200 defines a set of target dynamics that a given CAD assembly should achieve at an exemplary location corresponding to EO1 of design objective 200. For example, design objective 200 may define a target time-varying acceleration that a given CAD assembly should achieve at a location corresponding to EO1 of design objective 200. Design problem 122 may include any number of design objectives associated with any set of locations. Design problem 122 may also include one or more design objectives not associated with any particular location. For example, a given design objective may indicate that the total number of components should be minimized.

[0042] Design variables X1 to X5 represent exemplary design variables to which design engine 120 assigns specific values ​​during design generation. The values ​​assigned to a given design variable may be referred to herein as "design values." In practice, design engine 120 implements different design variables for each different pair of connectors, although only exemplary design variables X1 to X5 are shown for clarity. Design engine 120 assigns a given design value to a given design variable to represent a specific part type that can connect two connectors together, as combined below. Figure 2B A more detailed description.

[0043] Figure 2B It is based on various implementation plans. Figure 1An example of one of the design options. As shown, design option 124 includes beam B1 connecting joints J4 and J8, beam B2 connecting joints J2 and J7, spring S1 connecting joints J8 and J6, and spring S2 connecting joints J7 and J5. The various beams and springs shown, and the specific connections of those components with particular joints, collectively represent CAD components that can at least to some extent solve the engineering problem described in definition 122.

[0044] To generate design options 124, design engine 120 assigns specific values ​​to various design variables associated with problem definition 122 to represent specific types of components. For example, design engine 120 may assign the value "1" to design variable X2 to represent beam B1. Design engine 120 may assign the value "0" to design variable X3 to indicate the absence of a component. Design engine 120 may assign the value "2" to design variable X5 to represent spring S2. In some embodiments, design engine 120 may also assign values ​​to other design variables to represent the positioning and / or joint type associated with joints J1 to J8.

[0045] Design engine 120 is configured to implement a statistics-driven design process to combine generated design data 126 to generate design values ​​for design options 124, as follows: Figure 3 A more detailed description.

[0046] Software Overview

[0047] Figure 3 It is based on various implementation plans. Figure 1 A more detailed illustration of the design engine is provided. As shown, the design engine 120 includes a design initializer 300, a component modifier 310, a performance evaluator 320, a correlation analyzer 330, a statistical analyzer 340, and a probability generator 350.

[0048] In operation, the design initializer 300 generates an initial design group 302 of randomized designs based on problem definition 122. The given designs included in the initial design group 302 include randomly selected or randomly omitted components for each pair of joints described in problem definition 122. As mentioned, the given components can be, for example, beams, springs, baffles, and any other technically feasible mechanical parts. Each design included in the initial design group 302 also includes a randomly selected joint type for each joint. The given joint type can be, for example, a ball joint, a slider joint, a bend joint, etc. In practice, the design initializer 300 generates the given designs included in the initial design group 302 by assigning random values ​​to each design variable associated with the given design. For example, the design initializer 300 can assign the value "1" to a given design variable to indicate that the corresponding joint should be a ball joint. Similarly, the design initializer 300 can assign the value "2" to another design variable to indicate that the corresponding component should be a beam.

[0049] Component modifier 310 processes each design included in the initial design group 302 to identify and fix any infeasible designs. Component modifier 310 then outputs a feasible design 312, which includes any initial feasible designs as well as any fixed designs. As noted herein, the term "infeasible" is used to describe a design that violates certain design rules. For example, a component design that includes one or more parts that are not attached to both ends of a connector may be considered infeasible because such "dangling" parts do not contribute to the overall functionality of the design. In another example, a component design that includes too many parts connected to the same connector may be considered infeasible because an actual connector can only handle a maximum number of connections. Component modifier 310 identifies infeasible designs and then implements a constraint-oriented programming approach to modify those designs. In doing so, component modifier 310 implements the following combination Figures 4A to 4D A more detailed description of the various techniques used to fix unworkable designs.

[0050] Performance evaluator 320 simulates the dynamic behavior of feasible designs 312 to generate performance data indicating the extent to which each feasible design 312 satisfies the various design objectives outlined in problem definition 122. Performance evaluator 320 ranks the feasible designs 312 based on the associated performance data and selects the best-performing design, which is designated as high-performance design 322. In addition to other methods of selecting the best-performing design, performance evaluator 320 can select the top N performing designs, where N is an integer, or select the top N% of designs, where N is a decimal. The following is combined with... Figure 5 An example is described of how the performance evaluator 320 selects a high-performance design 322.

[0051] The correlation analyzer 330 processes each high-performance design 322 and determines various statistical correlations between design variables to generate design variable correlations 332. The correlation analyzer 330 can determine whether two design variables are correlated by comparing the expected probabilities of two design variables with specific values ​​with the observed probabilities of those two design variables with specific values.

[0052] The Correlation Analyzer 330 can use various statistical methods to quantify the correlation between design variables. The following combines... Figures 6A to 6B An example is described on how the correlation analyzer 330 generates the correlation 332 of design variables.

[0053] In one implementation, the correlation analyzer 330 can perform a chi-square test to generate chi-square values ​​for a given pair of design variables, where the chi-square value quantifies the statistical correlation between the given pair of design variables. When the associated chi-square values ​​exceed a threshold, the correlation analyzer 330 can then determine that a pair of design variables is correlated with each other. The correlation analyzer 330 can also, in implementing this method, indicate missing observations by selecting different thresholds, with each chi-square value compared to these thresholds based on how many observations are missing.

[0054] Statistical analyzer 340 analyzes the high-performance design 322 and the correlation 332 of design variables to generate a probability model 342. Conceptually, probability model 332 indicates various probabilities of certain design elements occurring in a design considered high-performance. More specifically, probability model 342 includes a set of conditional probability values ​​associated with each pair of design variables, which are determined to be statistically correlated with each other via correlation analyzer 330. The set of conditional probability values ​​includes different conditional probability values ​​that can be assigned to each different combination of values ​​of the design variable pair. For example, suppose correlation analyzer 330 determines via the aforementioned method that design variables X1 and X2 are statistically correlated with each other. Statistical analyzer 340 can generate a set of conditional probability values ​​indicating the probability that design variable X2 is assigned a value "2" (indicating, for example, a beam component) conditioned on the probability that design variable X2 is assigned a value "1" (indicating, for example, a ball joint).

[0055] In one implementation, the probability model 342 is a two-dimensional (2D) matrix with values ​​corresponding to rows of "parent" elements and columns of "child" elements. The parent and child elements correspond to design variables determined to be statistically related to each other. A given cell included in the 2D value matrix stores a conditional probability value, indicating the probability that a child design variable is assigned a specific value, conditioned on the probability that the parent design variable is assigned a specific value. The following is combined with... Figure 7 This particular implementation scheme is described in more detail.

[0056] The probability generator 350 is configured to generate a design group 352 based on samples extracted from the probability model 342. To generate a given design included in the design group 352, the probability generator 350 assigns specific values ​​to the design variables included in the given design using a probability distribution derived from the probability model 342. In this way, the probability generator 350 can generate a new design group with design variable values ​​derived from the high-performance design included in the previous design group. If certain convergence criteria are met, the probability generator 350 outputs the newly generated design group as design option 124. Otherwise, the probability generator 350 provides the design group 352 to the component modifier 310 and repeats the above process. Convergence criteria may, for example, indicate the maximum number of iterations to be performed or the maximum amount of time to be performed, etc.

[0057] In one implementation, when generating new designs to be included in design group 352, probability generator 350 may implement Gibbs sampling to sample probability model 342. In doing so, probability generator 350 randomly assigns values ​​to various design variables associated with the design, and then updates these values ​​based on the probability values ​​sampled from probability model 342. By repeating this process in one or more iterations, the values ​​assigned to the design variables may eventually converge to a probability distribution described in probability model 342. The following is combined with... Figure 8 This particular implementation scheme is described in more detail.

[0058] Through the above operations, design engine 120 estimates the probability distribution of design variable values ​​associated with high-performance designs in a group of increasingly high-performance designs, and then uses these probability distributions to generate subsequent design groups. In fact, compared to conventional derivational design techniques such as derivational design and constraint-oriented programming, this method can converge faster to generate design options 124 more quickly. The following also incorporates... Figures 4A to 8 The various operations described above are illustrated with examples.

[0059] Exemplary software processing operations

[0060] Figures 4A to 4B This section illustrates a first example of how to fix an infeasible design based on various implementation schemes. For example... Figure 4A As shown, design 400 includes beam B5 connecting joints J4 and J8, beam B6 connecting joints J8 and J6, beam B7 connecting joints J2 and J5, and beam B8 connecting joints J1 and J8. Design 400 may be included in the initial design group 302 or in a subsequently generated design group.

[0061] Component modifier 310 analyzes the structure of design 400 and determines that design 400 is infeasible because too many parts are connected to joint J8. Component modifier 310 can implement a constraint-oriented programming approach to determine that design 400 violates the constraint that only two parts can be connected to any given joint. In response, component modifier 310 removes beam B8, as shown. Figure 4B As shown, a feasible design 312(0) is generated.

[0062] Figures 4C to 4D A second example illustrates how to fix an infeasible design based on various other implementation schemes. For example... Figure 4C As shown, design 410 includes beam B5 connecting joints J4 and J8, beam B6 connecting joints J8 and J6, and beam B9 connecting joints J2 and J7. Design 410 may be included in the initial design group 302, or may be generated via one or more iterations of design engine 120 when generating the design group.

[0063] Component modifier 310 analyzes the structure of design 410 and determines that design 410 is infeasible because beam B9 forms a discontinuous path that does not terminate at any environment object. In other words, beam B9 is a "suspended" component. Component modifier 310 can implement a constraint-oriented programming approach to determine that design 410 violates the constraint that a component cannot extend into space without being connected to a joint or environment object. In response, component modifier 310 adds beam B10, as follows: Figure 4D As shown, this is to connect beam B9 to EO2.

[0064] General reference Figures 4A to 4D The component modifier 310 can iteratively execute the above techniques to add and / or remove design elements from infeasible designs until any violations of design rules are resolved. In doing so, the component modifier 310 can backtrack the design in a manner typically associated with constraint-oriented programming. Once the component modifier 310 generates feasible designs 312, the performance evaluator 320 evaluates the performance of those designs, as described in more detail below.

[0065] Figure 5 Various implementation schemes are shown. Figure 3How does the performance evaluator identify one or more high-performance designs? As shown, performance evaluator 320 analyzes feasible designs 312(0) to 312(N) to determine the extent to which each design satisfies the design objectives set forth in problem definition 122. For example, performance evaluator 320 may perform numerical simulations using each design and then determine how closely the physical dynamics of those designs match the target set of physical dynamics. Performance evaluator 320 then identifies the design with the highest performance as high-performance design 322. Once high-performance designs 322 are identified in this way, correlation analyzer 330 analyzes the correlations between the design variables included in those designs, as described in more detail below.

[0066] Figures 6A to 6B This illustrates one or more design elements associated with one or more relevant design variables according to various implementation schemes. As shown, in Figure 6A In this context, the correlation analyzer 330 determines the design variable correlation 332(0) between design variables X5 and X6. The correlation analyzer 330 can, for example, analyze all high-performance designs 322 and determine that most high-performance designs 322 include components that sequentially connect joints J4, J8, and J6. These components can be of any particular type, including beams, springs, baffles, etc., as described above. Figure 3 In one implementation, the correlation analyzer 330 can perform a chi-square test to identify design variables that are related or correlated with each other based on the distribution of design values ​​assigned to those design variables.

[0067] In some cases, certain design variables may not be significantly correlated with each other, such as Figure 6B As shown. In particular, as shown, design variables X5 and X2 are associated with different regions of EO1. Correlation analyzer 330 can determine that the values ​​of these design variables assigned across many high-performance designs 322 vary independently of each other. Based on the design variable correlations 332 and the high-performance designs 312, statistical analyzer 340 performs statistical analysis on the design variables determined to be correlated with each other to generate a probability model 342, as described in more detail below.

[0068] Figure 7 It is based on various implementation plans. Figure 3 An example of a probability model is shown. As illustrated, probability model 342 is a 2D matrix. Probability model 342 includes rows corresponding to the different possible values ​​that can be assigned to design variable X1 and columns corresponding to the different possible values ​​that can be assigned to design variable X2. As discussed earlier, each value that can be assigned to a design variable represents a specific part type or joint type.

[0069] A given cell in probability model 342 includes conditional probabilities that design variable X1 is assigned a specific value, and design variable X2 is assigned a specific value. For example, row X12 of probability model 342 could correspond to design variable X1 being assigned the value "2", and column X23 could correspond to design variable X2 being assigned the value "3". Probability value P5 represents the conditional probability that design variable X2 is assigned the value "3", conditioned on design variable X1 being assigned the value "2". Because probability model 342 is generated based on relevant design variables included in high-performance design 322, the distribution of conditional probabilities in probability model 342 statistically describes how high-performance designs can be constructed. Probability generator 350 can generate additional high-performance designs based on probability model 342, as described in more detail below.

[0070] Figure 8 It is based on various implementation plans. Figure 3 A more detailed illustration of the probability generator is provided. As shown, the probability generator 350 includes a design randomness generator 800 and a design updater 810. In operation, the design randomness generator 800 generates a randomized design 802 by randomly assigning values ​​to design variables associated with design problem 122. The design updater 810 then updates the randomized design 802 based on samples drawn from the probability model 342 to generate an updated design 812. The design updater 810 can repeatedly draw samples from the probability model 342 and apply updates in this manner to improve the updated design 812. By performing this method using a number of randomized designs, the design updater 810 generates a design group 352. Because the design updater 810 updates the randomized design 802 based on the probability model 342, the design group 352 can have a probability distribution similar to the probability model 342. In the embodiment described herein, the probability generator 350 can implement a technique known in the art as Gibbs sampling.

[0071] General reference Figures 4A to 8 The design engine 120 implements the disclosed techniques in one or more iterations until the convergence criteria discussed earlier are met. Compared to what might be possible using conventional derivational design techniques or conventional constraint-oriented programming techniques, this method can generate designs for mechanical components faster and / or with fewer iterations. The following also incorporates... Figure 8 The disclosed technology is described in more detail.

[0072] The process of generating CAD components

[0073] Figure 9 It is a flowchart of methodological steps for generating multiple designs to solve a given design problem, based on various implementation schemes. Although combined... Figures 1 to 8The system describes the method steps, but those skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of embodiments of the present invention.

[0074] As shown, method 900 begins at step 902, where a design initializer 300 within design engine 120 generates an initial design group of randomized designs. The design initializer 300 generates the initial design group based on a problem definition associated with the engineering problem to be solved. The given designs included in the initial design group include randomly selected or randomly omitted components for each pair of joints described in the problem definition. The design initializer 300 generates the given designs included in the initial design group by assigning random values ​​to each design variable described in the problem definition.

[0075] At step 904, the component modifier 310 within the design engine 120 repairs any infeasible designs to generate a set of feasible designs. As referred to herein, the term "infeasible" is used to describe designs that violate certain design constraints. The component modifier 310 implements a constraint-oriented programming approach to identify designs that violate one or more design constraints, and then generates modifications to those designs to resolve those violations. The component modifier 310 may iteratively remove parts from infeasible designs and / or add parts to infeasible designs until those infeasible designs no longer violate any design constraints.

[0076] At step 906, the performance evaluator 320 within the design engine 120 evaluates the feasible designs generated in step 904 to generate a set of high-performance designs. The performance evaluator 320 determines the dynamic behavior of those feasible designs by performing simulations to generate performance data indicating the extent to which each feasible design satisfies one or more design objectives outlined in the problem definition. Based on the associated performance data, the performance evaluator 320 ranks the feasible designs and selects the best-performing design or a high-performance design.

[0077] At step 908, a correlation analyzer 330 within the design engine 120 determines a set of correlations between design variables associated with the set of high-performance designs generated at step 906. Specifically, the correlation analyzer 330 analyzes a set of probabilities associated with the design variables included in the design problem. The correlation analyzer 330 can determine that two design variables are correlated by comparing the expected probabilities of two design variables with specific values ​​to the observed probabilities of those two design variables with specific values. In one embodiment, the correlation analyzer 330 performs a chi-square test across the values ​​of the design variables described in the high-performance designs generated at step 906 to determine the correlations between the design variables.

[0078] At step 910, the statistical analyzer 340 within the design engine 120 generates a probability model comprising a set of conditional probabilities between design variables determined to be correlated with each other at step 908. Probability model 332 indicates various probabilities of certain design elements occurring in a design considered to be high-performance. More specifically, probability model 342 includes a set of conditional probability values ​​associated with each pair of design variables, each pair determined to be statistically correlated with each other via correlation analyzer 330. The conditional probability set includes different conditional probability values ​​that can be assigned to each different combination of values ​​for a pair of design variable pairs.

[0079] At step 912, the probability generator 350 within the design engine 120 iteratively samples the probabilistic model and updates a set of randomized designs to generate a subsequent design group. To generate a given design to be included in the subsequent design group, the probability generator 350 assigns specific values ​​to the design variables included in the given design using a probability distribution derived from the probabilistic model. In this way, the probability generator 350 can generate a new design group with design variable values ​​derived from the high-performance designs included in the previous design group. If certain convergence criteria are met, the probability generator 350 outputs the newly generated design group as design options. Otherwise, the above steps are repeated based on the newly generated design group. In one embodiment, the probability generator 350 uses the probabilistic model to implement Gibbs sampling to generate the subsequent design group.

[0080] In summary, the design engine implements a probabilistic approach to generate designs for computer-aided design (CAD) components. The design engine initially generates a group of designs based on a problem definition associated with the design problem. Each design includes a randomly generated set of design values ​​assigned to various design variables. The design engine fixes any infeasible designs in the group and then performs dynamic simulations using the group. The design engine selects the highest-performing designs and identifies the design variables that are correlated with each other based on those high-performing designs. The design engine generates a probabilistic model that indicates the conditional probabilities between the design values ​​associated with the relevant design variables. The design engine then iteratively samples the probabilistic model to generate subsequent groups of designs. In this way, the design engine can automatically generate designs for mechanical components significantly faster than possible using conventional algorithmic design techniques.

[0081] The disclosed technique has at least one technical advantage over existing technologies in that it can automatically generate complex CAD components for solving complex design problems faster than when using conventional algorithmic techniques. Another technical advantage of the disclosed technique over existing technologies is that it can more effectively explore the large design space associated with complex design problems without consuming a significant amount of time, which is typical for conventional algorithmic techniques that frequently perform exhaustive design space searches. Therefore, the disclosed technique can be applied to a wider range of design problems compared to conventional algorithmic techniques. These technical advantages represent one or more technological advancements superior to existing methods.

[0082] 1. Some implementations include a method for generating a computer implementation of a design that solves a design problem, the method comprising: generating a first plurality of designs, the first plurality of designs being based on a problem definition associated with the design problem and including a first set of design values; generating a first model, the first model indicating a first probability distribution associated with the first set of design values ​​and being based on the first plurality of designs; and generating a second plurality of designs based on one or more samples extracted from the first model, wherein the second plurality of designs, compared to the first set of designs, includes a greater number of designs that satisfy a first design objective set forth in the problem definition.

[0083] 2. The computer-implemented method as described in Clause 1, wherein generating the first plurality of designs includes assigning a first subset of design values ​​to a first set of design variables associated with the problem definition.

[0084] 3. The computer-implemented method as described in any one of Clauses 1 to 2, wherein the first design included in the first plurality of designs includes a three-dimensional geometry associated with a mechanical component, and wherein the first design variable included in the subset of the first design variables corresponds to a first mechanical joint or a first mechanical part included in the mechanical component.

[0085] 4. The computer-implemented method as described in any one of Clauses 1 to 3, wherein the first design value subset includes a first design value assigned to a first design variable, and wherein the first design value corresponds to a first type of mechanical joint associated with the first mechanical joint or a first type of mechanical component associated with the first mechanical component.

[0086] 5. A computer-implemented method as described in any one of clauses 1 to 4, wherein generating the first model comprises: performing dynamic simulation using the first plurality of designs to generate performance data; ranking the first plurality of designs based on the performance data; selecting a subset of designs with high ranking from the first plurality of designs; and generating the first probability distribution based on the subset of designs with high ranking.

[0087] 6. A computer-implemented method as described in any one of clauses 1 to 5, wherein the performance data indicates the degree to which a given design included in the first plurality of designs satisfies the first design objective.

[0088] 7. A computer-implemented method as described in any one of Clauses 1 to 6, wherein generating the first model comprises: determining a first statistical correlation between a first design variable and a second design variable included in the problem definition; and generating a first probability value based on a first subset of design values ​​that can be assigned to the first design variable and a second subset of design values ​​that can be assigned to the second design variable.

[0089] 8. The computer-implemented method of any one of Clauses 1 to 7, wherein determining the first statistical correlation between the first design variable and the second design variable comprises: performing a chi-square test to generate a first chi-square value based on the first subset of design values ​​and the second subset of design values; and determining that the first chi-square value exceeds a first threshold.

[0090] 9. A computer-implemented method as described in any one of Clauses 1 to 8, wherein the first statistical correlation exceeds a first threshold, the first threshold being based on the number of design values ​​included in the first subset of design values ​​and the number of design values ​​included in the second subset of design values.

[0091] 10. A computer-implemented method as described in any one of clauses 1 to 9, wherein generating the first probability value includes determining a first conditional probability that the first design variable will be assigned a first design value, provided that the second design variable has been assigned a second design value.

[0092] 11. Some embodiments include a non-transitory computer-readable medium storing program instructions that, when executed by a processor, cause the processor to generate a design that solves a design problem by performing the following steps: generating a first plurality of designs based on a problem definition associated with the design problem and including a first set of design values; generating a first model indicating a first probability distribution associated with the first set of design values ​​and based on the first plurality of designs; and generating a second plurality of designs based on one or more samples extracted from the first model, wherein the second plurality of designs includes a greater number of designs that satisfy a first design objective set forth in the problem definition than the first set of designs.

[0093] 12. The non-transitory computer-readable medium as described in Clause 11, wherein the step of generating the first plurality of designs includes assigning a first subset of design values ​​to a first set of design variables associated with the problem definition.

[0094] 13. A non-transitory computer-readable medium as described in any one of Clauses 11 and 12, wherein the first design included in the first plurality of designs comprises a three-dimensional geometry associated with a mechanical component, and wherein the first design variable included in the subset of the first design variables corresponds to a first mechanical joint or a first mechanical part included in the mechanical component.

[0095] 14. A non-transitory computer-readable medium as described in any one of clauses 11 to 13, wherein the first design value subset includes a first design value assigned to a first design variable, and wherein the first design value corresponds to a first type of mechanical joint associated with the first mechanical joint or a first type of mechanical component associated with the first mechanical component.

[0096] 15. A non-transitory computer-readable medium as described in any one of clauses 11 to 14, wherein the step of generating the first model comprises: performing dynamic simulation using the first plurality of designs to generate performance data; ranking the first plurality of designs based on the performance data; selecting a subset of designs with high ranking from the first plurality of designs; and generating the first probability distribution based on the subset of designs with high ranking.

[0097] 16. A non-transitory computer-readable medium as described in any one of clauses 11 to 15, wherein the performance data indicates the degree to which a given design included in the first plurality of designs satisfies the first design objective.

[0098] 17. A non-transitory computer-readable medium as described in any one of clauses 11 to 16, wherein the step of generating the second plurality of designs comprises: randomly assigning a first subset of design values ​​to a first set of design variables associated with the problem definition; and iteratively updating the first subset of design values ​​based on one or more samples extracted from the first model.

[0099] 18. A non-transitory computer-readable medium as described in any one of clauses 11 to 17, wherein the second plurality of designs includes a second set of design variables, and wherein the first probability distribution is also associated with the second set of design values.

[0100] 19. A non-transitory computer-readable medium as described in any one of Clauses 11 to 18, wherein the step of generating the second plurality of designs includes performing Gibbs sampling based on the first model to generate a second set of designs included in the second plurality of designs.

[0101] 20. Some embodiments include a system comprising: a memory storing a software application; and a processor configured, when executing the software application, to perform the following steps: generating a first plurality of designs, the first plurality of designs being based on a problem definition associated with the design problem and including a first set of design values; generating a first model indicating a first probability distribution associated with the first set of design values ​​and being based on the first plurality of designs; and generating a second plurality of designs based on one or more samples extracted from the first model, wherein the second plurality of designs, compared to the first set of designs, includes a greater number of designs that satisfy a first design objective set forth in the problem definition.

[0102] Any and all combinations of any element of any claim and / or any element described in this application, in any manner, fall within the scope of the invention and protection.

[0103] Various embodiments have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments.

[0104] Aspects of embodiments of the present invention may be embodied as systems, methods, or computer program products. Therefore, aspects of this disclosure may take the form of a completely hardware implementation, a completely software implementation (including firmware, resident software, microcode, etc.), or an implementation combining software and hardware aspects, all of which are generally referred to herein as “modules,” “systems,” or “computers.” Furthermore, aspects of this disclosure may take the form of computer program products embodied in one or more computer-readable media having computer-readable program code embodied thereon.

[0105] Any combination of one or more computer-readable media may be used. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or apparatuses, or any suitable combination of the foregoing media. More specific examples (not an exhaustive list) of computer-readable storage media will include: electrical connections having one or more wires, portable computer floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable optical disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing media. In the context of this document, a computer-readable storage medium can be any tangible medium that can contain or store programs for use by or in connection with an instruction execution system, device, or apparatus.

[0106] Various aspects of this disclosure are described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block in 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 can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine. When executed by a processor of a computer or other programmable data processing apparatus, the instructions enable the implementation of the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams. Such processors can be, but are not limited to, general-purpose processors, special-purpose processors, application-specific processors, or field-programmable gate arrays.

[0107] 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 a flowchart or block diagram may represent a module, segment, or code portion comprising 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 mentioned in the blocks may not appear in the order shown in the drawings. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a system based on dedicated hardware or a combination of dedicated hardware and computer instructions that performs the specified functions or actions.

[0108] While the foregoing relates to embodiments of this disclosure, other and additional embodiments of this disclosure may be conceived without departing from the essential scope of this disclosure, the scope of which is defined by the appended claims.

Claims

1. A method for generating a computer-aided design for solving a design problem, the method comprising: Generate a first plurality of designs, which are based on a problem definition associated with the design problem, including that each design in the first plurality of designs is based on a different set of design values ​​assigned to a first set of design variables; Generate a first probability model, the first probability model indicating a first probability distribution of first design values ​​assigned to a first design variable set included in a first subset of designs, wherein the first design subset has higher performance than other designs in the first plurality of designs; as well as The second plurality of designs are generated by assigning a second design value to the first set of design variables for each design included in the second plurality of designs, wherein the second design value is iteratively sampled from the first probability model according to a first sampling algorithm, and wherein the second plurality of designs include a greater number of designs that satisfy the first design objective set forth in the problem definition compared to the first plurality of designs.

2. The computer-implemented method of claim 1, wherein generating the first plurality of designs includes assigning a first subset of design values ​​to the first set of design variables associated with the problem definition.

3. The computer-implemented method of claim 2, wherein the first design included in the first plurality of designs includes a three-dimensional geometry associated with a mechanical component, and wherein the first design variables included in the first subset of design variables correspond to a first mechanical joint or a first mechanical component included in the mechanical component.

4. The computer-implemented method of claim 3, wherein the first subset of design values ​​includes a third design value assigned to a first design variable, and wherein the third design value corresponds to a first type of mechanical joint associated with the first mechanical joint or a first type of mechanical component associated with the first mechanical component.

5. The computer-implemented method of claim 1, wherein generating the first probability model comprises: Dynamic simulations are performed using the first plurality of designs to generate performance data; The first plurality of designs are sorted based on the performance data; Select a high-ranked subset of designs from the first plurality of designs; as well as The first probability distribution is generated based on the highly ordered design subset.

6. The computer-implemented method of claim 5, wherein the performance data indicates the degree to which a given design included in the first plurality of designs satisfies the first design objective.

7. The computer-implemented method of claim 1, wherein generating the first probability model comprises: Determine the first statistical correlation between the first and second design variables included in the problem definition; and A first probability value is generated based on a first subset of design values ​​that can be assigned to the first design variable and a second subset of design values ​​that can be assigned to the second design variable.

8. The computer-implemented method of claim 7, wherein determining the first statistical correlation between the first design variable and the second design variable comprises: Perform a chi-square test to generate a first chi-square value based on the first subset of design values ​​and the second subset of design values; and It is determined that the first chi-square value exceeds the first threshold.

9. The computer-implemented method of claim 7, wherein the first statistical correlation exceeds a first threshold, the first threshold being based on the number of design values ​​included in the first subset of design values ​​and the number of design values ​​included in the second subset of design values.

10. The computer-implemented method of claim 7, wherein generating the first probability value includes determining a first conditional probability that the first design variable will be assigned a first design value, provided that the second design variable has been assigned a second design value.

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 a design that solves a design problem by performing the following steps: Generate a first plurality of designs, which are based on a problem definition associated with the design problem, including that each design in the first plurality of designs is based on a different set of design values ​​assigned to a first set of design variables; Generate a first probability model, the first probability model indicating a first probability distribution of first design values ​​assigned to a first design variable set included in a first subset of designs in the first plurality of designs, wherein the first subset of designs has higher performance than other designs in the first plurality of designs; as well as The second plurality of designs are generated by assigning a second design value to the first set of design variables for each design included in the second plurality of designs, wherein the second design value is iteratively sampled from the first probability model according to a first sampling algorithm, and wherein the second plurality of designs include a greater number of designs that satisfy the first design objective set forth in the problem definition compared to the first plurality of designs.

12. One or more non-transitory computer-readable media as claimed in claim 11, wherein the step of generating the first plurality of designs includes assigning a first subset of design values ​​to the first set of design variables associated with the problem definition.

13. One or more non-transitory computer-readable media as claimed in claim 12, wherein the first design included in the first plurality of designs includes a three-dimensional geometry associated with a mechanical component, and wherein the first design variables included in the first subset of design variables correspond to a first mechanical joint or a first mechanical part included in the mechanical component.

14. One or more non-transitory computer-readable media as claimed in claim 13, wherein the first subset of design values ​​includes a third design value assigned to a first design variable, and wherein the third design value corresponds to a first type of mechanical joint associated with the first mechanical joint or a first type of mechanical component associated with the first mechanical component.

15. One or more non-transitory computer-readable media as claimed in claim 11, wherein the step of generating the first probability model comprises: Dynamic simulations are performed using the first plurality of designs to generate performance data; The first plurality of designs are sorted based on the performance data; Select a high-ranked subset of designs from the first plurality of designs; as well as The first probability distribution is generated based on the highly ordered design subset.

16. One or more non-transitory computer-readable media as claimed in claim 15, wherein the performance data indicates the degree to which a given design included in the first plurality of designs satisfies the first design objective.

17. One or more non-transitory computer-readable media as claimed in claim 11, wherein the step of generating the second plurality of designs comprises: The first subset of design values ​​is randomly assigned to the first set of design variables associated with the problem definition; as well as The first design value subset is iteratively updated based on one or more samples extracted from the first probability model.

18. One or more non-transitory computer-readable media as claimed in claim 11, wherein the second plurality of designs includes a second set of design variables, and wherein the first probability distribution is further associated with the second set of design values.

19. One or more non-transitory computer-readable media as claimed in claim 11, wherein the step of generating the second plurality of designs includes performing Gibbs sampling based on the first probability model to generate a second set of designs included in the second plurality of designs.

20. A system comprising: The memory stores software applications; and A processor, when executing the software application, is configured to perform the following steps: Generate a first plurality of designs, which are based on a problem definition associated with a design problem, including that each of the first plurality of designs is based on a different set of design values ​​assigned to a first set of design variables. Generate a first probability model, which indicates a first probability distribution of design values ​​assigned to a first design variable set included in a first subset of designs, wherein the first design subset has higher performance compared to other designs in the first plurality of designs. The second plurality of designs are generated by assigning a second design value to the first set of design variables for each design included in the second plurality of designs, wherein the second design value is iteratively sampled from the first probability model according to a first sampling algorithm, and wherein the second plurality of designs include a greater number of designs that satisfy the first design objective set forth in the problem definition compared to the first plurality of designs.

Citation Information

Patent Citations

  • Integrating design and field management of gas turbine engine components with a probabilistic model

    US20150269490A1