A derived residual can be exactly right and completely useless. This is about the gap between having the relation and having a monitor: what noise does to it, how to set a threshold you can defend, why build tolerance and not the sensor is usually the limit, and how a life distribution becomes a maintenance date.
Part X of Letters Before Numbers derived an analytical redundancy relation and showed it detecting four faults cleanly. That demonstration used noise-free simulated data. On a real sensor it does not work, and it fails by a factor of about forty thousand. This page starts from that failure, because the fix is more interesting than the original claim and because the reason it fails is worth understanding properly.
A relation is not a detector. What you compute from it decides everything.
Here is the relation, unchanged. Two thermal nodes, the core temperature eliminated symbolically, leaving something testable from the case sensor and the known heat input alone:
Now put a real sensor on it. A thermocouple with a quarter of a degree of noise, sampled every two seconds. The relation contains a second derivative of that signal, and a second derivative of noise is a catastrophe.
That is not a tuning problem. No threshold rescues a statistic whose noise is four hundred times its signal. If you build this monitor and put it on a vehicle it will alarm constantly and detect nothing, and the failure will look like a software defect rather than what it is, which is a design error made three steps earlier.
The pleasant part is that the size of the disaster is predictable in closed form, so you can see it coming before writing any code.
A residual is a linear operator applied to the measurement. Independent noise of standard deviation sigma at each sample, passed through a discrete second derivative built from two central differences, comes out with variance six over sixteen h to the fourth. The relation multiplies that by the product of the two capacitances:
Three things follow immediately, and all three are visible in the formula rather than discovered by experiment.
Before implementing any model-based residual, propagate the sensor noise through it symbolically and compare the result with the fault signal you expect. It takes ten minutes and it is the single highest-value check in this whole subject. If the ratio is below one, stop and change the statistic, not the threshold.
Here is the part that changes how you should think about all of this. The catastrophe of Section 1 is a property of the statistic, not of the measurement. The fault information was never destroyed. It was discarded.
Watch what happens when you write it out. Let the fault change the measured signal by some waveform. The measurement is that plus noise, and the residual is the relation applied to both:
The fault and the noise pass through the same operator, so in the ratio that governs optimal detection the operator divides out. The best achievable detection performance depends only on how much the fault changes the measured signal, measured against the sensor noise, and not at all on how you chose to write the relation.
This is worth stating plainly because it reframes the whole exercise. Deriving the relation is a modeling achievement. Turning it into a detector is a separate design problem, and the second one is where monitors are usually lost. The symbolic work of the parent page tells you what is knowable. It does not tell you how to know it, and assuming that a threshold on the derived expression is good enough is the mistake this page exists to name.
Same model, same data, same noise. Four different things to compute from it, scored identically by how well they separate healthy from faulted.
If you know what the fault looks like, correlate against it. If you do not know its size, estimate the parameter. Thresholding the residual directly is defensible only when the relation is zero order in the measurements, which is to say when it contains no derivatives at all, which is rare and worth checking for.
There is a loose end in the parent page that this explains. Section 41 there ran an extended Kalman filter on this same model, with this same quarter degree of sensor noise, and it tracked a drifting conductance to two thousandths of a watt per kelvin. Meanwhile the residual of Section 36 could not see a thirty percent fault.
Both are true, and they are the same story from two ends. The Kalman filter is, for a linear Gaussian problem, the optimal estimator. It is quietly doing the matched filtering of Section 3: weighting each measurement by its information content, integrating over the whole history, and never differentiating anything. The residual was throwing that away one sample at a time.
| Approach | What it does with the model | Noise behaviour | Output |
|---|---|---|---|
| raw relation | evaluates it pointwise | amplifies by the order of the relation | a scalar per sample, discard the rest |
| matched filter | uses it to predict the fault waveform | optimal, integrates the window | one detection statistic per window |
| Kalman filter | uses it as the propagation law | optimal, integrates all history | state and parameter estimates with covariance |
| parity space, filtered | evaluates a filtered relation | partial, limited by band overlap | a residual with a usable threshold, sometimes |
The estimator route costs more computation and needs a covariance you can defend. What it buys is that it uses the information rather than sampling it, and on any model where the fault is slow relative to the observation window that difference is not a refinement. It is the difference between working and not working.
Every alarm limit is a claim about how often you are willing to be wrong. Make the claim explicit.
Thresholds usually get set by running the monitor on some healthy data, seeing the biggest excursion, and adding margin. That produces a number nobody can defend and that nobody can adjust rationally when the fleet grows.
The defensible way round is to start from what you are willing to spend on false alarms and derive the threshold from the noise model you already have. A monitor testing once an hour for four thousand hours makes four thousand opportunities to be wrong. If the budget is one percent of units false alarming over that life, the per-test rate has to be about two and a half parts in a million, which is four and a half sigma, not three.
Three sigma, the number everyone reaches for, gives a false alarm on essentially every unit over that many tests. The parent page's own simulation confirmed it: ninety-nine runs in a hundred tripped.
Now multiply by the fleet. A one percent per-unit false alarm rate across two hundred thousand vehicles is two thousand wrongly flagged units, each of which may become a dealer visit and a replaced good part. The threshold is a warranty cost decision wearing a statistics costume, and it should be signed off by someone who owns that budget.
Every wear mechanism produces a slow ramp, and a fixed threshold is a poor detector of slow ramps. It looks at each sample alone and throws away the fact that the last four hundred samples were all slightly high in the same direction.
The cumulative sum test keeps that memory. It accumulates the residual minus a small slack term, floors at zero, and alarms when the accumulation crosses a limit. Tuned to the same false alarm budget as the fixed threshold, it detects the same drift considerably earlier, and the advantage grows the slower the drift is.
| Drift time constant | Fixed limit detects at | CUSUM detects at | Fault size at the fixed alarm | Fault size at the CUSUM alarm |
|---|---|---|---|---|
| 4,000 h | 42 h | 22 h | 1.04% | 0.55% |
| 20,000 h | 170 h | 61 h | 0.85% | 0.30% |
| 80,000 h | 550 h | 170 h | 0.69% | 0.21% |
Read the last row. On the slowest drift, which is the one a real component actually exhibits, the cumulative test finds the fault three times sooner and at a third of the severity, for no extra sensor and no extra false alarms. The only cost is one stored accumulator per monitored parameter.
Given the noise, the model and an observation window, there is a smallest fault that is detectable at a stated confidence. It is computable rather than empirical, and it is the number a specification should contain instead of a vague claim about sensitivity.
That plateau is the interesting feature, and the parent page already explained it without knowing it had. The steady state gain of this system is one over the conductance to ambient, with the coupling conductance cancelling out entirely. Once the thermal transient has passed, the measurement contains no further information about the coupling, so every additional hour of watching adds noise and no signal.
Watch longer and you learn more, until the thing you are trying to see stops affecting the measurement. After that, patience is not a substitute for excitation. If you need better than the plateau, you have to make the system move: a load step, a thermal cycle, an active test. That is a design requirement on the vehicle, discovered from the transfer function, and it is much cheaper to discover it now than after calibration fails.
The residual does not know the difference between a fault and a unit that was built at the edge of tolerance.
Everything so far treated the healthy model as exact. It is not. Every unit leaves the line with capacitances, conductances and loss coefficients scattered around nominal, and a residual computed with nominal parameters is non-zero on a perfectly healthy unit simply because that unit is not nominal.
This is not a small correction. With plus or minus ten percent on the capacitances and twelve on the conductances, the healthy fleet spread swamps the sensor noise by two orders of magnitude.
The conclusion reorders the project plan. A better sensor buys nothing here. Faster sampling buys nothing. The binding constraint is manufacturing spread, and every hour spent on signal processing is an hour spent on the wrong problem.
The fix follows directly from the diagnosis. If the problem is that units differ from each other, stop comparing a unit to the fleet and start comparing it to itself.
Learn each unit's own residual over its first hours of healthy service, store that as its baseline, and monitor the departure from it. The build tolerance cancels, because it is common to the baseline and the current reading. What remains is sensor noise and genuine change.
Nine times the sensitivity for the cost of storing one number per vehicle. That is the best return available anywhere in this subject, and it is available only because the analysis identified the right limiting factor first.
Learning it while the unit is already degrading, which bakes the fault into the reference. Learning it under one operating condition and applying it under another, since the residual depends on load. And any repair or replacement, after which the baseline is describing a component that is no longer fitted and must be relearned. All three want an explicit baseline validity record, not an implicit one.
The parent page built a signature matrix over four process faults and concluded that the coupling conductance was uniquely isolable. That conclusion is correct within the fault set considered, and the fault set was incomplete.
A sensor is a component and it fails. Add a two kelvin bias on each of the two temperature sensors as candidate faults, recompute the signatures, and something uncomfortable appears.
A drifting core temperature sensor and a degrading thermal interface produce residuals in exactly the same direction, minus forty five degrees, differing only in size. The monitor that was going to report a confident single cause will report the interface, a technician will replace a good thermal pad, and the sensor will keep drifting.
Include sensor faults in the candidate set from the beginning; they are usually more common than the process faults you designed for. Where a sensor fault is collinear with a process fault, break the tie outside the residual space: a plausibility band on the raw reading, a cross-check against a second sensor at a known operating point, a cold-soak comparison at key-on when all temperatures should agree. Those tests cost nothing and they are the only thing standing between your diagnostic and a wrong part number.
The signature matrix rests on an assumption that is almost never stated: that exactly one thing is wrong. Drop it and the logic changes character completely.
Two residuals span a two dimensional space. Any two independent fault directions span that same space. So for any single fault, some weighted pair of two other faults reproduces its direction exactly, and the residuals cannot tell the difference.
This is not a flaw in the method, it is arithmetic. With m relations you can distinguish at most m independent fault directions, and the number of possible multi-fault combinations grows much faster than m. Two relations and six candidate faults is a badly underdetermined problem the moment you allow more than one to be present.
Putting Sections 9 through 12 together gives a hierarchy of claims, in decreasing order of how defensible they are. A diagnostic report should say which level it is making.
| Claim | What it requires | Usually available? |
|---|---|---|
| Something changed on this unit | A per-unit baseline and a threshold from a stated false alarm budget | Yes, and it is worth far more than it sounds |
| The change is in this subsystem | Residual direction distinguishable from other subsystems | Often |
| The change is this parameter | A unique column in the signature matrix, over a fault set that includes sensors | Sometimes |
| The change is this parameter, by this much | The above, plus an identifiable parameter and an estimator | Sometimes, and only with the identifiability check done |
| Exactly one thing is wrong | A prior on multiple faults, or more relations than faults | Rarely, and it is usually assumed rather than established |
The first row deserves more respect than it gets. "This unit has departed from its own baseline by six sigma in a direction consistent with the cooling path" is an enormously useful thing to put in front of a technician, and it is honest. "Replace the thermal interface material" is more satisfying to write and, on the analysis above, frequently wrong.
A remaining life estimate that nobody acts on differently is a number, not a result.
The parent page ended with a life distribution: a nominal of about 2,700 hours with a standard deviation of roughly 1,550. What it did not do is turn that into an action, and the step from one to the other is where most prognostics programmes quietly stop.
The mistake to avoid is scheduling at the mean. By construction, half the population fails before the mean of its own life distribution. A service interval set there converts a prognostic system into a slightly better guess about which half.
Which brings the decision down to one number: how much more an unplanned failure costs than a planned replacement. Roadside recovery, a damaged neighbouring component, a warranty claim and a customer who tells people about it, against a part and an hour of labour scheduled at a convenient time.
With that ratio in hand the optimal interval is the one minimizing expected cost per hour of service, and it can be read off directly from the life distribution.
| Unplanned / planned cost | Optimal interval | Units failing in service | Reading |
|---|---|---|---|
| 3 | 2,525 h | 44.9% | Cheap failures: run components close to their mean life |
| 10 | 1,500 h | 21.5% | Typical warranty economics for a serviceable part |
| 30 | 1,125 h | 15.1% | Failure damages something else |
| 100 | 925 h | 12.3% | Safety or immobilization: replace at a third of mean life |
Two things fall out that are worth carrying into a programme review. The optimal interval is never the mean and is usually a third to a half of it, so a prognostic that reports a mean and stops has done the arithmetic and withheld the answer. And narrowing the distribution is worth real money: the tighter the spread, the later you can safely schedule, which is precisely the payoff the uncertainty ranking of the parent page tells you how to buy.
Almost everything above depends on data that has to be recorded before anyone knows it will be needed. The list is short and the cost of getting it wrong is measured in vehicle-years.
An accumulated damage integral is a handful of bytes and it cannot be reconstructed after the fact. If you log one thing beyond the alarm bit, log that.
| Symptom | Cause | Fix |
|---|---|---|
| The monitor alarms constantly and detects nothing | Noise gain of a high-order relation | Change the statistic, not the threshold. Sections 2 to 4 |
| Sampling faster made it worse | Noise gain goes as h to the minus order of the relation | Filter or integrate rather than differentiate |
| Low-pass filtering did not help | Signal and noise occupy the same band after differentiation | Matched filter or estimator |
| Works on the dyno unit, fails across the fleet | Build tolerance dominates sensor noise | Per-unit baseline |
| Three sigma false alarms on nearly every unit | Thousands of tests per life, threshold set per-test | Derive the limit from a whole-life budget |
| Slow wear is caught only when it is severe | Fixed threshold has no memory | CUSUM or another sequential test |
| Watching longer stopped helping | The parameter has left the measured signal, usually at steady state | Excite the system, or accept the plateau as a specification |
| Good parts replaced repeatedly | A sensor fault collinear with the process fault | Add sensor faults to the matrix, add plausibility tests |
| The diagnosis changes month to month | A second fault arrived and rotated the residual direction | Track direction over time, treat rotation as evidence |
| Prognostics is accurate and nobody uses it | A mean life was reported instead of a decision | Apply the cost ratio and quote an interval |
Every figure is measured, not asserted. The noise gain was checked against its closed form over 40 runs and agrees to 0.1 percent. The detection comparisons are 400 Monte Carlo runs per case. The threshold and CUSUM limits were calibrated by simulation to a verified false alarm rate. The fleet spread is 20,000 sampled units and the life decision is 400,000 samples. Absolute values depend on the example model; the orders of magnitude and the rankings are the point.