3. Screening designs for restraint variables

In restraint-system DOE, the first serious question is rarely "what is the optimum?" It is "which of these twenty-odd variables actually matter?" A full factorial on 15 two-level restraint factors would require 32,768 runs — completely impractical when each LS-DYNA sled or occupant-simulation run costs minutes to hours. Screening designs solve this by deliberately confounding high-order interactions with main effects, letting you estimate all main effects in as few as 12–20 runs. This chapter covers the two workhorses: the Plackett–Burman (PB) design and the fractional factorial (FF) design, and shows how to build, run, and interpret them for restraint variables.

Why screening comes before optimization

Restraint design variables span several physical subsystems: belt geometry (D-ring height, anchor positions, retractor pretension), airbag parameters (vent size, inflator mass flow, tether length), and occupant/seat parameters (seat pan angle, cushion stiffness). Typical screening studies carry 10–20 factors. The goal is a ranked shortlist — usually 3–6 dominant factors — that then feeds a response-surface or optimization study. Screening designs are efficient precisely because they accept a specific, documented aliasing structure in exchange for run economy.

Plackett–Burman designs

A PB design with N runs (N a multiple of 4) can screen up to N−1 factors, each at two levels. The classic 12-run PB matrix screens 11 factors; the 20-run matrix screens 19. PB designs are resolution III: main effects are clear of each other, but each main effect is partially aliased with two-factor interactions. That is acceptable for screening when you believe interaction effects are small relative to main effects — a reasonable first assumption for many restraint variables, though you should verify it later.

The 12-run PB matrix is built from a cyclic generator. Using the standard convention where "+1" is the high level and "−1" the low level, the first row is:

+1 +1 +1 -1 +1 +1 -1 -1 +1 -1 -1

Each subsequent row is the previous row cycled one position to the right, and the twelfth row is all −1. In practice you generate this in Python rather than by hand:

import numpy as np
from pyDOE2 import pbdesign

factors = ["Dring_z", "Dring_y", "Anchor_x", "Retr_preten",
           "Belt_stiff", "Bag_vent", "Bag_massflow", "Tether_len",
           "Seat_pan_ang", "Cushion_k", "Steer_col_ang"]

# 12-run PB design for 11 factors
design = pbdesign(11)          # returns +1/-1 matrix, shape (12, 11)
print(design.shape)            # (12, 11)

Map each column to a factor and each ±1 to a physical level. For example, if Bag_vent ranges from 40 mm to 60 mm, then −1 → 40 mm and +1 → 60 mm. Keep a factor-level table so the mapping is auditable:

FactorLow (−1)High (+1)Unit
Dring_z11801260mm
Anchor_x−180−120mm
Retr_preten2.04.0kN
Bag_vent4060mm
Bag_massflow0.851.15× nominal
Tether_len180240mm
Seat_pan_ang1218deg

Run all 12 LS-DYNA cases, extract the response (e.g., HIC36, chest deflection, or a weighted injury criterion), and fit a main-effects model by least squares. Because PB columns are orthogonal, each effect estimate is simply the difference between the mean response at +1 and at −1, divided by 2. Rank by absolute effect and compare against a significance threshold — either a t-test with the pooled residual, or a normal-probability plot of effects where factors falling off the straight line are declared active.

Fractional factorial designs

When you can afford slightly more runs and want a cleaner aliasing structure, use a two-level fractional factorial. A 27−3 design (16 runs for 7 factors) is resolution IV: main effects are clear of two-factor interactions, though two-factor interactions are aliased with each other. A 27−2 (32 runs) is resolution V and clears two-factor interactions from each other. The resolution you choose is a direct trade between run count and how much interaction information you can trust.

Generate the design with a defining relation. For a 27−3 design, assign the first four factors to the base columns and generate the remaining three as products:

from pyDOE2 import fracfact

# 2^(7-3) resolution IV design, 16 runs
design = fracfact("a b c d abc abd acd")
print(design.shape)   # (16, 7)

The generator string "a b c d abc abd acd" defines the aliasing: factor E = ABC, F = ABD, G = ACD. The resolution is IV because the shortest word in the defining relation (I = ABCE = ABDF = ACDG = …) has length four. In LS-DYNA terms, this means you can trust that a large main effect for Bag_vent is not contaminated by a single two-factor interaction, but you cannot separate, say, the Dring_z × Anchor_x interaction from Retr_preten × Bag_vent.

Choosing between PB and FF

Use PB when you have many factors (10–19), a tight run budget, and a defensible assumption that interactions are secondary. Use a resolution IV or V fractional factorial when you suspect meaningful interactions — common in restraint work, where belt geometry and pretension interact strongly — and can afford 16–32 runs. A practical hybrid: run a 12-run PB first to eliminate clearly inert factors, then a 16-run resolution IV FF on the survivors to check for interactions before committing to a response surface.

Screening Design Decision and Aliasing Structure How many factors? 10–19 restraint variables Interactions suspected? belt geometry × pretension No Yes Plackett–Burman 12 runs / 11 factors Resolution III Fractional Factorial 16 runs / 7 factors Resolution IV Rank main effects → shortlist 3–6 dominant factors → RSM / optimization Aliasing: what each design can resolve PB (Res III) Main effects: clear 2FI: aliased with main effects Runs: 12 FF 2⁷⁻³ (Res IV) Main effects: clear 2FI: clear of main 2FI: aliased with 2FI Runs: 16 Example effect ranking (illustrative) 0 |effect| Bag_vent Retr_preten Dring_z Tether_len Seat_pan_ang

Interpreting screening results and avoiding traps

Two failure modes dominate screening studies. First, aliasing misinterpretation: in a resolution III PB design, a large main effect may actually be a two-factor interaction leaking into that column. If a factor you expected to be inert (e.g., Steer_col_ang) shows a large effect, suspect an interaction alias rather than a genuine main effect, and confirm with a follow-up foldover or resolution IV design. Second, range compression: if you set the low and high levels too close together, real effects shrink below the noise floor and get discarded. Set levels at physically meaningful extremes — the range the restraint system could plausibly see in production — not timid ±5% perturbations.

A foldover is the cheapest way to de-alias a PB design: add a second block of 12 runs with all signs reversed. The combined 24-run design is resolution IV, clearing main effects of two-factor interactions at the cost of doubling the run count. Use it when a screening result is ambiguous.
Do not use screening designs to estimate interaction magnitudes or to optimize. Their aliasing structure makes interaction estimates unreliable by construction. Screening answers "which factors matter," not "what is the best setting." Hand the shortlist to a response-surface or D-optimal study for optimization.

Practical checklist for a restraint screening study

  • List all candidate factors and assign physically meaningful low/high levels; document units and the ±1 mapping.
  • Choose PB (many factors, interactions secondary) or resolution IV/V FF (interactions suspected, budget allows).
  • Generate the matrix in pyDOE2, verify orthogonality (design.T @ design should be diagonal), and export run cards.
  • Run all LS-DYNA cases with identical model setup except the factor levels; log any run that fails to converge.
  • Fit main effects, rank by absolute magnitude, and apply a significance test or normal-probability plot.
  • Shortlist 3–6 dominant factors and confirm ambiguous effects with a foldover before proceeding to optimization.

Screening is the gatekeeper of an efficient restraint DOE. A well-built 12- or 16-run matrix can retire a dozen inert variables and focus every subsequent simulation run on the factors that actually move occupant injury metrics — turning an intractable 30,000-run problem into a tractable 30-run optimization.