Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Fonction hystérésis sur commande 0N
#3
(10-08-2025, 07:27 AM)59jag a écrit : j ai regardé  oui l'hystérésis ne fonctionne pas en mode "ON" car elle ne peut que désactiver une action, jamais l'activer.
si tu veux corriger va dans action.cpp
recherche

if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) {  // hystérésis
  if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i];
  if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i];
  if (Tempx10 > Tseuil) { ConditionsOk = false; }
}

modifi  a la fin par

if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) {
  if (Tempx10 > Tinf[i] && Tempx10 > Tsup[i]) Tseuil = Tinf[i];
  if (Tempx10 < Tinf[i] && Tempx10 < Tsup[i]) Tseuil = Tsup[i];
  if (Tempx10 > Tseuil) { ConditionsOk = false; }
  if (Tempx10 < Tseuil) { ConditionsOk = true; }
}

Si je peux me permettre, ce code pourrait être simplifié: 

if (Tinf[i] < 1500 && Tsup[i] < 1500 && Tinf[i] < Tsup[i]) {
    if (Tempx10 > Tsup[i]) Tseuil = Tinf[i];
    if (Tempx10 < Tinf[i]) Tseuil = Tsup[i];
    ConditionsOk = Tempx10 < Tseuil;
}



Cette version conserve la même logique que l'original mais est plus lisible et efficace (en toute rigueur, on a un fonctionnement différent si Tempx10 == Tseuil, mais je pense que le nouveau fonctionnement est bien celui attendu)
Répondre


Messages dans ce sujet
Fonction hystérésis sur commande 0N - par BrunoM - 09-08-2025, 08:19 AM
RE: Fonction hystérésis sur commande 0N - par FastFrench - 12-08-2025, 10:55 AM

Atteindre :


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