Learning

Predict NOx emissions from a gas turbine with machine learning

Estimate hourly NOx from gas-turbine operating data

This predictive emissions model maps ambient conditions, turbine process variables and CO concentration to an hourly NOx estimate. It illustrates how a plant team could build a data-driven monitoring layer around existing measurements while retaining certified instrumentation and operating procedures.

36,733hourly aggregated records
10simultaneous input signals
7,346independent testing rows
4.28 mg/m³testing MAE

NOx formation varies with ambient conditions, load and combustion-state variables. A predictive emissions monitoring system (PEMS) can provide an additional estimate for trending, sensor cross-checks and investigation of unusual operation. In a regulated plant it complements, rather than replaces, the certified continuous emissions monitoring system (CEMS).

1. Industrial challenge

This is an approximation problem: the model estimates the continuous target NOx, expressed in mg/m³, from ten measurements available at the same operating point.

Monitor emissions contextEstimate NOx alongside existing measurements and compare trends across ambient and operating regimes.
Investigate abnormal operationFlag large disagreement between measured and predicted NOx for engineering review, sensor checks or combustion diagnostics.
Screen operating scenariosStudy model sensitivity inside the historical domain before validating any proposed change with turbine physics, OEM constraints and plant procedures.

Potential users include plant operators, gas-turbine performance engineers, environmental and compliance teams, control and instrumentation engineers, reliability teams and operations leadership.

Plant operationsEnvironmental complianceGas-turbine engineeringControl & instrumentationReliabilityOperations leadership
Scope of this example. The model predicts a simultaneous hourly NOx value. It does not forecast a future emission event, establish a legal limit or recommend an automatic combustion-control action.

2. Data set

The UCI Gas Turbine CO and NOx Emission dataset contains 36,733 sensor records aggregated over one hour from one gas turbine in north-western Turkey between 2011 and 2015. The source reports no missing values and operating data from approximately 75% to 100% load.

CSV variableEngineering meaningRoleUnitObserved range
ambient_temperatureAmbient temperatureInput°C-6.2348 to 37.103
ambient_pressureAmbient pressureInputmbar985.85 to 1036.6
ambient_humidityAmbient humidityInput%24.085 to 100.2
air_filter_difference_pressureAir-filter differential pressureInputmbar2.0874 to 7.6106
gas_turbine_exhaust_pressureGas-turbine exhaust pressureInputmbar17.698 to 40.716
turbine_inlet_temperatureTurbine inlet temperatureInput°C1000.8 to 1100.9
turbine_after_temperatureTurbine after temperatureInput°C511.04 to 550.61
turbine_energy_yieldTurbine energy yieldInputMWh100.02 to 179.5
compressor_discharge_pressureCompressor discharge pressureInputbar9.8518 to 15.159
COCarbon monoxide concentrationInputmg/m³0.00038751 to 44.103
NOxNitrogen oxides concentrationTargetmg/m³25.905 to 119.91
Variable-name correction. The working export had the last two turbine-process names interchanged. The source definition shows that the 100.02–179.50 column is turbine energy yield and the 9.8518–15.159 column is compressor discharge pressure. The downloadable CSV and Python model use the corrected names without changing values, weights or predictions.

The configured split is random: 22,041 rows for training (60%), 7,346 for selection (20%) and 7,346 for testing (20%). This supports the walkthrough, but it is not the strongest estimate of future-year performance.

Histogram of hourly NOx concentration in the gas-turbine dataset

Most observations fall around 59–68 mg/m³, with a smaller right tail extending above 100 mg/m³. Reporting errors in physical units is therefore essential: one aggregate score can hide weaker performance at high-emission points.

Corrected Pearson correlations between ten gas-turbine inputs and NOx
Marginal relationships. Ambient temperature has the strongest negative linear correlation with NOx; CO has the strongest positive one. Correlation does not imply that changing one variable alone will cause the plotted NOx change.
Scatter chart of ambient temperature and NOx concentration
Operating regimes overlap. The broad scatter shows why the complete multivariable operating point matters more than ambient temperature alone.
Validation design. UCI states that the rows are chronological and recommends using the first three years for training and cross-validation and the final two years for testing. Because the consolidated CSV omits year and the present project uses a random split, its testing metrics should be treated as exploratory rather than prospective.

3. Neural network

The initial 10–3–1 model provides a compact baseline, shown below with the corrected process-variable names.

Initial 10-3-1 NOx neural network with corrected turbine energy yield and compressor discharge pressure labels

After neuron selection, the final exported model standardizes ten inputs, evaluates ten tanh hidden neurons, applies one linear output neuron and converts the scaled result back to mg/m³.

10 inputsAmbient, turbine-process and CO measurements
Scaling layerMean and standard-deviation scaling from training data
10 tanh neuronsNonlinear representation selected from 1–10 neurons
1 NOx outputLinear output and unscaling to mg/m³

The final 10–10–1 network contains 121 trainable parameters. Its size remains small enough for millisecond-scale inference in a historian, edge service or plant analytics platform.

4. Training strategy

The initial 10–3–1 network minimizes mean squared error with L2 regularization weight 0.01 using Adam, batch size 1,000 and learning rate 0.001. Training stops after 1,089 epochs because the maximum number of validation-error increases is reached.

Adam training and selection error history for the NOx model
OptimizerEpochsTraining errorSelection errorStopping criterion
Adam1,0890.1430.134Maximum validation-error increases

The previously published quasi-Newton chart belongs to an earlier run and is not used for these final results.

5. Model selection

