This disclosure relates generally to computer based process modeling techniques and, more particularly, to methods and systems for modeling product cost.
Product cost may be calculated or predicted based on product data on materials and process plans by various traditional techniques. Certain techniques may use manufacturing data, standards, and extensive databases to produce cost estimates and process plans based on mathematical algorithms or models. Such models may be used to provide computerized cost estimating and process planning for manufacturing.
Certain models may have the ability to provide instant estimating through databases of available historical data. These models may also be able to calculate time and cost per piece to manufacture based on the historical data. On the other hand, product cost of a product that is still in a design process may be estimated differently. More particularly, in the design process of a new product, historical data of the new product may be unavailable.
In the absence of the historical data of products in the design process, or where the historical data is significantly different than the desired products, process-oriented approaches may be used. For example, U.S. Pat. No. 6,775,647 to Evans et al. (the '647 patent) discloses a technique for developing a method and system for estimating manufacturing costs for conventional and advanced materials and process plans. The '647 patent discloses a cost model derived from a set of discrete point estimates, these point estimates representing variations that impact the cost of a product consisting of different configurations and designs, alternative materials, and possibly different methods of manufacturing. However, such conventional techniques often fail to address inter-correlation between individual variations, especially at the time of generation and/or optimization of computational models, or to correlate the variations to the cost simultaneously.
Methods and systems consistent with certain features of the disclosed systems are directed to solving one or more of the problems set forth above.
One aspect of the present disclosure includes a method for a product cost modeling system. The method may include establishing a product cost process model indicative of interrelationships between product costs of one or more existing products and a respective plurality of characteristic parameters of the existing products. The method may also include obtaining a set of values corresponding to a plurality of characteristic parameters of a target product from a data source and calculating the product cost of the target product based upon the set of values corresponding to the plurality of characteristic parameters of the target product and the product cost process model.
Another aspect of the present disclosure includes a computer system. The computer system may include a database containing data records associating product costs of one or more existing products and a respective plurality of characteristic parameters of the existing products. The computer system may also include a data source and a processor. The processor may be configured to obtain a set of values corresponding to a plurality of characteristic parameters of a target product from the data source and to calculate the product cost of the target product based upon the set of values corresponding to the plurality of characteristic parameters of the target product and the product cost process model. The processor may also be configured to present the product cost of the target product to the data source; to determine a desired product cost range of the target product; and to modify the plurality of characteristic parameters of the target product simultaneously such that an actual product cost of the target product is within the desired product cost range.
Another aspect of the present disclosure includes a computer-readable medium for use on a computer system configured to perform a product cost predicting procedure. The computer-readable medium may include computer-executable instructions for performing a method. The method may include establishing a product cost process model indicative of interrelationships between product costs of one or more existing products and a respective plurality of characteristic parameters of the existing products. A set of values is obtained corresponding to a plurality of characteristic parameters of a target product from a data source. The method may also include calculating the product cost of the target product based upon the set of values corresponding to the plurality of characteristic parameters of the target product and the product cost process model. The product cost of the target product is presented to the data source.
Reference will now be made in detail to exemplary embodiments, which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
Further, product cost process modeling environment 100 may include a computer design tool 112, such as CAD (computer aided design), etc. Computer design tool 112 may use an established product cost process model 104 to obtain cost information about a product (e.g., a single part, a component of multiple parts, an assembly, or a complete manufacturing item, etc.). The product may be new and may be still in a design phase, or the product may have existed and may be modified by computer design tool 112. Computer design tool 112 may provide product characteristic parameters 108 of the product to product cost model 104. Compute design tool 112 may also receive product cost 110 from product cost process model 104 based on product characteristic parameters 108 and the interrelationships between input parameters 102 and output parameters 106 that has been built by product cost process model 104.
When used in establishing product cost process model 104, input parameters 102 may include any appropriate type of data associated with a particular design application. For example, input parameters 102 may include characteristic data of a large number of existing products associated with known costs. Such characteristic data may include, for example, dimensional variables, geometrical variables, material types, and/or design information, etc. Output parameters 106, on the other hand, may correspond to cost of the products, or any other types of output parameters used by the particular design application.
Product cost process model 104 may include any appropriate type of mathematical or physical model indicating interrelationships between input parameters 102 and output parameters 106. For example, product cost process model 104 may be a neural network based mathematical model that is trained to capture interrelationships between input parameters 102 and output parameters 106. Other types of mathematic models, such as fuzzy logic models, linear system models, and/or non-linear system models, etc., may also be used. Product cost process model 104 may be trained and validated using data records collected from a particular application for which product cost process model 104 is established. That is, product cost process model 104 may be established according to particular rules corresponding to a particular type of model using the data records, and the interrelationships of product cost process model 104 may be verified by using part of the data records.
After product cost process model 104 is trained and validated, product cost process model 104 may be optimized to define a desired input space of input parameters 102 and/or a desired distribution of output parameters 106. The validated or optimized product cost process model 104 may used to produce corresponding values of output parameters 106 when provided with a set of values of input parameters 102. For example, as explained above, computer design tool 112 may use product cost process model 104 to derive product cost 110 of a product under design from product characteristic parameters 108 provided to product cost process model 104.
The establishment and operations of product cost process model 104 may be carried out by one or more computer systems.
As shown in
Processor 202 may include any appropriate type of general purpose microprocessor, digital signal processor, or microcontroller. Processor 202 may execute sequences of computer program instructions to perform various processes as explained above. The computer program instructions may be loaded into RAM 204 for execution by processor 202 from read-only memory (ROM) 206, or from storage 216. Storage 216 may include any appropriate type of mass storage provided to store any type of information that processor 202 may need to perform the processes. For example, storage 216 may include one or more hard disk devices, optical disk devices, or other storage devices to provide storage space.
Console 208 may provide a graphic user interface (GUI) to display information to users of computer system 200. Console 208 may include any appropriate type of computer display device or computer monitor. Input devices 210 may be provided for users to input information into computer system 200. Input devices 210 may include a keyboard, a mouse, or other optical or wireless computer input devices, etc. Further, network interfaces 212 may provide communication connections such that computer system 200 may be accessed remotely through computer networks via various communication protocols, such as transmission control protocol/internet protocol (TCP/IP), hyper text transfer protocol (HTTP), etc.
Database 214 may contain model data and/or any information related to data records, such as training and testing data. Database 214 may include any type of commercial or customized database. Database 214 may also include analysis tools for analyzing the information in the database. Processor 202 may also use database 214 to determine and store performance characteristics of product cost process model 104.
Processor 202 may perform a product cost model generation and optimization process to generate and optimize product cost process model 104.
As shown in
The existing products may be characterized by different methods involving various characteristic variables. The characteristic variables may include any information about the existing products. As not all characteristic variables may be related to product cost, input parameters 102 may only include certain characteristic variables (i.e., a subset thereof) to be used in establishing product cost process model 104.
In certain embodiments, the characteristic variables may include product attribute parameters of the products. Product attribute parameters may refer to the characteristic variables associated with the physical products or process plans. For example, product attribute parameters may include dimensional parameters, such as length, height, diameters, thickness, etc. The product attribute parameters may also include structural parameters, such as number of bends, type of flanges, etc., and/or processing parameters, such as type of material, precision tolerance, etc.
Further, cost information of the existing products may be correlated to certain product attribute parameters. These product attribute parameters of the products may be included in input parameters 102 to establish product cost process model 104. The associated cost information corresponding to the product attribute parameters may be included in output parameters 106 of product cost process model 104.
In certain other embodiments, the characteristic variables may include file descriptive parameters of the products. The file descriptive parameters may refer to various design data of the existing products from other product design environments, such as computer design tool 112. For example, instead of physical characteristics, file descriptive parameters may include file attributes of CAD files of the existing products, such as the solid fluid line and associated basic parts, etc. The CAD files may be stored by computer design tool 112 and the file descriptive parameters may be obtained based on the CAD files. Such file descriptive parameters may include, for example, file size, mass of the part, number of surfaces in the CAD file, the tightest and loosest tolerances, number of tolerances, surface areas, and/or two or three dimensional representation information and datum, etc.
These file descriptive parameters may be associated with cost information of the products. The file descriptive parameters may be included in input parameters 102 to establish product cost process model 104. The associated cost information corresponding to the product attribute parameters may also be included in output parameters 106 of product cost process model 104.
Depending on particular applications, input parameters 102 may include the product attribute parameters, the file descriptive parameters, or a combination of both types of parameters. For example, input parameters 102 may include only the product attribute parameters and product cost process model 104 may also be established based on the product attribute parameters. Input parameters 102 may also include only file descriptive parameters and product cost process model 104 may be established based on the file descriptive parameters.
Further, input parameters 102 may include both product attribute parameters and the file descriptive parameters and may be used to establish product cost process model 104 based on both parameters. Alternatively, more than one product cost process models may be established based on different parameters and may be used in parallel.
The data records may also include training data used to build product cost process model 104 and testing data used to validate product cost process model 104. In addition, the data records may also include simulation data used to observe and optimize product cost process model 104.
The data records may also reflect other characteristics of input parameters 102 and output parameters 106, such as statistic distributions, normal ranges, and/or error tolerances, etc. Once the data records are obtained (step 302), processor 202 may pre-process the data records to clean up the data records for obvious errors and to eliminate redundancies (step 304). Processor 202 may remove approximately identical data records and/or remove data records that are out of a reasonable range in order to be meaningful for model generation and optimization. After the data records have been pre-processed, processor 202 may select proper input parameters by analyzing the data records (step 306).
As explained above, the data records may be associated with many characteristic variables, which may also be referred as input variables when processor 202 selects input parameters 102 from these variables. The number of input variables may be greater than the number of input parameters 102 used for product cost process model 104, that is, input parameters 102 may be a subset of the input variables. However, it may be difficult to determine correlation between individual input variables and to select a subset of the input variables as input parameters 102.
In certain situations, the number of input variables in the data records may exceed the number of the data records and lead to sparse data scenarios. Some of the extra input variables may have to be omitted in certain mathematical models. The number of the input variables may need to be reduced to create mathematical models within practical computational time limits.
Processor 202 may select input parameters 102 according to predetermined criteria. For example, processor 202 may choose input parameters 102 by experimentation and/or expert opinions. Alternatively, in certain embodiments, processor 202 may select input parameters based on a mahalanobis distance between a normal data set and an abnormal data set of the data records. The normal data set and abnormal data set may be defined by processor 202 using any appropriate method. For example, the normal data set may include characteristic data associated with input parameters 102 that produce desired output parameters. On the other hand, the abnormal data set may include any characteristic data that may be out of tolerance or may need to be avoided. The normal data set and abnormal data set may be predefined by processor 202.
Mahalanobis distance may refer to a mathematical representation that may be used to measure data profiles based on correlations between parameters in a data set. Mahalanobis distance differs from Euclidean distance in that mahalanobis distance takes into account the correlations of the data set. Mahalanobis distance of a data set X (e.g., a multivariate vector) may be represented as
MDi=(Xi−μx)Σ−1(Xi−μx)′ (1)
where μx is the mean of X and Σ−1 is an inverse variance-covariance matrix of X. MDi weights the distance of a data point Xi from its mean μx such that observations that are on the same multivariate normal density contour will have the same distance. Such observations may be used to identify and select correlated parameters from separate data groups having different variances.
Processor 202 may select a desired subset of input variables such that the mahalanobis distance between the normal data set and the abnormal data set is maximized or optimized. A genetic algorithm may be used by processor 202 to search input parameters 102 for the desired subset with the purpose of maximizing the mahalanobis distance. Processor 202 may select a candidate set of input parameters 102 based on a predetermined criteria and calculate a mahalanobis distance MDnormal of the normal data set and a mahalanobis distance MDabnormal of the abnormal data set. Processor 202 may also calculate the mahalanobis distance between the normal data set and the abnormal data (i.e., the deviation of the mahalanobis distance MDx=MDnormal−MDabnormal). Other types of deviations, however, may also be used.
Processor 202 may select the candidate subset of input variables if the genetic algorithm converges (i.e., the genetic algorithm finds the maximized or optimized mahalanobis distance between the normal data set and the abnormal data set corresponding to the candidate subset). If the genetic algorithm does not converge, a different candidate subset of input variables may be created for further searching. This searching process may continue until the genetic algorithm converges and a desired subset of input variables (e.g., input parameters 102) is selected.
After selecting input parameters 102 (e.g., length, height, diameters, thickness, number of bends, type of flanges, type of material, precision tolerance, etc., and/or file size, mass, number of surfaces, the tightest and loosest tolerances, number of tolerances and datum, etc.), processor 202 may generate product cost process model 104 to build interrelationships between input parameters 102 and output parameters 106 (e.g., product cost, etc.) (step 308). In certain embodiments, product cost process model 104 may correspond to a computational model, such as, for example, a computational model built on any appropriate type of neural network. The type of neural network computational model that may be used may include back propagation, feed forward models, cascaded neural networks, and/or hybrid neural networks, etc. Particular type or structures of the neural network used may depend on particular applications. Other types of computational models, such as linear system or non-linear system models, etc., may also be used.
The neural network computational model (i.e., product cost process model 104) may be trained by using selected data records. For example, the neural network computational model may include a relationship between output parameters 106 (e.g., product cost, etc.) and input parameters 102 (e.g., length, height, diameters, thickness, number of bends, type of flanges, type of material, precision tolerance, etc., and/or file size, mass, number of surfaces, the tightest and loosest tolerances, number of tolerances and datum, etc.). The neural network computational model may be evaluated by predetermined criteria to determine whether the training is completed. The criteria may include desired ranges of accuracy, time, and/or number of training iterations, etc.
After the neural network has been trained (i.e., the computational model has initially been established based on the predetermined criteria), processor 202 may statistically validate the computational model (step 310). Statistical validation may refer to an analyzing process to compare outputs of the neural network computational model with actual or expected outputs to determine the accuracy of the computational model. Part of the data records may be reserved for use in the validation process.
Alternatively, processor 202 may also generate simulation or validation data for use in the validation process. This may be performed either independently of a validation sample or in conjunction with the sample. Statistical distributions of inputs may be determined from the data records used for modeling. A statistical simulation, such as Latin Hypercube simulation, may be used to generate hypothetical input data records. These input data records are processed by the computational model, resulting in one or more distributions of output characteristics. The distributions of the output characteristics from the computational model may be compared to distributions of output characteristics observed in a population. Statistical quality tests may be performed on the output distributions of the computational model and the observed output distributions to ensure model integrity.
Once trained and validated, product cost process model 104 may be used to predict values of output parameters 106 when provided with values of input parameters 102. Further, processor 202 may optimize product cost process model 104 by determining desired distributions of input parameters 102 based on relationships between input parameters 102 and desired distributions of output parameters 106 (step 312).
Processor 202 may analyze the relationships between desired distributions of input parameters 102 and desired distributions of output parameters 106 based on particular applications. For example, processor 202 may select desired ranges for output parameters 106 (e.g., desired product cost, etc.). Processor 202 may then run a simulation of the computational model to find a desired statistical distribution for an individual input parameter. That is, processor 202 may separately determine a distribution (e.g., mean, standard variation, etc.) of the individual input parameter corresponding to the normal ranges of output parameters 106. After determining respective distributions for all individual input parameters, processor 202 may combine the desired distributions for all the individual input parameters to determine desired distributions and characteristics for overall input parameters 102.
Alternatively, processor 202 may identify desired distributions of input parameters 102 simultaneously to maximize the possibility of obtaining desired outcomes. In certain embodiments, processor 202 may simultaneously determine desired distributions of input parameters 102 based on zeta statistic. Zeta statistic may indicate a relationship between input parameters, their value ranges, and desired outcomes. Zeta statistic may be represented as
where
Under certain circumstances,
Processor 202 may identify a desired distribution of input parameters 102 such that the zeta statistic of the neural network computational model (i.e., product cost process model 104) is maximized or optimized. An appropriate type of genetic algorithm may be used by processor 202 to search the desired distribution of input parameters with the purpose of maximizing the zeta statistic. Processor 202 may select a candidate set of values of input parameters 102 with predetermined search ranges and run a simulation of product cost process model 104 to calculate the zeta statistic parameters based on input parameters 102, output parameters 106, and the neural network computational model. Processor 202 may obtain
Processor 202 may select the candidate set of values of input parameters 102 if the genetic algorithm converges (i.e., the genetic algorithm finds the maximized or optimized zeta statistic of product cost process model 104 corresponding to the candidate set of values of input parameters). If the genetic algorithm does not converge, a different candidate set of input parameters 102 may be created by the genetic algorithm for further searching. This searching process may continue until the genetic algorithm converges and a desired set of values of input parameters 102 is identified. Processor 202 may further determine desired distributions (e.g., mean and standard deviations) of input parameters 102 based on the desired set of values of input parameters 102. Once the desired distributions are determined, processor 202 may define a valid input space that may include any input parameter within the desired distributions (step 314).
In one embodiment, statistical distributions of certain input parameters may be impossible or impractical to control. For example, an input parameter may be associated with a physical attribute of a product, such as size of the product, or the input parameter may be associated with a constant variable within product cost process model 104 itself. These input parameters may be used in the zeta statistic calculations to search or identify desired distributions for other input parameters corresponding to constant values and/or statistical distributions of these input parameters.
Returning to
Processor 202 may receive product characteristic parameters 108 from computer design tool 112 (step 402). Depending on a particular design application, processor 202 may receive product attribute parameters as product characteristic parameters 108 of the product under design. That is, when a user of computer design tool 112 is designing the product, such as the solid fluid line, the user may cause computer design tool 112 to compose product attribute parameters of the product, such as length, height, diameters, thickness, number of bends, type of flanges, type of material, precision tolerance, etc., and send the product attribute parameters to processor 202.
Alternatively, computer design tool 112 may compose file descriptive parameters of the product, such as CAD file size, mass, number of surfaces, the tightest and loosest tolerances, number of tolerances and datum, etc., and send the file descriptive parameters as product characteristic parameters 108 to processor 202. Processor 202 may then receive file descriptive parameters of the product. Further, in certain embodiments, processor 202 may receive both the product attribute parameters and the file descriptive parameters as product characteristic parameters 108 from computer design tool 112.
After obtaining product characteristic parameters 108, processor 202 may calculate product cost 110 based on product cost process model 104 (step 404). For example, processor 202 may calculate product cost of the product based on the product attribute parameters of the product and product cost process model 104 that has been established based on product attribute parameters. Processor 202 may also calculate product cost of the product based on the file descriptive parameters of a CAD file of the product and product cost process model 104 that has been established based on file descriptive parameters.
Alternatively, processor 202 may calculate product cost of the product based on both the product attribute parameters and the file descriptive parameters of the product. When both parameters are used, product cost process model 104 may also have been established based on both product attribute parameters and file descriptive parameters. Further, processor 202 may also calculate certain other statistics related to the product attribute parameters, the file descriptive parameters, and/or product cost 110, such as distributions or histograms of such data.
Processor 202 may also present results (e.g., product cost 110, etc.) of these calculations to computer design tool 112 (step 406). Processor 202 may present the results to computer design tool 112 via any appropriate interfaces between processor 202 and computer design tool 112, and may cause the results to be displayed on console 208. Computer design tool 112 may use the results in subsequent design processes, store the results in a database, and/or display the results to the user via a user interface. Alternatively, processor 202 may directly display the results on console 208.
Processor 202 may also optimize product characteristic parameters 108 to improve the design process associated with the product (step 408). For example, the user of computer design tool 112 may limit the product cost of a certain product to a desired value or a desired range of values. Computer design tool 112 may communicate the desired value or the desired range of values of product cost 110 to processor 202. Processor 202 may identify desired values of certain or all product characteristic parameters 108 of the product. That is, processor 202 may modify product characteristic parameters 108 based on the desired value or the desired range of values of product cost 110. Processor 202 may modify such parameters based on zeta statistic, as explained in above sections. A new set of values of product characteristic parameters 108 may be identified such that the corresponding product cost may be within the desired product cost range or may be closer to the desired product cost range.
The disclosed systems and methods may provide efficient and accurate product cost prediction without explicitly defining traditional product cost factors such as surface fittings or process plans. More particularly, the disclosed systems and methods may provide practical solutions when process models are difficult to build using other techniques due to computational complexities and limitations. Further, the disclosed systems and methods may derive the product cost from product characteristic parameters simultaneously, thereby potentially substantially minimizing computation requirements. Real-time product cost feedback approaches may be realized based on the minimized computation requirements.
The disclosed systems and methods may be integrated into other design environments, such as a CAD environment so that users of the design environment may use the disclosed systems and methods transparently (i.e., without knowing that the underlying product cost process model is established based the disclosed systems and methods). In different configurations, the disclosed systems and methods may also be used to provide such product cost process models to a plurality of design environments concurrently by, for example, using a centralized server connected to a computer network and incorporating the disclosed systems.
Manufacturers or other organizations may use the disclosed systems and methods, or any part thereof, to internally assist manufacturing processes and/or related design processes by accurately predicting product cost for manufacturing items. Parameters other than explained in this disclosure (e.g., product attribute parameters, file descriptive parameters, etc.) may also used with the disclosed systems and methods, as will be recognized by those skilled in the art.
Further, computer software providers may also use the disclosed systems and methods to improve computer design tools by incorporating the product cost prediction features into the computer design tools as add-ons or value enhancing services.
Other embodiments, features, aspects, and principles of the disclosed exemplary systems will be apparent to those skilled in the art and may be implemented in various environments and systems.