Choose Language Hide Translation Bar

Industrial Data Science for Batch Manufacturing Processes (2023-EU-30MP-1293)

Batch processes are subject to high variability: raw material composition, initial condition, unit degradation, and their intrinsic dynamic nature. Additionally, they are characterized by several distinct phases and steps that drastically change the conditions during the manufacturing process. In this presentation, we will illustrate with an industrial example how to use data science and machine learning to convert this high variability and apparent excess of data into valuable information. First, we will show how to summarize batch properties into features and use the open-source Predictor Explainer Add-in to identify the most relevant ones using AutoML and ExplainableAI. Then, we will discuss the need to align the data timewise before performing trajectory analysis, briefly introducing the pros and cons of different methodologies to achieve this result. Finally, we will dive into trajectory analysis. In this last step, we will use the Functional Data Explorer functionality of JMP Pro to monitor and identify deviations. Analyzing these deviations will lead us to identify key process control improvements to optimize production further.

 

 

Thanks,  everybody.  I'm  Mattia  Vallerio,  Advanced  Process  Control  at  Solvay s ite  in  Italy  in   Spinetta Marengo.   Today,  I'm  here  to  present a  work  that  we  did  together  with  the  University  of  L euven on  the  use  of  the  analysis  of  industrial  batch  data.  In  more  specific,  I  will  present  a  JMP  plugin  that  we  developed  that  is  using  autoML  to  do  feature  screening,  and  then  I  will  be  moving  on  to  use  functional  prediction  Explainer  to  analyze  batch  data.

T he  idea  is  on  one  side,  the  autoML  will  be  used  for  automated  screening  of  relevant  parameters,  and  on  the  other  side,  the  functional  principle  component.  The  idea  there  is  to  use  it  for  anomaly  detection  on  batch  manufacturing  processes.

While  doing  that,  I  will  also  talk  about  the  need  of  align  data  time wise  to  be  able  to  properly  analyze  it  and  why  you  need  to  do  it  and  how  you  could  do  it  in  a  simple  way.   Just  for  reference,  this  is  a  work  that  has  been  published  in  a  book,  but  it's  also  available  in  archive. T his  is  the  reference  with  all  the  authors  listed  there  and  you  can  download  it  for  free.   Feel  free  to  have  a  look  at  it  and  you  will  find  some  more  details  on  what  I  will  talk  about  today.

In  the  same  way,  the  plugin  that  I  will  present  is  both  freely  available  in  GitHub,  but  also  on  the   JMP community  page  as  well  in  the  material  for  this  talk  and  also  on  a  dedicated  page  that  is  also  called  predictor-e xplainer.

M oving  back  to  the  talk  today,  the  data  that  we  use  is  based  on  a  use  case  that  was  published  by  Salvador  Munoz  back  in  2003.   There,  you  can  download  this  code  where  he's  using   PCA and PLS method  to  analyze  batch  data. T here,  the  use  case  contained  within  is  also  used  in  this  talk  as  well  and  in  the  publication  that  I  showed  just  before.

I f  we  look  at  the  data  that  we  are  analyzing,  basically  it  is  drying  process.  This  drying  process  is  composed  of  three  different  phases:  the  deagglomeration  phase,  the  heating  phase,  and  the  cooling  phase  which  you  can  see  here  as  phase  1,  2,  and  3.  T he  purpose  of  this  process  is  fairly  simple,  is  just  to  remove  solvent  from  the  dry  cake  for  the  material  that  has  been  introduced  into  this  drying  unit.

A s  you  can  see,  we  have  different   initial  cake  weight  that  is  introduced  into  the  system,  and  there  are  different  variation  according  because  the  starting  material  is  different  every  time.  T he  purpose  is  to  reach  specific  target  concentration  for  the  solvent  at  the  end  so  it  doesn't  have  to  be  too  dry  or  too  wet  at  the  end  of  the  phase.  Y ou  can  clearly  see  already  from  this  picture  that  we  have  some  variation  in  shape  and  time  duration   of  the  temperature  profile  and  therefore  also  of  the  process  itself.