The growing-neurons task compares hidden-layer sizes from 1 to 10 using three trials per size. Selection error decreases from 0.2019 with one neuron to 0.1238 with ten.

Training and selection errors for NOx networks with one to ten hidden neurons
Selected hidden neuronsTraining errorSelection errorSearch boundary
100.13220.1238Configured maximum reached

Ten neurons is the best tested size, not proof of a global optimum. Because the lowest selection error occurs at the search boundary, a wider search could be evaluated only if a time-aware validation design is adopted first.

6. Testing analysis

The corrected Python export was independently recalculated on all 7,346 rows marked as testing. Neural Designer reports the squared correlation between measured and predicted NOx as R²; MAE, RMSE and bias express practical error in mg/m³.

Testing rowsMAERMSEBias95th-percentile absolute errorWithin ±10 mg/m³
7,3460.74254.28 mg/m³6.11 mg/m³+0.12 mg/m³12.36 mg/m³91.25%

A constant training-mean baseline has RMSE 11.95 mg/m³, so the neural network materially improves on a mean prediction. The goodness-of-fit chart also reveals compressed predictions at the upper end: some high measured values are underpredicted, which is important for emissions-risk use.

Predicted versus measured NOx for 7346 random testing rows
Decision implication. The maximum testing error is 50.48 mg/m³. A production PEMS therefore needs uncertainty or guard bands, regime-specific validation and an escalation rule to the measured CEMS value; R² alone is not sufficient for operational acceptance.

7. Model deployment

A credible deployment places data quality and human review around the neural model. Predictions should be timestamp-aligned with the CEMS, logged with model version and operating context, and compared continuously with measured NOx.

Historian, turbine controls and CEMS
Time alignment, units and range checks
NOx predictive model
Trend, residual and engineering review

Representative hourly operating point

The following point uses the dataset means. With the corrected variable mapping, the final exported model predicts 68.77 mg/m³ NOx.

Engineering variableCSV fieldValue
Ambient temperatureambient_temperature17.7127 °C
Ambient pressureambient_pressure1013.07 mbar
Ambient humidityambient_humidity77.867 %
Air-filter differential pressureair_filter_difference_pressure3.9255 mbar
Gas-turbine exhaust pressuregas_turbine_exhaust_pressure25.5638 mbar
Turbine inlet temperatureturbine_inlet_temperature1081.43 °C
Turbine after temperatureturbine_after_temperature546.159 °C
Turbine energy yieldturbine_energy_yield133.506 MWh
Compressor discharge pressurecompressor_discharge_pressure12.0605 bar
Carbon monoxide concentrationCO2.3725 mg/m³
Predicted nitrogen oxidesNOx68.77 mg/m³

Try the NOx prediction model

Enter one simultaneous operating snapshot. The calculation runs locally in the browser with the same scaling, weights and output transformation as the corrected Python export.

-6.2348 to 37.103
985.85 to 1036.6
24.085 to 100.2
2.0874 to 7.6106
17.698 to 40.716
1000.8 to 1100.9
511.04 to 550.61
100.02 to 179.5
9.8518 to 15.159
0.00038751 to 44.103
Predicted NOx concentrationModel estimate
Observed target interval25.91–119.91mg/m³ in this dataset

Educational PEMS example — not a certified CEMS, regulatory result or automatic control command.

Local sensitivity: turbine after temperature

At the saved reference point, the regenerated model predicts 95.91 mg/m³ at 538.05 °C. Varying only turbine after temperature gives the following model responses:

Turbine after temperaturePredicted NOxDifference from reference
520.00 °C110.76 mg/m³+14.85 mg/m³
538.05 °C95.91 mg/m³Reference
550.00 °C69.56 mg/m³−26.35 mg/m³
Directional output of predicted NOx versus turbine after temperature at a fixed reference point
Do not treat this as a control law. Turbine temperatures, pressure, yield and emissions are strongly coupled. Holding every other process variable fixed can create an implausible operating point, and the curve represents learned association rather than a causal effect. Use it to formulate an engineering question, then validate the scenario with turbine physics, OEM limits and plant data.

Download and integrate

CO input and deployment timing. Because CO is an input, this model assumes a simultaneous CO measurement. That is suitable for sensor cross-checking or a hybrid monitoring layer. For advance prediction or control planning, train and validate a second model using only signals available before the decision time.

8. Scope and limitations

  • The data represents one gas turbine and one 2011–2015 operating history; transfer to another turbine, fuel, combustor, maintenance state or site is not demonstrated.
  • The configured random split mixes operating years. It does not reproduce the source paper’s chronological protocol or demonstrate future-year performance.
  • Year and timestamp are absent from the consolidated CSV, so seasonality, ageing, maintenance interventions and drift cannot be audited directly.
  • CO is a simultaneous emissions measurement. Its inclusion can improve fit but changes the use case from an independent forward predictor to a hybrid monitoring or cross-validation model.
  • Several turbine variables are strongly collinear. Directional outputs and one-variable correlations are predictive associations, not causal estimates.
  • The model was trained inside approximately 75–100% load and the listed univariate ranges; neither condition defines a safe multidimensional operating envelope.
  • NOx limits depend on jurisdiction, permit, fuel, reference oxygen, dry/wet basis and reference conditions. The model embeds no compliance threshold or unit correction.
  • Deployment requires timestamp alignment, sensor-quality rules, out-of-domain detection, uncertainty or guard bands, residual monitoring, version control and periodic revalidation.
  • This example supports engineering analysis. It does not replace a certified CEMS, OEM protection, operating procedures or qualified environmental and plant personnel.

References