4. Data generation for occupant safety ML

Physics-informed machine learning (PIML) for occupant safety is only as credible as the data that constrains it. A surrogate model trained to predict injury metrics such as HIC15, chest deflection, or femur axial force must see a design space that is broad enough to generalize, dense enough near the regulatory boundaries to be accurate where it matters, and honest enough about physical noise that the model does not learn artifacts of a single test rig. This chapter treats data generation as an engineering discipline: how to choose design variables and their ranges, how to sample them, how to run and monitor a simulation campaign, and how to fuse sparse, noisy physical sled or crash tests with abundant but imperfect CAE output.

Defining the design space before sampling anything

Start from the restraint-system parameters that a real program can actually change, not from every variable the solver exposes. A typical frontal-impact occupant-safety study might use the following design vector, with ranges chosen to bracket the production intent and the regulatory corridor:

VariableSymbolRangeRationale
Seat track positionxseat−40 to +40 mmFore–aft occupant packaging envelope
Seat back angleθback18° to 30°Comfort range vs. submarining risk
Belt anchor heightzanchor−30 to +30 mmD-ring geometry affecting shoulder load path
Pretensioner forceFPT1.5 to 4.0 kNRetractor pyrotechnic output
Load limiter levelFLL2.0 to 5.0 kNTorso force cap
Airbag vent diameterdvent20 to 45 mmPressure decay tuning
Impact velocityv025 to 56 km/hFrom low-speed to FMVSS 208 corridor

Two disciplines matter here. First, fix the coordinate convention explicitly: define +x as forward along the vehicle axis, +z upward, and state that seat track position is measured from the mid-track datum. Every DOE table, simulation deck, and plot must use the same convention, or the surrogate will silently learn a mirrored response. Second, distinguish controllable design variables from noise variables (build variation, dummy certification tolerance, friction coefficient of the belt). Noise variables belong in a separate outer array or in a stochastic sampling scheme, not mixed into the main design matrix.

Sampling strategies and when each is appropriate

Full-factorial designs explode: seven variables at three levels is 2,187 runs, and each LS-DYNA occupant simulation may take 30–90 minutes on 16 cores. Space-filling designs are the practical default. A Latin hypercube sample (LHS) with n = 200 points gives good marginal coverage, and maximizing the minimum inter-point distance (maximin LHS) avoids clusters that waste runs. For surrogate models that must be accurate near a boundary — for example, the transition where chest deflection crosses the 63 mm injury-assessment reference — add a boundary-focused refinement: sample 60% of points uniformly, then allocate 40% to a band within ±10% of the predicted threshold from a coarse first-pass model.

Sobol sequences are preferable when you intend to compute variance-based sensitivity indices, because their low-discrepancy structure supports Saltelli-style estimators. A practical hybrid used in many programs: 150 maximin-LHS points for initial surrogate fitting, 50 Sobol points for global sensitivity, and 30 adaptive points placed by expected-improvement or max-variance criteria where the surrogate is least certain. The figure below shows how these three sampling layers combine into a single campaign and how the resulting data flows into training, validation, and physical-test reconciliation.

Design space (7 variables) x_seat, θ_back, z_anchor, F_PT, F_LL, d_vent, v_0 Controllable: 6 restraint vars Noise: belt μ, dummy tol., build variation Convention: +x forward, +z up Three-layer sampling Layer 1 — maximin LHS, n = 150 initial surrogate fit Layer 2 — Sobol, n = 50 global sensitivity (Saltelli) Layer 3 — adaptive, n = 30 max-variance / boundary band Simulation campaign 230 runs × 45 min / 16 cores ≈ 7.2 wall-clock days (4 nodes) QC gates per run: • energy error < 5% • hourglass < 10% internal energy • belt slip & dummy kinematics sane • HIC15, chest defl., femur force Fusion with physical test data Sparse sled tests: n = 8–15, 3 repeats each Noise model: σ_test ≈ 4–7% of mean HIC15 Bias correction: Δ(x) = y_test − y_CAE Fit GP on residuals, add to surrogate mean Weighted loss: w_sim = 1, w_test = 1/σ²_test Hold-out: 20% of sim + all repeats of 2 tests Report R² and RMSE per injury metric Validation & acceptance 1. K-fold CV on simulation set (k = 5) 2. Blind prediction on held-out sled tests 3. Physics check: monotonicity in v_0, F_PT ↑ ⇒ chest defl. ↓ (expected sign) 4. Extrapolation guard: flag queries outside convex hull of training set Accept if RMSE_HIC15 < 8% and sign checks pass

