Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
le Multi-Sinus peut il déclencher l'interrupteur differentiel?
#1
Bonjour,

J'expérimente avec un ESP32 et un relai SSR sur la résistance de mon chauffe-eau. Pour le moment. je n'utilise pas le routeur F1ATB (plus tard peut être) mais le projet est une bonne source d'inspiration et d'informations techniques. 

Je possède un compteur d'énergie bidirectionnel Zigbee avec double pince (https://www.zigbee2mqtt.io/devices/PJ-1203A.html). La première pince mesure le réseau EDF et la seconde le chauffe-eau. A priori, tout baigne sauf que le PJ-1203A n'effectue pas ses mesures pendant 1000ms comme le Linky mais pendant une durée sensiblement plus courte (probablement entre 150 et 200ms). Je pensais utiliser le mode train d'ondes avec une trame de 1000ms mais les mesures sont trop chaotiques.      

J'ai donc écrit un petit programme pour expérimenter avec diverses longueurs de trames pour voir lesquelles donnent des mesures stables (a priori, le PJ-1203A fait ses mesures entre 150 et 200 ms).

Mon problème est tout simplement que mon interrupteur différentiel s'est déclenché au cours d'une de mes mesures. A priori, mon câblage est bon, mon installation électrique est récente et je n'utilisais même pas une forte puissance pour mes tests (un appareil à raclette avec un résistance de 450W). Je pense avoir une petite idée de la cause mais j'aimerai avoir confirmation.

Le code source de F1ATB contient la boucle suivante permettant de calculer le Tableau Longueur Pulse et Longueur Trame pour Multi-Sinus de 0 à 100%

Code :
for (int I = 0; I < 101; I++) {
    tabPulseSinusTotal[I] = -1;
    tabPulseSinusOn[I] = -1;
    target = float(I) / 100.0;
    for (int T = 20; T < 101; T++) {
      for (int N = 0; N <= T; N++) {
        if (T % 2 == 1 || N % 2 == 0) {  // Valeurs impair du total ou pulses pairs pour éviter courant continu
          vrai = float(N) / float(T);
          erreur = abs(vrai - target);
          if (erreur < 0.004) {
            tabPulseSinusTotal[I] = T;
            tabPulseSinusOn[I] = N;
            N = 101;
            T = 101;
          }
        }
      }
    }
  }

Si je comprend correctement le code, le if avec le commentaire permet d'éviter les cas où T est pair et N impairs. Ce cas n'est pas acceptable car, sur le long terme, il produit un nombre différent de demi-phases positives et négatives.

Mon code n'essaye pas d'éviter ce cas particulier.  Cela peut il être la cause du déclenchement de mon interrupteur différentiel?
Répondre
#2
Oui, vous avez compris Un
Répondre
#3
Super.

Merci.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)