4. Calculate Occupant Injury Criteria from Crash Test Data
From Raw Acceleration to Scored Injury Metrics
Occupant injury criteria are not read directly from a sensor; they are derived quantities. A crash test produces acceleration time histories at the dummy's head, chest, and pelvis, plus force or deflection channels at the femur and chest. The assessment protocol then applies a specific filter, integration window, and limit value to each channel. This case walks through that derivation for a frontal impact dataset and shows how the same signals score differently under Euro NCAP and C-NCAP because the two protocols use different limits and, in some cases, different criteria definitions.
The worked example uses a synthetic but physically plausible set of signals from a 50th-percentile male Hybrid III dummy in a 64 km/h offset deformable barrier test. All numbers below are teaching values generated from the stated inputs, not measured test results. The goal is to make the calculation chain explicit so it can be reproduced on real acquisition data.
Input Channels and Pre-Processing
Assume the data acquisition system provides the following channels at 10 kHz, with the standard SAE J211 sign convention (positive acceleration directed forward, i.e. toward the vehicle front, for the head and chest; femur compression positive):
HEAD_X— resultant head acceleration, g, already transformed to the head CG.CHEST_DEF_Y— chest deflection, mm, from the chest potentiometer.FEMUR_L_Z,FEMUR_R_Z— left and right femur axial compression, kN.
Before any criterion is computed, apply the channel frequency class (CFC) filter required by the protocol. Head acceleration uses CFC 1000, chest deflection uses CFC 180, and femur load uses CFC 600. Filtering matters: an unfiltered HIC on noisy data can be inflated by several percent because the integration window latches onto high-frequency spikes. A simple second-order Butterworth implementation at the CFC cutoff is acceptable for teaching; production work should use the SAE J211 digital filter specified in the protocol annex.
Computing HIC15
The Head Injury Criterion over a 15 ms window is defined as:
HIC15 = max over t1,t2 with (t2 - t1) <= 15 ms of
[ (t2 - t1) * ( (1/(t2-t1)) * integral_{t1}^{t2} a(t) dt )^2.5 ]
where a(t) is the resultant head acceleration in g and the window is measured in seconds. In practice you compute it by scanning every start sample t1, integrating forward up to 15 ms, and keeping the maximum. A vectorised implementation in Python:
import numpy as np
def hic15(a_g, fs):
dt = 1.0 / fs
n = len(a_g)
win = int(round(0.015 * fs))
best = 0.0
best_t1 = best_t2 = 0
for i in range(n - win):
seg = a_g[i:i + win]
# cumulative integral of acceleration
integ = np.cumsum(seg) * dt
# mean acceleration over each candidate window ending at j
for j in range(1, win):
dur = j * dt
mean_a = integ[j - 1] / dur
hic = dur * (mean_a ** 2.5)
if hic > best:
best = hic
best_t1, best_t2 = i, i + j
return best, best_t1 * dt, best_t2 * dt
For the example dataset, the filtered head resultant peaks at 78 g at 62 ms and the HIC15 scan returns HIC15 = 412 over the window 54–69 ms. That value is below both the Euro NCAP and C-NCAP 15 ms limits, so the head contributes a full score under either protocol.
Chest Deflection and Femur Loads
Chest deflection is assessed as the peak filtered deflection, not the peak of the raw signal. For the example, the CFC 180 filtered CHEST_DEF_Y peaks at 34.5 mm at 71 ms. Femur loads are taken as the peak compression on each leg independently; the example gives left 3.1 kN and right 2.7 kN, both at around 58 ms.
Applying the Two Protocols
The same three derived values are then compared against the limit sets. Euro NCAP and C-NCAP both use HIC15, chest deflection, and femur load for the frontal dummy, but their limit values and scoring bands differ. The table below applies the example values to representative limits from each protocol; confirm the exact current limits against the published assessment protocol before using them in a real submission.
| Criterion | Example value | Euro NCAP limit (full / zero) | C-NCAP limit (full / zero) | Euro NCAP points | C-NCAP points |
|---|---|---|---|---|---|
| HIC15 | 412 | 650 / 1000 | 650 / 1000 | Full | Full |
| Chest deflection | 34.5 mm | 22 / 50 mm | 22 / 50 mm | Partial | Partial |
| Left femur load | 3.1 kN | 3.8 / 9.07 kN | 3.8 / 9.07 kN | Full | Full |
| Right femur load | 2.7 kN | 3.8 / 9.07 kN | 3.8 / 9.07 kN | Full | Full |
With these limits the head and both femurs score full points under both protocols, while chest deflection falls in the partial band. The chest is therefore the limiting criterion in this example, and any design change that reduces chest deflection by a few millimetres would recover the remaining points. Note that the two protocols weight the criteria differently in their overall star rating, so identical per-criterion points do not necessarily produce identical star outcomes.
Verification and Common Failure Modes
Before trusting any computed criterion, run three checks. First, confirm the filter was actually applied: compare the peak of the raw and filtered head signal; a difference of more than about 5% suggests the filter is missing or misconfigured. Second, confirm the integration window: print the start and end times of the HIC15 window and check they fall inside the primary deceleration pulse. Third, confirm units: a HIC computed on acceleration in m/s² instead of g will be off by a factor of roughly 3.1^2.5, which is a common and silent error.
Once the three criteria are computed and verified, the scoring step is a straightforward lookup against the protocol's limit bands. The chest deflection band shown in the figure is the one that decides the outcome in this example; the head and femur values sit comfortably in their full-score regions. Repeating the same derivation on the C-NCAP dataset with its own limit set gives the comparison the case asks for, and the difference in per-criterion points is what feeds into the overall star rating under each protocol.