If  we  go  a  bit  further  in  analyzing  the  data,  then  you  can  see  that  we  have  a  variety  of  different  lengths  of  batch  duration.  This  is  the  color   on  the  right  side  on  the  legend.   You  can  clearly  see  here  even  more  clearly  than  before  that  there  are  different  shapes. T his  is  also  true  for  the  solvent  concentration.   As  you  can  see  already,  this  shouldn't  be  too  much  of  a  shocker  for  anybody  that  is  in  the  process  industry.   T he  longer  the  batch,  the  lower  the  solvent  concentration,  the  shorter  the  batch,  the  higher  the  final  length  concentration  more  or  less  with  some  few  exceptions.

But  as  you  can  see,  the  length  is  all  over  the  place  and  also  the  main  phases,  they  are  not  aligned.  If  you  would  take  now  data  for  all  these  batches  and  start  to  analyze  it,  you  will  be  comparing  samples.  For  example,  at  this  point  in  time  you  will  be  comparing  data  from  the  de agglomeration phase  with  data  from  the  heating  phase,  or  even  from  the  cooling  phase  with  the  deagglomeration  phase.  O f  course,  this  is  not  what  we  would  like  to  do.

That's  why  it's  important  before  you  do  anything  else  with  the  data,  it's  important  that  you  actually  squeeze  or  shrink  or  enlarge  data.  But  in  order  to  have  all  the  different  batch   have the  same  length.

Y ou  can  do  this  in  different  ways.  This  is  technically  called  dynamic  time  warping.  This  is  also  a  feature  that  is  included  into  JMP  when  you  do  functional  data  exploration.  But  there  are  different  ways  to  do  this.  You  have  very  complex  mechanisms  and  algorithms  that  have  been  developed  during  the  years. T he  reference  for  these  methods  you  can  find  in  the  publication  that  I  just  showed  you.

But  the  drawback  for  this… O ne  of  the  drawbacks  of  the  advanced  methodology  is  that  you  need  a  reference  trajectory  in  order  to  be  able  to  use   most  of  the  dynamic time-warping  algorithm.

There  are  other  ways  that  you  could  use  to  synchronize  the  batches.  One  is  that  if  you  have  a  monotonous- increasing  latent  variable,  most  of  the  time,  this  is  the  conversion  or  the  total  amount  of  material  that  is  fed  inside  the  reactor, so  t he  cumulative  feed  in  the  reactor.  This  can  be  used  as  a  way  to  plot  the  data  in  a  system  in  a  standardized  way  and  to  have  all  the  data  aligned.

The  methodology  that  we  used  for  this  use  case  for  this  talk  and  also  that  we  are  proposing  in  the  paper,  in  the  article  that  we  wrote  is  to  normalize  the  data  based  on  the  automation  triggers. B y  automation  triggers  we  mean  the  change  in  the  different  phases.

E very   beginning  and  end  of  the  phase  is  then  normalized  between  0  and  1,  as  you  can  see  here.  T he  deagglomeration  phase  starts  from  1  and  goes  to  2,  and  the  each  phase  goes  from  2  to  3,  and  the  cool down  phase  goes  from  3  to  4.   Then  all  the  data  is  squeezed  or  stretched  to  fit  into  this  bucket. T hen  something  very  nice  happens  that  you  can  directly  see  abnormality  or  abnormal  batches  in  a  more  clear  way  than  what  you  would  have  done  on  the  left  side.

Then  if  you  would  look  in  the plot of  the  phase time,  so  the  one  in  the  middle,  then  you  can  clearly  see  that  the  inclination  of  the  line  basically  tells  you  how  long  the  batch  lasted.  T he  more  steep  the  line,  the  longer  the  phase  that  we  are  currently  looking  at.

The  drawback  of  this  methodology  is  that  it  cannot  be  applied  online,  of  course.  T his  can  only  be  applied  once  the  batch  is  finished  or  once  the  phase  is  finished.  But  of  course,  online,  it's  basically  impossible  to  know  when  this  is  going  to  end. Y ou  therefore  need  to  resort  to  other  kind  of  alignment  procedure  like  dynamic  time- warping  that  is  described  in  the  paper.   I  won't  be  touching  that  today.  T hat's  it  for  this.

