Gas Turbine Compressor Decay State Coefficient Prediction

April 18, 2016
Predictive Maintenance for rotating equipment using Support Vector Regression.
In the past years, we have witnessed dramatic drops in oil and gas prices. This has disrupted the industry players in moving to a “doing more with less without increasing the risk exposure significantly” business strategy. One of the key enablers is the digital disruption where big data and advanced analytics drives the decisions. In this experiment we are demonstrating prediction of decay state of rotating equipment using support vector machine regression (SVMR) algorithm. We have also tested Basic Linear Regression and Decision Forest algorithms with SVMR. The Gas Turbine Compressor state is being modelled as a performance decay state metric which is measured as 1 to 0, 1 meaning delivering 100% of the nominal performance. ![]( “The data was obtained from a numerical simulator of a naval vessel (Frigate) characterized by a Gas Turbine (GT) propulsion plant. The different blocks forming the complete simulator (Propeller, Hull, GT, Gear Box and Controller) have been developed and fine tuned over the year on several similar real propulsion plants. In view of these observations the available data are in agreement with a possible real vessel.” A series of measures (16 variables) which indirectly represents the state of the system subject to performance decay has been acquired and stored in the dataset over the parameter’s space: • Lever position (lp) • Ship speed (v) [knots] • Gas Turbine (GT) shaft torque (GTT) [kN m] • GT rate of revolutions (GTn) [rpm] • Gas Generator rate of revolutions (GGn) [rpm] • Starboard Propeller Torque (Ts) [kN] • Port Propeller Torque (Tp) [kN] • Hight Pressure (HP) Turbine exit temperature (T48) [C] • GT Compressor inlet air temperature (T1) [C] • GT Compressor outlet air temperature (T2) [C] • HP Turbine exit pressure (P48) [bar] • GT Compressor inlet air pressure (P1) [bar] • GT Compressor outlet air pressure (P2) [bar] • GT exhaust gas pressure (Pexh) [bar] • Turbine Injecton Control (TIC) [%] • Fuel flow (mf) [kg/s] • GT Compressor decay state coefficient • GT Turbine decay state coefficient A series of measures (16 features) which indirectly represents of the state of the system subject to performance decay has been acquired and stored in the dataset over the parameter's space. The dataset could be downloaded from the UCI website Detailed explanation could be obtained from the paper “A. Coraddu, L. Oneto, A. Ghio, S. Savio, D. Anguita, M. Figari, Machine Learning Approaches for Improving Condition?Based Maintenance of Naval Propulsion Plants, Journal of Engineering for the Maritime Environment, 2014, DOI: 10.1177/1475090214540874” The data is in csv format without the header names. The dataset has been imported to ML Studio and the column names has been added. Data is clean, there are no missing data. Two columns, GT Compressor Inlet Air Pressure and GT Compressor Inlet Air Temperature have constant numbers, these were removed from the data. Exploratory data analysis has been performed using PowerBI. The workbook could be found here . PowerBI Desktop has to be downloaded and the pbix file opened locally. Some of the features such as R Language capabilities needs the desktop version. Looking at the histograms, we do see skewed distributions in some of the variables, hence there is room for improvement with scaling. A R scatter plot reveals correlations between some of the variables. A feature extraction module has been used to extract 8 variables, Pearson correlation has been used. Other methods have not been tested, hence there is room for improvement. The features that has been chosen are as follows • GT Compressor outlet air temperature (T2) [[C]] • HP Turbine exit temperature (T48) [[C]] • Turbine Injecton Control (TIC) [[%]] • Gas Generator rate of revolutions (GGn) [[rpm]] • Fuel flow (mf) [[kg/s]] • GT Compressor outlet air pressure (P2) [[bar]] • HP Turbine exit pressure (P48) [[bar]] • Gas Turbine shaft torque (GTT) [[kN m]] ![]( We have selected 3 algorithms based on a priori experience of the author • Linear Regression (LR) • Decision Forest Regression (DFR) • Support Vector Machine Regression (SVMR) LR and DFR are supported out of the box by Azure Machine Learning Blocks, SVMR is being implemented using the R Model block. As the R Model block doesn’t support Evaluate Model block connection, an Execute R Script Module has been used to calculate the R Squared. Linear Regression LR is being used to uncover the dependencies using a parsimonious model. The model parameters were calculated as follows • Bias 2.16171 • Fuel flow (mf) [[kg/s]] -0.30294 • T Compressor outlet air pressure (P2) [[bar]] 0.0297791 • HP Turbine exit pressure (P48) [[bar]] -0.00537372 • GT Compressor outlet air temperature (T2) [[C]] -0.00280191 • HP Turbine exit temperature (T48) [[C]] 0.000423961 • Turbine Injecton Control (TIC) [[%]] -0.0000285644 • Gas Turbine shaft torque (GTT) [[kN m]] 0.00000583789 • Gas Generator rate of revolutions (GGn) [[rpm]] 2.18397e-7 Decision Forest Regression DFR is known for its robustness, hence this algorithm is expected to provide acceptable results with out of the box Azure Machine Learning blocks in the simplest way. The model has generated 8 separate trees and the forest is below. ![]( Support Vector Model Regression SVRM is not supported in Azure Machine Learning as an out of the box block. R Model block is being used to create the block. As the R Model doesn’t support Sweep Parameters Block, we have pre trained the algorithm in R Studio to find the best possible parameters for epsilon and cost. The below code ran for ran for 20 hours on a Lenovo W540 Laptop with 32GB RAM and 4 core (8 with HT) i7 CPU. library(e1071) tuneResult <- tune(svm, Y ~ X, data = data, ranges = list(epsilon = seq(0,1,0.01), cost = 2^(2:9))) tunedModel <- tuneResult$best.model The parameters of the best model was cost=512 epsilon=0.3 gamma=0.06666667 The SVMR R Model was created with the following code Trainer Script library(e1071) model <- svm(get('GT Compressor decay state coefficient') ~ ., dataset, type="eps-regression", cost=512, epsilon=0.3, gamma=0.06666667) Scorer Script library(e1071) scores <- data.frame(predict(model, dataset)) names(scores) <- c("PredictedGTDecayCoefficient") As the R Model doesn’t support Evaluate Model connection yet, we’ve used an Execute R Script block to calculate the R Squared / Coefficient of Determination dataset1 <- maml.mapInputPort(1) CoefficientofDetermination <- cor(dataset1$PredictedGTDecayCoefficient, dataset1["GT Compressor decay state coefficient"])^2 data.set <-"CoefficientofDetermination", CoefficientofDetermination)) maml.mapOutputPort("data.set"); R Squared values for the 3 methods are as follows • LR 0.67 • DFR 0.97 • SVMR 0.996 The Results are a very promising with the DFR and SVMR although it needs a more thorough analysis. Another way of looking at the accuracy might be comparing the GT Compressor Decay values with the predictions of the 3 models. SVMR provides the most precise predictions while the variation of the prediction is the lowest. The prediction of the SVMR needs further analysis with new data whenever possible to prevent overfitting. Also a K Folds Cross Validation could be added to the experiment. ![](