Main Content

Optimizing Normalizer Breakpoints and Table Values

Optimizing breakpoints alters the position of the table normalizers so that the total square error between the model and the table is reduced.

This routine improves the fit between your strategy and your model. The following illustration shows how the optimization of breakpoint positions can reduce the difference between the model and the table. The breakpoints are moved to reduce the peak error between breakpoints. In CAGE this happens in two dimensions across a table.

Two torque vs engine speed plots comparing initial breakpoints with optimized breakpoints; green areas show error reduction after optimization.

Filling Methods

The methods for spacing the breakpoints of your normalizers in CAGE are:

  • For one-dimensional tables

    • ReduceError

    • ShareAveCurv

  • For two-dimensional tables

    • ShareAveCurv

    • ShareCurvThenAve

ReduceError

Spacing breakpoints using ReduceError uses a greedy algorithm. CAGE:

  1. Locks two breakpoints at the extremities of the range of values.

  2. Interpolates the function between these two breakpoints.

  3. Calculates the maximum error between the model and the interpolated function.

  4. Places a breakpoint where the error is maximum.

  5. Repeats steps 2, 3, and 4.

  6. Locates all the breakpoints, ending the algorithm.

ShareAveCurv and ShareCurvThenAve

Consider calibrating the normalizers for speed, N, and relative air-charge, L, in the preceding MBT model.

In both cases, CAGE approximates the MBTAV(N, L) model, in this case, using a fine mesh.

The breakpoints of each normalizer are calibrated in turn. In this example, these routines calibrate the normalizer in N first.

Spacing breakpoints using ShareAveCurv or ShareCurvThenAve calculates the curvature, K, of the model MBTAV(N, L):

as an approximation for

Both routines calculate the curvature for a number of slices of the model at various values of L. For example, the figure shown has a number of slices of a model at various values of L.

3D surface plot showing model slices at various L values, with colored surface and vertical slice planes intersecting the grid.

  • ShareAveCurv averages the curvature over the range of L, then spaces the breakpoints by placing the ith breakpoint according to the following rule.

  • ShareCurvThenAve places the ith breakpoint according to the rule, then finds the average position of each breakpoint.

Rule for Placing Breakpoints

If j breakpoints need to be placed, the ith breakpoint, Ni, is placed where the average curvature is[1]:

This condition spaces out the breakpoints so that an equal amount of curvature (in an appropriate metric) occurs in each breakpoint interval. The breakpoint placement is optimal in the sense that the maximum error between the lookup table estimate and the model decreases with the optimal convergence rate of O(N-2). For reference, consider that equally spaced breakpoints have an order of O(N-1/2).

Optimizing Table Values

The Feature Fill Wizard optimizes the table values to minimize the current total square error between the feature values and the model.

This routine optimizes the fit between your strategy and your model. Using Fill places values into your table. The optimization process shifts the cell values up and down to minimize the overall error between the interpolation between the model and the strategy.

In this example, the green shaded areas show the error between the mesh model (evaluated at the number of grid points you choose) and the table values.

Two torque versus engine speed plots showing error with initial breakpoints and reduced error after optimization. Green areas indicate error regions.

CAGE evaluates the model over the number of grid points specified in the Feature Fill Wizard, then calculates the total square error between this mesh model and the feature values. CAGE adjusts the table values until this error is minimized, using lsqnonlin if there are no gradient constraints. Otherwise, CAGE uses fmincon with linear constraints to specify the gradient of the table at each cell.

References

[1] Boor, Carl de. A Practical Guide to Splines. New York: Springer-Verlag, 1978, pp 46.

See Also

Topics