Cette présentation examine un flux de travail créé à l'aide d'une carte de contrôle multivariée pour un système de procédé industriel. Un modèle PLS est d'abord créé pour prédire un résultat du procédé, comme le rendement ou la teneur en protéines d'un produit, pour ne citer que quelques exemples. Ensuite, une carte de contrôle multivariée pilotée par le modèle (MDMCC) est créée, représentant les variables essentielles à cette prédiction.
Le MDMCC est ensuite téléchargé sur JMP Live. De plus, les données utilisées pour créer le modèle et le MDMCC sont extraites via un module complémentaire créé pour extraire les données d'un historien de données PI. Dans JMP Live, des scripts automatisent l'extraction des données afin qu'elles s'actualisent automatiquement, créant ainsi une carte de contrôle multivariée pilotée par modèle en temps réel. C'est un excellent outil pour les ingénieurs procédés, car il peut indiquer les écarts T2 et les écarts quadratiques de l'erreur de prédiction. Nous apprécions ces cartes car elles fournissent plus d'informations que les cartes de contrôle classiques, car elles affichent non seulement les écarts dans le contrôle univarié des variables, mais aussi les écarts dans la relation entre les variables x, ce qui n'est pas visible sur les cartes de contrôle classiques.
Bonjour, je suis Drew Luby. Aujourd'hui, je vais vous parler de ma présentation par affiche intitulée « Cartes de contrôle multivariées mises à jour automatiquement avec JMP Live ». Tout d'abord, un peu de contexte. Je suis ingénieur analytique chez ADM. ADM est une usine de transformation agricole, nous possédons de nombreuses usines à travers le monde. Beaucoup de ces usines sont fortement instrumentées avec des données de capteurs, comme la pression, la température, le débit, etc. Il s'agit de données haute fréquence que nous souhaitons pouvoir analyser, dépanner et exploiter au plus vite.
Voici un exemple de ces données ou de ce à quoi pourrait ressembler le processus. Dans cet exemple, vous voyez un processus de séchage de germes de maïs. Cinq sécheurs sont utilisés pour produire une humidité finale. Vous pouvez visualiser toutes les données des capteurs : la puissance des vannes et l'intensité du courant (AMPS), les débits et pressions de vapeur, ainsi que les températures. Notre processus utilise de nombreuses données différentes, et nous souhaitons les relier entre elles et les comparer à l'humidité finale, qui correspond à nos spécifications pour ce produit.
Notre défi est d'analyser de nombreuses variables différentes, tout en étant capable d'analyser l'ensemble du processus en une seule fois. Pour ce faire, nous pensons que l'objectif est de créer un graphique de contrôle multivarié piloté par modèle qui nous permettra d'analyser toutes les variables présentées sur un seul graphique, plutôt que de devoir analyser leurs tendances individuellement chaque jour.
La carte de contrôle multivariée pilotée par modèle nous permettra ensuite d'identifier les variables qui s'écartent du fonctionnement normal et celles dont les performances sont différentes de celles attendues. Grâce à cette carte, nous pouvons analyser en profondeur les variables individuelles défaillantes, hors spécifications ou dont les paramètres sont différents de leurs valeurs habituelles. Cela nous permet d'identifier ces variables afin qu'un ingénieur ou un opérateur de l'usine puisse intervenir immédiatement.
Notre objectif ultime est d'utiliser la détection d'anomalies pour alerter sur ces changements de processus et prendre des mesures pour éviter de fonctionner trop longtemps avec un paramètre hors spécifications ou un paramètre ou une vanne dont le fonctionnement est différent de celui attendu. Les exemples sont nombreux. Nous souhaitons les identifier rapidement et pouvoir agir. La carte de contrôle multivariée pilotée par modèle s'en charge.
La méthode que nous allons suivre est présentée ici. Je détaillerai ces étapes dans l'affiche, puis je les montrerai dans JMP. Pour accéder à nos données, nous devons d'abord utiliser un module complémentaire appelé OSIsoft PI Tools. C'est un outil que nous avons créé, disponible dans la communauté et dont le lien figure sur l'affiche, je crois. Ce module complémentaire nous permet d'extraire ces balises PI, qui constituent notre PI d'historien de données, dans JMP. De plus, il crée un script JSL que nous pouvons copier-coller dans JMP Live afin d'extraire automatiquement de nouvelles données chaque jour. Ceci est nécessaire pour résoudre les problèmes du processus à ce moment-là.
Après avoir extrait les données, nous allons construire un modèle PLS ou un modèle des moindres carrés partiels. Techniquement, nous pourrions construire une carte de contrôle multivariée pilotée par modèle à partir de modèles ACP ou PLS, mais nous choisirons PLS ici, car il s'agit d'un modèle multivarié prédisant une variable Y. Dans cet exemple, nous souhaitons utiliser tous les paramètres de procédé que j'ai présentés : températures, pressions, ampères-secondes et débits. Nous voulons utiliser tous ces paramètres pour tenter de prédire l'humidité finale. Nous allons construire un modèle PLS et l'utiliser pour notre carte de contrôle pilotée par modèle.
Une fois la carte de contrôle multivariée pilotée par modèle créée avec PLS, nous créerons un tableau de bord dans JMP qui affichera la carte de contrôle, ainsi qu'une plateforme de filtrage des processus permettant d'analyser chaque variable individuellement. Enfin, une fois le tout publié sur JMP Live, je détaillerai les étapes et montrerai comment automatiser l'extraction des données.
Encore une fois, la valeur ajoutée que nous créons, ou l'objectif que nous créons, est de créer un outil accessible à nos ingénieurs procédés et à nos opérateurs, qui leur permette d'accéder à de nouvelles données en temps réel. Cet outil leur indiquera ensuite les problèmes potentiels dans le processus sans avoir à analyser les tendances de chaque variable. La carte de contrôle multivariée pilotée par modèle, combinée à JMP Live, a parfaitement rempli cet objectif. Nous allons nous tourner vers JMP et je vous montrerai comment procéder.
Dans JMP, nous avons créé ce module complémentaire, JMP OSI PI data, juste ici. C'est un module pratique. Il nous permet de saisir l'adresse de notre serveur. J'en ai quelques-unes dans les menus déroulants. Si vous connaissez les données PI, il vous indique le type de requêtes utilisées par PI, ainsi que les heures de début et de fin. Si vous ne connaissez pas ce domaine, vous pourriez le consulter. Si votre établissement utilise PI, vous le connaissez probablement.
Dans cet exemple, je vais utiliser une extraction sur 7 jours, donc avec une étoile moins 7 jours, et extraire les valeurs interpolées toutes les heures. J'ai déjà présélectionné les balises que je vais utiliser. Je n'utilise pas toutes les balises de l'affichage que je vous ai montré. Celles-ci sont essentielles, mais je pourrais les utiliser toutes. Je les colle simplement dans la fenêtre et je peux modifier mes recherches. Je peux créer un tableau long ou large. De nombreuses options s'offrent à moi pour extraire les données recherchées. L'élément essentiel de ce module complémentaire est la génération d'un script, que vous pouvez copier-coller dans JMP Live. Il est assez long, mais vous pouvez le copier-coller dans JMP Live pour recréer ce tableau de données.
Il est important de noter que, comme j'utilise des horodatages relatifs, de la date d'aujourd'hui à la date d'il y a 7 jours, l'exécution de l'algorithme prend en compte la date d'aujourd'hui moins 7 jours. À chaque exécution, l'algorithme extraira de nouvelles données en fonction de l'heure à laquelle JMP Live lui demande de se relancer. Demain, l'exécution aura lieu de demain à la date d'il y a 7 jours. J'ai toujours l'extraction de données en temps réel.
Je ne vais pas laisser cela s'exécuter, cela peut prendre un peu de temps. Dans la vidéo ici, je l'ai déjà recréé il y a quelque temps, et j'ai masqué et exclu des éléments pour nettoyer la table de données. C'est préparé, mais vous pouvez voir les mêmes balises ci-dessus, et l'exécution dure 7 jours. Celle-ci a commencé le 23 juillet et s'est terminée le 30 juillet.
Normalement, lorsque j'importe ces données, il y a beaucoup de nettoyage et d'organisation à effectuer dans la table de données, et c'est déjà fait ici. Je ne veux pas donner l'impression de sauter des étapes, mais j'ai tout simplement pré-effectué ce travail.
Pour créer ce modèle de Moindres Carrés Partiels, j'utilise JMP Pro. Je peux donc le faire depuis la plateforme Fit Model, ou directement dans la section Carrés Partiels, sous Méthodes Multivariées. Je vais prédire l'humidité du séchoir à germes à partir de toutes ces variables de processus. Je vais ensuite effectuer la validation K-fold. Pour les Moindres Carrés Partiels, je clique sur Exécuter et j'utilise les paramètres par défaut. Le modèle est ainsi créé.
Pour ma profession, là où je travaille, c'est un modèle plutôt bon. Nous avons beaucoup de bruit de processus, donc nous n'atteignons pas forcément des valeurs de 90 % ou 0,9 R². C'est acceptable pour notre activité. Quatre facteurs suffisent. Je pourrais probablement aller plus loin et affiner un peu, mais c'est le type de modèle qui, d'un point de vue directionnel, me semble correct, et en termes de précision, je pense qu'il est suffisant pour notre exemple. Normalement, j'utiliserais un processus itératif pour affiner un peu le tout.
Pour créer une carte de contrôle multivariée pilotée par le modèle, plusieurs méthodes s'offrent à vous. Je peux accéder directement à « Carte de contrôle multivariée pilotée par le modèle pour les scores X enregistrés ». Cela enregistrera ces scores X dans la table de données et créera une carte de contrôle multivariée pilotée par le modèle à partir de ceux-ci, et c'est tout à fait possible. Je vais cependant enregistrer la prédiction sous forme de formule de scores X, car, dans cet exemple, je souhaite créer une tendance montrant l'humidité prédite entre mes échantillons et la carte de contrôle multivariée pilotée par le modèle. C'est la méthode que j'ai suivie ici. L'une ou l'autre vous mènera à l'état que je vais vous montrer : des colonnes pour les formules de scores X.
Si vous n'êtes pas familier avec les facteurs et la modélisation PLS, nous pourrions en discuter lors de Discovery. Il s'agit d'un facteur, et vous pouvez constater qu'il s'agit d'une formule combinant linéairement toutes ces variables. Il y a quatre facteurs ici. Cette formule de prédiction est en fait une combinaison linéaire de ces quatre facteurs. C'est ainsi que le modèle PLS est présenté.
Pour créer une carte de contrôle multivariée pilotée par modèle, je consulte Analyse, Qualité et processus, puis Carte de contrôle multivariée pilotée par modèle. Il suffit d'insérer ces scores X dans la variable de processus et le temps dans l'ID de temps, et le graphique de T² est généré.
Sans entrer dans les détails statistiques, le T² mesure essentiellement la distance entre mon processus et le centre de toutes ces variables. Pour l'expliquer, nous avons un taux de mouture dans notre usine, appelé taux de mouture, où nous moudrons du maïs. Si nous utilisons généralement un taux standard, si le taux de mouture est inférieur de moitié ou nul, mon T² sera élevé, car il sera très différent de la normale. Par exemple, si l'humidité sortant d'un séchoir est extrêmement élevée ou si la vapeur est beaucoup plus importante que d'habitude, toutes les variables peuvent être très élevées ou très basses, ce qui contribue à un T² élevé. Cette statistique me permet d'évaluer l'état de mon processus pour toutes ces variables en analysant une seule statistique, le T².
Prenons un exemple : si je regarde ce point, vous pouvez voir que cela me permet d'afficher ces barres. Ensuite, je souligne ce point pour… Vous voyez que c'est celui qui est le plus hors de contrôle. Effectivement, l'humidité du séchoir à germes 4 était bien plus élevée que d'habitude. Ce qui est intéressant, c'est que j'ai un graphique de contrôle pour le séchoir à germes 4 qui montre qu'il est bien hors spécifications, mais je peux afficher toutes ces variables avec un seul graphique de contrôle. C'est là toute la valeur ajoutée : je peux examiner des centaines de variables avec une seule statistique.
J'aime faire une carte thermique des contributions ici, ce qui, je pense, aide un ingénieur procédé à résoudre ce problème. Ainsi, je peux voir que l'humidité du séchoir à germes 4 était rouge à cet endroit. Très rapidement, j'ai pu voir la température (T²) et la cause du problème, ici. Ils sauraient immédiatement où chercher et identifier le problème.
L'autre élément que j'aime ajouter à mon graphique de contrôle multivarié piloté par modèle, sous « Surveiller le processus », est un graphique d'erreur de prédiction au carré. Je vais redimensionner légèrement l'échelle. L'erreur de prédiction au carré (SPE) mesure une valeur légèrement différente de T². L'erreur de prédiction au carré mesure la distance par rapport à la prédiction du modèle, c'est-à-dire la distance hors du plan du modèle.
Si le SPE est élevé, cela signifie que la valeur prédite est très différente de celle du modèle, ou que la valeur prédite est différente de la réalité, ou encore que la valeur prédite par la matrice X est différente de la réalité. Cela signifie que l'interaction entre mes variables était différente de ce que j'attendais. Dans mon exemple, et j'ai étudié la question plus en détail, vous pouvez constater que l'humidité du séchoir à germes 1 est élevée, avec un SPE élevé.
En réalité, dans ce cas, lorsque l'on augmente la vapeur, la vanne de vapeur s'ouvre, le débitmètre de vapeur augmente et l'humidité du séchoir à germes diminue. Dans ce cas précis, elle n'a pas diminué. Cela indique une différence dans la structure de prédiction du modèle, et le SPE signale une valeur élevée. C'est un phénomène qu'une carte de contrôle univariée ou T² ne détecte pas toujours, car chacune de ces variables peut se situer dans ses limites de contrôle normales.
Normalement, ils sont corrélés positivement, et pour cette période, ils sont corrélés négativement. C'est important pour notre usine, car cela pourrait permettre d'identifier, par exemple, une valeur incorrecte d'un échantillon de laboratoire. Il a peut-être été prélevé au mauvais endroit. Cela pourrait signifier une défaillance de mon débitmètre de vapeur ou un problème avec mon sécheur. C'est important à découvrir. Je procède de la même manière avec une carte thermique de contribution, en l'étirant légèrement.
Dans cet exemple, vous pouvez constater qu'il manque des données. Nous avons des pannes, et vous pouvez constater que les choses sont mises en évidence. C'est la carte de contrôle multivariée pilotée par modèle qui, selon nous, est la plus utile pour nos ingénieurs et ingénieurs procédés afin de résoudre les problèmes du procédé.
Une chose courante qu'ils doivent faire est d'observer… Ils constatent un T² élevé, ou un SPE élevé, et ils souhaitent ensuite visualiser cette variable sur une carte de contrôle univariée. Je pense que la meilleure façon de le montrer est sous Analyse, Qualité et Processus, Examen des processus, où je placerai toutes ces valeurs dans mes Variables de processus et Temps dans le temps.
J'obtiens maintenant un outil pratique, et vous pouvez voir qu'il y a une panne dans cet ensemble de données ; tout est donc rouge, mais les variables sont triées par ordre de stabilité. Ainsi, vous saurez quelle variable examiner pour résoudre le problème. Si je les sélectionne toutes et que j'active « Afficher les graphiques pour les éléments sélectionnés », j'obtiens des graphiques de contrôle univariés, et j'active ces marqueurs. Vous pouvez voir que la valeur diminue, ce qui explique cet exemple.
Cet outil, combiné à la carte de contrôle multivariée pilotée par modèle, est très puissant. Il me permet de savoir rapidement si un T² et un SPE sont conformes. En théorie, en tant qu'ingénieur, je peux passer à un autre processus. Je n'ai pas besoin d'examiner le processus germinatif. Il fonctionne normalement et toutes les variables interagissent comme d'habitude. Si je constate un problème, je peux utiliser cette carte thermique pour identifier la variable défectueuse, puis examiner la carte de contrôle univariée et comprendre son évolution.
Le défi est le suivant : c'est formidable, mais comment le mettre sous une forme facile à partager, accessible facilement, et qui soit mise à jour à chaque fois sans avoir à revenir chaque matin pour le récupérer dans JMP ? Pour ce faire, nous allons d'abord publier le tout sur JMP Live. Nous allons d'abord créer un tableau de bord. Je vais combiner des fenêtres. Nous l'appellerons « Tableau de bord ». Parfait. Recommençons. Nous devons choisir celles que nous voulons combiner.
Nous avons maintenant un tableau de bord. D'après mon expérience, il n'est pas aussi esthétique dans JMP Live, car il y a des barres de défilement et il faut zoomer. J'aime donc aller ici, sur ce point rouge « Modifier le tableau de bord ». Je clique dessus, je le fais glisser et je l'ancre juste là où il est indiqué « Insérer après la tabulation », puis j'exécute ce tableau de bord.
J'ai maintenant un joli tableau de bord accessible par clic. Imaginez mon ingénieur qui entre, le consulte et vérifie s'il doit surveiller le système germinatif. Si c'est le cas, l'onglet suivant affiche toutes ses cartes de contrôle univariées.
Voici ce que je souhaite publier sur JMP Live. Je vais dans Fichier, Publier les rapports sur JMP Live. Ça ne prend qu'un instant. Nous allons publier ce tableau de bord et le placer dans un dossier de présentation d'affiche. Je vais l'intituler « Exemple de présentation d'affiche Germ ». Nous allons publier un nouveau tableau de données, puis je clique sur « Publier » pour l'ouvrir ici. Déposons-le ici. Voici le côté JMP Live. L'avantage de JMP Live, c'est que tout le monde peut y accéder dans notre entreprise, qu'il utilise JMP ou non. Cela permet de consulter les rapports. C'est interactif. Si je surligne des points ici, je les vois ici, donc je peux voir les points. Je peux les déplacer ici. Tout est connecté et interactif, ce qui est très pratique, bien plus pratique que d'envoyer des PDF ou des images.
C'est exactement ce que je voulais. Vous pouvez voir que là où j'avais exclu des données, nous aurions eu un T² très élevé, car c'est là que je pense avoir eu beaucoup de pannes. C'est aussi pour cela que le SPE était si élevé à ces moments-là. C'est ce que je veux automatiser. Je veux que de nouvelles données soient récupérées toutes les heures afin que nous puissions toujours consulter les données les plus récentes.
JMP Live fonctionne comme un rapport, et en arrière-plan se trouve la table de données que nous avons créée. JMP Live a publié ma table de données dans JMP Live. La clé de l'automatisation réside donc dans la mise à jour de cette table de données avec les nouvelles données PI, quelle que soit la fréquence, et le nouveau rapport est alors généré automatiquement.
Je suis sur la table de données. Je peux accéder aux Paramètres et actualiser les données via un script. De retour sur ma table de données JMP, voici le script généré par mon module complémentaire. Je peux le copier-coller directement dans la fenêtre JMP Live, et cela fonctionnera. La table sera recréée telle que je l'ai créée initialement. Les formules X Scores 1 et la prédiction ne seront pas recréées.
Vous pouvez utiliser le journal ou votre générateur de workflow pour créer ces colonnes, ou pour toute modification apportée à votre table de données, par exemple en définissant des limites de spécification, et copier ces scripts. Je les ai déjà créés ici pour gagner du temps, mais vous pouvez voir en bas de mon script que j'ai créé de nouvelles colonnes de formules, et je les copie simplement à l'aide du journal ou du générateur de workflow. Je copie la formule de cette colonne et j'y ajoute les statistiques du graphique de contrôle multivarié piloté par modèle.
Tout est copié-collé à la fin. Le reste, en haut, vient directement de ce module complémentaire. Il me suffit d'accéder à ce script vide, de le coller, de cliquer sur Enregistrer et de lui attribuer une fréquence d'actualisation. Je vais le répéter toutes les heures. Mon exemple sera annulé demain pour ne pas trop solliciter le serveur. Je pourrais le répéter toutes les 5 minutes si je le voulais. Je vais simplement le faire toutes les heures et choisir une fréquence.
À chaque exécution, ce script retourne sur notre serveur PI, appelle de nouvelles données, reconstruit la table de données, puis génère automatiquement le rapport à partir de ces nouvelles données. Je dois également lui fournir des identifiants pour accéder à notre serveur PI. Je clique sur Enregistrer, puis sur Actualiser les données pour vérifier son fonctionnement. Cela ne devrait prendre qu'une seconde.
Ça a échoué, bien sûr, pendant que je faisais mon… Parce qu'il me restait dans mon presse-papiers ces anciennes balises que nous avions collées dans le module complémentaire. On va copier-coller ça. Désolé pour l'erreur. On va cliquer sur Enregistrer. C'est enregistré, et on devrait pouvoir actualiser les données. Désolé pour l'erreur. Pendant que ça tourne, je dirai qu'un autre avantage de JMP Live est que nous avons parfois des tables de données à mettre à jour quotidiennement, mensuellement, etc. Au lieu de demander à quelqu'un de mettre à jour JMP à chaque fois, on peut simplement créer le fichier ici, définir la fréquence de mise à jour, et je peux le recharger ici, puis récupérer la table de données directement depuis JMP Live. C'est un très bon outil pour mettre à jour les tables de données, sans parler de la création de rapports à mise à jour automatique.
Vous pouvez maintenant consulter mon rapport ici, et vous pouvez voir que nos données passent du 25/08 au 28/08. Vous pouvez constater que la température ambiante (T²) diminue. Je sais que l'usine est en train de résoudre des problèmes de maintenance. D'ailleurs, je crois qu'un sécheur a été en panne, c'est pourquoi le régulateur de pression de vapeur est toujours lu. C'est l'outil que nous souhaitons pour nos équipes et qui nous a été utile. Encore une fois, un coup d'œil rapide : mon T² est inspecté, comme pour n'importe quelle carte de contrôle, puis je consulte mon SPE. Si les deux sont corrects, je n'ai vraiment pas à m'inquiéter, car il pourrait y avoir des centaines de variables univariées en arrière-plan.
S'il y a un problème, comme une température ambiante élevée ici, je peux consulter mes cartes thermiques ou aller voir le processus, et vous constaterez que c'est celui qui est en panne. J'ai un exemple intéressant : nos sécheurs ont connu des hauts et des bas, mais on peut rapidement identifier la variable problématique. Est-ce que le système est hors spécifications ? Est-ce que quelque chose fonctionne différemment de ce que l'on attend ? Une fois ce problème identifié, on peut agir plus facilement et plus rapidement.
C'est tout ce que je voulais vous montrer. Si vous êtes à Discovery et que vous avez des questions à ce sujet, je serai présent et nous pourrons en discuter. Merci.