HomeAI & Machine LearningPredictive Maintenance — Remaining Useful Life Estimator

🛠️ Predictive Maintenance — Remaining Useful Life Estimator

Vibration and temperature sensor streams from a simulated machine feed a remaining-useful-life model, with a live failure-risk curve and maintenance-window recommendation.

AI & Machine Learning3DAdvanced60 FPS
ai-manufacturing-predictive-maintenance ↗ Open standalone

About the Predictive Maintenance — Remaining Useful Life Estimator

Unplanned downtime on rotating machinery — a failed bearing, a seized gearbox — is one of the most expensive events in manufacturing, so modern plants increasingly replace fixed calendar-based maintenance with condition-based and predictive strategies. Predictive maintenance watches live sensor streams (vibration, temperature, acoustic emission, oil debris and more), models how a component's failure risk evolves with accumulated wear, and recommends servicing only when the evidence actually warrants it. The statistical backbone of this approach is reliability engineering's Weibull hazard model, which — unlike a constant failure rate — lets the instantaneous risk of failure climb as a machine ages, exactly matching how fatigue cracks, spalling and bearing wear accelerate over time.

This simulation runs that pipeline end to end. A hidden, ground-truth wear process degrades according to a Weibull hazard whose scale depends on the operating load you set and whose shape (mild, moderate or aggressive wear-out) you choose. That hidden process drives simulated vibration and temperature sensor readings, corrupted with adjustable Gaussian noise — the model never sees the true wear level directly. A weighted combination of the normalised sensor readings reconstructs a live health index, which is then fitted with a rolling Weibull regression (the classical log-log linearisation used in real reliability engineering) to project a failure-risk curve forward in time. Where that projected curve crosses your chosen maintenance threshold defines a live, continuously recalculated maintenance window — watch it shift as you push the load higher, add sensor noise, or change the failure mode.

Frequently Asked Questions

What is remaining useful life (RUL) and how is it different from a fixed maintenance schedule?

Remaining useful life is the estimated number of operating hours a machine can keep running before its failure probability crosses an unacceptable threshold, re-estimated continuously from live condition data rather than fixed in advance. A calendar-based schedule replaces a bearing every N months regardless of how hard it has actually been run; predictive maintenance instead watches vibration, temperature and other condition indicators and only recommends action when the evidence says wear has actually progressed. This avoids both premature replacement of healthy parts and surprise failures of parts that wore out faster than the calendar assumed.

Why use a Weibull hazard model instead of a constant failure rate?

A constant (exponential) failure rate assumes a component is equally likely to fail at hour 10 as at hour 10,000, which is realistic for random electronic failures but wrong for mechanical wear-out. The Weibull distribution's hazard rate h(t) = (β/η)(t/η)^(β–1) has a shape parameter β that lets the failure rate rise with age when β > 1 — exactly the pattern seen in bearings, gears and seals as fatigue cracks and surface spalling accumulate. This simulation uses β > 1 (wear-out) modes so the instantaneous failure risk climbs as operating hours accumulate, matching real rotating-machinery failure statistics.

How does operating load change the estimated remaining useful life?

The simulation scales the Weibull characteristic life η down as a power of the load multiplier, so higher sustained load shortens life super-linearly — similar to how fatigue life in an S-N (stress-life) curve falls off faster than stress increases. Raising load from 1.0× to 1.5× does not just add 50% more wear per hour; because life scales as load to a negative exponent around 2 to 2.5, it can cut the characteristic life by 40% or more. This mirrors why derating machinery even slightly below its rated capacity often produces disproportionate gains in service life.

How does the simulation estimate the health index from noisy sensors instead of just reading the true wear level?

The underlying wear process is hidden — exactly as in a real machine, no sensor reports "wear fraction" directly. Instead, simulated vibration and temperature readings are generated from the true wear state plus independent Gaussian sensor noise, and the health index is reconstructed by normalising each sensor against its own baseline-to-failure range and combining them in a weighted sum (vibration weighted higher, since rising vibration is typically the earliest and most sensitive precursor of bearing degradation). An exponential moving average then smooths the noisy per-sample estimate into a stable health-index trend, the same way real condition-monitoring systems filter raw accelerometer and thermocouple data before trending it.

What is the log-log linearisation used to fit the failure-risk curve?

Taking the Weibull CDF F(t) = 1 – exp(–(t/η)^β) and applying the transform y = ln(–ln(1–F(t))) gives y = β·ln(t) – β·ln(η), which is exactly linear in x = ln(t). This is the classical Weibull probability-plotting technique used throughout reliability engineering: convert estimated failure fractions from condition data into (x,y) pairs, run ordinary least-squares regression to get the slope (β̂) and intercept, then recover the scale as η̂ = exp(–intercept / β̂). The simulation refits this regression continuously on a rolling window of health-index-derived wear estimates, so the fitted risk curve adapts as more operating hours of evidence accumulate.

How is the recommended maintenance window computed?

Once β̂ and η̂ are fitted, the model failure probability at any future time is F(t) = 1 – exp(–(t/η̂)^β̂). The simulation inverts this formula to solve for the operating hour at which F(t) equals a lower "plan" threshold (half the user-set maintenance threshold) and the operating hour at which it equals the full "urgent" threshold. The interval between those two hours is the recommended maintenance window: early enough that the plan threshold gives lead time to schedule parts and downtime, late enough that the urgent threshold reflects genuinely elevated failure risk. Both bounds move live as the threshold slider, load, or sensor data change.

Why does sensor noise make the remaining-useful-life estimate less stable?

The regression that fits β̂ and η̂ depends on the estimated wear fraction derived from noisy sensor readings, and both the slope and intercept of a least-squares fit are sensitive to scatter in the input data, especially early in a machine's life when only a short window of hours is available. Turning up the sensor-noise slider increases the scatter in the health-index samples, which widens the range of β̂ and η̂ values the fit can produce from one run to the next, and therefore makes the projected maintenance window jump around more between refits — exactly the estimation instability that makes real condition-monitoring systems favour longer averaging windows and multiple redundant sensors over trusting any single noisy reading.

Why can two machines with the same average vibration reading have very different remaining useful life?

Remaining useful life depends on the trend and shape of degradation over time, not a single snapshot reading. A machine whose vibration has been flat for hundreds of hours and a machine whose vibration just started climbing sharply can show the same instantaneous value while having very different fitted β̂ (rate of acceleration) and very different projected time to cross the failure threshold. This is why the simulation fits a curve to a rolling window of history rather than thresholding the current sensor value directly — a single noisy high reading is not evidence of imminent failure, but a sustained upward trend consistent with a wear-out shape is.

⚙ Under the hood

A hidden Weibull hazard process (shape β, scale η scaled by load) drives noisy vibration and temperature sensors; a weighted health index is reconstructed from those sensors and fitted live with log-log Weibull regression to project a failure-risk curve and a moving maintenance-window recommendation.

Canvas 2DWeibull HazardRULCondition MonitoringRegression

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)