Three stack sensors sample a different pollutant (NOx, SOx and particulate matter) directly at the flue outlet. Raw output scales with production load; the scrubber strips a fraction of that load before it reaches the sensor, so a plant that runs harder without also running its abatement equipment harder is the classic way a stack goes into exceedance. Each plume is drawn as rising, drifting particles — thicker and darker at high load, thinner and paler once the scrubber and wind disperse it — so you can watch the pollutant load rather than just read a number.
reading(t) = baseRate(pollutant) · load · (1 − scrubber) · (1 + noise) − windDispersion
alert ⟺ reading > threshold, sustained ⟹ siren + red stack ring
- Production load — how hard the plant is running; raw emissions before any cleanup scale roughly linearly with it.
- Scrubber efficiency — the fraction of pollutant load removed by flue-gas treatment before the sensor sees it; 0% means untreated, 98% is a well-tuned modern scrubber.
- Wind speed — faster wind disperses the plume faster, thinning it visually and slightly reducing the *local* stack reading through better mixing.
- Alert threshold — the regulatory ppm limit for each pollutant channel; crossing it lights the stack ring red and raises the siren banner until the reading drops back below.
Real-world relevance: continuous emissions monitoring systems (CEMS) work exactly this way — sensors mounted in the stack sample continuously, compare against a permitted limit, and log every minute an exceedance is sustained, since regulators care about duration above the limit as much as the peak value itself.