1. Build a Baseline Sled Model and Correlat

Build a Baseline Sled Model and Correlate Occupant Kinematics Learning card

Baseline Sled Model Scope and Correlation Target

This first case establishes the reference model that every later correlation exercise will build on. The task is narrow but demanding: assemble a frontal sled CAE model with a Hybrid III 50th percentile male dummy, run one baseline simulation, and compare the simulated head and chest resultant accelerations against a physical sled test using ISO 6487 channel filtering and objective rating metrics. The deliverable is not a "good-looking" animation — it is a defensible statement of how far the baseline model is from test, expressed in numbers that can be tracked as the model is improved in later cases.

Two conventions must be fixed before any work begins, because every downstream comparison depends on them:

  • Sign convention: the vehicle forward direction is +X. The dummy faces +X. Head and chest accelerations are reported as resultant magnitudes (always positive) for rating, but the signed X components are retained for time-history plots so that phase and polarity errors are visible.
  • Time zero: t = 0 is defined as the first sample at which sled acceleration exceeds 0.5 g. Both test and CAE channels are shifted to this reference before any metric is computed. A 5 ms misalignment at this stage will corrupt every cross-correlation value later.

Model Assembly: What Must Be Present and Correct

A baseline sled model that can be correlated has five subsystems that must each be individually sanity-checked before the run. Skipping any one of them produces a correlation failure that is impossible to attribute.

SubsystemKey objectsBaseline check before running
Sled / buckRigid sled platform, seat frame, floor pan, knee bolster, toe panTotal mass within 2% of test buck mass; prescribed acceleration pulse applied to sled node set
RestraintRetractor, shoulder belt, lap belt, buckle, anchor pointsBelt path matches test routing; initial belt slack and pretensioner stroke set to test values
DummyHybrid III 50th percentile FE model, positioning joints, contact definitionsH-point and seat back angle match test setup sheet; limb angles within 2° of test photos
ContactDummy-to-seat, dummy-to-belt, dummy-to-knee bolsterNo initial penetration; friction coefficients set from test hardware (belt-to-dummy μ ≈ 0.3, dummy-to-seat μ ≈ 0.5)
OutputHead CG accelerometer, chest accelerometer triad, sled accelerometerRequested at the same sample rate as test (typically 10 kHz), with ISO 6487 CFC 1000 filter applied post-run

The most common baseline error is a mass mismatch. If the sled plus buck mass differs from the test by more than a few percent, the prescribed pulse will produce a different velocity change (ΔV), and every acceleration comparison will be biased. Compute ΔV by integrating the pulse and compare it to the test-reported ΔV before proceeding.

Running the Baseline and Extracting Comparable Channels

Run the simulation with the prescribed pulse and confirm the run terminates normally with no negative-volume or mass-scaling warnings that would invalidate the result. Then extract three channels: sled X acceleration, head CG resultant acceleration, and chest resultant acceleration. Apply ISO 6487 CFC 1000 filtering to the CAE channels using the same filter implementation and phase correction as the test data reduction. Do not compare unfiltered CAE output to filtered test data — this alone can create apparent 10–15% magnitude errors at peak.

# Example channel extraction and ISO 6487 CFC 1000 filtering (Python, scipy)
import numpy as np
from scipy import signal

def cfc1000_filter(t, a):
    # ISO 6487 CFC 1000: 4th-order Butterworth, fc = 1650 Hz, zero-phase
    fs = 1.0 / (t[1] - t[0])
    fc = 1650.0
    b, a_coef = signal.butter(4, fc / (fs / 2.0), btype='low')
    return signal.filtfilt(b, a_coef, a)

# Load CAE and test channels (columns: time_s, sled_ax, head_res, chest_res)
cae  = np.loadtxt('baseline_cae.csv', delimiter=',', skiprows=1)
test = np.loadtxt('sled_test_01.csv', delimiter=',', skiprows=1)

# Align to t=0 at first sample exceeding 0.5 g on sled channel
def align(t, sled_ax):
    idx = np.argmax(np.abs(sled_ax) > 0.5 * 9.81)
    return t - t[idx]

cae[:, 0]  = align(cae[:, 0],  cae[:, 1])
test[:, 0] = align(test[:, 0], test[:, 1])