How  do  you  analyze  actually  batch  data?  There  are  different  ways  to  do  that.  T he  first  way  that  we  are  looking  at  is  by  using  fingerprints.  W hat  do  we  call  fingerprints?  Basically,  fingerprints, y ou  can  define  it  as  aggregated  or   a  statistical  summary  of  different  summary  statistics  of  the  data  that  have  physical  meaning  or  engineering  value.  T hese  are  normally  the  variables  that  your  engineer  look  at  to  know  if  the  batch  is  going  correctly  or  has  been  performing  well  or  not.  If  you  ask  your  experts  in  the  field  or  in  the  process,  they  will  have  this  kind  of  KPI  that  they  are  monitoring  to  know  if  a  batch  has  been  performing  well  or  not.

F or  example,  one  of  that  could  be  the  maximum  level  of  the  tank  in  the  deagglomeration  phase  or  the  maximum  temperature  in  the  drying  phase  or  the  standard  deviation  between  the  set  point  and  the  measured  variable  during  the  drying  phase or…  I  don't  know.  You  name  it.  You  can  go  as  crazy  as  you  want,  and  you  can  build  basically  as  many  features  as  you  want  starting  from  the  data  that  you  have.  T his  is  a  way  to  remove  the  burden  of  the  transient  behavior  of  batches,  and  it's  a  way  to  actually  compare  between  batches  by  using  simple  statistics  to  compare  different  features  of  the  batch.

The  problem  with  this  is  that  you  can  imagine  that  you  can  end  up  with  a  lot  of  different  statistics  that  you  have  to  track  and  monitor,  and  sometimes  it's  very  difficult  to  understand  which  ones  are  really  relevant  or  which  are  not  relevant  at  all.  T herefore,  that's  why  we  developed  this  plugin  that  I  showed  you  just  before  which  uses  autoML  to  basically  do  a  feature  selection  on  all  these  fingerprints  that  you  can  create  yourself.

The  add-in  can  be  installed  by  everybody  on  JMP.  I t  basically  looks  like  this.  I t  looks  like  any  normal  menu  that  you  would  have  in  JMP.  I t  requires  you  to  install  a  Python  installation  that  also  is  automatically  managed  by  the  installer  of  this  plugin  as  well.

I f  you  want  to  do  it,  let's  say,  let's  try  to  use  it. W e  want  to  model  the  final  concentration  of  the  solvent,  which  is  our  Y.   You  can  just  basically  pop  in  all  the  sensor  data  that  you  have,  and  it  will  automatically  create  all  the  different  feature  engineering.   We'll  take  the  maximum,  the  minimum,  the  standard  deviation,  the  median,  the  mean,  and  all  the  statistics  you  possibly  imagine  of  all  the  variables  that  we  introduce.   If  you  have  information  on  the  batch  ID  and  the  phase  ID,  then  you  can  just  plug  it  in.

Additionally,  if  you  have  the  Python  installation,  then  you  can  ask  the  tool  to  do  a   SHAP plot  for  the  SHAP  value  of  the  different  features  to  get  a  better  understanding  of  what  the  boosted  tree  is  doing  behind  the  scenes  to  actually  do  the  magic  and  use  this  and  select  the  features  that  are  relevant  or  not.

If  I  just  click  on…  T hen  you  can  tweak  your  number  of  trees  and  signal-t o- noise  ratio  and  you  can  do  whatever  you  want.  You  can  even  add  weights.  You  can  choose.  I f  we  click  on  OK,  then  the  magic  happens.  Now,  as  you  see,  it's  still  computing  because  this  is  the  Python  script.  Behind,  it  is  computing  the  SHAP  values,  so  it  might  take  some  time  before  we  get  the  results.

But  let  me  see  if  I  can… Yeah, I can  move  here  already. T his  is  the  result  basically.  Y ou  can  see  that  we  have  the  different… A s  I  said,  the  tool  basically  generates  a  lot  of  different  statistical  aggregation  of  the  data.   You  have  the  standard  deviation  of  the  agitator  speed,  standard  deviation  of  the  torque,  mean  of  the agitator  speed.  Y ou  can  see  it  for  yourself.

T hen  we  also  have… Oops, s till  computing.  That's  the  beauty  of  doing  it  live.  Sometimes  it  doesn't  go  as  planned.

