Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Multisinus le paradoxe
#11
Ça coûte rien d essayer mon code s adapte de façon très simple quelque soit les versions
Vient en PV si tu veux ce sera plus simple.
De mon côté je reste très satisfait de cette modification qui donne d excellent résultat comme ça régule bien j ai remonter le seuil PV à -10 du coup j injecte très peu et consomme moins de 30w par jour en ne comptant évidemment que les périodes de routages.
Répondre

#12
Merci Lolo69 pour le partage. Effectivement faire des impulsions plus courtes et régulières devrait aider la mesure du Shelly, même si ça va probablement au contraire de la réduction des parasites expliquée ici.

Je viens de compiler le code avec ton changement malheureusement mon chauffe-eau est déjà chaud, je fais un retour demain Smile 


Pour info il manque un } à la fin de ton code "autour des lignes 640 "

Code :
PulseComptage[i]++;
  if (PulseComptage[i] >= total) {
    PulseComptage[i] = 0;
  }


Devrait être

Code :
PulseComptage[i]++;
  if (PulseComptage[i] >= total) {
    PulseComptage[i] = 0;
  }
}
Répondre

#13
Le code affiché ci dessus à quelques autres petites erreurs, je mettrai à jour quand j aurais le retour de quelques forumeurs. (Les tableaux pour 1,33,67 et 99 % ne sont pas remplis par le calcul , il faut les rajouter à la main pour ne pas avoir de sauts.)
Pour les parasites ça sera toujours moins que la découpe de sinus, et avec un SSR avec zc intégré et répartition des ON je pense que c est atténué.
Je n ai pas d oscillo et pas le temps de mettre tout ça en équation pour vérifier, en tout cas avant la modif mes résistances faisant des bruits de vibrations, beaucoup plus faible qu avec un triac en découpe sinus , à présent plus rien d audible et je ne vois aucun effet sur mes appareils électronique et lampes LEDs
Répondre

#14
Bonjour,

  la première étape, c'est la répartition nombre de demi-onde passante / nombre de demi onde pour obtenir le % de routage,

  en y regardant de prés, la routine André se contente d’arrêter les estimations quand la valeur est dans la tolérance 0.4%

  cette procédure arrive a dire que pour obtenir 8% le ratio 2/24 est acceptable (erreur 0.3333)  si on pousse le ratio à 2/25 c'est parfait avec écart de 0%

  c'est valable pour d'autres situations

  pour corriger la situation, j'ai ajouté une boucle supplémentaire qui commence par remplir le tableau avec tolérance 0 puis pour les cas pas encore couvert tolérance 0.1% et ainsi de suite jusque 0.4%, je fini par un tour qui patch les cas non couvert en utilisant la valeur du % précédent

Code :
  // dans setup()
  #define MINSEQLEN 2               //++MS
  #define MAXSEQLEN 64              //++MS
  #define BASEPRECIS 0              //++MS
  #define FINPRECIS 4               //++MS
  for (int I = 0; I <= 50; I++) {   // on ne traite que la moitié, l’autre partie c’est symétrique //++MS
    tabPulseSinusTotal[I] = 0xFF;
    tabPulseSinusOn[I] = 0xFF;
    target = float(I) / 100.0f;
    float tolerance = 0.001f;       //++MS
    for (int K =  BASEPRECIS ; K <=  FINPRECIS ; K++) {  // on fait plusieurs passe en augmentant la tolérance a l'erreur (premier tour recherche la correspondance parfaite) //++MS
      if (tabPulseSinusTotal[I] < 0xFF ) break;  // on a déjà trouver une solution avec une tolérance plus faible
      tolerance = 0.001f * K;         
      for (int T = MINSEQLEN; T < MAXSEQLEN; T++) {
        for (int N = max(0, (int)(T * target) - 1); N <= T; N++) {  // démarre la recherche d'une cohérence juste avant la cible théorique
          if (T % 2 == 1 || N % 2 == 0) {  // Valeurs impaires du total [le cycle suivant rétablira la neutralité électrique] ou pulses pairs pour éviter courant continu
            vrai = float(N) / float(T);
            erreur = fabs(vrai - target);
            if (erreur <= tolerance) {
              tabPulseSinusTotal[I] = T;
              tabPulseSinusOn[I] = N;
              break; // sort de la boucle for N  //++MS
            }
          }
        }  // for N
        if (erreur <= tolerance) break;  // sort de la boucle for T //++MS
      }  // for T
      if (erreur <= tolerance) break;  // sort de la boucle for K //++MS
    }  // for K
  }  // for I
  // patch pour solutions non trouvées (on utilise la valeur précédente s'il n'y a pas de solution)  //++MS
  for (int I = 1; I <= 50; I++) { 
    if (tabPulseSinusTotal[I] == 0xFF) {  // pas trouver de solution
       tabPulseSinusTotal[I] = tabPulseSinusTotal[I - 1];          // on prend la valeur précédente
       tabPulseSinusOn[I] = tabPulseSinusOn[I - 1];
    }
  }
  // double la durée pour les cas impair 'court' ça devient un cas pair
  for (int i = 0; i <= 50; i++) {
      if ((tabPulseSinusOn[i] % 2 || tabPulseSinusTotal[i] % 2) && tabPulseSinusTotal[i] <= 32) {  // avec 32, en doublant, on sait encoder la séquence sur 64 bits
          tabPulseSinusOn[i] *= 2;
          tabPulseSinusTotal[i] *= 2;
      }
  }
  // propage la table de 51 a 100
  for (int I = 51; I <= 100; I++) {
      tabPulseSinusTotal[I] = tabPulseSinusTotal[100 - I];
      tabPulseSinusOn[I] = tabPulseSinusTotal[I] - tabPulseSinusOn[100-I];
  }
  // cas particuliers 1 et 99 on force à 1/64
  tabPulseSinusOn[1] = 1;
  tabPulseSinusTotal[1] = 64;
  tabPulseSinusOn[99] = 63;
  tabPulseSinusTotal[99] = 64;


