|
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.
|