Discussion:
CEM machine outil
(trop ancien pour répondre)
Julien Arlandis
2019-07-15 12:28:10 UTC
Permalink
Bonjour,

Je viens de terminer la fabrication d'une machine outil, une
thermoformeuse.
Notre problème concerne la régulation de température, l'acquisition se
fait au moyen de thermocouples de type J via un amplificateur piloté par
un arduino :
<https://boutique.semageek.com/fr/871-amplificateurde-thermocouple-universel-max31856.html>

La mesure fonctionne parfaitement sauf lorsque les moteurs brushless de la
machine sont alimentés, ce sont des moteurs 230V de 400 W, nous sommes
donc en présence d'harmoniques qui viennent fortement perturber le
fonctionnement de la machine. J'ai déjà essayé d'isoler le circuit
électrique dans une cage métallique, sans résultat et j'ajoute que la
perturbation persiste même quand le arduino est alimenté sur batterie.
Sauf erreur expérimentale de ma part, c'est tout de même paradoxal car
ces deux manips sont sensées éliminer l'une des deux causes possibles
(aérienne ou filaire). Bien sûr les deux causes peuvent exister en même
temps.
Je vais être obligé de repartir à 0, existe t-il une démarche
rigoureuse utilisée en CEM pour résoudre mon problème ?
zeLittle
2019-07-17 08:30:27 UTC
Permalink
On Mon, 15 Jul 19 12:28:10 +0000
Post by Julien Arlandis
Bonjour,
Je viens de terminer la fabrication d'une machine outil, une
thermoformeuse.
Notre problème concerne la régulation de température, l'acquisition se
fait au moyen de thermocouples de type J via un amplificateur piloté par
<https://boutique.semageek.com/fr/871-amplificateurde-thermocouple-universel-max31856.html>
La mesure fonctionne parfaitement sauf lorsque les moteurs brushless de la
machine sont alimentés, ce sont des moteurs 230V de 400 W, nous sommes
donc en présence d'harmoniques qui viennent fortement perturber le
fonctionnement de la machine. J'ai déjà essayé d'isoler le circuit
électrique dans une cage métallique, sans résultat et j'ajoute que la
perturbation persiste même quand le arduino est alimenté sur batterie.
Sauf erreur expérimentale de ma part, c'est tout de même paradoxal car
ces deux manips sont sensées éliminer l'une des deux causes possibles
(aérienne ou filaire). Bien sûr les deux causes peuvent exister en même
temps.
Je vais être obligé de repartir à 0, existe t-il une démarche
rigoureuse utilisée en CEM pour résoudre mon problème ?
[probablement HS]
Je ne suis pas électronicien, mais chimiste orienté industrie (d'où une sensibilité - limitée aux capteurs et à l'électronique: quand je pense mesure de température, je pense donc chimie des matéraux: avec le Platine, il serait assez facie d'obtenir avec des capteurs de températures peformants (Cf. https://fr.wikipedia.org/wiki/Thermom%C3%A8tre_%C3%A0_r%C3%A9sistance_de_platine + très bonne soudure qui plaque en surface au maximum ledit capteur contre l'objet monitoré + gel de Silicone).
[/probablement HS]

Après, je ne comprends pas ton problème d'harmoniques. Qu'est-ce que tu appelles des harmoniques? De fausses températures -artefacts - crééés par le truchement de ton moteur - donc plutôt côté capteurs puisqu'il est alimenté par pile? Tu veux dire que tu observes des sauts de T°C qui sont complètement en dehors de ta courbe d'étalonnage des températures programmée dans ton Arduino alimenté par piles?
Alphonse
2019-07-27 23:11:40 UTC
Permalink
Post by zeLittle
On Mon, 15 Jul 19 12:28:10 +0000
Post by Julien Arlandis
Bonjour,
Je viens de terminer la fabrication d'une machine outil, une
thermoformeuse.
Notre problème concerne la régulation de température, l'acquisition se
fait au moyen de thermocouples de type J via un amplificateur piloté par
<https://boutique.semageek.com/fr/871-amplificateurde-thermocouple-universel-max31856.html>
La mesure fonctionne parfaitement sauf lorsque les moteurs brushless de la
machine sont alimentés, ce sont des moteurs 230V de 400 W, nous sommes
donc en présence d'harmoniques qui viennent fortement perturber le
fonctionnement de la machine. J'ai déjà essayé d'isoler le circuit
électrique dans une cage métallique, sans résultat et j'ajoute que la
perturbation persiste même quand le arduino est alimenté sur batterie.
Sauf erreur expérimentale de ma part, c'est tout de même paradoxal car
ces deux manips sont sensées éliminer l'une des deux causes possibles
(aérienne ou filaire). Bien sûr les deux causes peuvent exister en même
temps.
Je vais être obligé de repartir à 0, existe t-il une démarche
rigoureuse utilisée en CEM pour résoudre mon problème ?
Bonjour,
C'est un problème classique.
Et difficile à résoudre, mais probablement faisable.
Mais il n'y a pas de solution standard, chaque cas est particulier.

