Automatisation d'une machine avec ARDUINO -- Exploitation graphique du Courant

Bonjour à tous !

Comme je suis nouveau sur le site je me présente rapidement, je suis en dernière année dans une école d’ingénieur (L’ICAM).
Je suis actuellement dans ma phase de projet en entreprise où j’ai 6 mois pour réaliser un ou plusieurs projets dans mon entreprise.
Cette entreprise évolue dans le milieu du semiconducteur. Je travaille dans un secteur de maintenance d’un parc machine de polissage mécano-chimique (CMP).

Mon projet principal au cours de ces 6 mois va être d’automatiser le temps de polissage des machines. Jusqu’alors le temps était fixe et définie par les ingénieur process.
Je dois donc mettre en place un système avec Arduino permettant de détecter automatiquement la fin du polissage. Pour se faire je dois analyser le courant moteur du plateau de polissage.
Lorsque le polissage est finit, il y a un changement de matériau, donc de dureté et donc un léger pic d’intensité moteur.
Voici l’allure des courbes obtenues :

http://www.casimages.com/img.php?i=16081808570621957714436280.jpg

Jusqu’ici rien de bien méchant, une carte Arduino, une pince ampèremétrique et deux trois résistances et Capa pour filtrer tout ça et avoir un signal propre et lisible par Arduino !

La partie qui me pose le plus de problèmes pour l’instant est la détection de l’End Point (Fin de polissage).

Pensez-vous qu’il est possible d’exploiter la courbe (sans tenir compte des valeurs) en terme de point d’inflexion ou d’asymptotes ?

Si je dois utiliser des valeurs, ce qui est faisable, j’ai peur que ce soir long et pas forcément très flexible. Il existe beaucoup de procédés différents et de recettes différentes de polissage, cela signifierait un programme par procédé.

Enfin voilà, je ne sais pas si j’ai été très clair, ça me semble l’être mais étant plongé dedans c’est forcément plus facile.

Bonjour, Cela me semble un projet fort intéressant et tout va, peut être, dépendre du temps de traitement compte tenu de la faiblesse en terme de puissance de calcul d'Arduino. A la vue de tes courbes, pourquoi pas utiliser le di/dt pour détecter la phase de traitement en cours. Ce di/dt doit, je pense, dépendre de la matière en cours de polissage et de la position dans le cycle de polissage. Peut être, une piste à explorer ;) @+

Bonjour,

D’après ce que je voie sur les deux courbes postés, l’intensité du moteur passe par trois phases:
Un pic, une vallée et une remontée en fin de polissage.
Et, tu dois détecter cette remontée d’intensité pour arrêter le polissage.

Perso, j’utiliserai pour l’algo, une machine à états finis, ces états étant les trois phases cités précédemment.
Le passage d’un état à l’autre se faisant sur des critères à définir, comme la variation d’intensité, le changement de pente, une valeur de seuil etc…

Bonjour,

Sujet très intéressant.

Comme Icare, je pense que s'appuyer sur la dérivée est un bon concept :

  • Le maximum est bien facile à caractériser avec le changement de signe très net de la dérivée
  • Pour la fin de polissage il y aussi changement de signe, mais avec une variation moins rapide.

En ce qui concerne la rapidité de calcul sur arduino, je ne crois pas qu'il y ait problème car les durées sont élevées (plusieurs dz de secondes) --- le calcul de dérivée peut se faire quasi en temps réel (compte-tenu de la fréquence de mesure); un simple calcul de différence entre une mesure avec sa précédente est sans doute presque suffisant; d'autant que ce calcul pourrait se faire directement sur les valeurs analogiques acquises (de 0 à 1023) sur un entier.

A suivre ...

Serge .D

Re, On peut éventuellement se baser sur le concept de logique floue pour le traitement de l'information. @+

bonjour +1 , projet sympa qui sort un peu de "l'ordinaire" :grin:

tu peux "dimensionner" un peu plus ?

dejà : - durée max d'un cycle ? - tes courbes sortent d'où ? (mesures perso ? ) - sur tes courbes , la magnitude est relative , résolution de l'info I captée ?

C'est pour quel matériau le polissage?