Running the campaign: reproducibility and QC gates

A simulation campaign is a data pipeline, and it must be versioned like one. Each run should be identified by a hash of its input deck, solver version, and material-card set. A minimal run manifest in YAML keeps this auditable:

run_id: LHS_0042
design:
  x_seat: -12.4      # mm, +x forward
  theta_back: 24.1   # deg
  z_anchor: 8.7      # mm
  F_PT: 2.85         # kN
  F_LL: 3.60         # kN
  d_vent: 31.0       # mm
  v_0: 50.0          # km/h
solver: ls-dyna R13.1.0 smp d
deck_hash: 9f3c1a...
outputs:
  HIC15: 612.4
  chest_defl_mm: 58.2
  femur_left_kN: 3.41
qc:
  energy_error_pct: 2.1
  hourglass_pct: 4.8
  status: PASS

Do not accept a run just because the solver exited normally. Enforce QC gates: global energy error below 5%, hourglass energy below 10% of internal energy, no negative-volume elements, and a sanity check that the dummy's head and chest accelerations are physically plausible (peak head acceleration typically in the 40–90 g range for a belted 50 km/h sled pulse). Runs that fail are quarantined, not silently dropped — a cluster of failures often reveals a bad parameter corner that the surrogate would otherwise interpolate through with false confidence.

Handling noisy and sparse physical test data

Physical sled and crash tests are expensive, sparse, and noisy. Repeatability studies on belted sled tests commonly show coefficients of variation of 3–8% on HIC15 and chest deflection, driven by dummy certification state, belt routing, and pyrotechnic variability. Treat this as a measurement model, not as error to be averaged away. If you have three repeats at a design point, estimate σtest from the sample standard deviation and carry it forward as a per-point weight in the loss function:

w_i = 1 / sigma_i^2
loss = sum_i w_i * (y_i - f(x_i))^2 / sum_i w_i

For sparse coverage, a residual-correction approach works well. Fit the surrogate fCAE(x) on the simulation set, then compute residuals rj = ytest,j − fCAE(xj) at the physical test points and fit a Gaussian process on those residuals. The corrected prediction is f(x) = fCAE(x) + g(x), where g(x) reverts to zero far from test points. This preserves the physics-rich simulation trend while anchoring the model to reality where evidence exists. Crucially, hold out entire physical test configurations — not individual repeats — during validation, otherwise leakage from repeated runs inflates apparent accuracy.

Do not tune the surrogate to match a single noisy test point. With σtest ≈ 5% and only three repeats, the 95% confidence interval on the mean is roughly ±6% of the mean; a model that hits one test exactly may be overfitting noise. Prefer agreement within the confidence band across multiple configurations.

Practical acceptance criteria

A campaign is ready for model training when three conditions hold: the design matrix has no duplicated or near-duplicated points (minimum normalized distance above 0.05), the QC pass rate exceeds 95%, and a blind prediction on held-out physical tests meets the program's tolerance — for example, RMSE below 8% on HIC15 and correct sign of the dominant sensitivity (increasing pretensioner force should reduce chest deflection). If the blind test fails, inspect whether the failure is a bias (systematic offset, suggesting a CAE correlation issue) or a variance problem (scattered errors, suggesting insufficient sampling or a missing variable). That diagnosis determines whether the next iteration adds runs, adds variables, or revisits the CAE model itself.