L'origine du problème vient du variateur qui commande les moteurs.
Chaque commutation génère un parasite de mode commun de fréquence
élevée (plusieurs MHz), qui se propage par le chemin de plus faible
impédance trouvé, et aussi par rayonnement.

Donc tout ce qui est blindage (au sens isolation) ou séparation d'alim
est illusoire : le rayonné se transforme en conduit et inversement, et
tout passe.

C'est le dV/dt du variateur qui compte : plus le transistor est rapide
(et on prend les plus rapides !), et plus la tension d'alimentation est
élevée, plus le problème est important.

Je suppose que les règles de l'art en matière de séparation des
câblages et des alimentations sont respectées.

Et aussi que l'équipotentialité est respectée : toutes les masses
mécaniques et électriques sont reliées dans les règles de l'art (pas de
peinture sous les vis de fixation, des tresses partout, etc.)


Il est inutile, et même dangereux, de chercher à filtrer les signaux
envoyés au moteur. Inutile aussi de chercher à blinder l'électronique
qui est parasitée.

Considérer que ces parasites sont générés par une source de courant.
Et une source de courant, ça se met en court-circuit.
Il ne faut donc surtout pas chercher à arrêter les parasites, mais au
contraire les canaliser, les dévier pour qu'ils n'arrivent pas sur les
entrées fragiles.
Comme pour un fleuve : on n'arrête pas un fleuve, on le dévie.

Première chose à faire (mais ce ne sera pas suffisant) : un blindage de
qualité des liaisons entre variateurs et moteurs.
Avec raccordement à 360° à chaque extrémité à la masse méca.
Le blindage, c'est l'égout pour les cochonneries. Si elles ne passent
pas par là, elles trouvent un chemin ailleurs.
Dans mon cas, c'était une impulsion de 2 A 500 ns dans le blindage à
chaque commutation ... Et vu le bricolage fait pour mesurer, je pense
que la réalité devait être pire.


Ensuite, il faut identifier toutes les entrées en haute impédance (type
entrée CMOS) susceptibles d'être perturbées.
Chaque entrée sera shuntée à la masse mécanique ou à l'alimentation (+
ou masse en fonction de l'état logique inactif) par une résistance de 5
à 10 kohm. Plus la résistance est basse, mieux c'est.
Câblée impérativement au plus près de l'entrée.
Sur la patte du circuit intégré s'il le faut.
Quand tout sera terminé, une goutte de colle PU60 assurera la tenue
mécanique.

Utilisable aussi : condensateur, ou circuit RC série.
Mais la résistance pure est préférable chaque fois que c'est possible,
car l'impédance d'une résistance ne varie pas avec la fréquence, et le
parasite a un spectre large.

Traiter une entrée à la fois, et refaire un essai à chaque fois.
Si c'est possible, faire l'essai en ne commandant qu'un moteur pour
limiter la génération de parasites.
Si c'est possible, faire l'essai en baissant la tension d'alimentation
du variateur,pour baisser le dV/dt de la commutation de puissance (mais
modifier la fréquence ou la vitesse du moteur ne changera rien).
La tension sera alors réaugmentée jusqu'à réapparition du problème, et
là on recommence en traitant une autre entrée.

Commencer par les signaux de type RESET, ENABLE, etc., puis les entrées
de mesure.

Toute entrée raccordée raccordée à un conducteur long peut être
perturbée et doit être considérée.
"Long" = une piste de circuit imprimé de 4 cm dans ma situation...

