Generic Production Line Analysis- Detection of deviant processes (Part 1)


The optimization of industrial processes and the detection of deviant behaviors in tools associated to them is of outermost importance to ensure both an increase in monetary gains and the quality of the goods produced. Indeed, identifying faulty processes while a product still is in a production line, and thereby enabling an immediate course of action, costs less than recalling post-delivery. The defect can in a worst-case scenario have devastating consequences to buyers and the brand.

Today’s industrial processes are mostly automated or semi-automated and operations are steadily being monitored leaving a fingerprint of each individual event. In both cases, measurements are being taken from the start of an operation to its end. This generates, for each tool and product, substantial amounts of data to be stored daily. It is however apparent that the data is seldom used to its full potential and that it is not used neither to improve the performance of these processes, nor to better understand the distinct types of results or the causes of defects. The reasons for which a given industry does not mine its data can vary from lack of time to not having the competence to do so, as well as little knowledge from stakeholders that data exists or that the process outcomes can potentially be improved and thereby generate economic gains and a substantial strategic edge over competitors.

Our goal here is to describe several methods that could be applied to a multitude of industrial process. Since most events in a production line are characterized by a starting point, a series of measurements and a stop point together with some sort of template describing what the process ought to do, one needs not specify a particular kind of process and we leave it to the reader to think how the methods described here could be applied to his/her specific field of interest.

We will concentrate on two types of studies here. One, being the detection of specific processes that differ in some manner from what is expected according to programming specifications and the second, the identification of patterns for complete processes. In the first of these cases, we measure an array of features for the complete process and compare it to an ensemble of preceding processes. There are several ways to do so, but we shall restrict ourselves to one method. In the second instance, we study the curves described by all measurements during each individual process. Under distinct circumstances the curves might be dissimilar and be classified accordingly.


Throughout this work, we will perform our investigations on randomly generated data for two tools, that randomly generate faulty processes but that overall function within expected parameters. We shall also, choose to let one of the two perform it operations in several phases, e.g. metal milling is sometimes done by in a first stage remove material without considering surface smoothness and in a second stage removing rough surfaces to diminish friction. In both cases, measurements of angular speed, or spindle axis rotational speed, and displacement of the tool are recorded.

We also choose to generate 400 individual processes for four tools. For each process, we generate 3000 measurements which implies that we in total generate a dataset containing 4,8 million rows and two columns of measurements. We also create noise in the data to replicate possible vibrations in the material or in the tool. We point out that the measurements are fictive and may not represent an actual industrial process. The point being to expose the reader to an array of techniques that may be used in the analysis of industrial processes, we regard the non-factuality of the data as a minor issue. We have also chosen to align all measurements in time and scaled our data in such a way as to give the appearance that they are of equal length. In reality, processes of this type may very well differ in length due to different speeds (angular, rectilinear or other) or due to different material properties. We shall discuss how to adequately deal with these issues when presented real data.


Figure 1: The two types of generated traces in our dataset. We show here a one-phased process and a two-phased process. The pictures on the right show all traces while the ones on the left show individual processes. As was pointed out, all processes have been aligned to have the same start and end points, i.e., to have the same duration.

Every process yields a result which should, according to manufacturing specification, be approximately the same every time it is performed. In an ideal world, every produced or treated product should be indifferentiable. It is however unlikely that such precision can be reached as to produce these kinds of results and in some cases, the obtained results may be a faulty unit. To ensure manufacturing quality, it is of interest to efficiently detect faulty process to reject units and to monitor tools used to reprogram them or to schedule and optimize maintenance. In many processes, the end result is an indicator of whether a process is a success or a failure. We have therefore created a dataset of end results of every process and every tool from our original trace data. This will enable to study the tool performance and classify these results as “good” or “bad” results. As our data is randomly generated, it cannot be representative of a process that actually occurs in a factory line. We have hence chosen to smoothen the results by using a low-pass filter in the R-package signal on the original end points of the trace data.

Figure 2: Original end-point data (left graph) and Butterworth-filtered end-point data (right graph) for the one-phased processes. The graphs for the two-phased processes are similar. The aim with smoothening the data here is to emulate more plausible end results in a production line for 800 distinct processes. Low-pass filtering has of course many applications as we will see later.

Harmonizing sampling frequencies
As we mentioned above, in a real setting, the sampling frequencies of measurements can differ widely due to how tools are handled or when the measuring process starts. In some cases, the effective manufacturing process may be delayed, leading to longer or shorter process times. This implies that the measurement sequences have to be harmonized before any analysis can be performed. The easiest way to do this is to choose the longest trace in our data and up-sample all other traces to match the chosen one. This is equivalent to adding measurements to the shorter traces by linearly interpolate the shorter sampled traces and resample them at the higher sampling rate.harmony

Figure 3: Red points show original discrete signal. Dotted line shows linear interpolation between red points. The blue circles show new    up sampled signal with double sampling rate of the original signal.

