Speaker
|
Transcript
|
| |
Hello, I'm Jeremy Ash. I'm a |
| |
statistician in JMP R&D. My job |
| |
primarily consists of testing |
| |
the multivariate statistics |
| |
platforms in JMP, but I also |
| |
help research and evaluate |
| |
methodology. Today I'm going to |
| |
be analyzing the Tennessee |
| |
Eastman process using some |
| |
statistical process control |
| |
methods in JMP. I'm going to |
| |
be paying particular attention |
| |
to the model driven multivariate |
| |
control chart platform, which is |
| |
a new addition to JMP 15. |
| |
These data provide an |
| |
opportunity to showcase the |
| |
number of the platform's |
| |
features. And just as a quick |
| |
disclaimer, this is similar to |
| |
my Discovery Americas talk. We |
| |
realized that Europe hadn't seen a |
| |
model driven multivariate |
| |
control chart talk due to all the |
| |
craziness around COVID, so I |
| |
decided to focus on the basics. |
| |
But there is some new material |
| |
at the end of the talk. I'll |
| |
briefly cover a few additional |
| |
example analyses, then I put on |
| |
the Community page for the talk. |
| |
First, I'll assume some knowledge |
| |
of statistical process control |
| |
in this talk. The main thing it |
| |
would be helpful to know about |
| |
is control charts. If you're |
| |
not familiar with these, these |
| |
are charts used to monitor |
| |
complex industrial systems to |
| |
determine when they deviate |
| |
from normal operating |
| |
conditions. |
| |
I'm not gonna have much time to |
| |
go into the methodology of model |
| |
driven multivariate control |
| |
chart, so I'll refer to these other |
| |
great talks that are freely |
| |
available on the JMP Community |
| |
if you want more details. I |
| |
should also say that Jianfeng |
| |
Ding was the primary |
| |
developer of the model driven |
| |
multivariate control control |
| |
chart in collaboration with |
| |
Chris Gotwalt and that Tonya |
| |
Mauldin and I were testers. The |
| |
focus of this talk will be using |
| |
multivariate control charts to |
| |
monitor a real world |
| |
typical process; another novel |
| |
aspect will be using control |
| |
charts for online process |
| |
monitoring. This means we'll be |
| |
monitoring data continuously as |
| |
it's added to a database and |
| |
detecting faults in real time. |
| |
So I'm going to start off with |
| |
the obligatory slide on the |
| |
advantages of multivariate |
| |
control charts. So why not use |
| |
univariate control charts? There |
| |
are a number of excellent |
| |
options in JMP. Univariate |
| |
control charts are excellent |
| |
tools for analyzing a few |
| |
variables at a time. However, |
| |
quality control data are often |
| |
high dimensional and the number |
| |
of control charts you need to |
| |
look at can quickly become |
| |
overwhelming. Multivariate |
| |
control charts can summarize a |
| |
high dimensional process in |
| |
just a couple of control charts, |
| |
so that's a key advantage. |
| |
But that's not to say that |
| |
univeriate control charts aren't |
| |
useful in this setting. You'll |
| |
see throughout the talk that |
| |
fault diagnosis often involves |
| |
switching between multivariate |
| |
and univariate charts. |
| |
Multivariate control charts give |
| |
you a sense of the overall |
| |
health of the process, while |
| |
univariate charts allow you to |
| |
monitor specific aspects of the |
| |
process. So the information is |
| |
complementary. One of the goals |
| |
of monitoring multivariate |
| |
control chart is to provide some |
| |
useful tools for switching |
| |
between these two types of |
| |
charts. One disadvantage of |
| |
univariate charts is that |
| |
observations can appear to be in |
| |
control when they're actually |
| |
out of control in the multivariate |
| |
sense and these plots show what I |
| |
mean by this. The univariate |
| |
control chart for oil and |
| |
density show the two |
| |
observations in red as in |
| |
control. However, oil and density |
| |
are highly correlated and both |
| |
observations are out of control. |
| |
in the multivariate sense, |
| |
specially observation 51, which |
| |
fairly violates the correlation |
| |
structure of the two variables, |
| |
so multivariate control charts |
| |
can pick up on these types of |
| |
outliers, while univariate |
| |
control charts can't. |
| |
Model driven multivariate |
| |
control chart uses projection |
| |
methods to construct the charts. |
| |
I'm going to start by explaining PCA |
| |
because it's easy to build up |
| |
from there. PCA reduces the |
| |
dimensionality of the process by |
| |
projecting data onto a low |
| |
dimensional surface. Um, |
| |
this is shown in the picture |
| |
on the right. We have P |
| |
process variables and N |
| |
observations, and |
| |
the loading vectors in the P |
| |
matrix give the coefficients for |
| |
linear combinations of our X |
| |
variables that result in |
| |
square variables with |
| |
dimension A, where the dimension |
| |
A is much less than P. And then |
| |
this is shown in equations on |
| |
the left here. The X can be |
| |
predicted as a function of the |
| |
score and loadings, where E is |
| |
the prediction error. |
| |
These scores are selected to |
| |
minimize the prediction error, |
| |
and another way to think about |
| |
this is that you're maximizing |
| |
the amount of variance explained |
| |
in the X matrix. |
| |
Then PLS is a more suitable |
| |
projection method. When you have |
| |
a set of process variables and a |
| |
set of quality variables, you |
| |
really want to ensure that the |
| |
quality variables are kept in |
| |
control but these variables |
| |
are often expensive or time |
| |
consuming to collect. The plant |
| |
could be making product without |
| |
a control quality for a long |
| |
time before a fault is detected. |
| |
So PLS models allow you to |
| |
monitor your quality variables |
| |
as a function of your process |
| |
variables and you can see that |
| |
the PLS models find the score |
| |
variables that maximize the |
| |
amount of variation explained of |
| |
the quality variables. |
| |
These process variables are |
| |
often cheaper or more readily |
| |
available, so PLS can enable you |
| |
to detect faults in quality |
| |
early and make your process |
| |
monitoring cheaper. And from here |
| |
on out I'm going to focus on PLS |
| |
models because it's more |
| |
appropriate for the example. |
| |
So PLS model partitions your |
| |
data into two components. The |
| |
first component is the model |
| |
component. This gives the |
| |
predicted values of your process |
| |
variables. Another way to think |
| |
about it is that your data has |
| |
been projected into the model |
| |
plane defined by your score |
| |
variables and T squared monitors |
| |
the variation of your data |
| |
within this model plane. |
| |
And the second component is the |
| |
error component. This is the |
| |
distance between your original |
| |
data and the predicted data and |
| |
squared prediction error (SPE) |
| |
charts monitor this variation. |
| |
Another alternative metric we |
| |
provide is the distance to model |
| |
X plane or DModX. This is just |
| |
a normalized alternative to SPE |
| |
that some people prefer. |
| |
The last concept that's |
| |
important to understand for the |
| |
demo is the distinction between |
| |
historical and current data. |
| |
Historical data are typically |
| |
collected when the process was |
| |
known to be in control. These |
| |
data are used to build the PLS |
| |
model and define the normal |
| |
process variation so that a |
| |
control limit can be obtained. |
| |
And current data are assigned |
| |
scores based on the model but |
| |
are independent of the model. |
| |
Another way to think about this |
| |
is that we have training and |
| |
test sets. The T squared control |
| |
limit is lower for the training |
| |
data because we expect less |
| |
variability for the various... |
| |
observations used to train the |
| |
model whereas there's greater |
| |
variability in P squared when |
| |
the model generalizes to E test |
| |
set. Fortunately, the theory |
| |
for the variance of T squared is |
| |
been worked out so we can get |
| |
these control limits based on |
| |
some distributional assumptions. |
| |
In the demo will be monitoring |
| |
the Tennessee Eastman process. |
| |
I'm going to present a short |
| |
introduction to these data. This |
| |
is a simulation of a chemical |
| |
process developed by Downs and |
| |
Vogel, two chemists at Eastman |
| |
Chemical. It was originally |
| |
written in Fortran, but there |
| |
are wrappers for Matlab and |
| |
Python now. I just wanted to note |
| |
that while this data set was |
| |
generated in the '90s, it's still |
| |
one of the primary data sets |
| |
used to benchmark multivariate |
| |
control methods in the |
| |
literature. It covers the |
| |
main tasks of multivariate |
| |
control well and there is |
| |
an impressive amount of |
| |
realism in the simulation. |
| |
And the simulation is based on |
| |
an industrial process that's |
| |
still relevant today. |
| |
So the data were manipulated |
| |
to protect proprietary |
| |
information. The simulated |
| |
process is the production of |
| |
two liquid products from |
| |
gaseous reactants within a |
| |
chemical plant. And F here is |
| |
a byproduct |
| |
that will need to be siphoned |
| |
off from the desired product. |
| |
Um and... |
| |
That's about all I'll say about that. |
| |
So the process diagram looks |
| |
complicated, but it really isn't |
| |
that bad, so I'll walk you |
| |
through it. Gaseous |
| |
reactants A, D, and E flow into |
| |
the reactor here. |
| |
The reaction occurs and the |
| |
product leaves as a gas. It's |
| |
then cooled and condensed into |
| |
liquid in the condenser. |
| |
Then a vapor liquid separator |
| |
recycles any remaining vapor and |
| |
sends it back to the reactor |
| |
through a compressor, and the |
| |
byproduct and inert chemical B |
| |
are purged in the purge stream, |
| |
and that's to prevent any |
| |
accumulation. The liquid product |
| |
is pumped through a stripper, |
| |
where the remaining reactants |
| |
are stripped off. |
| |
And then sent back to the reactor. |
| |
And then finally, the |
| |
purified liquid product |
| |
exits the process. |
| |
The first set of variables being |
| |
monitored are the manipulated |
| |
variables. These look like bow |
| |
ties in the diagram. I think |
| |
they're actually meant to be |
| |
valves and the manipulated |
| |
process...or the manipulated |
| |
variables mostly control the |
| |
flow rate through different |
| |
streams of the process. |
| |
And these variables can be set |
| |
to any values within limits and |
| |
have some Gaussian noise. |
| |
The manipulated variables are able |
| |
to be sampled in the rate, |
| |
but we use the default 3 |
| |
minutes sample now. |
| |
Some examples of the manipulated |
| |
variables are the valves that |
| |
control the flow of reactants |
| |
into the reactor. |
| |
Another example is a valve |
| |
that controls the flow of |
| |
steam into the stripper. |
| |
And another is a valve that |
| |
controls the flow of coolant |
| |
into the reactor. |
| |
The next set of variables are |
| |
measurement variables. These are |
| |
shown as circles in the diagram. |
| |
They were also sampled at three |
| |
minute intervals. The |
| |
difference between manipulated |
| |
variables and measurement |
| |
variables is that the |
| |
measurement variables can't be |
| |
manipulated in the simulation. |
| |
Our quality variables will be |
| |
the percent composition of |
| |
two liquid products and you |
| |
can see the analyzer |
| |
measuring the products here. |
| |
These variables are sampled with |
| |
a considerable time delay, so |
| |
we're looking at the purge |
| |
stream instead of the exit |
| |
stream, because these data are |
| |
available earlier. And will use |
| |
a PLS model to monitor process |
| |
variables as a proxy for these |
| |
variables because the process |
| |
variables have less delay and |
| |
affect faster sampling rate. |
| |
So that should be enough |
| |
background on the data. In |
| |
total there are 33 process |
| |
variables and two quality |
| |
variables. The process of |
| |
collecting the variables is |
| |
simulated with a set of |
| |
differential equations. And this |
| |
is just a simulation, but as you |
| |
can see a considerable amount of |
| |
care went into modeling this |
| |
after a real world process. Here |
| |
is an overview of the demo I'm |
| |
about to show you. We will collect |
| |
data on our process and store |
| |
these data in a database. |
| |
I wanted to have an example that |
| |
was easy to share, so I'll be |
| |
using a SQLite database, but |
| |
the workflow is relevant to most |
| |
types of databases since most |
| |
support ODBC connections. |
| |
Once JMP forms an ODBC |
| |
connection with the database, |
| |
JMP can periodically check for |
| |
new observations and add them to |
| |
a data table. |
| |
If we have a model driven |
| |
multivariate control chart |
| |
report open with automatic |
| |
recalc turned on, we have a |
| |
mechanism for updating the |
| |
control charts as new data come |
| |
in and the whole process of |
| |
adding data to a database would |
| |
likely be going on a separate |
| |
computer from the computer |
| |
that's doing the monitoring. So |
| |
I have two sessions of JMP open |
| |
to emulate this. Both sessions |
| |
have their own journal |
| |
in the materials on the |
| |
Community, and the session |
| |
adding new simulated data to |
| |
the database will be called |
| |
the Streaming Session and |
| |
session updating the reports |
| |
as new data come in will be |
| |
called the Monitoring Session. |
| |
One thing I really liked about |
| |
the Downs and Vogel paper was |
| |
that they didn't provide a |
| |
single metric to evaluate the |
| |
control of the process. I have |
| |
a quote from the paper here |
| |
"We felt that the tradeoffs |
| |
among the possible control |
| |
strategies and techniques |
| |
involved much more than a |
| |
mathematical expression." |
| |
So here are some of the goals |
| |
they listed in their paper, |
| |
which are relevant to our |
| |
problem. They wanted to maintain |
| |
the process variables at |
| |
desired values. They wanted to |
| |
minimize variability of product |
| |
quality during disturbances, and |
| |
they wanted to recover quickly |
| |
and smoothly from disturbances. |
| |
So we'll see how well our |
| |
process achieves these goals |
| |
with our monitoring methods. |
| |
So to start off in the |
| |
Monitoring Session journal, I'll |
| |
show you our first data set. |
| |
The data table contained all of |
| |
the variables I introduced |
| |
earlier. The first variables are |
| |
the measurement variables; the |
| |
second are the composition. |
| |
And the third are the |
| |
manipulated variables. |
| |
The script up here will fit |
| |
a PLS model. It excludes the |
| |
last 100 rows as a test set. |
| |
Just as a reminder, |
| |
the model is predicting 2 |
| |
product composition |
| |
variables as a function of |
| |
the process variables. If |
| |
you have JMP Pro, there |
| |
have been some speed |
| |
improvements to PLS |
| |
in JMP 16. |
| |
PLS now has a |
| |
fast SVD option. |
| |
You can switch to the |
| |
classic in the red |
| |
triangle menu. There's |
| |
also been a number of |
| |
performance improvements |
| |
under the hood. |
| |
Mostly relevant for datasets |
| |
with a large number of |
| |
observations, but that's |
| |
common in the multivariate |
| |
process monitoring setting. |
| |
But PLS is not the focus of the |
| |
talk, so I've already fit the |
| |
model and output score columns |
| |
and you can see them here. |
| |
One reason that the monitor |
| |
multivariate control chart was |
| |
designed the way it is, is that |
| |
imagine you're a statistician |
| |
and you want to share your model |
| |
with an engineer so they can |
| |
construct control charts. All |
| |
you need to do is provide the |
| |
data table with these formula |
| |
columns. You don't need to share |
| |
all the gory details of how you |
| |
fit your model. |
| |
Next, I'll provide the score |
| |
columns to monitor the |
| |
multivariate control chart. |
| |
Drag it to the right here. |
| |
So on the left here you can see |
| two types of control charts |
the |
| |
T squared and SPE. |
| |
Um, there are 860 observations |
| |
that were used to estimate the |
| |
model and these are labeled as |
| |
historical. And then the hundred |
| |
that were left out as a test set |
| |
are your current data. |
| |
And you can see in the limit |
| |
summaries, the number of points |
| |
that are out of control and the |
| |
significance level. Um, if you |
| |
want to change the significance |
| |
level, you can do it up here in |
| |
the red triangle menu. |
| |
Because the reactor's in normal |
| |
operating conditions, we expect |
| |
no observations to be out of |
| |
control, but we have a few false |
| |
positives here because we |
| |
haven't made any adjustments for |
| |
multiple comparisons. It's |
| |
uncommon to do this, as far as I |
| |
can tell, in multivariate |
| |
control charts. I suppose you |
| |
have higher power to detect out |
| |
of control signals without a |
| |
correction. In control chart |
| |
lingo, this is means you're out |
| |
of control. Average run length |
| |
is kept low. |
| |
So on the right here we |
| |
also have contribution |
| |
plots and on the Y axis are |
| |
the observations; on the X |
| |
axis, the variables. A |
| |
contribution is expressed |
| |
as a portion. |
| |
And then at the bottom here, |
| |
we have score plots. Right |
| |
now I'm plotting the first |
| |
score dimension versus the |
| |
second score dimension, but |
| |
you can look at any |
| |
combination of score |
| |
dimensions using this |
| |
dropdown menus or the arrow |
| |
button. |
| |
OK, so I think we're oriented |
| |
to the report. I'm going to |
| |
now switch over to the |
| |
scripts I've used to stream |
| |
data into the database that |
| |
the report is monitoring. |
| |
In order to do anything for this |
| |
example, you'll need to have a |
| |
SQLite ODBC driver installed |
| |
for your computer. This is much easier |
| |
to do on a Windows computer, |
| |
which is what you're often using |
| |
when actually connecting to a |
| |
database. The process on the Mac |
| |
is more involved, but I put some |
| |
instructions on the Community |
| |
page. And then I don't have time |
| |
to talk about this, but I |
| |
created the SQLite database |
| |
I'll be using in JMP and I |
| |
plan to put some instructions |
| |
in how to do this on the |
| |
Community Web page. And hopefully |
| |
that example is helpful to you |
| |
if you're trying to do this with |
| |
data on your own. |
| |
Next I'm going to show |
| |
you the files that I put |
| |
in the SQLite database. |
| |
Here I have the historical data. |
| |
This was used to construct |
| |
the PLS model. There are 960 |
| |
observations that are in |
| |
control. Then I have the |
| |
monitoring data, which at first |
| |
just contains the historical |
| |
data, but I'll gradually add new |
| |
data to this. This is the data |
| |
that the multivariate control |
| |
chart will be monitoring. |
| |
And then I've simulated new |
| |
data already and added it to the |
| |
data table here. These are |
| |
another 960 odd measurements |
| |
where a fault is introduced at |
| |
some time point. I wanted to |
| |
have something that was easy to |
| |
share, so I'm not going to run |
| |
my simulation script and add to |
| |
the database that way. We're |
| |
just going to take observations |
| |
from this new data table and |
| |
move them over to the monitoring |
| |
data table using some JSL and |
| |
SQL statements. This is just an |
| |
example emulating the process |
| |
of new data coming into a |
| |
database. Somehow you might not |
| |
actually do this with JMP, but |
| |
this was an opportunity to show |
| |
how you can do it with JSL. |
| |
Clean up here. |
| |
And next I'll show you this |
| |
streaming script. This is a |
| |
simple script, so I'm going to |
| |
walk you through it real quick. |
| |
This first set of |
| |
commands will open the |
| |
new data table and |
| |
it's in the SQLite database, |
| |
so it opens the table in the |
| |
background so I don't have to |
| |
deal with the window. |
| |
Then I'm going to take pieces |
| |
from this data table and add |
| |
them to the monitoring data |
| |
table. I call the pieces |
| |
bites and the bite size is 20. |
| |
And then this next command will |
| |
connect to the database. This |
| |
will allow me to send the |
| |
database SQL statements. |
| |
And then this next bit |
| |
of code is |
| |
iteratively sending SQL |
| |
statements that insert new |
| |
data into the monitoring data. |
| |
And I'm going to |
| |
initialize K and show you the |
| |
first iteration of this. |
| |
This is a simple SQL statement, |
| |
insert into statement that |
| |
inserts the first 20 |
| |
observations into the data |
| |
table. This print statement is |
| |
commented out so that the code |
| |
runs faster and then I also |
| |
have a wait statement to slow |
| |
things down slightly so that |
| |
we can see their progression |
| |
in the control chart. |
| |
And this would just go too fast |
| |
if I didn't slow it down. |
| |
Um, so next I'm going to move |
| |
over to the monitoring sessions |
| |
to show you the scripts |
| |
that will update the report |
| |
as new data come in. |
| |
This first script is a simple |
| |
script. That will check the |
| |
database every .2 seconds for |
| |
new observations and add them |
| |
to the JMP table. Since the |
| |
report has automatic recalc |
| |
turned on, the report will update |
| |
whenever new data are added. And |
| |
I should add that |
| |
realistically, |
| |
you probably wouldn't use a |
| |
script that just iterates like |
| |
this. You probably use task |
| |
scheduler in Windows or |
| |
Automator on Mac to better |
| |
schedule runs of the script. |
| |
And then there's also another |
| |
script that will |
| |
push the report to JMP Public |
| |
whenever the report is updated, |
| |
and I was really excited that |
| |
this is possible with JMP 15. |
| |
It enables any computer with a |
| |
web browser to view updates to |
| |
the control chart. Then you |
| |
can even view the report on |
| |
your smartphone, so this makes |
| |
it really easy to share |
| |
results across organizations. |
| |
And you can also use JMP Live |
| |
if you wanted the reports to |
| |
be on restricted server. |
| |
I'm not going to have time |
| |
to go into this in this |
| |
demo, but you can check out |
| |
my Discovery Americas talk. |
| |
Then finally down here, there is |
| |
a script that recreates the |
| |
historical data in the data |
| |
table if you want to run the |
| |
example multiple times. |
| |
Alright, so next...make sure |
| |
that we have the historical data... |
| |
I'm going to run the |
| |
streaming script and see |
| |
how the report updates. |
| |
So the data is in control at |
| |
first and then a fault is |
| |
introduced, but there's a |
| |
plantwide control system |
| |
that's implemented in the |
| |
simulation, and you can see |
| |
how the control system |
| |
eventually brings the process |
| |
to a new equilibrium. |
| |
Wait for it to finish here. |
| |
So if we zoom in, |
| |
seems like the process first |
| |
went out of control around this |
| |
time point, so I'm going to |
| |
color it and |
| |
label it, but it will |
| |
show up in other plots. |
| |
And then in the SPE plot, |
| |
it looks like this |
| |
observation is also out of |
| |
control but only slightly. |
| |
And then if we zoom in on |
| |
the time point in the |
| |
contribution plots, you can |
| |
see that there are many |
| |
variables contributing to |
| |
the out of control signal at |
| |
first. But then once the |
| |
process reaches a new |
| |
equilibrium, there's only |
| |
two large contributors. |
| |
So I'm going to remove the heat |
| |
maps now to clean up a bit. |
| |
You can hover over |
| |
the point at which the process |
| |
first went out of control and |
| |
get a peek at the top ten |
| |
contributing variables. This |
| |
is great for giving you a |
| |
quick overview which variables |
| |
are contributing most to the |
| |
out of control signal. |
| |
And then if I click on the plot, |
| |
this will be appended to the |
| |
fault diagnosis section. |
| |
And as you can see, there's |
| |
several variables with large |
| |
contributions and just sorted |
| |
on the contribution. |
| |
And for variables with |
| |
red bars the observation is |
| |
out of control in the univariate |
| |
control charts. You can see |
| |
this by hovering over one of |
| |
the bars and these graphlets |
| |
are IR charts for an |
| |
individual variable with a |
| |
three Sigma control limit. |
| |
You can see in the stripper |
| |
pressure variable that the |
| |
observation is out of |
| |
control, but eventually the |
| |
process is brought back under |
| |
control. And this is the case |
| |
for the other top |
| |
contributors. I'll also show |
| |
you one of the variables |
| |
where we're in control, the |
| |
univariate control chart. |
| |
So the process was... |
| |
there are many variables out |
| |
of control in the process at |
| |
the beginning, but |
| |
process eventually reaches |
| |
a new equilibrium. |
| |
Um... |
| |
To see the variables that |
| |
contribute most to the shift in |
| |
the process, we can use mean |
| |
contribution proportion plot. |
| |
These plots show the average |
| |
contribution that the variables |
| |
have to T squared for the group |
| |
I've selected. Um, here if I |
| |
sort on these. |
| |
The only two variables with |
| |
large contributions measure the |
| |
rate of flow of reactant A in |
| |
stream one, which is the flow of |
| |
this reactant into the reactor. |
| |
Both of these variables are |
| |
measuring essentially the |
| |
same thing, except one |
| |
measurement...one is a |
| |
measurement variable and the |
| |
other is a manipulated |
| |
variable. |
| |
You can see that there is a |
| |
large step change in the flow |
| |
rate, which is what I programmed |
| |
in the simulation. So these |
| |
contribution plots allow you to |
| |
quickly identify the root cause. |
| |
And then in my previous talk I |
| |
showed many other ways to |
| |
visualize and diagnose faults |
| |
using tools in the score plot. |
| |
This includes plotting the |
| |
loadings on the score plots and |
| |
doing some group comparisons. |
| |
You can check out my Discovery |
| |
Americas talk on the JMP |
| |
Community for that. Instead, I'm |
| |
going to spend the rest of this |
| |
time introducing a few new |
| |
examples, which I put on the |
| |
Community page for this talk. |
| |
So. |
| |
There are 20 programmable faults |
| |
in the Tennessee Eastman process |
| |
and they can be introduced in any |
| |
combination. I provided two other |
| |
representative faults here. Fault |
| |
1 that I showed previously was |
| |
easy to detect because the out |
| |
of control signal is so large |
| |
and so many variables are |
| |
involved. The focus on the |
| |
previous demo was to show how to |
| |
use the tools and identify. |
| |
faults out of a large number of |
| |
variables and not to benchmark |
| |
the methods necessarily. |
| |
Fault 4, on the other hand, |
| |
is a more subtle fault, |
| |
and I'll show you it here. |
| |
The fault i...that's programmed |
| |
is a sudden increase in the |
| |
temperature in the reactor. |
| |
And this is compensated for by |
| |
the control system by increasing |
| |
the flow rate of coolant. |
| |
And you can see that |
| |
variable picked up here and |
| |
you can see the shift in |
| |
contribution plots. |
| |
And then you can also see |
| |
that most other variables |
| |
aren't affected |
| |
by the fault. You can see a |
| |
spike in the temperature here |
| |
is quickly brought back under |
| |
control. Because most other |
| |
variables aren't affected, this |
| |
is hard to detect for some |
| |
multivariate control methods. |
| |
And it can be more |
| |
difficult to diagnose. |
| |
The last fault I'll show you |
| |
is Fault 11. |
| |
Like Fault 4, it also involves |
| |
the flow of coolant into the |
| |
reactor, except now the fault |
| |
introduces large oscillations in |
| |
the flow rate, which we can |
| |
see in the univariate control |
| |
chart. And this results in a |
| |
fluctuation of reactor |
| |
temperature. The other |
| |
variables aren't really |
| |
affected again, so this can be |
| |
harder to detect for some |
| |
methods. Some multivariate |
| |
control methods can pick up on |
| |
Fault 4, but not Fault 11 or |
| |
vice versa. But our method was |
| |
able to pick up on both. |
| |
And then finally, all the |
| |
examples I created using the |
| |
Tennessee Eastman process had |
| |
faults that were apparent in |
| |
both T squared and SPE plots. To |
| |
show some newer features in |
| |
model driven multivariate |
| |
control chart, I wanted to show |
| |
an example of a fault that |
| |
appears in the SPE chart but not |
| |
T squared. And to find a good |
| |
example of this, I revisited a |
| |
data set which Jianfeng Ding |
| |
presented in her former talk, and |
| |
I provided a link to her talk |
| |
in this journal. |
| |
On her Community page, |
| |
she provides several |
| |
useful examples that are |
| |
also worth checking out. |
| |
This is a data set from Cordia |
| |
McGregor's (?) classic paper on |
| |
multivariate control charts. The |
| |
data are processed variables |
| |
measured in a reactor, producing |
| |
polyethylene, and you can find |
| |
more background in Jianfeng's |
| |
talk. In this example, we |
| |
have a process that went out of |
| |
control. Let me show you this. |
| |
And it's out of control in... |
| |
earlier in the SPE chart than in |
| |
the T squared. |
| |
And if we look at the mean |
| |
contribution |
| |
plots for SPE, |
| |
you can |
| |
see that there is one variable |
| |
with large contribution and it |
| |
also shows a large shift in the |
| |
univariate control chart, but |
| |
there are also other variables |
| |
with large contributions, but |
| |
that are still in control in the |
| |
univariate control charts. |
| |
And it's difficult to determine from |
| |
the bar charts alone why these |
| |
variables had a large |
| |
contributions. Large SPE values |
| |
happen when new data don't |
| |
follow the correlation structure |
| |
of the historical data, which is |
| |
often the case when new data are |
| |
collected, and this means that |
| |
your PLS model you trained is |
| |
no longer applicable. |
| |
From the bar charts, it's hard |
| |
to know which pair of variables |
| |
have their correlation structure |
| |
broken. So new in 15.2, you |
| |
can launch scatterplot matrices. |
| |
And it's clear in the |
| |
scatterplot matrix that the |
| |
violation of correlations |
| |
with Z2 is what's driving |
| |
these large contributions. |
| |
OK, I'm gonna switch back |
| |
to the PowerPoint. |
| |
And real quick, I'll summarize |
| |
the key features of model driven |
| |
multivariate control chart that |
| |
were shown in the demo. The |
| |
platform is capable of |
| |
performing both online fault |
| |
detection and offline fault |
| |
diagnosis. There are many |
| |
methods provided in the platform |
| |
for drilling down to the root |
| |
cause of faults. I'm showing you |
| |
here some plots from a popular |
| |
book, Fault Detection and |
| |
Diagnosis in Industrial Systems. |
| |
Throughout the book, the authors |
| |
demonstrate how one needs to |
| |
use multivariate and univariate |
| |
control charts side by side |
| |
to get a sense of what's going |
| |
on in a process. |
| |
An one particularly useful |
| |
feature in model driven multivariate |
| |
control chart is how |
| |
interactive and user friendly |
| |
it is to switch between these |
| |
two types of charts. |
| |
And that's my talk. Here is |
| |
my email if you have any |
| |
further questions. And |
| |
thanks to everyone that |
| |
tuned in to watch this. |