Availability Modeling (Monte Carlo)
Simulating component failures and repairs to produce the honest 0.86-0.995 availability envelope against the 0.99982 Tier III target.
Why simulate
Closed-form availability formulas assume simple structures; real plants have redundancy, degradation, shared repair crews, and correlated failures. Monte-Carlo simulation samples component failure and repair times over many synthetic years and measures the fraction of time the plant meets rated service. This is how the honest 0.86-0.995 burner envelope is produced - and why it is a range, not a point.
import numpy as np
def sim_availability(comps, years, n, rng=np.random.default_rng(0)):
up = 0.0
for _ in range(n):
t, alive_frac = 0.0, 0.0
# comps: list of (mtbf_h, mttr_h, redundant_bool)
# (structure logic omitted for brevity; evaluates plant-up per interval)
alive_frac = plant_up_fraction(comps, years, rng)
up += alive_frac
return up / n
# sweeping input assumptions yields the 0.86-0.995 envelope
Inputs and their honesty
- Component MTBF/MTTR - many are estimated pre-FOAK, hence a range not a point
- Redundancy structure - N+1/N+2 at unit and fleet level
- Degradation coupling - predictive maintenance shifts failures to planned openings
- Correlated / common-mode events - modelled explicitly, not assumed away
Reading the result against the gate
The output distribution spans 0.86-0.995. Placed against the Tier III target of 0.99982, that is a downtime shortfall of 30x (optimistic) to 100x (pessimistic). The model does not hide the gap; it quantifies it and shows which inputs move it most. Economic consequences are out of scope here by rule - this is a downtime model, full stop.
The structural methods behind the simulation are reliability block diagrams and Markov models; the input estimates come from MTBF/MTTR and spares. Fleet-level aggregation is in Fleet Availability.