head_cae_f  = cfc1000_filter(cae[:, 0],  cae[:, 2])
chest_cae_f = cfc1000_filter(cae[:, 0],  cae[:, 3])
head_tst_f  = cfc1000_filter(test[:, 0], test[:, 2])
chest_tst_f = cfc1000_filter(test[:, 0], test[:, 3])

Resample both filtered sets onto a common 0.1 ms grid over the 0–150 ms window before computing metrics. This removes any dependence on differing native sample rates and makes the correlation metrics reproducible.

Objective Rating: What the Numbers Mean

Two metrics are sufficient for a baseline and are the ones to carry forward. The peak value ratio (CAE peak / test peak) tells you whether the model over- or under-predicts severity. The cross-correlation factor (the maximum of the normalized cross-correlation over a ±15 ms lag window) tells you shape and phase agreement independent of amplitude. Report both, plus the lag at which the maximum occurs — a consistent lag across head and chest usually points to a timing issue in the pulse or belt engagement, not a dummy property error.

A baseline is considered "correlation-ready" when: peak ratio is within 0.85–1.15 for both head and chest, cross-correlation factor ≥ 0.85, and the lag at maximum correlation is within ±5 ms. If any of these fail, the failure mode itself is the finding — record it before tuning anything.
Baseline Sled Correlation Workflow — Head & Chest Acceleration Model Assembly Sled / Buck mass ±2%, pulse applied Restraint System belt path, slack, pretensioner Hybrid III 50th Dummy H-point, joint angles Contact Definitions no penetration, μ set Output Channels head CG, chest, sled @ 10 kHz Pre-run gate ΔV match, no initial penetration, mass OK Signal Processing t = 0 alignment first sample > 0.5 g on sled ISO 6487 CFC 1000 4th-order Butterworth, zero-phase Resample to 0.1 ms grid window 0–150 ms Peak ratio CAE peak / test peak Cross-correlation max over ±15 ms lag Report lag at max correlation Correlation Judgement Head resultant peak ratio 0.85–1.15 XCF ≥ 0.85, lag ±5 ms Chest resultant peak ratio 0.85–1.15 XCF ≥ 0.85, lag ±5 ms PASS → baseline locked proceed to belt correlation FAIL → record mode amplitude / phase / pulse Common failure signatures mass mismatch → ΔV bias belt slack → late chest rise unfiltered CAE → peak overshoot

Interpreting a Baseline Result and Recording It

Suppose the baseline run returns a head peak ratio of 1.09 with a cross-correlation factor of 0.91 at a lag of +3 ms, and a chest peak ratio of 0.88 with a cross-correlation factor of 0.86 at a lag of +7 ms. The head passes all three gates. The chest passes amplitude and shape but fails the lag gate at +7 ms. The correct interpretation is not "tune the chest" — it is that the chest channel is rising later than test, which most often traces to belt slack, retractor spool-out timing, or a seat back angle that lets the torso rotate before the belt engages. Record this as the baseline finding; the belt system is the subject of the next case, so the lag is expected to be addressed there rather than by ad-hoc dummy tuning.

If instead the head peak ratio came back at 1.35 with a cross-correlation factor of 0.72, the shape is wrong, not just the amplitude. Before touching any parameter, verify the filter was applied to the CAE channel and that the pulse ΔV matches test. An unfiltered CAE head channel routinely over-predicts peak by 20–30% and produces exactly this signature.

Do not adjust dummy joint stiffness, contact friction, or belt properties to force the baseline metrics into range. The baseline exists to expose the model's starting error. Any tuning done here contaminates the attribution of later cases, where belt, airbag, and seat parameters are correlated one at a time.

Baseline Record Sheet

Capture the following for the baseline so that every later case can be compared against a fixed reference. Fill the values from the actual run; the structure below is the minimum record.

FieldHead resultantChest resultant
Test peak (g)——
CAE peak, CFC 1000 (g)——
Peak ratio——
Cross-correlation factor——
Lag at max correlation (ms)——
Gate result (pass/fail)——
Observed failure mode——

Also record the sled pulse ΔV (CAE vs test), the buck mass difference, and the dummy H-point offset. These three numbers explain most baseline failures and are the first things to check when a later case's correlation unexpectedly degrades.

Keep the baseline CAE deck and the filtered channel CSVs under version control with a tag such as baseline_v1. Every subsequent correlation case should diff against this tag, not against a re-run, so that improvements are attributable to the parameter change under study rather than to incidental model edits.