l'étape suivant c'est la répartition des demi-onde passante ou bloqué
La logique utilisé par André c'est de mettre toute les demi-onde passante au début du cycle
  l'inconvénient c'est de potentiel clignotement (quand c'est de longue séquence, ça devient visible pour l’œil humain) [++++et perturbation système de mesure sur courte période]

La logique LoLo69 c'est une répartition à la volée en utilisant la formule : ((pos * on_count) % total < on_count)
  c'est beaucoup mieux, avec quelques situations non appréciable 
   => cas 50%, on ne laisse passer que les demi- ondes d'une seul polarité (même sur enchainement de plusieurs séquence à 50%)
   => cas 17,26,47,48,49,51,52,53,74,83 majorité de demi-onde de même polarité (compensé par les demi ondes inverses lors de la séquence suivante)

Je propose de répartir des moments de conduction en onde complète (demi positive suivi de demi négative) séparé par des tempos régulièrement espacées (et placer une demi-onde isolé dans les cas impaires), ça commence a se compliquer pour trouver une formule qui fait ça à la volée

Avec un nombre sur 64 bits, 
Code :
uint64_t tabsequenceMultiSinus[101]; // en multisinus représentation binaire des moments passant et des moments bloqués (nombre de bits utiles dans PulseTotal[])

je code les bits a 1 quand ça doit être passant et 0 quand c'est bloqué / utilisation du nombre de bit correspondant la tabPulseSinusTotal[] (qui ne doit pas être plus que 64 !)  => c'est pour ça que les cas 1% et 99% qui était sur 73 demi onde se trouve avec les valeurs de 0% et 100% respectivement [comme on est dans des cas extrêmes, l'impact devrait être faible]

Code :
  // réparti les demi ondes passantes ou bloquées de manière ~équilibré en faisant des groupes demi-alternance+ et demi-alternance- associés //++MS
  for (int i = 0; i <= 50; i++) {  // premiere moitié de la table avec majorité de OFF  //++MS
    uint64_t tmp = 0ull;
    char shift = 0;
    uint8_t nbActif =  tabPulseSinusOn[i];
    if (((nbActif + 1) / 2) != 0)  // anti division par zero
      shift = ((tabPulseSinusTotal[i] + 1) - nbActif) / ((nbActif + 1) / 2);
    else
      shift = tabPulseSinusTotal[i] - 1;
    char nbON = 0;
    char p = 0;  // position
    switch (nbActif) {
      case 0 :
        tmp = 0;  // pas de ON tout est a zéro
        nbON = 0;
        p = 0;
        break;
      case 1 :
        tmp = 0b1;  // une seule demi alternance a ON
        nbON = 1;
        p = 1;
        break;
      case 2 :
        tmp = 0b11;  // Un alternance complete a ON
        nbON = 2;
        p = 2;
        break;
      default:  // jusque 50 on commence par 2 demi onde activées puis on shift xx demi onde en OFF
        tmp = 0b11;
        char nbON = 2;
        char p = 2;
        while ((p + shift + 2) < tabPulseSinusTotal[i]) {
          tmp <<= (shift + 1);              // decale vers la gauche avec des 0
          p += shift + 1;                   // nombre de bit vers la gauche
          if (nbON < nbActif) {             // si on a pas encore injecté tous les bits a mettre a 1
            tmp |= 0b1;                     // met le dernier bit a 1 si on a pas encore le compte
            nbON++;
          }
          tmp <<= 1;                        // decale de 1 a gauche en inserant un zero
          p++;
          if (nbON < nbActif) {             // si on a pas encore injecté tous les bits a mettre a 1
            tmp |= 0b1;                     // met le dernier bit a 1 si on a pas encore le compte
            nbON++;
          }
        }
    }
    tabsequenceMultiSinus[i] = 0ull;
    for (int j = 0; j < tabPulseSinusTotal[i]; j++) { // traduit la sequence sur 64 bits (uniquement les tabPulseSinusTotal[i] bits de faible poids sont utilisés)
      tabsequenceMultiSinus[i] <<= 1;
      tabsequenceMultiSinus[i] |= uint64_t((tmp >> j) & 0b1);
    }
  }  //++MS

  for (int i = 51; i <= 100; i++) {  // seconde partie de la table, avec une majorité de passant
    uint64_t tmp = 0ull;
    char shift = 0;
    uint8_t nbInActif =  tabPulseSinusOn[i];
    if (((nbInActif + 1) / 2) != 0 )  // anti division par zero
      shift = ((tabPulseSinusTotal[i] + 1) - nbInActif) / ((nbInActif + 1) / 2);
    else
      shift = tabPulseSinusTotal[i] - 1;
    char nbOFF = 0;
    char p = 0;  // position

    tmp = 0b11;// au dela de 50 on commence par 2 demi onde activées puis on shift xx demi onde en OFF
    nbOFF = 2;
    p = 2;
    while ((p + shift + 1) < tabPulseSinusTotal[i]) {
      tmp <<= (shift + 1);              // decale vers la gauche avec des 0
      p += shift + 1;                   // nombre de bit vers la gauche
      if (nbOFF < nbInActif) {          // si on a pas encore injecté tous les bits a mettre a 1
        tmp |= 0b1;                     // met le dernier bit a 1 si on a pas encore le compte
        nbOFF++;
      }
      tmp <<= 1;                        // decale de 1 a gauche en inserant un zero
      p++;
      if (nbOFF < nbInActif) {          // si on a pas encore injecté tous les bits a mettre a 1
        tmp |= 0b1;                     // met le dernier bit a 1 si on a pas encore le compte
        nbOFF++;
      }
    }
    tabsequenceMultiSinus[i] = 0ull;
    for (int j = 0; j < tabPulseSinusTotal[i]; j++) { // traduit la sequence sur 64 bits (uniquement les tabPulseSinusTotal[i] bits de faible poids sont utilisés)
      tabsequenceMultiSinus[i] <<= 1;
      tabsequenceMultiSinus[i] |= uint64_t((tmp >> j) & 0b1);
    }
  }

reste a utiliser les tables  tabPulseSinusTotal[] et  tabsequenceMultiSinus[] pour charge la séquence a utiliser en multisinus pour l'action adéquate (différentiation de traitement pour multisinus et train de sinus)
Code :
void GestionOverproduction() { // chaque 200ms (soit adaptation 5 fois par seconde)
  static uint8_t prevpercent[NBACTIONMAX];  // 0 a 100

Code :
        case 2 : //ACT_MULTISIN:   // 2:Multi Sinus
          int tmp = 100 - Retard[i];
          if (tmp == prevpercent[i]) {  // on continu la même séquence si le % de contrôle n’a pas changer,
            break;
          }
          PulseComptage[i] = 0;         // sinon on arrête la séquence en cours et on redémarre a début de la nouvelle séquence avec un nouveau % d'ouverture
          PulseOn[i] = tabPulseSinusOn[tmp];
          PulseTotal[i] = tabPulseSinusTotal[tmp];
          sequenceHalfWave[i] = tabsequenceMultiSinus[tmp] ;
          prevpercent[i] = tmp;
          break;
        case 3: //ACT_TRAINSIN:   // 3:Train de Sinus
          PulseOn[i] = 100 - Retard[i];
          PulseTotal[i] = 99;  //Nombre impair pour éviter courant continu
          break;
        case 4: //ACT_PWM:        //  4:PWM
          Vout = int32_t(RetardF[i] * 2.55);
          if (OutOn[i] == 1) Vout = 255 - Vout;
          ledcWrite(Gpio[i], Vout);
          break;

pour activer ou pas le SSR par période de 10ms ça se passe dans GestionIT_10ms, où il faut différencier le traitement multisinus et train de sinus
Code :
void IRAM_ATTR GestionIT_10ms() {  // en IRAM, (c'est appelé depuis une ISR), les variables modifiées doivent être volatile

Code :
      case 2: // ACT_MULTISIN: // 2:MultiSinus -> répartition des demi-onde passante et bloqué sur la durée nécessaire pour obtenir le % d'ouverture requis
        if (Gpio[i] >= 0) {
          if (PulseComptage[i] <= PulseTotal[i]) {
            if ((sequenceHalfWave[i] >> PulseComptage[i]) & 0b1) {
              digitalWrite(Gpio[i], OutOn[i]);
            } else {
              digitalWrite(Gpio[i], OutOff[i]);  //Stop
            }
            PulseComptage[i] = PulseComptage[i] + 1;
          }
          if (PulseComptage[i] >= PulseTotal[i]) {
            PulseComptage[i] = 0;  // relance une nouvelle séquence
          }
        }                              
        break;
      case 3: // ACT_TRAINSIN: // 3:Train de sinus  -> le bloc de demi onde passante au début complétés par une séquence de demi onde bloqués
        if (Gpio[i] >= 0) {  //Gpio valide
          if (PulseComptage[i] < PulseOn[i]) {
            digitalWrite(Gpio[i], OutOn[i]);
          } else {
            digitalWrite(Gpio[i], OutOff[i]);  //Stop
          }
          PulseComptage[i] = PulseComptage[i] + 1;
          if (PulseComptage[i] >= PulseTotal[i]) {
            PulseComptage[i] = 0;  // relance une nouvelle séquence
          }
        }
        break;
      case 4: // ACT_PWM:      // 4:PWM ne dépend pas IT 10ms
        break;

Je n'ai pas encore tout testé, il y a peut être quelques coquilles ...
Merci André Smile ,
Routeur V15.09b (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Répondre

#15
Très bonne analyse de Michy, j ai hate de voir les résultats en courbe.

pour "contrer" tes remarques, j ai fait un "simulateur" excel pour reproduire le tableaux des ON et des TOTAL ce qui m'a permis ensuite de mettre en dur dans les tableaux les combinaisons les plus optimales pour les valeurs qui me "genait": Oui c'était une solution de facilité pour eviter de pondre de nombreuses lignes de code supplémentaires car mon autre objectif était de ne pas trop m'eloigner du code d'origine pour ne pas se perdre dans ses méandres.
je n'ai pas trop compris les détails des " quelques situations non appréciable " mais j'ai compris le fond et c'est aussi la raison pour laquelle j ai introduit la notion de "dithering" dans ma version optimisée pour reporter une demi onde sur la sequence suivante si nécessaire.
En tout cas j ai hate de pouvoir comparer ta version avec la mienne, mais si tu pouvais me mettre à dispo le ZIP ou le BIN quand ils seront prêt ce serait plus rapide.

Je n ai pas analyser le pourquoi , et donc je n ai pas trop compris pourquoi , sur un routeur avec TRIAC en mode multisinus avec ma modification l'amélioration est encore plus flagrante, les courbes tirent droit comme un I. j'attends que mon CE soit chaud pour basculer sur le routeur du convecteur pour vous montrer les courbes. ( si le soleuil veut bien montrer son nez )

PS : j'ai également modifier legerement l algorithme du régulateur pour le rendre plus réactif en dehors de la zone proche de l'equilibre

PS Bis : " l'inconvénient c'est de potentiel clignotement (quand c'est de longue séquence, ça devient visible pour l’œil humain)" => ce n est pas tellement le probleme que ca devient visible, le probleme est que la moyenne de puissance court terme est completement fausse ce qui provoque des mesures éronnées et le régulateur traite des fausses mesures. J'avais tenté de simplement jouer sur un filtrage plus poussé , mais obligfeait à beaucoup trop filtrer rendant les vraies varations de production ou de consommation invisibles
Répondre

#16
Pour tester/comparer avec un compilo online 

Online C Compiler - online editor

copier coller du contenu du fichier joint
dé commenter un des #define au début

copier coller les parties du résultat généré par l’exécution dans une feuille excel et tu peux comparer les situations


**********

pour 50% ta version génère une séquence "passant-bloqué-passant-bloqué" et ça se répète -> on n'a que des demi onde de même signe ... 

=> c'est pas trop appréciable ... 
ça doit créer des aimants avec une seule polarité dans les enroulements des résistances
pour les mesures Shelly (ou autres), je sais pas ce que ça peut donner (la tension 'neutre'  n'est plus zéro)


Le clignotement pourrait se voir dans les LED de l'éclairage (en plus de perturber les mesures sur de courte durée comme le shelly)


Pièces jointes
.txt   C.txt (Taille : 13.49 Ko / Téléchargements : 1)
Merci André Smile ,
Routeur V15.09b (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Répondre

#17
Intéressant vos travaux Michy. Il faut bien vérifier qu'à long terme on a le même nombre de 1/2 inusoïdes positives que négatives. Il ne faut pas de composante continue. En Multi sinus, le fait de regrouper la rafale permet de diminuer les parasites. De les étaler, permet de mieux mesurer la puissance avec Shelly .

Il faudrait que je me décide à monter un banc de mesure pour voir sur combien de temps le Shelly fait sa mesure. Ce serait pratique pour optimiser en mettant des trames de la même longueur.

André
Répondre

#18
(10-10-2025, 04:40 PM)F1ATB a écrit : Il faut bien vérifier qu'à long terme on a le même nombre de 1/2 sinusoïdes positives que négatives. Il ne faut pas de composante continue. 
André

c'est respecté :

Bilan1 donne la différence entre le nombre de demi alternance positive et négative (sur 1 seule séquence) [zéro et plus ou moins 1 : ça sera compensé par la séquence suivante]
Bilan2 donne la différence entre le nombre de demi alternance positive et négative (sur 2 séquences identiques consécutives) [toujours = 0]

  0; 0; 2; 2;;| Nb+=;00;/;02;  Nb-=;00;/;02; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;|;0;0;
  1; 1;63;64;;| Nb+=;00;/;64;  Nb-=;02;/;64; BSB1=;000; Bilan1=;-01; BSB2=;000; Bilan2=;-02;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;
  2; 1;48;49;;| Nb+=;01;/;49;  Nb-=;01;/;49; BSB1=;001; Bilan1=;001; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;
  3; 1;32;33;;| Nb+=;01;/;33;  Nb-=;01;/;33; BSB1=;001; Bilan1=;001; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;
  4; 2;48;50;;| Nb+=;02;/;50;  Nb-=;02;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
  5; 2;38;40;;| Nb+=;02;/;40;  Nb-=;02;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
  6; 2;31;33;;| Nb+=;02;/;33;  Nb-=;02;/;33; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
  7; 3;40;43;;| Nb+=;03;/;43;  Nb-=;03;/;43; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;0;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;0;
  8; 4;46;50;;| Nb+=;04;/;50;  Nb-=;04;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
  9; 2;20;22;;| Nb+=;02;/;22;  Nb-=;02;/;22; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
10; 2;18;20;;| Nb+=;02;/;20;  Nb-=;02;/;20; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
11; 6;49;55;;| Nb+=;06;/;55;  Nb-=;06;/;55; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
12; 6;44;50;;| Nb+=;06;/;50;  Nb-=;06;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
13; 6;40;46;;| Nb+=;06;/;46;  Nb-=;06;/;46; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
14; 6;37;43;;| Nb+=;06;/;43;  Nb-=;06;/;43; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;0;-;+;|;0;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;+;-;
15; 6;34;40;;| Nb+=;06;/;40;  Nb-=;06;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;0;0;0;+;-;
16; 8;42;50;;| Nb+=;08;/;50;  Nb-=;08;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;0;0;+;-;
17; 7;34;41;;| Nb+=;07;/;41;  Nb-=;07;/;41; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;-;0;|;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;0;
18; 7;32;39;;| Nb+=;07;/;39;  Nb-=;07;/;39; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;0;-;0;|;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;0;
19; 8;34;42;;| Nb+=;08;/;42;  Nb-=;08;/;42; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;0;+;-;
20; 2; 8;10;;| Nb+=;02;/;10;  Nb-=;02;/;10; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;+;-;
21; 8;30;38;;| Nb+=;08;/;38;  Nb-=;08;/;38; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;+;-;
22; 9;32;41;;| Nb+=;09;/;41;  Nb-=;09;/;41; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;-;+;0;0;0;0;0;0;-;+;0;0;0;0;0;0;-;+;0;0;0;0;0;0;-;0;|;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;0;
23; 6;20;26;;| Nb+=;06;/;26;  Nb-=;06;/;26; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;+;-;0;0;0;0;0;0;0;-;+;0;0;0;0;0;0;0;+;-;
24;12;38;50;;| Nb+=;12;/;50;  Nb-=;12;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;0;0;0;0;0;0;+;-;
25; 2; 6; 8;;| Nb+=;02;/;08;  Nb-=;02;/;08; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;+;-;|;0;0;0;0;0;0;+;-;
26;12;34;46;;| Nb+=;12;/;46;  Nb-=;12;/;46; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;0;0;|;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;0;0;
27;10;27;37;;| Nb+=;10;/;37;  Nb-=;10;/;37; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;|;0;0;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;
28;14;36;50;;| Nb+=;14;/;50;  Nb-=;14;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;|;0;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;
29;18;44;62;;| Nb+=;18;/;62;  Nb-=;18;/;62; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;|;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;
30; 6;14;20;;| Nb+=;06;/;20;  Nb-=;06;/;20; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;|;0;0;0;0;+;-;0;0;0;0;0;-;+;0;0;0;0;0;+;-;
31;18;40;58;;| Nb+=;18;/;58;  Nb-=;18;/;58; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;0;0;|;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;0;0;
32;16;34;50;;| Nb+=;16;/;50;  Nb-=;16;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;|;0;0;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;
33;18;37;55;;| Nb+=;18;/;55;  Nb-=;18;/;55; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;|;0;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;
34;16;31;47;;| Nb+=;16;/;47;  Nb-=;16;/;47; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;0;0;0;0;-;+;|;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;0;0;0;0;+;-;
35;14;26;40;;| Nb+=;14;/;40;  Nb-=;14;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;0;0;|;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;0;0;
36;18;32;50;;| Nb+=;18;/;50;  Nb-=;18;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;0;0;|;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;0;0;
37;20;34;54;;| Nb+=;20;/;54;  Nb-=;20;/;54; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;0;0;|;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;0;0;
38;16;26;42;;| Nb+=;16;/;42;  Nb-=;16;/;42; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;|;0;0;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;
39;16;25;41;;| Nb+=;16;/;41;  Nb-=;16;/;41; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;|;0;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;
40; 4; 6;10;;| Nb+=;04;/;10;  Nb-=;04;/;10; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;-;+;0;0;0;+;-;|;0;0;0;-;+;0;0;0;+;-;
41;16;23;39;;| Nb+=;16;/;39;  Nb-=;16;/;39; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;|;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;0;0;0;-;+;0;0;0;+;-;
42;26;36;62;;| Nb+=;26;/;62;  Nb-=;26;/;62; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;0;0;0;0;0;0;|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;0;0;0;0;0;0;
43; 6; 8;14;;| Nb+=;06;/;14;  Nb-=;06;/;14; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;0;0;-;+;0;0;0;+;-;|;0;0;+;-;0;0;0;-;+;0;0;0;+;-;
44;22;28;50;;| Nb+=;22;/;50;  Nb-=;22;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;0;0;|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;0;0;
45;18;22;40;;| Nb+=;18;/;40;  Nb-=;18;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;0;0;|;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;0;0;
46;17;20;37;;| Nb+=;17;/;37;  Nb-=;17;/;37; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;0;|;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;0;
47;16;18;34;;| Nb+=;16;/;34;  Nb-=;16;/;34; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;
48;24;26;50;;| Nb+=;24;/;50;  Nb-=;24;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;|;0;0;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;
49;23;24;47;;| Nb+=;23;/;47;  Nb-=;23;/;47; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;0;|;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;0;
50; 2; 2; 4;;| Nb+=;02;/;04;  Nb-=;02;/;04; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;|;0;0;+;-;
51;24;23;47;;| Nb+=;24;/;47;  Nb-=;24;/;47; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;0;0;-;+;|;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;0;0;+;-;
52;26;24;50;;| Nb+=;26;/;50;  Nb-=;26;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;0;0;0;0;0;0;0;0;0;0;0;
53;18;16;34;;| Nb+=;18;/;34;  Nb-=;18;/;34; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;0;0;0;0;0;|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;0;0;0;0;0;
54;20;17;37;;| Nb+=;20;/;37;  Nb-=;20;/;37; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;0;0;0;|;0;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;0;0;0;0;0;
55;22;18;40;;| Nb+=;22;/;40;  Nb-=;22;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;0;0;0;0;0;|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;0;0;0;0;0;
56;28;22;50;;| Nb+=;28;/;50;  Nb-=;28;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;0;0;0;0;0;0;|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;0;0;0;0;0;0;
57; 8; 6;14;;| Nb+=;08;/;14;  Nb-=;08;/;14; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;0;0;|;+;-;0;-;+;0;+;-;0;-;+;0;0;0;
58;36;26;62;;| Nb+=;36;/;62;  Nb-=;36;/;62; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;0;0;0;0;0;0;|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;0;0;0;0;0;0;
59;23;16;39;;| Nb+=;23;/;39;  Nb-=;23;/;39; BSB1=;001; Bilan1=;001; BSB2=;000; Bilan2=;000;
|;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;0;0;0;0;|;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;0;0;0;0;
60; 6; 4;10;;| Nb+=;06;/;10;  Nb-=;06;/;10; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;-;+;0;+;-;|;0;0;+;-;0;-;+;0;+;-;
61;25;16;41;;| Nb+=;25;/;41;  Nb-=;25;/;41; BSB1=;001; Bilan1=;001; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;0;0;0;0;|;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;0;0;0;0;
62;26;16;42;;| Nb+=;26;/;42;  Nb-=;26;/;42; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;|;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;
63;34;20;54;;| Nb+=;34;/;54;  Nb-=;34;/;54; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;|;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;
64;32;18;50;;| Nb+=;32;/;50;  Nb-=;32;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;0;0;
65;26;14;40;;| Nb+=;26;/;40;  Nb-=;26;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;
66;31;16;47;;| Nb+=;31;/;47;  Nb-=;31;/;47; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;0;|;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;0;
67;37;18;55;;| Nb+=;36;/;55;  Nb-=;36;/;55; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;|;0;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;
68;34;16;50;;| Nb+=;34;/;50;  Nb-=;34;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;
69;40;18;58;;| Nb+=;40;/;58;  Nb-=;40;/;58; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
70;14; 6;20;;| Nb+=;14;/;20;  Nb-=;14;/;20; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;|;+;-;0;-;+;0;+;-;0;-;+;0;+;-;0;-;+;0;+;-;
71;44;18;62;;| Nb+=;44;/;62;  Nb-=;44;/;62; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
72;36;14;50;;| Nb+=;36;/;50;  Nb-=;36;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
73;27;10;37;;| Nb+=;27;/;37;  Nb-=;27;/;37; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;0;0;0;0;0;0;0;0;
74;34;12;46;;| Nb+=;34;/;46;  Nb-=;34;/;46; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;
75; 6; 2; 8;;| Nb+=;06;/;08;  Nb-=;06;/;08; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;0;-;+;0;+;-;|;+;-;0;-;+;0;+;-;
76;38;12;50;;| Nb+=;38;/;50;  Nb-=;38;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;0;0;0;0;
77;20; 6;26;;| Nb+=;20;/;26;  Nb-=;20;/;26; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;
78;32; 9;41;;| Nb+=;32;/;41;  Nb-=;32;/;41; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;0;0;0;0;0;0;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;
79;30; 8;38;;| Nb+=;30;/;38;  Nb-=;30;/;38; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;
80; 8; 2;10;;| Nb+=;08;/;10;  Nb-=;08;/;10; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;0;0;|;+;-;+;-;+;-;+;-;0;0;
81;34; 8;42;;| Nb+=;34;/;42;  Nb-=;34;/;42; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;
82;32; 7;39;;| Nb+=;32;/;39;  Nb-=;32;/;39; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;0;0;0;0;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;
83;34; 7;41;;| Nb+=;34;/;41;  Nb-=;34;/;41; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;0;0;0;0;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;
84;42; 8;50;;| Nb+=;42;/;50;  Nb-=;42;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;0;0;
85;34; 6;40;;| Nb+=;34;/;40;  Nb-=;34;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;
86;37; 6;43;;| Nb+=;37;/;43;  Nb-=;37;/;43; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;0;0;0;0;
87;40; 6;46;;| Nb+=;40;/;46;  Nb-=;40;/;46; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;
88;44; 6;50;;| Nb+=;44;/;50;  Nb-=;44;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;0;
89;49; 6;55;;| Nb+=;49;/;55;  Nb-=;49;/;55; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;0;0;0;0;
90;18; 2;20;;| Nb+=;18;/;20;  Nb-=;18;/;20; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;
91;20; 2;22;;| Nb+=;20;/;22;  Nb-=;20;/;22; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;
92;46; 4;50;;| Nb+=;46;/;50;  Nb-=;46;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;0;0;
93;40; 3;43;;| Nb+=;40;/;43;  Nb-=;40;/;43; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;
94;31; 2;33;;| Nb+=;31;/;33;  Nb-=;31;/;33; BSB1=;001; Bilan1=;-01; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;
95;38; 2;40;;| Nb+=;38;/;40;  Nb-=;38;/;40; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;
96;48; 2;50;;| Nb+=;48;/;50;  Nb-=;48;/;50; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;0;0;
97;32; 1;33;;| Nb+=;32;/;33;  Nb-=;32;/;33; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;
98;48; 1;49;;| Nb+=;48;/;49;  Nb-=;48;/;49; BSB1=;001; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;0;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;|;0;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;
99;63; 1;64;;| Nb+=;64;/;64;  Nb-=;62;/;64; BSB1=;000; Bilan1=;001; BSB2=;000; Bilan2=;002;
|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;|;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;-;+;0;
100; 2; 0; 2;;| Nb+=;02;/;02;  Nb-=;02;/;02; BSB1=;000; Bilan1=;000; BSB2=;000; Bilan2=;000;
|;+;-;|;+;-;
Merci André Smile ,
Routeur V15.09b (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Répondre

#19
Pour le coup au lieu de faire des boucles imbriquées avec des if et etc je vais rentrer le pattern manuellement ( avec l aide d excel) dans un tableau ca permettra de faire une répartition parfaite sur les périodes optimales en s assurant d avoir autant de moins que de plus quitte à supprimer un ON , l impact sur la puissance sera quasi invisible car le régulateur rattrapera . Ce tableau une fois saisi ne bougera plus, et pas besoin de se triturer les neurones pour le remplir en automatique;-)
En plus ça rendra le code beaucoup plus lisible et rapide
Répondre

#20
(11-10-2025, 01:27 PM)Lolo69 a écrit : Pour le coup au lieu de faire des boucles imbriquées avec des if et etc je vais rentrer le pattern manuellement ( avec l aide d excel) dans un tableau ca permettra de faire une répartition parfaite sur les périodes optimales en s assurant d avoir autant de moins que de plus quitte à supprimer un ON , l impact sur la puissance sera quasi invisible car le régulateur rattrapera . Ce tableau une fois saisi ne bougera plus, et pas besoin de se triturer les neurones pour le remplir en automatique;-)
En plus ça rendra le code beaucoup plus lisible et rapide

Bonjour,

quelques comme ça :

Code :
uint8_t tabPulseSinusTotal[101] = { 2,
  64,49,33,50,40,33,43,50,22,20,55,50,46,43,40,50,41,39,42,10,
  38,41,26,50, 8,46,37,50,62,20,58,50,55,47,40,50,54,42,41,10,
  39,62,14,50,40,37,34,50,47, 4,47,50,34,37,40,50,14,62,39,10,
  41,42,54,50,40,47,55,50,58,20,62,50,37,46, 8,50,26,41,38,10,
  42,39,41,50,40,43,46,50,55,20,22,50,43,33,40,50,33,49,64, 2
};

uint8_t tabPulseSinusOn[101] = { 0,
   1, 1, 1, 2, 2, 2, 3, 4, 2, 2, 6, 6, 6, 6, 6, 8, 7, 7, 8, 2,
   8, 9, 6,12, 2,12,10,14,18, 6,18,16,18,16,14,18,20,16,16, 4,
  16,26, 6,22,18,17,16,24,23, 2,24,26,18,20,22,28, 8,36,23, 6,
  25,26,34,32,26,31,37,34,40,14,44,36,27,34, 6,38,20,32,30, 8,
  34,32,34,42,34,37,40,44,49,18,20,46,40,31,38,48,32,48,63, 2
};

uint64_t tabsequenceMultiSinus[101]  =  {0x0000000000000000,
  0x8000000000000000,0x0001000000000000,0x0000000100000000,0x0003000000000000,0x000000C000000000,0x0000000180000000,0x0000020000180000,0x0003000001800000,0x0000000000300000,0x00000000000C0000,
  0x0060001800060000,0x000300018000C000,0x000030006000C000,0x0000060018006000,0x000000C006003000,0x0003003003003000,0x0000008060180600,0x0000002018060180,0x00000300C0300C00,0x0000000000000300,
  0x00000030180C0600,0x0000008181818180,0x00000000030180C0,0x0003030303030300,0x00000000000000C0,0x00000060C183060C,0x000000183060C180,0x0003060C183060C0,0x3060C183060C1830,0x00000000000C1830,
  0x000C30C30C30C30C,0x00030C30C30C30C0,0x0061861861861860,0x0000618618618618,0x00000006318C6318,0x000018C6318C6318,0x00018C6318C6318C,0x00000318C6318C60,0x0000018C6318C630,0x0000000000000318,
  0x0000006318C6318C,0x0033333333333330,0x000000000000318C,0x0000333333333330,0x0000000CCCCCCCCC,0x0000000999999998,0x0000000333333330,0x0003333333333330,0x0000266666666666,0x000000000000000C,
  0x0000666666666666,0x00000036DB6DB6DB,0x000000000DB6DB6C,0x000000006DB6DB6C,0x000000036DB6DB6C,0x000001B6DB6DB6DB,0x00000000000006DB,0x001B6DB6DB6DB6DB,0x00000005B6DB6DB6,0x000000000000036C,
  0x00000016DB6DB6DB,0x0000006DB6DB6DB6,0x0006DB6DB6DB6DB6,0x00006DB6DB6DB6DB,0x000000DB6DB6DB6C,0x00002DB6DB6DB6DB,0x006DB6DB6DB6DB6C,0x00036DB6DB6DB6DB,0x000000FFFFFFFFFF,0x00000000000DB6DB,
  0x00000FFFFFFFFFFF,0x0000000FFFFFFFFF,0x000000000FFFFFFE,0x00000003FFFFFFFF,0x00000000000000DB,0x0000003FFFFFFFFF,0x00000000000FFFFF,0x00000001FFFFFFFE,0x000000003FFFFFFF,0x00000000000000FF,
  0x00000003FFFFFFFF,0x00000001FFFFFFFE,0x00000007FFFFFFFE,0x000003FFFFFFFFFF,0x00000003FFFFFFFF,0x0000003FFFFFFFFE,0x000000FFFFFFFFFF,0x00000FFFFFFFFFFF,0x0003FFFFFFFFFFFE,0x000000000003FFFF,
  0x00000000000FFFFF,0x00003FFFFFFFFFFF,0x000001FFFFFFFFFE,0x00000000FFFFFFFE,0x0000003FFFFFFFFF,0x0000FFFFFFFFFFFF,0x00000001FFFFFFFE,0x0001FFFFFFFFFFFE,0x7FFFFFFFFFFFFFFF,0x0000000000000003
};

c'est bien plus compact que le code qui le génère (faut savoir d'où ça vient et les paramètres considérés)

on peut sûrement optimiser encore un peu
Merci André Smile ,
Routeur V15.09b (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Répondre



Atteindre :


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

Moteur MyBB, © 2002-2025 Melroy van den Berg.