3. Gas Generator Mass Flow Profile Calibration
Why the Mass Flow Profile Must Be Calibrated
In a lumped-parameter airbag model, the gas generator is usually represented as a mass flow source ṁ_gen(t) feeding the bag control volume. The bag pressure trace is the integrated result of that inflow, the vent outflow, and the changing bag volume and temperature. If the baseline model from Case 1 was built with a nominal constant or single-slope burn, the simulated pressure trace will typically rise too slowly at the start and overshoot or undershoot near the peak. Calibrating the mass flow profile means adjusting two physically meaningful knobs — the burn rate (how fast the propellant mass is consumed, which sets the shape and timing of the flow pulse) and the total gas mass (which sets the area under the flow curve and therefore the plateau pressure) — until the simulated tank pressure matches a measured reference trace within a stated tolerance.
The task is a two-parameter identification problem with a clear physical separation: total mass controls the pressure level, burn rate controls the timing. That separation is what makes a structured calibration possible instead of blind trial and error.
Reference Data and the Calibration Metric
Assume a measured tank pressure trace is available from a static inflation test (tank volume V_tank = 0.060 m³, initial pressure P_0 = 101.3 kPa, ambient temperature T_0 = 293 K). The trace is sampled at 1 ms and stored as two columns, t and P_meas. The calibration target is defined on three characteristic points rather than the full curve, because these points are what downstream cases (peak pressure control, vent coefficient identification) actually depend on:
- Peak pressure
P_max— must match within ±3% of the measured peak. - Time to peak
t_peak— must match within ±2 ms. - Rise time to 90% of peak
t_90— must match within ±3 ms.
A single scalar objective is convenient for the solver: the normalized root-mean-square error over the full trace,
J = sqrt( mean( ((P_sim(t) - P_meas(t)) / P_max_meas)^2 ) )
with an acceptance threshold of J ≤ 0.02 (2% of peak). The three point checks are then used as a final sanity gate, because a low RMSE can still hide a timing shift that matters for vent sizing.
Gas Generator Model with Burn-Rate Parameterization
The propellant is modeled as a single grain consumed by a burn-rate law. A practical parameterization for calibration uses a burn-rate coefficient a and a burn exponent n held fixed at n = 0.5 (typical for a regression-rate law), with the burn area approximated as constant during the short inflation window. The remaining propellant mass m_p(t) then obeys:
dm_p/dt = -a * A_b * (P_tank/P_ref)^n
ṁ_gen(t) = dm_p/dt * (1 + m_gas_per_prop) # gas yield factor
Here A_b is the effective burn area, P_ref = 101.3 kPa normalizes the pressure dependence, and the gas yield factor converts consumed propellant mass to generated gas mass. The two calibration parameters are a (burn rate) and the initial propellant mass m_p0 (which sets total gas mass). The bag/tank pressure is then integrated with the ideal-gas relation and the vent term from Case 1:
dP/dt = (R*T/V) * (ṁ_gen - ṁ_vent) - (P/V) * dV/dt
ṁ_vent = C_d * A_vent * sqrt(2*rho*(P - P_amb)) # choked-flow correction applied when P/P_amb > 1.89
Structured Two-Step Calibration Procedure
Because total mass and burn rate affect the trace differently, calibrate them in sequence rather than simultaneously. This converges in far fewer iterations and keeps each step physically interpretable.
- Fix the shape, fit the level. Set an initial burn rate
a_0from the propellant datasheet (for examplea_0 = 8.0e-4 m/(s·kPa^0.5)). Run the model and compareP_max. Scale the initial propellant mass by the ratio of measured to simulated peak:m_p0_new = m_p0 * (P_max_meas / P_max_sim). Re-run; the peak should now be within a few percent. - Fix the level, fit the timing. With mass adjusted, compare
t_peakandt_90. If the simulated rise is too slow (t_peak too late), increasea; if too fast, decrease it. Adjustaby the ratiot_peak_sim / t_peak_measas a first-order correction, then re-run. - Iterate to convergence. Repeat steps 1–2 until
J ≤ 0.02and all three point checks pass. Two to four iterations are typical for a well-behaved trace.
n and A_b fixed during calibration. If the fit cannot be closed with only a and m_p0, that is a signal that the burn-area assumption or the vent coefficient is wrong — do not absorb the error by distorting the burn law.Calibration Logic at a Glance
Worked Example: One Calibration Pass
Starting values: a_0 = 8.0e-4, m_p0 = 0.045 kg, A_b = 0.012 m², gas yield factor 1.02. The measured reference gives P_max_meas = 245 kPa, t_peak_meas = 38 ms, t_90_meas = 26 ms.
| Iteration | a (m/(s·kPa^0.5)) | m_p0 (kg) | P_max_sim (kPa) | t_peak_sim (ms) | J |
|---|---|---|---|---|---|
| 0 (initial) | 8.0e-4 | 0.045 | 221 | 44 | 0.061 |
| 1 (mass fit) | 8.0e-4 | 0.0499 | 244 | 43 | 0.038 |
| 2 (rate fit) | 9.1e-4 | 0.0499 | 246 | 38 | 0.017 |
| 3 (refine) | 9.0e-4 | 0.0497 | 245 | 38 | 0.014 |
After iteration 3, P_max is within 0.4% of the reference, t_peak matches exactly, and J = 0.014 is below the 0.02 threshold. The t_90 check should be read from the same run; if it drifts beyond ±3 ms while the other two points pass, the burn exponent n or the burn-area assumption is the likely culprit, not the two calibrated parameters.
V_tank will bias m_p0 by roughly the same amount and can be mistaken for a burn-rate problem.Verification and Failure Symptoms
Accept the calibration only when the full-trace RMSE and all three point checks pass on the same run. Then re-run the model with the calibrated a* and m_p0* at a different initial tank pressure (for example P_0 = 90 kPa) and confirm the peak shifts in the physically expected direction — this guards against overfitting a single trace. Common failure patterns and their meaning:
- Peak matches but rise is too slow: burn rate too low; the mass fit absorbed a shape error. Increase
aand re-fit mass. - Rise matches but peak drifts high: vent coefficient or vent area is under-predicted; do not compensate with
m_p0— that is the subject of Case 4. - Oscillation between iterations: the two parameters are being updated simultaneously; return to the sequential order (mass first, then rate).
- Cannot reach J ≤ 0.02 at all: the burn-area model is too crude for the trace; revisit
A_b(t)before adding more free parameters.
The deliverable of this case is the calibrated pair (a*, m_p0*) plus the acceptance record (J, P_max error, t_peak error, t_90 error). These become the fixed inflator inputs for the vent-diameter sweep and the vent-coefficient identification that follow.