Les sorties ne sont a priori pas concernées, car généralement en basse
impédance.

Les circuits qui ne consomment pas (comme l'ampli thermocouple) peuvent
aussi être alimentés via une résistance série et un condensateur de
filtrage d'alim. Vieille astuce des analogiciens...
Mais commencer par les entrées.


Et appliquer la règle suivante, spécifique au déboggage CEM : si une
correction ne marche pas, surtout la laisser en place et passer à la
suivante.

Ne pas oublier les contre-manips : quand une manip marche, la défaire
et vérifier que le défaut réapparaît. Sinon, on ne sait pas si on a
résolu le problème ou si le truc est tombé en marche tout seul.



Bon courage, j'ai mis trois semaines à faire fonctionner comme ça un
microprocesseur avec des entrées à quelques mV à côté d'un variateur
400 V sur un matériel militaire...
Mais après, c'était béton. Et j'avais appris.
bilou
2019-07-28 11:56:57 UTC
Permalink
Post by Alphonse
Bon courage, j'ai mis trois semaines à faire fonctionner comme ça un
microprocesseur avec des entrées à quelques mV à côté d'un variateur 400 V
sur un matériel militaire...
Mais après, c'était béton. Et j'avais appris.
+1
A ces conseils pertinents j'en vois un a ajouter:
Respecter les regles concernant les lignes de transmission dans les
cablages.
En effet leur but premier est de transmettre surtout pas de rayonner
ou de capter.
La plaie en electricité domestique c'est le va et vient.
Le fil de phase doit toujours voisiner avec un neutre et non constituer
avec lui une boucle de grande surface.
Jean
2019-07-28 14:03:02 UTC
Permalink
"bilou" Le fil de phase doit toujours voisiner avec un neutre et non
constituer avec lui une boucle de grande surface.
Ah ben c'est comme moi :
j'étais en grande surface acheter des boucles de courant
et la caissière a regardé sa voisine d'un air neutre.
Chab
2019-07-28 00:04:50 UTC
Permalink
Post by Julien Arlandis
Bonjour,
Je viens de terminer la fabrication d'une machine outil, une
thermoformeuse.
Notre problème concerne la régulation de température, l'acquisition se
fait au moyen de thermocouples de type J via un amplificateur piloté par
<https://boutique.semageek.com/fr/871-amplificateurde-thermocouple-universel-max31856.html>
La mesure fonctionne parfaitement sauf lorsque les moteurs brushless de la
machine sont alimentés, ce sont des moteurs 230V de 400 W, nous sommes
CUT
Post by Julien Arlandis
Je vais être obligé de repartir à 0, existe t-il une démarche
rigoureuse utilisée en CEM pour résoudre mon problème ?
Slt

Avec quoi tu pilotes tes moteurs ?
Quelle longueur des fils du thermocouple (entre la mesure et le préampli) ?
Les fils du thermocouple sont-ils blindés ?
Comment est alimenté le module pré-ampli thermocouple
j'imagine que l'arduino gère le thermocouple, et la régulation du
chauffage, quelle interface de puissance assure le pilotage des
résistances de chauffage ?
Proximité des résistances de chauffage avec les moteurs ?

Chab
Robert Lacoste
2019-07-29 07:04:43 UTC
Permalink
Post by Julien Arlandis
Je viens de terminer la fabrication d'une machine outil, une
thermoformeuse.
Notre problème concerne la régulation de température, l'acquisition se
fait au moyen de thermocouples de type J via un amplificateur piloté par
<https://boutique.semageek.com/fr/871-amplificateurde-thermocouple-universel-max31856.html>
La mesure fonctionne parfaitement sauf lorsque les moteurs brushless de la
machine sont alimentés, ce sont des moteurs 230V de 400 W, nous sommes
donc en présence d'harmoniques qui viennent fortement perturber le
fonctionnement de la machine.
(...)
Je vais être obligé de repartir à 0, existe t-il une démarche
rigoureuse utilisée en CEM pour résoudre mon problème ?
Bonjour Julien,

La solution est probablement simple : Les perturbations CEM sont en hautes
fréquences (à la fréquence de pilotage des brushless et ses harmoniques),
alors que la mesure de température ne nécessite que de très basses
fréquences (disons 1Hz, vu que la température ne varie probablement que très
peu en une seconde). De là la solution usuelle est d'ajouter un filtre
passe-bas efficace quelque part, par exemple entre le thermocouple et l'ADC
de l'arduino... Vu l'utilisation d'un MAX31856, deux solutions semblent
possibles (et peuvent être couplées) :

- Soit augmenter drastiquement la valeur des condensateurs de filtrage en
entrée du MAX31856 et/ou augmenter la valeur des résistances série
correspondantes (cf datasheet ici :
https://www.mouser.fr/datasheet/2/256/MAX31856-555593.pdf, section "noise
consideration" en page 27)

- soit ajouter un filtre passe-bas numérique dans le traitement sur
l'Arduino, après ADC donc. Un filtre FIR ou IIR avec une fréquence de
coupure de quelques Hz par exemple. Par contre cette option ne marchera pas
si le filtrage passe-bas analogique n'est pas suffisant (repliement de
spectre etc)

Cordialement,
Robert Lacoste
www.alciom.com
b***@eu.eu
2019-07-29 13:52:52 UTC
Permalink
Post by Julien Arlandis
l'acquisition se
fait au moyen de thermocouples de type J via un amplificateur piloté par
<https://boutique.semageek.com/fr/871-amplificateurde-thermocouple-universel-max31856.html>
La mesure fonctionne parfaitement sauf lorsque les moteurs brushless de la
machine sont alimentés, ce sont des moteurs 230V de 400 W
Je vais être obligé de repartir à 0, existe t-il une démarche
rigoureuse utilisée en CEM pour résoudre mon problème ?
Bonjour !

Enfin un problème clairement expliqué et c'est pas si souvent.

Quant on songe que les normes CEM nous imposent un gabarit de
perturbations conduites (en Max) de quelque 80dBuV (10mV) voire 60dBuV
(10mV) ! dans la bande 1MHz .. 100MHz on comprend mieux pourquoi ton
problème tombe en plein dans le sujet.

Je prendrais le problème à la source. C'est à dire que je placerai un
filtre de mode commun de puissance sur la ligne d'alimentation des
moteurs (Bon il faut le calculer mais c'est pas difficile) ... et il
faut que la masse méca et la terre soient impliquées là dedans.
Cf. goooogle (mains line + common mode + schaffner)

Si le thermocouple est éloigné alors j'opterai pour une version blindée
avec le blindage à la masse méca bien évidement ... et puisque tu as
choisi un "PCB-tout-fait-par-ADA-Lovelace" je n'irai pas plus loin dans
mes recommandations ...
Pour ma part j'aurais :
1- conditionné le capteur thermocouple (op amp + filtre PB),
2- utilisé un ADC 12bits d'un petit micro type stm32 (on peut compenser
comme ça par calcul pas mal de choses),
3- par ex pour gagner 4Bits. On sur-échantillonne par 4 (par rapport au
PB), sommer (S) de N échantillons consécutifs, décaler la somme S à
droite de 4 et enfin tronquer le résultat (un entier long) sur 16Bits
(Cf. AN4629 stmicroelectronics)

La pp. 8 du document est très riche d'enseignement (je vous prie de bien
regarder la réponse de ce filtre ... car c'est un filtre !) et juste une
dernière remarque la technique du "dithering" n'est pas très bien
expliquée ici.

H
habib
2019-07-29 15:51:24 UTC
Permalink
Post by b***@eu.eu
par ex pour gagner 4Bits. On sur-échantillonne par 4 (par rapport au
PB), sommer (S) de N échantillons consécutifs, décaler la somme S à
droite de 4 et enfin tronquer le résultat (un entier long) sur 16Bits
Petit correctif. Je viens de relire mon code (qui date pas mal déjà)

On multiplie par 4⁴ (256) la fréquence d’échantillonnage et on prend dès
lors 1LSB = Vref/2¹⁶

Scouzi
Alphonse
2019-07-29 22:43:54 UTC
Permalink
Post by b***@eu.eu
Post by Julien Arlandis
l'acquisition se
fait au moyen de thermocouples de type J via un amplificateur piloté par
<https://boutique.semageek.com/fr/871-amplificateurde-thermocouple-universel-max31856.html>
La mesure fonctionne parfaitement sauf lorsque les moteurs brushless de la
machine sont alimentés, ce sont des moteurs 230V de 400 W
Je vais être obligé de repartir à 0, existe t-il une démarche
rigoureuse utilisée en CEM pour résoudre mon problème ?
Bonjour !
Enfin un problème clairement expliqué et c'est pas si souvent.
Quant on songe que les normes CEM nous imposent un gabarit de perturbations
conduites (en Max) de quelque 80dBuV (10mV) voire 60dBuV (10mV) ! dans la
bande 1MHz .. 100MHz on comprend mieux pourquoi ton problème tombe en plein
dans le sujet.
Je prendrais le problème à la source. C'est à dire que je placerai un filtre
de mode commun de puissance sur la ligne d'alimentation des moteurs (Bon il
faut le calculer mais c'est pas difficile) ... et il faut que la masse méca
et la terre soient impliquées là dedans.
Cf. goooogle (mains line + common mode + schaffner)
Si le thermocouple est éloigné alors j'opterai pour une version blindée avec
le blindage à la masse méca bien évidement ... et puisque tu as choisi un
"PCB-tout-fait-par-ADA-Lovelace" je n'irai pas plus loin dans mes
recommandations ...
1- conditionné le capteur thermocouple (op amp + filtre PB),
2- utilisé un ADC 12bits d'un petit micro type stm32 (on peut compenser comme
ça par calcul pas mal de choses),
3- par ex pour gagner 4Bits. On sur-échantillonne par 4 (par rapport au PB),
sommer (S) de N échantillons consécutifs, décaler la somme S à droite de 4 et
enfin tronquer le résultat (un entier long) sur 16Bits (Cf. AN4629
stmicroelectronics)
La pp. 8 du document est très riche d'enseignement (je vous prie de bien
regarder la réponse de ce filtre ... car c'est un filtre !) et juste une
dernière remarque la technique du "dithering" n'est pas très bien expliquée
ici.
H
Bonjour H,

