Esta presentación examina un flujo de trabajo creado mediante un diagrama de control multivariante para un sistema de proceso industrial. Primero, se crea un modelo PLS para predecir un resultado del proceso, como el rendimiento o el contenido proteico de un producto, por mencionar algunos ejemplos. A partir de ahí, se crea un diagrama de control multivariante basado en modelos (MDMCC), que representa las variables críticas para realizar dicha predicción.
El MDMCC se carga posteriormente en JMP Live. Además, los datos utilizados para crear el modelo y el MDMCC se extraen mediante un complemento creado para extraer datos de un historiador de datos de PI. En JMP Live, se crean scripts para automatizar la extracción de datos, de modo que se actualice automáticamente, creando así un gráfico de control multivariante basado en modelos en tiempo real. Es una herramienta excelente para ingenieros de procesos, ya que puede indicar desviaciones de error de predicción cuadrático y T2. Nos gustan estos gráficos porque proporcionan más información que los gráficos de control típicos, ya que no solo muestran desviaciones en el control univariante de las variables, sino también desviaciones en la relación entre las variables x, algo que no se observa en los gráficos de control típicos.
Hola, soy Drew Luby. Hoy les voy a hablar sobre mi presentación en póster titulada "Gráficos de control multivariantes actualizados automáticamente con JMP Live". Primero, un poco de contexto. Soy ingeniero analítico en ADM. ADM es una planta de procesamiento agrícola; de hecho, tenemos muchas plantas en todo el mundo. Muchas de estas plantas están altamente instrumentadas con datos de sensores, como presión, temperatura, caudal, etc. Se trata de datos de alta frecuencia que queremos analizar, solucionar problemas y tomar medidas con base en ellos al instante.
Aquí hay un ejemplo de esos datos o de cómo se vería el proceso. En este ejemplo, se ve un proceso de secado de germen de maíz. Hay cinco secadores que se unen para obtener una humedad final del germen. Se pueden ver todos los datos de los sensores. Tenemos la potencia de las válvulas y los amperios, así como los flujos y presiones de vapor y las temperaturas. Hay muchos datos diferentes disponibles en nuestro proceso, y queremos relacionarlos y compararlos con la humedad final, que es nuestra especificación para este producto.
Nuestro reto es analizar muchas variables diferentes, pero necesitamos poder analizar todo el proceso en un solo análisis. Para ello, creemos que el objetivo es crear un gráfico de control multivariante basado en modelos que nos permita analizar todas las variables que acabo de mostrar en un solo gráfico, en lugar de tener que analizar sus tendencias individualmente cada día.
El gráfico de control multivariante basado en modelos nos permitirá detectar si existen variables que se encuentran fuera del funcionamiento normal y si su rendimiento es diferente al esperado. Gracias a este gráfico de control multivariante basado en modelos, podemos analizar con mayor profundidad y determinar si existen variables individuales que fallan, que están fuera de las especificaciones o que presentan parámetros diferentes a los habituales. Esto nos dirige a ellas para que un ingeniero u operador de la planta pueda tomar medidas de inmediato.
Ese es, en última instancia, nuestro objetivo: usar la detección de anomalías para alertar sobre esos cambios en el proceso y tomar medidas para evitar que un parámetro fuera de las especificaciones o una válvula funcionen de forma diferente a la esperada durante mucho tiempo. Hay muchos ejemplos. Queremos identificarlos rápidamente y poder tomar medidas. El gráfico de control multivariante basado en modelos lo hace por nosotros.
El método que seguiremos para ello se muestra aquí. Explicaré estos pasos tanto en el póster como en JMP. Lo primero que debemos hacer para acceder a nuestros datos es usar un complemento llamado OSIsoft PI Tools. Es algo que hemos creado, está disponible en la comunidad y creo que está enlazado en el póster. Este complemento nos permite extraer estas etiquetas PI, que son las PI de nuestro historiador de datos, y transferirlas a JMP. Además, crea un script JSL que podemos copiar y pegar en JMP Live para extraer automáticamente nuevos datos a diario. Esto es necesario para solucionar problemas del proceso en ese momento.
Después de extraer los datos, crearemos un modelo PLS o de Mínimos Cuadrados Parciales. Técnicamente, podríamos crear un gráfico de control multivariado basado en modelos a partir de modelos PCA o PLS, pero elegiremos PLS porque es un modelo multivariado que predice la variable Y. En este ejemplo, usaremos todos los parámetros del proceso que mostré: temperaturas, presiones, amperios y caudales. Queremos usarlos para predecir la humedad final. Crearemos un modelo PLS y lo utilizaremos para nuestro gráfico de control basado en modelos.
Una vez que tengamos el gráfico de control multivariante basado en modelos, creado con PLS, crearemos un panel en JMP que mostrará el gráfico de control y, además, una plataforma de análisis de procesos que nos permitirá analizar cada una de estas variables individualmente. Finalmente, una vez publicado en JMP Live, repasaremos los pasos y mostraremos cómo automatizar la extracción de datos.
Nuevamente, el valor que creamos o nuestro objetivo es crear una herramienta accesible para nuestros ingenieros de procesos y operadores, que muestre nuevos datos en tiempo real al consultarlos. Esta herramienta les mostrará dónde podrían haber problemas en el proceso sin tener que analizar las tendencias de cada variable. El gráfico de control multivariante basado en modelos, combinado con JMP Live, ha cumplido a la perfección ese propósito. Pasaremos a JMP y les mostraré exactamente cómo se hace.
Dentro de JMP, hemos creado este complemento, JMP OSI PI data, aquí mismo. Es un complemento muy útil. Básicamente, nos permite introducir la dirección de nuestro servidor. Algunos de estos se basan en menús desplegables. Además, si está familiarizado con los datos PI, le muestra el tipo de consultas que utiliza PI, así como las horas de inicio y fin utilizando la hora PI. Si no lo conoce, puede que le interese consultarlo. Sin embargo, si su centro utiliza PI, probablemente sí lo conozca.
En este ejemplo, usaré una extracción de 7 días, es decir, restando 7 días a la estrella, extraeré valores interpolados cada hora. Las etiquetas que usaré ya las he revisado y preseleccionado. No usaré todas las etiquetas de la pantalla que les mostré. Estas son algunas de las críticas, pero podría usarlas todas. Simplemente las pego en la ventana y puedo cambiar mis búsquedas. Puedo crear una tabla larga en lugar de una ancha. Aquí puedo hacer muchas cosas para que mis datos extraigan lo que buscamos. La parte crítica de este complemento radica en que genera un script que se puede copiar y pegar en JMP Live. Es bastante largo, pero se puede copiar y pegar en JMP Live para permitir la recreación de esta tabla de datos.
Es importante destacar que, dado que uso marcas de tiempo relativas, la conversión de asterisco menos 7 días a asterisco sería hoy desde hoy menos 7 días atrás. Cada vez que se ejecute, extraerá nuevos datos según la hora que JMP Live le indique para que se repita. Si se ejecuta mañana, serán desde mañana hasta hace 7 días. Siempre tengo datos en tiempo real.
No lo dejaré correr, de hecho, puede tardar un poco. En este video, ya lo recreé hace un rato y realicé algunas operaciones de ocultación y exclusión para limpiar la tabla de datos. Esto está preparado, pero pueden ver que son las mismas etiquetas arriba, y es una ejecución de 7 días. Esta comenzó el 23 de julio y se prolongó hasta el 30 de julio.
Normalmente, al importar estos datos, hay que limpiar y organizar mucho la tabla de datos, y eso ya está hecho. No quiero que parezca que me estoy adelantando, pero ya he hecho ese trabajo.
Para crear ese modelo de Mínimos Cuadrados Parciales, utilizo JMP Pro, así que puedo hacerlo desde la plataforma de Ajuste de Modelo, o bien aquí mismo, en Cuadrados Parciales, en Métodos Multivariados. Voy a predecir la humedad del secador de gérmenes a partir de todas estas variables de proceso. Voy a dejar que realice la validación K-fold. En Mínimos Cuadrados Parciales, presiono Ejecutar y uso la configuración predeterminada, y así se crea este modelo.
Para mi profesión, donde trabajo, este es un modelo bastante bueno. Tenemos mucho ruido de proceso, por lo que no necesariamente alcanzamos valores del 90 % o 0,9 R². Esto es aceptable para lo que hacemos. Cuatro factores aquí, y eso está bien. Probablemente podría ir más allá y depurarlo un poco, pero este es el tipo de modelo que, direccionalmente, creo que es correcto, y en cuanto a precisión, creo que es suficiente para nuestro ejemplo. De nuevo, normalmente tendría un proceso iterativo para depurarlo un poco.
Para crear un gráfico de control multivariante basado en modelos, hay un par de maneras. Puedo ir directamente a "Gráfico de control multivariante basado en modelos para puntuaciones X guardadas". Esto guardará esas puntuaciones X en la tabla de datos y creará un gráfico de control multivariante basado en modelos a partir de ellas, lo cual es correcto. Sin embargo, lo que voy a hacer es guardar la predicción como una fórmula de puntuaciones X porque, en este ejemplo, quizás quiero crear una tendencia que muestre la humedad predicha entre las muestras, así como el gráfico de control multivariante basado en modelos. Ese es el camino que seguí. Cualquiera de las dos opciones te llevará a este paso, que estoy a punto de mostrar, que consiste en algunas columnas para fórmulas de puntuaciones X.
Si no está familiarizado con los factores y el modelado PLS, quizás podamos hablar de ello en Discovery. Sin embargo, se trata de un factor, y puede ver que se trata de una fórmula que combina linealmente todas esas variables. Aquí hay cuatro de esos factores. Por lo tanto, esta fórmula de predicción es, en realidad, una combinación lineal de los cuatro factores. Así es como se informa el modelo PLS.
Para crear un gráfico de control multivariante basado en modelos, iría a Análisis, Calidad y Proceso, Gráfico de Control Multivariante Basado en Modelos. Simplemente puedo introducir estas puntuaciones X en la variable de proceso y el tiempo en el ID de tiempo, y se genera un gráfico de T².
Sin entrar en demasiados detalles estadísticos, el T² mide esencialmente la distancia entre el centro del proceso y todas esas variables. Una de las maneras de explicar esto es que tenemos una tasa que recorre nuestra planta. La llamamos tasa de molienda, donde molemos maíz en esa situación. Si normalmente tenemos una tasa estándar, si moliéramos a la mitad o a cero, mi T² sería alto porque sería muy diferente del estado normal. También hay cosas como si la humedad que sale de una de las secadoras fuera extremadamente alta o el vapor fuera mucho más alto de lo habitual, todas las variables podrían estar funcionando muy altas o muy bajas, y eso contribuirá a un T² alto. Es una estadística que me permite determinar el estado de mi proceso para todas esas variables observando realmente una estadística llamada T².
Un ejemplo: si miro este punto, pueden ver que me permite mostrar esas barras. Ahora, permítanme resaltar ese punto para... Pueden ver que ese es el que está más fuera de control. Efectivamente, este secador de gérmenes 4 tenía una humedad mucho mayor de lo habitual. Lo bueno es que tengo un gráfico de control para el secador de gérmenes 4 que muestra que está muy fuera de especificación, pero puedo mostrar todas esas variables con un solo gráfico de control. Ese es realmente el principio de valor añadido: puedo analizar cientos de variables con una sola estadística.
Me gusta crear un mapa de calor de contribución aquí, que creo que ayuda a un ingeniero de procesos a solucionar este problema, así puedo identificar la humedad del secador de gérmenes 4 en rojo. Rápidamente, pude ver T², la causa, justo aquí. Sabrían de inmediato dónde buscar y determinar el problema.
Otra cosa que me gustaría añadir a mi gráfico de control multivariante basado en modelos, en la sección "Monitorear el Proceso", es un gráfico de error de predicción al cuadrado. Voy a ajustar un poco la escala. El error de predicción al cuadrado (SPE) mide algo ligeramente diferente a T². Lo que SPE mide es cuán lejos estamos de la predicción del modelo o fuera del plano del modelo, por así decirlo.
Si el SPE es alto, significa que el valor predicho es muy diferente al del modelo, o que el valor predicho fue diferente al que realmente ocurrió, o que el valor de la predicción de la matriz X, por así decirlo, es diferente al que realmente ocurrió. Esto significa que la interacción entre mis variables fue diferente a la esperada. En mi caso, y he analizado esto un poco, pueden ver que la humedad del secador de gérmenes 1 es la que tiene un valor alto, con un SPE alto.
Lo que ocurre en realidad en esa situación es que, normalmente, al aumentar el vapor, la válvula de vapor se abre, el medidor de flujo de vapor aumenta y, por lo general, observamos que la humedad del secador de gérmenes disminuye. En este caso, no disminuyó. Esto indica que hay algo diferente en la estructura de predicción del modelo, y el SPE alerta como alto. Esto es algo que un gráfico de control univariante no siempre detecta, ni T², porque cada una de esas variables por sí sola puede estar dentro de sus límites de control normales.
Normalmente, tienen una correlación positiva, y en este período, tienen una correlación negativa. Esto es importante para nuestra planta porque podría identificar, por ejemplo, que una muestra de laboratorio tenía un valor incorrecto. Quizás se tomó en el lugar equivocado. Podría significar que mi medidor de flujo de vapor ha fallado. Podría significar que hay algún problema con mi secadora. Es importante que lo descubramos. De nuevo, hago lo mismo con un Mapa de Calor de Contribución y lo extiendo un poco.
En este ejemplo, se puede observar que faltan datos. Sufrimos algunas interrupciones, y debido a ello, se puede apreciar cómo se resaltan los datos. Este es el gráfico de control multivariante basado en modelos que, en mi opinión, ha resultado ser muy útil para que nuestros ingenieros y los ingenieros de procesos resuelvan problemas en el proceso.
Algo que suelen hacer es observar... Observan un T² alto o un SPE alto, y luego quieren ver esa variable en un gráfico de control univariante. Creo que la mejor manera de mostrarlo es en Analizar, Calidad y Proceso, Análisis de Procesos, donde introduzco todos estos valores en mis Variables de Proceso y Tiempo en Tiempo.
Ahora, conecto un dispositivo y se puede ver que hay una interrupción en este conjunto de datos, por lo que todo está en rojo, pero en realidad ordena las variables por la menos estable. De esta manera, se sabrá qué variable revisar al intentar solucionar problemas del proceso. Si las selecciono todas y hago clic en "Mostrar gráficos para la selección", obtengo gráficos de control univariados y activo esos marcadores. Se puede ver que esto está disminuyendo, y ahí está el ejemplo.
Esta herramienta, en combinación con la herramienta de gráficos de control multivariante basados en modelos, es muy potente, ya que puedo saber rápidamente si un T² y un SPE están alineados. En teoría, como ingeniero, puedo pasar a otro proceso. No necesito revisar el proceso germinal. Funciona con normalidad y todas las variables interactúan como siempre. Si observo algo, puedo usar este mapa de calor para intentar averiguar qué variable está desfasada y luego revisar el gráfico de control univariante para ver qué sucede.
El reto es, eso es genial, pero ¿cómo podemos convertirlo en un formato fácil de compartir, accesible para todos y que se actualice constantemente sin que nadie tenga que volver a importarlo a JMP cada mañana? Para ello, primero publicaremos esto en JMP Live. Primero, crearemos un panel. Combinaré las ventanas. Lo llamaremos Panel. Está bien. Intentémoslo de nuevo. Necesitamos elegir las que queremos combinar.
Ahora tenemos un panel. En mi experiencia, esto no se ve tan bien en JMP Live porque hay barras de desplazamiento y hay que hacer zoom. Por eso, me gusta ir a este punto rojo: "Editar Panel". Voy a hacer clic en él, arrastrarlo y acoplarlo justo donde dice "Insertar después de tabulación", y luego ejecutaré ese panel.
Ahora tengo un buen panel de control. Imagínense a mi ingeniero entrando, mirándolo, para ver si necesita prestar atención al sistema de gérmenes. Si es así, en la siguiente pestaña, verá todos sus gráficos de control univariados.
Esto es lo que quiero publicar en JMP Live. Voy a "Archivar" y "Publicar informes en JMP Live". Solo toma un momento. Publicaremos ese panel y lo guardaré en una carpeta de presentación de póster. Le pondré el título "Ejemplo de presentación de póster". Publicaremos una nueva tabla de datos y, al pulsar "Publicar", la abriré aquí. La traeré aquí. Esta es la parte de JMP Live. La ventaja de JMP Live es que cualquier persona de nuestra empresa puede acceder a él, tenga o no JMP. Les da la oportunidad de revisarlos. Es interactivo. Si resalto puntos aquí, puedo verlos aquí, así que puedo ver los puntos. Puedo traerlos aquí. Todo está conectado e interactivo, lo cual es muy práctico, mucho mejor que enviar archivos PDF o imágenes.
Así es exactamente como quería que se viera. Pueden ver que, si excluí datos, habríamos tenido un T² muy alto, porque creo que ahí es donde tuvimos muchas interrupciones. Por eso también el SPE fue tan alto en esos momentos. Esto es lo que quiero automatizar: quiero que extraiga datos nuevos cada hora para que siempre podamos ver los más recientes.
JMP Live funciona como un informe, y en segundo plano se encuentra la tabla de datos que creamos. Publicó mi tabla de datos en JMP Live, por lo que la clave de la automatización reside en que esta tabla se actualice con nuevos datos de PI, con la frecuencia que sea, para que genere automáticamente el nuevo informe.
Estoy en la tabla de datos; puedo ir a Configuración y actualizar los datos mediante un script. Volviendo a mi tabla de datos de JMP, aquí está el script que generó mi complemento. Puedo copiarlo y pegarlo directamente en la ventana de JMP Live y funcionará. Recreará la tabla tal como la creé originalmente. No recreará las fórmulas de X Scores 1 ni la predicción.
Lo que tienes que hacer, y puedes usar el registro o tu generador de flujos de trabajo al crear estas columnas, o si haces algo como establecer límites de especificaciones o cualquier cambio que realices en tu tabla de datos, es copiar esos scripts. Ya los creé aquí para ahorrar tiempo, pero puedes ver al final de mi script que creé nuevas columnas de fórmula, básicamente, y simplemente las copio usando el registro o el generador de flujos de trabajo. Copio la fórmula para esa columna y le aplico las estadísticas del gráfico de control multivariante basado en modelos.
Todo eso está copiado y pegado al final. El resto de la información de la parte superior viene directamente de ese complemento. Solo tengo que ir a este script vacío, pegarlo, pulsar "Guardar" y programar la actualización para poder elegir. Voy a hacer que se repita cada hora. Voy a cancelar mi ejemplo mañana para que no use demasiado el servidor. Podría hacer que se repita cada 5 minutos si quisiera. Simplemente lo haré cada hora y puedo elegir un horario.
Cada vez que se ejecuta, este script regresa a nuestro servidor PI, solicita nuevos datos, reconstruye esta tabla de datos y, a continuación, el informe se genera automáticamente con esos nuevos datos. También tengo que asignarle credenciales para que pueda acceder a nuestro servidor PI. Presiono "Guardar" y luego "Actualizar datos" para verificar que funciona. Debería tardar solo un segundo en mostrar que funciona.
Me falló, por supuesto, aquí mientras hago mi... Porque lo que aún tenía en el portapapeles eran esas etiquetas antiguas que pegamos en el complemento. Vamos a copiarlas y pegarlas. Disculpen. Pulsaremos Guardar. Ahora está guardado y deberíamos poder actualizar los datos. Disculpen el error. Mientras esto se ejecuta, diré que una de las otras ventajas que vemos en JMP Live es que a veces tenemos tablas de datos que queremos actualizar a diario, mensualmente, lo que sea. En lugar de que alguien actualice JMP cada vez, puedes crearlo aquí, configurar la frecuencia de actualización, y aquí puedo recargarlo, y luego siempre puedes recuperar esa tabla de datos directamente de JMP Live. Es una herramienta realmente buena para poder actualizar las tablas de datos, por no hablar de crear informes que se actualicen automáticamente.
Ahora pueden ver mi informe aquí, y pueden ver que nuestros datos van del 25/8 al 28/8. Pueden ver que el T² está bajando. Sé que la planta está superando algunos problemas de mantenimiento. De hecho, creo que teníamos un secador averiado, por eso siempre se lee el controlador de presión de vapor. Esta es la herramienta que queremos que nuestro personal tenga y que hemos encontrado valiosa. Nuevamente, naveguen aquí con un vistazo rápido: mi inspección de T², como si estuviera mirando cualquier gráfico de control, y luego mi SPE. Si ambos son correctos, entonces realmente no necesito preocuparme por esas podrían ser cientos de variables univariantes que están detrás de escena.
Si hay algo preocupante, como una temperatura alta (T²) aquí arriba, puedo consultar mis mapas de calor o revisar el análisis del proceso; verán que ese es el que falló. Tengo un ejemplo interesante: tuvimos algunos altibajos con nuestras secadoras, pero se puede identificar rápidamente la variable problemática. ¿Se está quedando sin especificaciones? ¿Hay algo que funcione de forma diferente a la esperada? Una vez detectado, se puede actuar con mayor facilidad y rapidez.
Eso es todo lo que quería mostrar. Si van a estar en Discovery y tienen preguntas sobre esto, estaré allí y podemos hablarlo. Gracias.