Here  it  is.   This  is  the   SHAP plot  and  we're  going  to  look  at  it  later.  Let's  do  it  again,  but  without  the  SHAP  value  request  just  because  I  want  to  show  you  another  feature.  I  won't  click  on  that.  I  won't  be  doing  it  anymore.   Now… Oh, the SHAP  [inaudible 00:16:57].  I'll  do  it  again  afterwards,  but  let's  move  on  with  this.

As  you  can  see,  we  also  have  random  and  uniform  noise  with  statistical  feature  of  this. T his  is  being  introduced  as  a  way  of  cutting  off,  as  a  way  of  selecting  which  features  are  really  relevant  and  which  features  are  not  relevant  at  all  or  cannot  be  distinguished  by  noise,  actually.  This  is  standardly  built  in  as  well.  I t  gives  you  an  automatic  cut off  as  well.

O ne  of  the  things  that  you  can  see  is  that  he  selected   the  torque  and  the  agitator  speed  as  one  of  the  interesting  variables  to  look  at.  Now,  you  cannot  really  use  this  as… A ctually,  if  you  think  about  it,  it's  quite  understandable,  because  depending  on  the  amount  of  the  wetness  of  the  cake  that  you  introduce,  then  of  course  the  torque  consumed  by  the  agitator  will  be  higher  or  less  or  lower  depending  if  it  has  to  work  more  or  less. I t's  completely  normal  that  at  the  beginning,  the  ones  that  are  a  bit  wetter,  they  might  be  less  resistant,  and  the  ones  that  are  less  wet  will  have  a  little  bit  more   resistance.

But  this  is  the  kind  of  feedback  that  you  get  from  the  tool.   The  standard  output  is  a  plot  with  the   variables  that  are  more  relevant.  You  might  have  seen  passing  by it.  It  also  makes  a  parallel  coordinate  plot  of  the  output  as  well  with  the  color  on  the  target.   Here,  you  can  see  again  that  if  the  torque  is  a  bit  higher,  then  the  final  concentration  of  the  solvent  is  also  a  bit  higher,  and  if  the  torque  goes  down,  then  the  wetness  of  the  cake  at  the  end  is  lower.  T he  agitator  speed  is  basically  the  effect  of  the  torque  as  well.  T his  is  also  the  torque.  But  this  is  just  a  visual  representation  of  what  the  tool  does  as  we  were  seeing  before,  but  it's  not  there  anymore.  I  don't  see  it.

Y ou  can  also  have  SHAP  values  to  look  at  the  data   in  a  different  way.  T he  SHAP  values,  if  you're  not  familiar  with  the  term,  is  a  way  of  visualizing  the  impact  or  the  effect  of  the  different  values  on  the  target.   It's  a  way  to  explain  actually  the  result  of  the  machine- learning  algorithm  that  you  use  behind.

L et's  try  to  do  it  maybe  one  more  time,  maybe  selecting  fewer  parameters,  let's  say,  torque,  agitator,  and  dryer temperature  set  point,  which  are  the  ones  that  have  been  [inaudible 00:20:48].  Okay,  like  that.  Then  we  do  with phas e and batch. T hen  we  ask  him  to  do  the  SHAP  plot.  Let's  see. Coming. B ear  with  me  a  bit  with  this.  It  should  be   any minute, any  second  now.  Oh,  here  we  go.

The  legend  gives  you  the  normalization  of  the  value. I f  the  points  is  on  the  left  side,  then  you  have  a  negative  effect  on  the  target  value,  and  if  your  point  is  on  the  right  side  of  this,  then  you  have  a  positive  effect  on  the  target  value.

Now,  as  you  can  see  again,  the  torque  is  one  of  the  most  important  ones.  Y ou  will  basically  see  the  same  that  we  have  seen  in  the  parallel  coordinates  plot  and  in  the  results  of  the  analysis  as  well.   If  you  have  a  lower  value  of  the  torque,  then  you  have  a  negative  effect  or  you  are  on  the  left  side  of  the  curve,  and  if  you  have  a  positive  value  of  the  torque  or  higher  value  of  the  torque,  then  you  have  a  positive  effect. T hen  you  can  analyze  this  for  the  other  variables  as  well.

But  this  is  a  very  powerful… W e  think  it's  a  very  powerful  tool  to  visualize   the  effect  and  to  break  down,  to  analyze  what  the  actual  algorithm   spits back  to  you  in  a  more  efficient  way.  At  least  this  is  what  we  think  and  that's  why  we  included  it  into  this  tool.

