Bonjour à tous. Merci de votre présence. Je suis Chris Dennis et je fais partie de l'équipe d'ingénierie des applications de SUMCO. Pour ceux qui ne le savent pas, SUMCO est une entreprise de fabrication de plaquettes de silicium. Nous fabriquons les plaquettes de silicium qui servent de matériau de départ dans le procédé de fabrication des semi-conducteurs. Aujourd'hui, je vais vous présenter une refonte pratique des cartes de contrôle pour gérer les petites séries et le big data, et trouver des solutions grâce à différentes techniques. Je vais vous présenter brièvement le concept, puis assister à une démonstration en direct pour vous expliquer comment créer les cartes et configurer des scripts pour les personnaliser et les rendre utiles aux ingénieurs procédés.
Les processus de fabrication actuels sont très complexes. Tout évolue très vite. De nombreux changements interviennent quotidiennement dans l'usine. Il n'est pas rare d'avoir des centaines de produits en fonctionnement et des dizaines d'outils. L'approche SPC traditionnelle génère un graphique pour chaque combinaison de paramètres, d'outils et de pièces. Ces graphiques peuvent rapidement se multiplier et atteindre des milliers. La fréquence élevée des changements complexifie encore davantage les graphiques, car peu de points de données peuvent y être ajoutés pendant le cycle de production.
Voici un exemple de compilation de cartes de contrôle issues des processus de l'une de nos usines. Vous pouvez constater que nous avons de nombreux changements de pièces et seulement quelques exécutions par carte. Les hypothèses d'une carte de contrôle en état idéal sont rapidement mises à mal, car les exécutions sont courtes et cohérentes, et les processus sont soumis à des conditions changeantes en permanence. Dans ce cas, les hypothèses ne sont plus valables pour les cartes de contrôle et peuvent devenir inefficaces. L'analyse de notre processus révèle la présence de plusieurs paramètres, ce qui ajoute à la complexité. Les entrées influencent les sorties et sont corrélées entre elles. Les représenter graphiquement séparément peut entraîner une perte de vue d'ensemble. Le système peut dériver de manière subtile et invisible, et le SPC classique ne le détectera pas.
Et si on pouvait changer les choses ? Au lieu de représenter graphiquement les données brutes, on représenterait ce à quoi on ne s'attend pas. On construirait un modèle qui établirait une prédiction pour chaque point de données, puis on représenterait graphiquement les résidus, c'est-à-dire la différence entre la réalité prédite, la prédiction et la réalité. C'est là que résident les surprises.
Voici un rapide comparatif des avantages des cartes de contrôle MSP traditionnelles, ou cartes de contrôle par modèle, par rapport aux cartes MSP traditionnelles. Les cartes traditionnelles sont idéales pour les processus stables, les processus simples et un produit à la fois. Les cartes pilotées par modèle sont multivariées. Elles gèrent les corrélations, éliminent les variations normales et signalent les imprévus. Parfaites. Parfaites pour les données complexes comme celles de notre processus.
Nous pouvons choisir différents modèles. Par exemple, un modèle ACP. L'analyse en composantes principales est efficace pour comparer des structures naturelles comme des capteurs ou des données spectrales. Le modèle des moindres carrés partiels est idéal pour prédire un attribut de qualité, et les modèles de régression sont efficaces pour les relations simples connues. L'astuce consiste à choisir le modèle adapté aux données saisies et à le vérifier. Voyons ce que nous allons construire et comment nous le faisons dans JMP.
La première étape consiste à standardiser les valeurs tracées, notamment pour les cartes de contrôle à court terme, lorsque les sigmas varient et que les données ne concordent pas. Normaliser ces données est une bonne idée. D'après mon expérience, cela permet également d'éviter qu'un paramètre domine un signal et ne submerge les autres. Cela met tout sur un pied d'égalité. Ensuite, il faut ajuster le modèle. Dans ce cas, je vais vous présenter un modèle réalisable avec JMP standard (sans JMP Pro), le modèle ACP. Ce modèle est utilisé dans la plateforme de cartes de contrôle multivariées pilotées par le modèle. Nous pouvons exécuter ce modèle et tracer les résidus et les statistiques T² pour chaque point de données. Nous devons donc récupérer ces résidus et les enregistrer. Nous pouvons ensuite créer une carte de contrôle à court terme pour observer leur évolution et identifier les événements inattendus. Enfin, nous définissons des limites et des alarmes sur notre carte.
Parlons de certains aspects et de l'utilité potentielle de ce graphique, ou du moins de son utilité, selon moi. Tout d'abord, chacune de ces lignes verticales en pointillés représente une variation de produit. Tous les produits sont représentés sur un seul graphique, ce qui me permet de visualiser la situation, d'identifier les variations importantes ou les événements hors de contrôle. L'avantage du graphique de contrôle multivarié piloté par le modèle est que je peux explorer ces points en détail et, grâce à une méthode univariée, identifier les paramètres anormaux. Je peux ainsi identifier les points communs. Ensuite, je peux explorer le graphique univarié plus en détail. Je pense que c'est là que réside la puissance de la surveillance des résidus : j'ai 20 paramètres empilés dans ce seul graphique pour l'exemple que je vais montrer sur dix produits différents, je pense, et je vais le démonter, et je peux accéder jusqu'à ce graphique individuel que j'aurais fait en multipliant 20 fois 10 fois... Avec chaque outil, j'obtiens une vue plus simplifiée du graphique.
Très bien. Pourquoi utiliser cette approche ? Elle semble bien fonctionner pour les gammes de produits à forte mixité avec des données à court terme. Basée sur les modèles, elle est donc moins bruyante. Elle permet de voir ce qui compte. Elle s'adapte très facilement grâce aux scripts. On peut utiliser un ensemble d'outils et facilement copier la méthodologie vers un autre ensemble d'outils ou un autre scénario. Ensuite, pour l'ingénieur procédé, l'utilisateur qui doit consulter ces données, les outils visuels de JMP, la liaison dynamique des données, la possibilité d'explorer les graphiques en profondeur permettent d'analyser et de résoudre rapidement et en toute transparence un problème et d'accéder rapidement à l'essentiel des données.
Je vais maintenant vous présenter un exemple concret. Dans cet exemple, je vais créer un script pour créer le graphique, puis parcourir les étapes du script et les modifier pour améliorer l'apparence du graphique et le rendre plus utile aux ingénieurs procédés, ce qui les aidera à travailler plus rapidement et plus facilement.
Très bien. Passons à JMP et assistons à la démonstration en direct.
Pour cette présentation et sur le site web, j'ai inclus un journal. Il contient des exemples de données, de scripts et des étapes de développement. Commençons par la table de données. J'ai une table de données. Ces données sont toutes normalisées et nettoyées, donc utilisables. Il y a 19 ou 20 paramètres de processus différents qui sont des entrées pour un outil. Il y a une partie. Ces données ont déjà été préparées, je ne vais donc pas aborder l'étape de préparation. Il s'agit d'une toute autre étape de traitement et de configuration des données. Nous allons voir comment nous allons réaliser cette analyse. Si nous commençons et effectuons cette analyse manuellement, voici le déroulement de base. Je vais commencer ici à l'étape de la carte de contrôle multivariée pilotée par le modèle, capturer les résidus, puis construire une carte de contrôle à court terme à partir de là.
Je veux écrire un script. Une astuce que j'utilise pour simplifier mes scripts, même si je ne suis pas un expert en scripting, est d'utiliser le Générateur de workflow. Je vais l'activer et afficher cette fenêtre ici. Je vais simplement la configurer pour qu'elle enregistre immédiatement et la réduire, car je n'ai pas besoin de la consulter pour le moment.
Parlons de la création d'un script de base. Je vais d'abord copier un plan pour ces trois étapes. J'ouvre une nouvelle fenêtre de script. J'y ajoute un plan. Nous allons d'abord créer le modèle, puis les résidus, et enfin la carte de contrôle à court terme. C'est ce que nous allons faire. Revenons à notre exemple de carte de contrôle multivariée pilotée par modèle pour l'analyse de données et le processus qualité. La plateforme est assez simple d'utilisation. Nous allons simplement récupérer toutes les entrées et les intégrer à nos paramètres de processus. Ensuite, nous les intégrons à un paramètre « Par » et cliquons sur OK.
Nous avons un graphique ici. Il est généré. Voici le graphique dont nous avons parlé. Il contient des liens permettant d'examiner chacun des différents paramètres. Passons maintenant à la capture des résidus. Pour cela, je vais simplement accéder à chaque graphique et enregistrer les valeurs de chaque colonne. C'est un peu fastidieux de me voir pointer et cliquer pour parcourir ces 9 ou 10 parties, alors veuillez m'en excuser. Je chanterais et danserais, mais je ne chante pas, et je ne danse qu'avec ma femme, car je ne suis pas très doué. Nous allons parcourir et récupérer les quelques points restants. Cela a créé une nouvelle colonne dans la table de données pour le T² par partie, et a renseigné cette valeur résiduelle pour chaque ligne de la table de données. Nous avons maintenant un résidu pour chaque point que nous pouvons tracer.
L'étape suivante consiste à revenir au menu du processus qualité. Ouvrir le Générateur de cartes de contrôle. Nous allons modifier les données, car nous avons plusieurs produits. Nous allons les placer sur le même graphique. Nous allons les intégrer à un graphique de contrôle à court terme. Nous commencerons par pièce. Nous le reprendrons et le reprendrons. Au lieu de tracer les entrées sur ces points individuels, nous tracerons les résidus. Nous les glisserons sur l'axe des Y. Nous avons maintenant un graphique de contrôle à court terme avec… Observez les variations des différentes pièces : certaines sont sous contrôle, d'autres hors contrôle. Nous les avons pour toutes ces pièces. C'est à peu près ce que nous avions prévu de faire dès le début. Je vais fermer l'application, puis revenons à notre Générateur de flux de travail et arrêtons l'enregistrement. Dans le Générateur de flux de travail, nous avons enregistré toutes les étapes de création de ce graphique.
Je souhaite maintenant suivre ces étapes et les intégrer à mon script. J'ai l'étape d'exécution courte des résidus du modèle. Chacune de ces étapes est différente de celles que nous avons effectuées dans le Générateur de workflow. Je peux simplement les récupérer, copier le script et l'ajouter ici. Voyons rapidement ce que nous avons. Nous avons la carte de contrôle multiparamètres pilotée par le modèle. Nous avons de nombreuses informations spécifiques aux pièces. Comme je souhaite généraliser ce script, je vais supprimer ces informations. Cela me permettra de les transférer à un autre groupe de pièces. De les rendre moins spécifiques et plus transférables ultérieurement. Voici maintenant cette ligne d'appel.
L'étape suivante, passons en revue cela, appelle également ce graphique de contrôle multivarié piloté par modèle, mais à la fin, nous voyons ici que nous l'avons enregistré en tant qu'objet et que nous avons enregistré les valeurs du graphique T².
Voici ce que je souhaite faire pour capturer ces résidus. Je vais tricher un peu, car je ferai probablement une erreur de saisie, mais je vais saisir une ligne ici qui crée une boucle pour récupérer ces résidus. Il s'agit donc de la même commande T², enregistrer les valeurs. La seule différence est que j'ai remarqué qu'il y avait un objet ici que je parcourais et ajuste. Je vais indiquer le nom de cet objet ici lorsque je créerai ces graphiques multivariés.
La dernière étape consiste à revenir ici et à créer le graphique de contrôle à court terme. Je vais simplement le copier et le ramener ici. Je vais l'ajouter à la section dédiée au graphique de contrôle à court terme. Je vais faire un peu de ménage. Assurez-vous de terminer ces instructions de commande par un point-virgule.
Je ne poursuis pas cette ligne, je vais donc supprimer cette virgule. Voilà mon script de base. J'ai tout récupéré du Générateur de workflows et je l'ai intégré au script. Maintenant, je suis prêt. Je peux exécuter ce script. J'ai maintenant le graphique multivarié et le graphique de contrôle à court terme. C'est exactement ce que je voulais faire. Si je regarde cela, en tant qu'utilisateur, je me dis : « Écoutez, ce que je n'aime pas tout de suite, c'est qu'il faut passer d'un graphique à l'autre pour obtenir des informations. J'apprécie beaucoup celui-ci, qui me permet d'explorer en profondeur et d'observer différents éléments. » Je souhaite intégrer cette fonctionnalité directement dans ce graphique. C'est assez simple avec JMP. Il suffit d'enregistrer le script de ce graphique dans le presse-papiers. Ensuite, nous pouvons le copier-coller au survol et coller le Graphlet.
Voilà. C'est assez simple. Je veux l'ajouter à mon script, mais j'ai oublié d'activer Workflow Builder. La première fois, je me suis senti vraiment mal, et en travaillant dessus, je me suis dit : « Oh ! » Workflow Builder ne l'a pas capturé, mais il existe une solution simple. Nous pouvons accéder au script de ce graphique. Nous pouvons l'enregistrer dans une fenêtre de script. Nous pouvons l'importer. Je peux regarder et voir les différences entre ce script et mon script. C'est ici, dans le graphique de contrôle à court terme. La différence, ou plutôt la différence, c'est qu'après avoir affiché le panneau de contrôle, j'ai toutes ces informations à envoyer au rapport et à créer le Graphlet pour le configurer. Je vais récupérer tout cela, le récupérer ici et le coller.
J'ai récupéré toutes les informations de cette pièce. Je vais simplement supprimer ces lignes comme je l'ai fait précédemment. Assurez-vous de respecter l'espacement. Je devrais maintenant avoir un script qui créera ce graphique avec un Graphlet. Revenons-en là. Fermons cette fenêtre, car je ne veux pas recommencer. Je n'ai pas besoin de la voir. Exécutons notre script et voyons si nous obtenons le résultat souhaité. Regardons ici. Boum ! J'ai compris. Super ! C'est un Graphlet que j'ai ajouté et… j'ai bien sûr obtenu le même résultat. Regardez, c'est correct, mais personnellement, j'aimerais peut-être obtenir uniquement le graphique de la pièce que je consulte lorsque je clique, sans avoir à faire défiler tous les éléments et à les avoir tous au même endroit.
Pour ce faire, et encore une fois, je m'excuse de ne pas l'avoir détaillé, mais pour gagner du temps, je vais ajouter un filtre de clic. Pour ce faire, je vais accéder à l'instruction d'image dans le Graphlet. J'ajouterai une commande différente et définirai la partie en fonction du clic. Ensuite, je reconstruirai le graphique et j'ajouterai un filtre de données locales pour afficher uniquement le graphique pour cet élément. Cela devrait nous permettre d'avoir un script que je peux exécuter, sélectionner un point ici. Je peux alors cliquer dessus et générer le graphique de contrôle d'un simple clic. Comparons cela à l'état initial. C'est la partie 22. Voyons voir. Ce graphique et celui-ci ne se ressemblent pas. Il se peut donc qu'il y ait un problème.
Je montre ici deux graphiques hors contrôle assez performants. Ici, je n'en ai qu'un. La principale différence réside dans le nombre de composantes principales sur ce graphique, qui est de cinq. Ici, il y en a huit. Lorsque j'ai ajouté ce filtre, j'ai perdu l'élément du graphique multivarié qui réduisait et réduisait les composantes principales de chaque partie à un niveau différent. Si vous examinez l'un d'eux, vous constaterez qu'ils sont tous à huit, alors qu'aucun ne l'était auparavant. Nous pouvons corriger cela. Encore une fois, pour gagner du temps, je vais simplement ajouter le script, mais il s'agit d'une approche brutale et je suis sûr qu'il existe une meilleure approche. Cependant, dans le script original, je vais, après avoir enregistré les résidus dans la table, les récupérer manuellement. Pour ce faire, j'exécute simplement une valeur de composantes principales indépendante.
Je vais extraire la valeur de cette composante à partir de la valeur propre obtenue. La routine fonctionne essentiellement comme suit : elle utilise le nombre de composantes principales supérieures ou égales à 85 %. Je vais capturer ces données et les placer dans un tableau. Ensuite, je peux utiliser ce tableau pour filtrer. Dans mon filtre par clic, je dois également ajouter quelques commandes. Je vais d'abord extraire ceci et je vais vous expliquer. Dans le tableau des composantes principales, je vais sélectionner la valeur dont la partie est égale à p. C'est la valeur qui m'intéresse. Ensuite, lors de la création du graphique de contrôle multivarié, je vais ajouter et définir le nombre de composantes. C'est une option que j'avais supprimée toutes les autres fois, par partie, pour faciliter l'ajustement du nombre de parties. Grâce à cela, le nombre de pièces est désormais plus flexible, plus ajustable.
Je peux maintenant passer à n'importe quel type de transition avec ceci. Voyons si j'ai tout copié-collé correctement. C'est là que je m'attendrais à ce que les choses se gâtent, mais voyons si ça a fonctionné. Vous savez quoi ? Je vais le faire deux fois, car je ne sais pas. J'ai montré quelques éléments qui volent et apparaissent à l'écran. La première chose que je veux montrer, c'est que j'ai ce tableau de pièces et de composants. La pièce 22 est celle que nous avons examinée auparavant, cinq composants. Je l'ai vérifiée plusieurs fois, et tout est correct. C'est parfait, j'ai ce tableau. Le filtre de clic va s'appliquer à chaque pièce. Je récupère cette valeur pour m'assurer d'obtenir le bon graphique. Voici mon graphique. Maintenant, j'ai à nouveau ce graphique de contrôle à court terme. Chaque fois que les lignes verticales pointillées disparaissent, je change de pièce.
Je vois que j'ai plusieurs OC, et d'autres qui ne le sont pas. Regardons ce que ce graphique nous indique. Allons-y, sélectionnons-en un et affichons-le sur mon autre écran. J'ai ce graphique et je peux l'explorer en détail. Je vois que la carte de contrôle univariante pourrait être hors de contrôle pour plusieurs points. C'est indiqué en rouge. Je peux cliquer sur une de ces barres pour explorer ce graphique en détail, puis le consulter individuellement et me dire : « Bon, voilà. Quoi que ça signifie ? » Je vais laisser celui-ci ouvert, mais je vais y accéder, et celui-ci présente trois éléments. Que se passe-t-il ? Je clique, j'ouvre ce graphique et je sélectionne les trois points hors de contrôle que j'ai vus ici.
Maintenant, je peux accéder au graphique des contributions depuis le menu, et non cliquer dessus, mais les afficher toutes simultanément. Je n'ai pas besoin de cliquer individuellement sur chaque graphique. J'apprécie vraiment cette méthode, surtout pour analyser plusieurs éléments, car elle superpose les graphiques de chaque échantillon, n'est-ce pas ? Je peux rapidement voir ce qui se passe et s'il y a des points communs. Celui-ci a quelque chose ici. Ceux-ci n'en ont pas, mais juste au milieu, ces quatre éléments sont tous différents. C'est intéressant. Je devrais explorer cela. Lorsque j'ai examiné celui-ci, les quatre mêmes entrées avaient le même signal ici et étaient différentes sur celui-ci. J'ai peut-être un problème systématique. De plus, bien sûr, je peux explorer ce graphique et examiner certains de ces éléments individuellement, et c'est intéressant car ils étaient tous différents.
Aucun d'entre eux n'avait de CO, mais ils en avaient dans des directions différentes. Deux sont élevés, un est bas. C'est intéressant. Cela me donne un outil qui me permet d'explorer un point de ce graphique et d'explorer rapidement, de rechercher des points communs et de déterminer où je pourrais approfondir un problème.
J'apprécie cela, et je vais vous donner quelques indications à ce sujet. En examinant ces graphiques, nous avons identifié différents problèmes. Des vannes ne s'ouvraient et ne se fermaient pas correctement. Des problèmes de paramètres de processus, où nous déversions peut-être plus de gaz que nécessaire. Nous gaspillons de l'argent inutilement, et nous avons constaté des problèmes, ou plutôt des problèmes, car nous avons amené les entrées à un point d'instabilité, ce qui pourrait ensuite entraîner une instabilité du produit que nous ne mesurons peut-être pas ailleurs. Nous ne savons pas.
Cela s'aligne simplement sur cette situation où vous regardez les entrées, et vous pouvez voir à quel point vos entrées fonctionnent, et rechercher des anomalies dans vos entrées, et peut vous aider à économiser de l'argent et vous aider à éviter des problèmes potentiels.
Voilà pour la démo. J'ai une autre diapositive à partager avec vous. Concernant les références, j'en avais plusieurs. J'ai d'abord vu à Discovery l'année dernière, et j'ai aussi consulté en ligne JMP, la présentation de Mike Anderson sur les cartes de contrôle à court terme. Cela m'a été très utile. Le livre Short Run SPC de Don Wheeler. Si cela vous intéresse, c'est très utile et très simple à suivre. Il contient plein de choses intéressantes : contrôle innovant, cartographie, judicieux et juste. C'est aussi une mine d'informations, et cela s'intègre à de nombreux aspects des applications de saut. Je vous le recommande. J'ai également trouvé une présentation sur les méthodes multivariées dans la communauté JMP, que j'ai trouvée très utile. Enfin, je tiens à remercier tout particulièrement Jed Campbell de l'équipe JMP de Rocky Mountain pour m'avoir encouragé à poursuivre cette idée et m'avoir aidé à résoudre certains problèmes de script. Merci pour votre temps et bonne fin de journée.