How It Works
The optimization loop:- Parameters define the design variables being optimized (e.g., electrode thickness, porosity)
- Model runs a simulation with those parameters under specified operating conditions
- Variables are time-series outputs from the simulation (voltage, temperature, capacity)
- Metrics extract scalar values from variables (final voltage, maximum temperature, mean current)
- Actions define what to do with metrics (maximize, minimize, constrain)
- Cost combines action results into a single objective for the optimizer
Design Parameters
Design parameters are the degrees of freedom the optimizer is allowed to vary. Each parameter has a feasible range (bounds) set by manufacturing constraints or material properties — for example, electrode thickness might be bounded between and , and active material volume fraction between and . Choosing parameters well is more important than choosing many: two or three influential parameters with realistic bounds usually yields more insight than a dozen loosely-bounded ones. Where parameters are physically coupled — porosity and active material fraction must sum to one, for instance — the coupling should be encoded in the problem definition rather than left to the optimizer to discover.Metrics
Metrics transform simulation time-series into scalar values that can be optimized. They answer questions like “What is the voltage at the end of discharge?” or “What is the maximum temperature?”Point metrics
Extract a value at a specific condition in the simulation:Aggregation metrics
Compute statistics over the entire solution:Composed metrics
Derived quantities are built by combining primitive metrics with arithmetic. For example, pulse resistance is the voltage change divided by the current:Step and cycle metrics
Experiments with multiple steps or cycles need metrics that unroll along that axis — e.g. capacity measured at the end of the discharge step of every cycle, yielding a capacity-fade curve rather than a single number.Actions
Actions define how the optimizer should treat each metric:
Constraints are typically enforced through penalty functions: when the constraint is violated, a large term is added to the cost proportional to the amount of violation. This converts a constrained problem into an unconstrained one that any cost-minimizing optimizer can handle.
Multi-objective optimization
Most design problems trade off competing goals — energy vs. power, capacity vs. charge time, performance vs. temperature. There are two ways to combine them:- Weighted sum: pick weights and optimize . Simple, but the weights implicitly encode a preference and can hide Pareto tradeoffs.
- Constraint-based: maximize the primary objective subject to the others being bounded (e.g. maximize energy density subject to T_{\max} \leq 50\,^{\circ}\text{C}). Often more interpretable because the constraint thresholds map directly to design requirements.
Example: Maximizing Energy Density
This example illustrates the full workflow on a classic battery design problem.Problem description
Electrode thickness presents a fundamental design tradeoff:- Thicker electrodes increase capacity (more active material per unit area) but worsen rate capability because lithium must diffuse further
- Thinner electrodes improve power delivery but reduce total energy storage
Mathematical formulation
The optimization problem is: subject to: where is the positive electrode thickness, is the gravimetric energy density at end of discharge, is the maximum cell temperature during discharge, and is the temperature safety limit (e.g. ). The energy density is computed from the simulation as: where is voltage, is current (positive = discharge), is the discharge end time, and is the cell mass.What the optimizer does
For each candidate thickness, a simulation is run and the metrics are evaluated:- The model solves the electrochemical equations to get , , etc.
- A point metric at extracts the final energy density
- An aggregation metric extracts the peak temperature
- The actions convert these into a cost: negative (for maximization) plus a penalty if
- The optimizer uses this cost to propose the next candidate
Choosing an Optimizer
Design optimization is a black-box problem: each evaluation is a full simulation, so optimizer choice mostly depends on simulation cost, parameter count, and available parallelism.
Surrogate methods (Bayesian optimization, TuRBO, SOBER) do more work per round to save expensive simulations. Population methods (CMA-ES, differential evolution, particle swarm) are cheaper per iteration and suit faster objectives.
When simulations run in parallel, wall-clock time is driven by the number of optimization rounds rather than the total number of evaluations. TuRBO is designed for that regime; set its warm-up size to the batch width so the first round uses the available workers.
SOBER is useful when you want quadrature-style batch selection. For pure optimization, prefer TuRBO, Bayesian optimization, or differential evolution.