T hen  you  can  just  scroll  down  and  look  at  all  of  the  variables.   Then  of  course,  we  still  have  the  random  uniform  and  the  noise  as  well  inside,  even  though  it's  not  really  relevant.

You  might  have  noticed  that  batch  ID  was  also  relevant  as  well.  It's  a  bit  fishy,  this  plot,  right?   This  actually  is  a  good  point  to  move  into  the  next  part  of  the  talk.   That  is  to  have  anomaly  detection  for  batches  or  to  have  a  way  of  analyzing  if  one  of  the  variable  is  going  out  of  spec.

T he  standard  way  to  do  this  for  batches  or  for  industry  in  general,  is  to  look  at  some  KPIs  and  see  if  they  evolve  during  time.  F or  example,  we  might  want  to  look  at… No, that's not  what  they  I wanted  to  open.  We  might  want  to  look  at  the  different  phases  and  the  duration,  to  have  a  look  at  the  variation  that  we  see.  W e  expect  a  lot  of  variation  in  the  deagglomeration  phase  and  a  little  bit  less  in  the  heat  phase  and  the  cool down.

T he  other  way  to  look  at  this  is  basically  to  do  a  control  chart  of  different  parameters  and  see  if  these  parameters  are  inside  the  limits  that  you  have  specified  or  not.  O ne  way  to  look  at  that  is  to  look  at  the  target  function,  for  example,  that  will  be  one  of  the  first  variables  that  you  need  to  monitor.

N ow,  if  you  remember  the  graph  that  we  showed  before  where  you  could  see  that  the  batch  ID  had  an  impact  on  the  solvent.  Now  plotted  like  this,  it  makes  more  sense  what  we  are  looking  at  in  that   SHAP plot.  It  is  because  there  has  been  definitely  a  trend. S tarting  from  batch   towards  batch  70,  there  is  a  variation  on  where  the  final  solvent  concentration  has  been.  U p  to  batch  30,  we  were  on  target,  then  we  went  under  target,  and  then  we  went  too  much,  high solvent  as  well.  Definitely  something  changed  during  the  process,  and  therefore,  we  had  this  kind  of  visualization  in  the  SHAP  plot  as  well.  I t  picks  up  that  the  batch  ID  is  relevant  to  predict  the  final  solvent  concentration,  but  it's  just  an  artifact  of  this  data.

N ow,  we  don't  know  if  this  is  different  batches.  Most  likely,  there  are  different  batches  of  different  product,  and  the  initial  concentration  differed  from  different  campaigns  or  something  else  was  going  on.  But  this  is  an  additional  uncertainty  that  is  inherent  of  batch  processes  that  if  you  have  this  variation  in  your  raw  materials.  This  is  also  true  for  other  process  as  well,  but  for  batch  processes,  it's  much  relevant  as  you  can  see  here.

One  way  to  look  at  data  or  to  do  anomaly  detection  that  has  been  widely  published  and  is  also  widely  used  in  this  industry  is  the  use  of  PCA  analysis  like  PCA  and  PLS  combination  to  understand  the  multivariate  space  at  the  specific  point  in  time.  I f  this  is  not  representative  of  what  is  going  on  in  the  batch  or  in  the  ongoing  batch,  then  you  will  have  an  alarm. I t's  a  multivariate  way  to  look  at  the  data.

Now,  with  the  functional  predictor  explainer,  now  we  can  basically  do  the  same,  but  instead  of  using  standard  PCA,  we  will  use  the  entire  information  of  the  trend.  This  is  a  standard  tool  that  you  can  find  inside  JMP.  It  is  in  specialized  model.  T his  is  Functional  Data Explorer .  It's  a  part  of  JMP Pr o,  only  JMP Pro.   That's  what  I'm  using.  If you  have  it,  then  you  can  use  it.  We  can  do  basically  the  same  or  we  can  do  this  analysis.  I  already  run  it  so  we'll  just  relaunch  it.

