F1ATB forum
Energie_M_xxx, bug corrigé > v12.03 - Version imprimable

+- F1ATB forum (https://f1atb.fr/forum_f1atb)
+-- Forum : Forum de F1ATB (https://f1atb.fr/forum_f1atb/forum-3.html)
+--- Forum : Routeur Photovoltaïque (https://f1atb.fr/forum_f1atb/forum-4.html)
+--- Sujet : Energie_M_xxx, bug corrigé > v12.03 (/thread-619.html)

Pages : 1 2


Energie_M_xxx, bug corrigé > v12.03 - Youpimatin - 16-10-2024

Bonjour,
j'ai un souci sur les valeurs retournées en MQTT concernant "Energie_M_Soutiree" et "EnergieJour_M_Soutiree" ("Soutirage Jour" dans l'image).

La mesure de PuissanceS_M ("Puissance Soutirée") est correcte, mais il semble y avoir un seuil sous lequel "Energie_M_Soutiree" et "EnergieJour_M_Soutiree" ne sont pas mis à jour.


[Image: Soutirage-Jour.png]


Pour être honnête, ça pourrait ressembler à une division d'un flottant par un entier dans le code.

Dans le code de "Source_UxI.ino", à la ligne 55 (et aussi 62, du coup), est-ce que ce calcul est réalisé en flottant ? :

EASfloat += PWcal / 90000;  // Watt Hour,Every 40ms. Soutirée

Pas un pro du compilateur Arduino, mais peut-être l'écrire :

EASfloat += PWcal / 90000.;  // Watt Hour,Every 40ms. Soutirée


RE: Energie_M_Soutiree : seuil de consommation ? - F1ATB - 16-10-2024

Bonjour

Vous avez raison, la notation n'est pas bonne à priori. Il manque un .0. Je vais publier un correctif.

André


RE: Energie_M_Soutiree : seuil de consommation ? - Youpimatin - 16-10-2024

Merci André pour votre réactivité Smile

Quand je pourrai tester à la maison, je regarderai s'il ne faut pas faire de même avec tous les autres calculs en flottant :

  for (int i = 0; i < 100; i++) {
    voltM[i] = (19. * voltM[i] + float(volt[i])) / 20.;  //Mean value. First Order Filter. Short Integration
    V = kV * voltM[i];
    Uef2 += sq(V);
    ampM[i] = (19. * ampM[i] + float(amp[i])) / 20.;  //Mean value. First Order Filter
    I = kI * ampM[i];
    Ief2 += sq(I);
    PWcal += V * I;
  }
  Uef2 = Uef2 / 100.;        //square of voltage
  Tension_M = sqrt(Uef2);    //RMS voltage
  Ief2 = Ief2 / 100.;        //square of current
  Intensite_M = sqrt(Ief2);  // RMS current
  PWcal = PfloatMax(PWcal / 100.);


Dans un but d'optimisation, il est souvent bon de troquer les divisions par des multiplications quand c'est possible (si le compilateur Arduino n'optimise pas déjà de lui-même) :

  for (int i = 0; i < 100; i++) {
    voltM[i] = (19. * voltM[i] + float(volt[i])) * .05;  //Mean value. First Order Filter. Short Integration
    V = kV * voltM[i];
    Uef2 += sq(V);
    ampM[i] = (19. * ampM[i] + float(amp[i])) * .05 ;  //Mean value. First Order Filter
    I = kI * ampM[i];
    Ief2 += sq(I);
    PWcal += V * I;
  }
  Uef2 = Uef2 * .01;        //square of voltage
  Tension_M = sqrt(Uef2);    //RMS voltage
  Ief2 = Ief2 * .01 ;        //square of current
  Intensite_M = sqrt(Ief2);  // RMS current
  PWcal = PfloatMax(PWcal * .01 );


RE: Energie_M_Soutiree : seuil de consommation ? - F1ATB - 16-10-2024

J'ai tout corrigé dans une version V12.02 téléchargeable par webOTA.
Cdlt


RE: Energie_M_Soutiree : seuil de consommation ? - michy - 16-10-2024

(16-10-2024, 03:21 PM)F1ATB a écrit : J'ai tout corrigé dans une version V12.02 téléchargeable par webOTA.
Cdlt

Bonjour André,

  Avec le V12.01, pas de problème de mesure puissance, des que je passe en V12.02, toutes les mesures électriques reste a Zéro

  j'ai fais le swap 12.01 -> 12.02 -> 12.01  -> 12.02 -> 12.01

  c'est bien dans 12.02 qu'il y a un bug  

  Je suis en UxI, je suspecte la correction avec les float autour kI et kV

  ça fonctionnait dans la version précédente car l'opération démarre par l'utilisation d'un float (KV ou KI),
  en ajoutant les parenthèses autour de CalibU / 1000, on force un calcul en entier et on converti le résultat de la division obtenu en un réel  
  comme mon CalibI est inférieur à 1000, ça retourne 0 ...

Pour faire propre :
  kV = KV * CalibU / 1000.0;
  kI = KI * CalibI / 1000.0;

ou 
  kV = KV * (float)CalibU / 1000.0;
  kI = KI * (float)CalibI / 1000.0;


à la place de 
  kV = KV * float(CalibU / 1000);
  kI = KI * float(CalibI / 1000);



RE: Energie_M_Soutiree : seuil de consommation ? - Youpimatin - 16-10-2024

J'ai mis à jour vers la v12 02, il y a bien un petit problème de coefficients multiplicateurs.


RE: Energie_M_Soutiree : seuil de consommation ? - F1ATB - 17-10-2024

Bien vu. Je me suis bien planté... sur cette correction de la calibration. J'ai retiré la V12.02 et je l'ai remplacé par une V12.03

Merci
André/F1ATB


RE: Energie_M_Soutiree : seuil de consommation ? - Youpimatin - 17-10-2024

Bonjour, et merci André !
v12.03, énergies soutirées et énergies injectées réparées, c'est beau !
[Image: Soutirage-Jour-OK.png]


RE: Energie_M_xxx, bug corrigé > v12.03 - XabiX - 18-10-2024

Hello,

je suis passé en 12.03 mais je trouve incohérent la consommation alors que presque rien ne tourne chez moi.
du coup je me demande si il n y a pas un pb? ou si j ai oublié de configurer qq chose de nouveau?

Merci

PS: pb résolu, a priori le routeur Source avait UxI comme config au lieu de UxIx3. Je ne sais pas si c lié à la maj ou une erreur de ma part.

   
   


RE: Energie_M_xxx, bug corrigé > v12.03 - XabiX - 18-10-2024

Bonjour,

Savez vous pq la nouvelle durée reste à 0?

   

Avant mon sensor était: "routeur_f1atb_routeur3_duree_relais_1" maintenant le nouveau créé est: "routeur_f1atb_ce_buanderie_duree_equiv" mais il est tjs à 0:
   

Merci
XabiX