Je n'ai pas d'objection de principe au filtre de mode commun sur les
alimentations (si ce n'est le coût et l'encombrement), mais je n'en
ferais pas ma priorité.

Ce genre de filtre est surtout utile pour éviter de transmettre la
perturbation au réseau. Mais là, le problème est à l'intérieur de la
machine.

J'ajoute que la réalisation doit être très, très soignée, à cause de la
capacité parasite des spires sur les selfs de mode commun. C'est
d'ailleurs pour cela que l'on met souvent plusieurs étages.

La mesure de température, comme toute mesure, doit effectivement être
l'objet d'un filtrage passe-bas sur l'entrée analogique.
Un filtrage du premier ordre de type RC suffit, à condition que le
condensateur soit adapté aux hautes fréquences (= faible impédance
entre 1 et 100 MHz). Donc du 10 nF céramique grand maximum.

Ce filtrage doit être mis à l'entrée du module conditionneur existant,
et non sur le thermocouple lui-même. Ce n'est pas un problème si les
fils du thermocouple trimbalent les parasites, du moment qu'on sait les
évacuer à la masse à l'arrivée.

Dans cette situation, il ne s'agit pas d'extraire une information d'un
signal bruité, mais d'échapper à un signal qui est suffisament
énergétique pour perturber le fonctionnement normal d'une électronique,
en provoquant le basculement intempestif d'une entrée logique, voire un
latch-up.

J'insiste sur le fait que tout système de filtrage doit renvoyer le
parasite à la masse mécanique (ou à défaut à une alimentation).
Faute de quoi, le parasite trouvera un autre chemin, exactement comme
un voleur contourne le barrage de police. :))

Pour aller plus loin, il faudrait être devant la machine avec les
schémas...

En ce qui concerne les normes CEM, j'ai toujours été admiratif devant
le pragmatisme de la norme aéronautique DO-160, qui est relativement
moins sévère pour tout ce qui est émis et plus sévère vis-à-vis de ce
qui est reçu.
Prenant acte qu'il est plus facile de protéger un équipement de
l'environnement extérieur que de l'empêcher de polluer cet
environnement.

C'est bien que ce fil s'anime.
J'espère que Julien va résoudre son problème.