Basically,  what  you  see  is,  for  example,   if  we're  looking  at  the  tank  level  as  a  function  or  as  a  variable,  then  it  gives  you  summary  statistics.  T he  idea  behind  the  FPCE  like  PCA  is  instead  of  creating… It's  basically  creating  and  identifying  eigen functions  that  can  explain  the  shape  that  we  see  in  a  specific  percentage.  I n  this  case,  for  the  tank  level  it  just  identified  two  eigen functions,  and  the  sum  of  this  function  can  explain  97.3%  of  the  shape  of  the  totality  of  the  shapes  that  we  see.

N ow,  here  you  see  all  the  shapes  on  the  left,  and  you  can  clearly  see  that  there  are  some  that  are  not  represented  by… They're  not  similar  to  the  rest.  You  can  play  around  a  bit  and  increase  the  number  of  shapes  to  include  the  third  eigen function,  but  automatically,  JMP  selects  for  you  the  most  appropriate  number  of  eigen function   to  have  a  trade off  of  explanation  of  the  shape. I f  you  go  back  to  two… There we go.

How  does  this  work?  Basically,  as  you  can  see,  you  have  all  the  batches  here,  and  then  you  have  the  score  plot  which  is  actually  what  allows  you  to  understand  which  batches  are  anomalous  and  which  are  not  anomalous.  Y ou  have  definitely  batch  61  that  is  a  bit  out  there  with  respect  to  the  rest.   Then  as  you  can  see  here,  you  have  batch  55.  Going  left  from  right,  you  can  see  that  there  is  an  evolution  of  the  batches  on  the  Component  1  axis,  which  was  this  specific  shape  over  there.

A ccording  to  where  you  are  on  this C omponent  1  axis,  then  the  batches  will  have  different  shapes,  and  the  max  level  basically  will  increase  and  increase  until  you  reach  batch  55  and  batch  66,  which  are  a  bit  anomalous  with  respect  to  the  rest.  This  basically  is  the  same  concept  of  having  a  PCA  but  with  shape  function  analysis  instead  of  multivariate  analysis  done  row  by  row  and  point  by  point.

The  idea  in  the  end  is  that  you  could  use  this  online  to  understand  if  the  batch  is  inside  the  specification  or  outside  of  the  specification.  Y ou  could  do  it  per  phase,  for  example.  If  you  have  a  specific  shape  for  one  of  the  variables  that  you  need  to  trend,  then  you  could  use  this  to  analyze  and  see  where  you  are.

The  same  is  true  for  the  other  shapes  that  we  have,  the  other  variables.   You  can  do  this  for   the  dryer  temperature  variable.  In  this,  case  we  have  three  different  eigen function,  and  this  explains  up  to  87%  of  the  variation.  A gain,  by  looking  at  the  score  plot,  you  can  spot  anomalous  batch  basically  just  by  looking  at  this, so  batch  34  as   a  flat  top  while  all  the  other  batches  have  a  pointy  shape  that  you  can  find  back  in  basically  all  the  other  ones.

The  model  that  is  coming  out  can  be  used  for on line  anomalies  detection  if  you  can  implement  it.  B y  the  way,  if  you  have  the  new  version  of  JMP,  you  can  connect  directly  to  your  process h istorian   if  you  have   OSI PI.  Otherwise,  there's  been  another  talk  by  my  colleague,  Carlos,  about  the  use  of  another  plugin  that  we  developed  to  extract  data  from  your  historian  which  can  connect  to  both   OSI PI and  Aspen  21.   You  can  download  your  data  directly  and  plug,  pop  it  in  and  see  if  a  batch  has  been  behaving  according  to  your  specification  or  not.

Basically,  I  think  this  more  or  less  cover  what  I  wanted  to  show,  and  the  idea  that  we did the  two  different  methodology  that  we  have  been  using  in   Solvay to  look  at  process  data.  Looking  forward  to  see  you  at  the  summit  in  Spain  next  month  in  March  if  you  are  there.  Otherwise,  feel  free  to  reach  out  to  me  or  to  any  of  my  co author  if  you  need  more  information.

Just as  a break up,  this  is  the  place  where  you  find  the  article  that  we  published  about  this  with  a  little  bit  more  information  and  a  little  bit  more  detail  with  respect  to  what  I've  just  shown  to  you.  A gain,  it's  open  source.  You  can  download  it  for  free  from  the  link  and  it's  all  there  for  you  to  look  at  and  browse.  Thanks  again  for  your  attention. T hat's  it.