4. Sled Test Velocity Profile Calculation from Acceleration Pulse

Why the Velocity Profile Must Be Reconstructed

A sled test measures acceleration, not velocity. The acceleration pulse is the primary recorded signal, but the quantities that actually matter for occupant restraint validation — the velocity change Δv, the pulse centroid, and the displacement the sled travels — are all derived from it. Reconstructing the velocity profile by numerical integration is therefore a mandatory post-processing step, and it is also the first place where a bad pulse reveals itself: an integration that does not close on the intended test velocity means the pulse is wrong, the measurement is wrong, or the baseline handling is wrong.

The governing relation is straightforward. With acceleration a(t) sampled at a fixed rate, velocity is the cumulative integral:

v(tk) = v0 + ∫0tk a(t) dt ≈ v0 + Σi=1k ai Δt

where Δt = 1/fs. The practical difficulty is never the formula; it is the sign convention, the pre-trigger baseline, the integration scheme, and the decision about where the pulse starts and ends.

Sign Convention and Baseline Correction

Adopt one convention and state it explicitly before touching the data. In this example the sled decelerates during the crash phase, so the measured acceleration is negative in the direction of travel; the velocity change magnitude is reported as a positive number. If your data acquisition system stores the opposite sign, invert the whole record once, at the start, and never mix conventions mid-calculation.

Pre-trigger samples are not zero. Bias in the accelerometer, charge amplifier drift, and quantization all contribute a small offset that integrates into a large velocity error over a 100 ms pulse. Compute the mean of a quiet window before trigger (typically 20–50 ms) and subtract it from every sample. A residual bias of 0.5 m/s² integrated over 0.1 s produces 0.05 m/s of false Δv — small, but a 2 m/s² bias produces 0.2 m/s, which is already at the edge of a typical ±0.2 m/s acceptance band.

Worked Example: Trapezoidal Integration of a Measured Pulse

The following Python fragment performs baseline correction, trapezoidal integration, and the acceptance check. It is self-contained and runs on any NumPy installation.

import numpy as np

# --- Example input: measured sled acceleration, 10 kHz, 120 ms record ---
fs = 10_000.0                 # sampling rate [Hz]
dt = 1.0 / fs
t = np.arange(0.0, 0.120, dt)

# Synthetic "measured" pulse: half-sine, 40 g peak, 90 ms duration,
# negative because the sled decelerates in the travel direction.
peak_g   = 40.0
duration = 0.090
g0       = 9.80665
a_true = np.where(t < duration,
                  -peak_g * g0 * np.sin(np.pi * t / duration),
                  0.0)

# Add a realistic pre-trigger bias and a little noise
rng = np.random.default_rng(7)
a_meas = a_true + 0.8 + rng.normal(0.0, 0.35, t.size)   # bias +0.8 m/s^2

# --- 1. Baseline correction from the pre-trigger window ---
pre = t < 0.010
bias = a_meas[pre].mean()
a_corr = a_meas - bias

# --- 2. Trapezoidal cumulative integration ---
v = np.zeros_like(a_corr)
v[1:] = np.cumsum(0.5 * (a_corr[1:] + a_corr[:-1]) * dt)

# --- 3. Report and verify ---
dv_measured = abs(v[-1])
dv_intended = 24.0            # intended test velocity [m/s]
tol         = 0.2             # acceptance band [m/s]

print(f"bias removed      : {bias:+.3f} m/s^2")
print(f"delta-v measured  : {dv_measured:.3f} m/s")
print(f"delta-v intended  : {dv_intended:.3f} m/s")
print(f"error             : {dv_measured - dv_intended:+.3f} m/s")
print("PASS" if abs(dv_measured - dv_intended) <= tol else "FAIL")

With the parameters above the reconstructed Δv lands within a few hundredths of a metre per second of the intended 24 m/s, and the script prints PASS. The exact number depends on the noise draw; the point of the exercise is that the pipeline is deterministic given the record, and the acceptance decision is made by a single comparison against a stated tolerance.

Choosing the Integration Scheme