Identifying process failures
As we mentioned in the introduction, many industrial processes are controlled by measure very specific events in production and these are recorded while the tool is operated with a preset specification or program. In these cases, the operator does not need to manually check the outcome of every single process. The existence of alerts for faulty processes is of special interest for manufacturers since they give immediate feed-back to the operator. One can imagine an alert given whenever the measured value is far for the given specifications of the tool program (given some allowed margin of error from a defined value). These kinds of warning system do not, however, give any information on the nature of the failure. There are many ways and reasons for which a process might fail and there are statistical ways to understand the nature of these failures. On often speaks of how values are distributed and in many processes, one expects the final measurements obtained to be normally distributed around some mean value. Indeed, if the program used specifies an ideal value, and considering the above discussion about the improbability of hitting this value every single time, one easily understands that the results should be more often around this value than far from it and, in the cases it is far away, the result should be considered as a failure. Hence, one should test for normality. One could envisage a situation in which a well calibrated tool produces end values normally distributed around the target value that over time starts to deteriorate and produced end values that are typically distributed around a value far from the target value, as shown in figure 4 below.


Figure 4: The top graph shows a process which produces a set of end values distributed within an acceptable range of values around a given target value. In the bottom graph, we observe that the distribution has been shifted or skewed. This could be an indication that the tool no longer functions within parameters.

As we see in figure 4, the distribution has been skewed to the left. Other observations might be that the distribution presents double peaks or has thicker tails. We decide here to compute the statistical measures, which we shall call features, of the N previous values, where N is an integer. The reason for doing this is that we wish to determine the stability and historical changes of processes.


In our fictive processes, we choose to calculate our features using a rolling average over the past 20 measurements. Doing this enables us to see how a new process result influences the feature values. In the plots below we show these rolling averages for the mean and the inter quantile range, together with two dashed lines representing three standard deviations from the mean (for a particular tool). It is customary to set these boundaries to indicate that a process is within some acceptable parameters. Of course, this can be calibrated depending on the setting one is in. Since we are dealing with fictive data, the graphs seem erratic and the sample of processes would most probably raise some concerns.


Figure 5: Inter quantile and Mean value plots in rolling average with a window of 20 measurements. Added are dashed lines representing 3 standard deviations from the mean of all measurements.

Creating an alarm measure

The quick detection of failed or substandard processes is of importance from a qualitative point of view, but also for cost-effectiveness. Indeed, if the product is deemed of inferior quality while it still is in the production line, it may be either rejected or corrected, while its failure when incorporated in other systems after delivery to the customer may imply substantial costs of all kinds. We proposed the computation of statistical measures that can individually or in combination with each other give some indication of whether a process may be considered ok or not. As seen in Table 1, we have chosen to focus on 11 features. As the graphs in Figure 5 show, we can easily detect which measurements are substandard and it is possible to create some alarm system triggered if a measurement causes the rolling average to exceed a certain threshold for some or all features. But such an approach seems impractical if each individual feature has to be monitored and alarms are to be set off whenever any of them passes a given value.

An obvious question that immediately arises is: Which of these features is the most important, or which of these features is a better indicator of process fault? There is not definite answer to this question and it all depends on the studied process. To rank processes in order of importance, one needs to perform factor analysis or principal component analysis (PCA). In this paper, we choose to use the PCA approach since it is a dimension reducing method. Indeed, since we are dealing with 11 variables (our features) it seems wise to define one single feature that is a linear combination of all the above features, weighted by their importance. We will not go into the mathematical details of PCA and invite the reader to find a description of the procedure online. In this work, we have chosen to take the first principal component as the one containing most of the information. This can of course be discussed, but the strategy is to be the computational process as lean as possible since we may be dealing with large numbers of observations. If one wishes to add components, the procedure is basically the same. Since the elements of the first principal component determines the importance of a given feature to the outcome of a measurement (process), one can construct a score for each measurement. This score is then given by

Score = \alpha_1 f_1 +\alpha_2 f_2 +\alpha_3 f_3 + ...\alpha_{11} f_{11}

where  the f and \alpha are the feature values and the weights in the first principal component, respectively. As we see, it is no longer a given normalized value of a feature that determines the severity of a measurement, but rather the weight associated to a given feature. In our particular example, we have the following variable weights. Note that the mean value and the normality values are the most important features in the scoring of processes.


We conclude this post by observing that most industrial processes involving tools can be treated in very similar ways. Given well defined data, sufficiently accurate measurements and well-defined goals, it is possible through analytical methods to automatically detect unwanted events in production. The result behind more reliable processes and a quality control tool, both for the manufactured product and the planning of maintenance. In this post, we have concentrated our investigation on the detection of failed processes but have not discussed the nature of the failure. In a subsequent post, we will do just that and try to analyze how two or more failure differ from one another. As it is important to know that something went wrong, it seems logical and time saving to know what the problem was.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Website Powered by

Up ↑

%d bloggers like this: