samedi 25 février 2023

Piloter une charge inductive


Piloter une charge inductive


Nous allons dans cet article revenir sur un aspect assez méconnu des débutants en électronique : la charge inductive, et les parasites qu'elle est susceptible d'engendrer. Ces dernières années je ne compte plus les interventions que j'ai pu effectuer, sur le forum ARDUINO, afin de résoudre ce genre de problème.

Malgré que j'aie déjà évoqué ce sujet à plusieurs reprises, il m'a semblé utile de rassembler dans un seul article les connaissances que j'ai pu accumuler sur les protections contre les surtensions.

Commençons par ma première expérience. Il y a trois ans j'avais présenté un projet de Micro-irrigation Automatisée.

Ce fut le premier projet sur lequel j'ai été confronté à des problèmes liés aux parasites générés par la commutation d'une charge inductive. La charge en question était une électrovanne motorisée 230V : 

Le moteur de l'électrovanne possède 3 fils :

  • neutre
  • fil d'ouverture
  • fil de fermeture

Il est piloté par un classique module à double relais :

De manière aléatoire, l'afficheur 4 lignes du montage affichait des caractères incompréhensibles, juste après une ouverture ou une fermeture de la vanne.

Après de longues recherches sur le WEB, j'avais appris que les parasites générés par la coupure d'un moteur 230V pouvaient perturber l'alimentation de l'ARDUINO. Dans mon cas, cette alimentation est pourtant est de qualité supérieure, une MEANWELL IRM-05-5.

Et j'avais résolu le problème en adoptant un snubber : 

Nous allons examiner les différents cas qui peuvent être potentiellement problématiques.

1. Quel type de charge ?

Tout d'abord, qu'est ce qu'une charge inductive ? Il s'agit de tout type de charge comportant une inductance (un bobinage) :

  • un moteur
  • une électrovanne
  • un électroaimant ou solénoïde
  • un relais ou un contacteur
  • un distributeur pneumatique
  • etc.
Lors de la coupure du courant dans l'inductance, une surtension apparaît aux bornes de celle-ci et peut être véhiculée à travers une alimentation et perturber la tension de sortie de celle-ci, allant jusqu'à planter un microcontrôleur alimenté par celle-ci.

2. Oscillogrammes

J'ai déjà publié ces oscillogrammes dans cet article

On voit ici la surtension de 100V produite sur le collecteur du transistor de commande d'un relais 5V lors de la coupure.

On voit également des perturbations énormes sur la ligne d'alimentation 5V : jusqu'à 1.5V aussi bien en positif qu'en négatif pendant 100µs.

Ces perturbations pourraient facilement provoquer le plantage d'un microcontrôleur ou d'un module.

Avec une diode de roue libre ces surtensions disparaissent :

Tension sur le collecteur

Tension d'alimentation 5V

3. En courant continu

Lorsque l'on a affaire à une charge inductive fonctionnant en courant continu, la diode de roue libre est la solution.

3.1. Pilotage à l'aide d'un transistor

Ici elle est mise en place, cathode au +5V, donc en inverse, aux bornes de la bobine d'un relais. On choisit de préférence une diode rapide du type 1N4148.

Pour un moteur, une électrovanne, etc. le câblage est identique : 

Le transistor peut être un MOSFET : 

Remarque : tous les modules relais du commerce sont équipés de cette diode :

Si l'on adopte un relais nu, on devra ajouter cette diode, comme sur le schéma ci-dessus.

3.2. Pilotage à l'aide d'un relais

Qu'en est-il si l'on pilote un moteur ou une électrovanne à l'aide d'un relais nu ? La solution ne diffère pas, chacun est équipée de sa diode de roue libre :

3.3. Pilotage à l'aide d'un pont en H

Un transistor ou un relais n'est pas le seul moyen de piloter un moteur continu. Un moteur continu peut également être piloté à l'aide d'un pont en H, permettant de le faire tourner dans les deux sens.

Là encore, la majeure partie des ponts en H sont équipés de diodes de roue libre : 

Ci-dessus le schéma simplifié de l'électronique interne d'un L293D montre 4 diodes. Mais encore faut-l ne pas se tromper de modèle, car un L293 (sans le D) n'en possède pas.

Lire la datasheet d'un circuit de pont en H est indispensable.

4. En courant alternatif

Il est arrivé sur un de mes projets que la coupure d'un réfrigérateur fasse planter un montage à base de STM32. Le montage est alimenté par une alimentation 5V USB, branché sur une prise 230V proche de celle du réfrigérateur. Le simple fait de changer de prise 230V a fait disparaître le problème. Cette deuxième prise 230V est située de l'autre côté de la pièce, et est alimentée par une ligne 230V séparée de la première. Les deux lignes partent pourtant du même disjoncteur dans le tableau principal. On peut en déduire deux choses :

  • la longueur des fils 230V semble avoir un effet positif sur les parasites
  • comme le réfrigérateur est à l'origine du problème, on peut douter de la qualité de ses circuits antiparasites. Il faudrait ajouter un circuit supplémentaire sur le moteur.

En courant alternatif, une diode de roue libre ne va pas être utilisable, car elle serait détruite instantanément par les alternances négatives. Il faut utiliser un snubber.

4.1. Relais

Ici on voit un relais 5V continus, équipé de sa diode de roue libre, et un moteur 230V et son snubber.

Le snubber est constitué d'un condensateur (C2) et d'une résistance (R10) en série, autrement dit un couple RC. Il va absorber la surtension lors de la coupure du moteur. Le condensateur est en général du type X2 (auto-cicatrisant) :



Une varistance 275V peut être utilisée en lieu et place du couple RC :


Des modules tout faits, combinant les deux solutions (couple RC + varistance), existent :

4.2. Où placer le snubber

A noter : on pourrait penser que le snubber peut être placé directement en parallèle sur le contact du relais, plutôt qu'en parallèle sur la charge : 

Théoriquement, oui, mais il y a un effet secondaire : un courant de fuite de quelques mA va circuler dans la charge, à travers le snubber, et cela peut être gênant.

Schéma de gauche : si le contact est ouvert aucun courant ne circule.

Schéma de droite : si le contact est ouvert un léger courant circule à travers le snubber et le moteur.

On peut facilement le calculer. Calculons l'impédance du condensateur :

X = 1 / (2 * Pi * F * C) = 1 / (2 * 3.14 * 50 * 0.0000001) = 31847Ω

En ajoutant la résistance de 100Ω : 31947Ω

Imaginons que la charge soit la bobine d'un contacteur. La résistance de celle-ci peut avoir une valeur similaire, une 30aine de KΩ. 

Ce qui donne un courant de 230V / 60KΩ = 3.8mA

Ce courant peut être suffisant pour activer le contacteur s'il est très sensible. On l'a déjà vu, par exemple ici :

https://forum.arduino.cc/t/commande-pompe-piscine-via-arduino-et-relais/959401/42

Si la charge est un petit moteur, ce courant peut être suffisant pour entraîner sa rotation.

Il vaut donc mieux placer le snubber en parallèle sur la charge.

4.3. Contacteur

Un contacteur est aussi une charge inductive. Si l'on utilise un contacteur pour piloter un moteur, chacun d'eux devra être équipé d'un snubber :

Ici il s'agit d'un contacteur à bobine 230V. Il possède son propre snubber, le moteur également. Si le contacteur est un modèle à bobine 24V ou 48V cela ne change rien au problème, le snubber est indispensable.

Remarque : certains contacteurs sont équipés d'origine d'une varistance en parallèle sur la bobine, par exemple ce modèle de chez Finder :

Il est à noter que la plupart des contacteurs sont bipolaires, ce qui permet de couper phase et neutre, apportant ainsi une sécurité supplémentaire. Il sont de plus beaucoup plus robustes qu'un petit relais chinois, et peuvent piloter de gros moteurs.

5. Conclusion

J'espère que ce petit article vous aura persuadé que les surtensions provoquées par des solénoïdes sont maîtrisables, et que vos chères alimentations, même si elles sont bien régulées et de qualité ne sont pas des protections suffisantes.


Cordialement

Henri