Rectangular (left- or right-endpoint) summation is acceptable only when the sample rate is high relative to the pulse content. For a 10 kHz record of a 90 ms half-sine, the difference between rectangular and trapezoidal integration is well under 0.01 m/s. At 1 kHz it becomes visible, and at 500 Hz it can exceed the acceptance band. Trapezoidal integration is the default choice for sled data because it is second-order accurate and costs nothing extra. Simpson's rule adds accuracy only if the signal is smooth; on raw, noisy acceleration it can amplify high-frequency content and is not recommended before filtering.

Two further details matter. First, integrate the entire record, including the post-pulse tail, and read Δv at the last sample — truncating at the nominal pulse end discards the decaying tail and biases Δv low. Second, if the record does not return to zero acceleration at the end, the residual is either a real slow rebound or a baseline error; check the last 10 ms before trusting the result.

Acceleration-to-Velocity Reconstruction Chain 1. Raw a(t) 10 kHz, 120 ms bias +0.8 m/s² noise σ = 0.35 2. Baseline Correction mean of pre-trigger window t < 10 ms a_corr = a − bias bias ≈ +0.80 m/s² 3. Trapezoidal Integration v[k] = Σ ½(a[k]+a[k−1])·Δt integrate full record read Δv at last sample Δt = 0.1 ms 4. Acceptance |Δv − 24.0| ≤ 0.2 m/s ? PASS Reconstructed velocity profile v(t) time [ms] v [m/s] 0 12 24 intended 24.0 m/s ±0.2 m/s band pulse end ≈ 90 ms

Verification and Failure Symptoms

The acceptance check is a single comparison, but a failure is diagnostic rather than fatal. The table below maps the most common outcomes to their likely causes.

Observed resultLikely causeCorrective action
Δv low by 0.5–2 m/s, pulse shape looks correctIntegration truncated at nominal pulse end; tail discardedIntegrate the full record and read Δv at the last sample
Δv high by a constant offset, independent of pulseUncorrected accelerometer biasRecompute the pre-trigger mean and subtract it
Δv drifts with record lengthResidual baseline error or slow drift in the amplifierCheck the last 10 ms of the record; consider a linear detrend on the pre-trigger window
Δv correct but velocity profile shows a step at triggerSign convention flipped mid-record, or trigger sample included in the baseline windowVerify sign once at the start; exclude the trigger sample from the baseline mean
Δv within tolerance but pulse centroid shiftedPulse shaping issue, not an integration issueInvestigate the absorber setup; integration is not the fault
Report Δv to three decimal places and state the tolerance explicitly in the test report. A result of "24.04 m/s, within ±0.2 m/s" is auditable; "approximately 24 m/s" is not. Also record the integration scheme and the baseline window length, because a reviewer reproducing the calculation needs both to obtain the same number.
Do not filter the acceleration before integration unless the filter is zero-phase. A causal low-pass filter introduces a phase delay that shifts the pulse in time and biases the reconstructed velocity. If filtering is required, apply it forward-backward (e.g. filtfilt) and document the cutoff. Filtering is the subject of a separate step in the workflow; for the velocity reconstruction itself, integrate the baseline-corrected raw signal.

Deliverable: Velocity Reconstruction Record

The following record captures everything a reviewer needs to reproduce the calculation. Fill it in for each sled run and attach it to the test report.

FieldExample valueNotes
Run IDSLED-0042Unique test identifier
Sampling rate fs10 000 HzFrom DAQ configuration
Record length120 msInclude post-pulse tail
Sign conventionNegative = deceleration in travel directionState once, apply throughout
Baseline window0–10 ms pre-triggerExclude trigger sample
Baseline value removed+0.80 m/s²Mean of window
Integration schemeTrapezoidal, full recordSecond-order accurate
Δv measured24.04 m/sRead at last sample
Δv intended24.00 m/sFrom test specification
Tolerance±0.20 m/sPer test plan
ResultPASS (error +0.04 m/s)Single comparison

Once this record is complete and the acceptance check passes, the velocity profile is qualified for downstream use: occupant restraint timing, pulse centroid calculation, and displacement reconstruction all consume the same integrated signal. If the check fails, resolve the cause from the failure table before proceeding — a velocity profile that does not close on the intended test velocity will propagate error into every subsequent analysis.