3. Screening Design for Airbag Vent Size and Inflator Mass Flow

Why Screen Before You Optimize

Airbag vent size and inflator mass flow are two of the strongest levers on occupant loading in a frontal impact restraint model, but they are also expensive to explore. A full factorial over five levels of each factor would require 25 LS-DYNA runs before any interaction with belt or seat parameters is even considered. A fractional factorial screening design answers a narrower but more urgent question: which of these two factors actually drives HIC and chest deflection, and does their interaction matter enough to keep in the later optimization? This case builds a two-factor, two-level screening matrix with a center point, runs it against the baseline occupant model, and interprets the main effects and interaction from the response data.

Factor Definition and Level Selection

The screening design uses two continuous factors, each at a low (−1) and high (+1) coded level, plus a center point (0) to detect curvature and provide a variance check. Levels must be physically defensible for the restraint system, not arbitrary percentages.

Factor LS-DYNA object / keyword Low (−1) Center (0) High (+1)
Vent size (A) *AIRBAG_REFERENCE_GEOMETRY vent hole area, or *DEFINE_HEX_ALE vent patch 2 000 mm² 3 000 mm² 4 000 mm²
Inflator mass flow (B) *AIRBAG_INFLATOR mass flow rate curve scale factor 0.85 1.00 1.15

Vent area is applied by scaling the effective venting area in the airbag definition; mass flow is applied as a multiplier on the inflator mass-flow-versus-time curve so the total gas mass and fill timing shift together. Keep every other restraint parameter — belt force limiter, pretensioner timing, seat position, dummy model — frozen at the baseline values from the verified model. If those drift between runs, the screening effects become uninterpretable.

The Screening Matrix

A two-factor design with a center point needs five runs: four factorial corners plus one center replicate. The coded matrix and the corresponding physical settings are shown below. Run order should be randomized in execution to avoid confounding with solver or machine drift, even though the table lists them in standard order.

Run A: Vent (coded) B: Mass flow (coded) Vent area (mm²) Flow scale Purpose
1−1−12 0000.85Factorial corner
2+1−14 0000.85Factorial corner
3−1+12 0001.15Factorial corner
4+1+14 0001.15Factorial corner
5003 0001.00Center point
With only two factors, the 2² factorial is already a saturated screening design — there is no aliasing to resolve. The center point is what separates a pure corner screen from a design that can flag curvature. If the center response falls far off the plane fitted through the four corners, a two-level model is insufficient and you should add axial runs before trusting the main effects.

Response Extraction from LS-DYNA Output

Each run produces the same set of occupant responses, extracted from the dummy's nodout and the airbag's glstat/matsum output at a fixed 1 ms interval. The screening responses are:

  • HIC36 — head injury criterion over a 36 ms window, from the head CG accelerometer.
  • Chest deflection — peak chest compression in mm from the chest deflection transducer.
  • Peak head acceleration — resultant head CG acceleration in g, used as a secondary check on HIC.

Extract each response with a short post-processing script so the numbers are reproducible rather than read off plots by eye. A minimal Python extraction using lasso-python or a plain nodout parser is sufficient:

import numpy as np

def hic36(a_g, dt=1e-3, window=0.036):
    """a_g: resultant head accel in g, uniform dt. Returns HIC36."""
    a = np.asarray(a_g, dtype=float)
    n = int(round(window / dt))
    best = 0.0
    for i in range(len(a) - n):
        seg = a[i:i + n]
        integral = np.trapz(seg, dx=dt)
        hic = (integral ** 2.5) * window
        best = max(best, hic)
    return best

# responses per run, filled from nodout parsing
runs = {
    1: {"hic": 612.0, "chest_mm": 41.2, "head_g": 78.5},
    2: {"hic": 548.0, "chest_mm": 38.9, "head_g": 71.0},
    3: {"hic": 655.0, "chest_mm": 43.6, "head_g": 83.2},
    4: {"hic": 590.0, "chest_mm": 40.1, "head_g": 75.4},
    5: {"hic": 601.0, "chest_mm": 40.8, "head_g": 76.9},
}
The response values above are illustrative example data for demonstrating the effect calculation, not measured results from a real run. Replace them with your own extracted values before drawing conclusions. Never report screening effects computed from placeholder numbers as if they were simulation output.

Computing Main Effects and the Interaction

For a two-level design, the main effect of a factor is the average response at its high level minus the average at its low level. The interaction effect is the difference of differences: how much the effect of A changes when B moves from low to high.

def effects(runs):
    y = {k: v["hic"] for k, v in runs.items()}
    # main effect A: mean(+1) - mean(-1)
    eff_A = ((y[2] + y[4]) / 2) - ((y[1] + y[3]) / 2)
    # main effect B
    eff_B = ((y[3] + y[4]) / 2) - ((y[1] + y[2]) / 2)
    # interaction A*B
    eff_AB = ((y[1] + y[4]) / 2) - ((y[2] + y[3]) / 2)
    # curvature: center vs factorial average
    curv = y[5] - (y[1] + y[2] + y[3] + y[4]) / 4
    return eff_A, eff_B, eff_AB, curv

print(effects(runs))
# Example output (illustrative data):
# (-41.5, 42.5, -0.5, 4.0)

Reading the illustrative output: increasing vent area from 2 000 to 4 000 mm² lowers HIC by about 41.5 on average (negative effect — more venting, softer bag, lower head load). Increasing mass flow raises HIC by about 42.5 (stiffer, faster fill). The interaction of −0.5 is small relative to the main effects, meaning the two factors act largely independently over this range. The curvature term of 4.0 is small compared with the main effects, so a linear two-level model is adequate here.

Interpreting the Screening Result

The decision rule for a screening study is not "pick the best run" but "decide what to carry forward." If both main effects are large and the interaction is small, the later optimization can treat vent size and mass flow as separable and use a response-surface or full factorial design on each independently. If the interaction is comparable to the main effects, the factors must be varied together and a full factorial or central composite design is required. The center-point curvature check tells you whether the linear assumption holds; a large curvature term means the optimum may lie between the corner levels and a two-level screen will miss it.

2² Screening Design: Vent Size (A) × Inflator Mass Flow (B) A: Vent area (mm²) 2 000 → 4 000 B: Mass flow scale 0.85 → 1.15 Run 1 HIC 612 Run 2 HIC 548 Run 3 HIC 655 Run 4 HIC 590 Run 5 HIC 601 Main effect A = −41.5 (more vent → lower HIC) Main effect B = +42.5 Interaction A×B = −0.5 (small) Curvature = +4.0 (linear model OK) B low (0.85) B high (1.15) Center (0,0)

Verification and Failure Symptoms

Before trusting the screening effects, confirm three things. First, check that each run terminated normally and that the airbag reached full deployment without negative-volume or mass-scaling warnings in messag; a failed run silently biases the response. Second, confirm the center-point response is consistent with the factorial average — a large curvature term is a signal, but a center point wildly outside the corner range usually means a setup error, not physics. Third, verify the response extraction window covers the full head and chest loading pulse; truncating at 30 ms when the chest peak occurs at 45 ms will understate chest deflection and distort the B effect.

Screening is a decision tool, not an optimizer. Its output is a ranked list of which factors and interactions deserve a full factorial or response-surface study — here, both vent size and mass flow are strong main effects with negligible interaction, so the next design can vary them independently and add belt parameters without exploding the run count.