14 commentaires:

  1. Perso, pour la commande de charges sur le secteur, je privilégie la commutation au zéro de tension avec des optos style MOC3041, avec éventuellement un triac externe pour les courants importants...

    RépondreSupprimer
    Réponses
    1. Il est loin d'être évident que la coupure lors du passage à ZÉRO de la tension apporte quoi que ce soit dans le cas d'une charge inductive. Comme il y a un déphasage entre tension et courant, il faudrait couper au moment du passage à ZÉRO du courant, et non pas de la tension.

      Supprimer
    2. Euh... C'est un opto-triac...

      Supprimer
    3. Oui, je sais qu'un MOC3041 est un opto-triac.
      En effet, d'après ce que je viens de lire, "le triac reste amorcé (conducteur) jusqu’à ce que le courant de passage entre A1 et A2 redescende en dessous de la valeur du courant de maintien". Donc il s'agit bien de courant. Le courant de maintien d'un MOC3041 étant de 250 µA, cela me semble suffisamment faible pour ne pas générer de surtension. Cela mériterait d'être essayé.

      Supprimer
    4. Petit complément : la datasheet du MOC3041 précise ceci :
      "Zero voltage crossing", donc il s'agit d'une synchronisation sur la tension, et pas sur le courant.
      Donc avec une charge inductive, un snubber est tout de même nécessaire. C'est d'ailleurs indiqué dans la datasheet.

      Supprimer
    5. Synchro sur la tension à l'enclenchement, pour le snubber, c'est une autre raison : limitation du dv/dt (classique sur un triac, éviter les amorcages intempestifs).
      Quant à essayer, tu peux, mais c'est le principe utilisé dans les relais statiques dans l'industrie depuis des lustres :-)

      Supprimer
    6. J'essaierai un de ces quatre. Mais de toutes façons c'est complètement hors sujet par rapport au contenu de cet article.

      Supprimer
    7. Ah bon ? Je vieillis mal, j'avais pourtant compris qu'il s'agissait de commander des charges également sur le secteur ???

      Supprimer
    8. Oui tout à fait, mais il n'a jamais été question de triacs, qui sont très peu utilisés par les amateurs ARDUINO, mais de solutions classiques à base de relais et contacteurs. Et là le snubber joue son rôle, c'est à dire absorber les surtensions.
      Remarque bien que je n'exclus pas les relais solid state. Pour moi ils font partie des relais, au même titre que les relais mécaniques.

      Supprimer
  2. Bonjour,
    Merci pour cet article, très intéressant comme toujours (j'avais déjà suivi les posts associés Arduino).
    J'en profite pour poser une question: le snubber ne permet que d’éviter une surtension sur le réseau 230V qui pourrait éventuellement venir perturber les alimentations 5V de nos micro-controlleurs, c'est bien cela?
    Dans ce cas, si on pilote un appareil qui possède un interrupteur On/Off (basculé sur On évidemment), on peut espérer que le snubber est déjà présent (ou un système équivalent), puisque l'appui manuel sur l'interrupteur provoquera les mêmes effets? Ou est-ce que je me trompe?
    Merci !

    RépondreSupprimer
    Réponses
    1. C'est bien cela.
      Pour ce qui est de l'interrupteur, tout dépend de l'appareil. Il n'y a pas de norme obligeant les fabricants à installer un snubber sur leurs équipements. Voir l'histoire du réfrigérateur au paragraphe 4.
      Le plus simple est d'essayer d'appuyer répétitivement sur l'interrupteur pour voir si cela provoque des effets indésirables.

      Supprimer
    2. Merci pour la réponse et pour le temps consacré à partager vos connaissances !

      Supprimer
  3. Bonjour et merci pour vos partages ouvert à tous.
    Vous evoquiez la prise secteur proche d'un refrigerateur qui faisait planter votre montage, mettre un snubber sur le moteur semble être la solution. Mais dans le cas où ne savez pas d'où viennent ces pertubations, existe t'il un un circuit à mettre directement sur son montage pour absorber ces pertubations ?

    RépondreSupprimer
    Réponses
    1. Je ne suis pas sûr qu'un snubber en parallèle sur l'alimentation du montage soit efficace. A essayer ...

      Supprimer