Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
condition d'hystérésis sur la température
#1
Bonsoir André et Bonsoir à tous,

J'ai eu besoin d'un hystérésis sur la condition de température et je propose cette solution :

J'avais déjà rajouté un hystérésis sur des versions 6.xx mais voici la solution que je viens d'implanter sur la version 12.06

Le principe :
pour déclencher un hystérésis je programme par exemple une condition de température  >= 20° ET une condition de température <= 18° dans la page Actions.
Evidemment dans l'état actuel du code cela produit un résultat qui est toujours faux car la température ne pourra jamais être en même temps <= 18° ET >= 20°
Par contre après ajout des lignes de programme suivantes, celui-ci détecte cette condition et bascule en mode hystérésis dont la valeur est dans cet exemple 20° - 18° = 2°

voici le code :

dans le fichier Actions.h
ajouter à la ligne 62 : 

int Tseuil = 2000; 

dans le fichier Actions.cpp
modifier le code comme suit à partir de la ligne 185

      /*

      if (Temperature > -100) {
        if (Tinf[i] <= 1000 && int(Temperature * 10.0) > Tinf[i]) { ConditionsOk = false; }
        if (Tsup[i] <= 1000 && int(Temperature * 10.0) < Tsup[i]) { ConditionsOk = false; }
      }
      */
     
      if (Temperature > -100) {     
              if (Tinf[i] <= 1000 && Tsup[i] <= 1000 && Tinf[i] < Tsup[i]) { // on applique un hystérésis dont les valeurs sont Tinf et Tsup
               
                if (Temperature * 10.0 > Tinf[i] && Temperature * 10.0 > Tsup[i]) Tseuil = Tinf[i];
               
                if (Temperature * 10.0 < Tinf[i] && Temperature  * 10.0 < Tsup[i])Tseuil = Tsup[i];
                     
                if (Temperature * 10.0 > Tseuil) { ConditionsOk = false; }
              }
              else {
                if (Tinf[i] <= 1000 && int(Temperature * 10.0) > Tinf[i]) { ConditionsOk = false; }
                if (Tsup[i] <= 1000 && int(Temperature * 10.0) < Tsup[i]) { ConditionsOk = false; }
              }
      }

J'ai laissé en commentaire le code d'origine.

Voilà c'est tout ce qu'il y a à faire.

Si André pense que s'est utile il pourra peut-être rajouter cet hystérésis sur la température dans la version 13

Cdlt F6AAM Jean-Claude
Routeur Solaire V12.6 Modifié pour 2 modules JSY-194-MT (affichage puissances onduleurs)
Ballon 1800W commandé par Triac + relais fil pilote mode ECO radiateurs
1 ESP32 déporté pour mesure température extérieure.
1 onduleur SMA 1050Wc - 1 onduleur SOLAX Hybride 6200Wc - 2 Batteries de 5.8 kWh 
 

Répondre


Atteindre :


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