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. 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é 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. 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 ! 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 |