## Metamodeling

### Overview

Metamodels are approximate mathematical models, also called surrogate models, used to emulate the response of complex modeling frameworks when given sample model responses. They are typically used when an analytical function is unavailable or when obtaining a function value is computationally expensive, such as in large-scale finite element simulations. Metamodels mimic the behavior of the more complex analytical function while significantly reducing computational time. Metamodeling methods are often used in design optimization to provide function evaluations of the objective function(s) and response(s). Because of the robust nature of metamodels, they can be applied to problems at any length scale. They are essentially multidimensional interpolation methods.

### Metamodel Terminology

Design of Experiments (DOE) – selected points and their function evaluations within the design space used to build the metamodel. DOEs are typically constructed using methods such as Latin Hypercube Sampling (LHS) to provide design points which are spread throughout the design space. The sample points provide a way to "train" the metamodel to capture simulation model behavior throughout the design space.

Design Point or Training Point - design variable and response from the design of experiments used to construct or train the metamodel.

Validation Point, Test Point, or Sampling Point - points within the design space where a prediction is desired, also used to check the accuracy of the metamodel.

### Building a Metamodel

1) Create Design of Experiment points to use as Design points with upper and lower bounds on the variables (see example 1, example 2, and example 3). The number of points depends on the problem but generally should be at least 3xN where N is the number of variables. More points can produce a more accurate model but this is not always true. More points can also increase computational time, as the response from the analytical function needs to be calculated for each point.

2) Obtain responses of interest at each design point and test point. This is typically done by running simulations, performing experiments, or using an analytical function.

3) Build the metamodel using one of numerous techniques and check the error using an error metric.

Generally, metamodels are only capable of interpolating within the provided parameter design space, so care must be taken to avoid inputting parameters less than or greater than the parameter's minimum or maximum, respectively.

### Normalizing Model Inputs

When using metamodels, it is important for inputs to be normalized in order to mitigate potential problems with high order of magnitude parameters. For non-normalized inputs, generally the highest order of magnitude parameter will control the surrogate output. This is most noticeable when using a Radial Basis Function Network (RBFN). Since RBFNs map the input parameters to a radius (or vector magnitude), parameters that can be negative or positive (such as compressive/tensile stresses) will not be mapped monotonically. That is, compressive stresses will be mapped the same as tensile ones. To avoid this problem, the N-dimensional model space can be mapped to a unit hypercube. This forces all parameters to be mapped monotonically (one-to-one) between a minimum of 0 and a maximum of 1. Effectively, this is mapping each input to a standard uniform distribution, U(0,1). This can be represented by the equation:

`		    `

Using this normalization method, negative values can be properly monotonically mapped for RBFNs.

### Metamodel Techniques

#### Polynomial Response Surface (PRS)

As the name implies, the PRS method uses a polynomial function of the design variables to approximate the response of the analytical model.

#### Gaussian Process (GP)

MATLAB GP function: This file contains a MATLAB function script for building a GP metamodel. This function requires an outside toolbox and a link for this toolbox can be found in the comments section of the file.

#### Radial Basis Function (RBF)

Radial basis functions are real-valued functions whose value depends only on the distance from the origin or center. A typical metamodel will use a sum of weighted radial basis functions, each with a different center and weight to approximate the analytical model.

MATLAB RBF function: This is a MATLAB function script file for building an RBF metamodel. An implementation of the RBF surrogate is also available in python

MATLAB RBF equation: This file contains a MATLAB script to create a text file containing an analytic RBF equation based on a previously built RBF metamodel.

#### Kriging (KR)

MATLAB KR function: This file contains a MATLAB function script for building a KR metamodel. This function requires an outside toolbox and a link for this toolbox can be found in the comments section of the file.

#### Support Vector Regression (SVR)

MATLAB SVR function: This file contains a MATLAB function script for building a SVR metamodel. This function requires an outside toolbox and a link for this toolbox can be found in the comments section of the file.

Write SVR equation: This file contains a MATLAB script to create a text file containing an analytic SVR equation based on a previously built SVR metamodel.

#### Optimized Ensemble (EN)

An Ensemble of metamodels using optimized weight factors. See this paper for a description of the method.

MATLAB EN function: This file contains a MATLAB function file implementing the EN method.

### Structural Scale

A comparative study of metamodeling methods for multi objective crashworthiness optimization
Authors: Howie Fang, Masoud Rais-Rohani, Z. Liu, and Mark Horstemeyer

Numerical simulations of multiple vehicle crashes and multidisciplinary crashworthiness optimization
Authors: Howie Fang, K.N. Solanki, and Mark Horstemeyer

Product Design Optimization with Microstructure-property Modeling and Associated Uncertainties
Authors: K.N. Solanki, E. Acar, Masoud Rais-Rohani, Mark Horstemeyer, and G. Steele