Code Hystérésis en C
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Code Hystérésis en C



  1. #1
    RATAXES64

    Code Hystérésis en C


    ------

    Bonjour à toutes et tous,
    Je termine un régulateur climatique pour ma chaudière.
    Je souhaite prendre en compte des valeurs d'hystérésis (HYS-int et HYS_eau) pour les températures mesurées (Ambiance : INT_mes et Chaudière : EAU_mes) lors d'une reprise de la chauffe, mais pas en arrêt de la chauffe, et j'ai un doute : Cet extrait du code vous parait-il correct ?
    Code:
    // Traitement du besoin de chauffe avec hystérésis de reprie:
    // INT_mes : température Intérieure mesurée
    // EAU_mes : température Eau Chaudière mesurée
    // INT_cbl : température Intérieure cible
    // EAU_cbl : température Eau Chaudière cible 
    
    // Reprise de Chauffe avec hystérésis (HYS_int et HYS_eau)
    if ((INT_mes < INT_cbl-HYS_int) && (EAU_mes < EAU_cbl-HYS_eau))
    {   
    	// Il faut Chauffer...
    	if (Bruleur==0) __delay_xSec(7);    // Latence (+7s ajoutées au temps de boucle de 3s)
    	Bruleur=1; // Sortie de commande du Brûleur = ON
    }
    
    // Arrêt de Chauffe sans hystérésis
    // Hystérésis non retenu en arrêt : if ((INT_mes >= INT_cbl + HYS_int)||(EAU_mes>= EAU_cbl + HYS_eau ))
    else if ((INT_mes>=INT_cbl) || (EAU_mes>=EAU_cbl))
    {   
    	// Arrêt de la Chauffe...
    	if (Bruleur==1) __delay_xSec(7);    // Latence (+7s ajoutées au temps de boucle de 3s)        
    	Bruleur=0; // Sortie de commande du Brûleur = OFF
    }
    Merci.

    -----

  2. #2
    polo974

    Re : Code Hystérésis en C

    Bonjour,
    tu mets tout ton hystérésis en-dessous de la valeur cible.
    donc en moyenne, tu vas te retrouver avec une température inférieure d'un demi-hystérésis à la température cible.


    donc, soit tu divises globalement tes hystérésis par 2 et tu l'ajoutes dans le else if.

    soit tu ajoutes globalement un demi hystérésis au températures cibles.

    soit carrément, tu calcules hors de la boucle les températures hautes et basses, ce qui te permet d'économiser des opérations dans la boucle.
    Jusqu'ici tout va bien...

  3. #3
    RATAXES64

    Re : Code Hystérésis en C

    Merci du retour,
    Oui, je sais bien qu'en principe je devrais en moyenne me retrouver avec une température inférieure d'un demi-hystérésis à la température cible. Mais, c'est voulu.
    Mon doute concerne le code :
    Dois-je aussi traiter la situation où l'on est "entre" les seuils bas et haut d'hystérésis, qui ont été franchis ou non ? ou le if / else if est suffisant ?

  4. #4
    polo974

    Re : Code Hystérésis en C

    Citation Envoyé par RATAXES64 Voir le message
    Merci du retour,
    Oui, je sais bien qu'en principe je devrais en moyenne me retrouver avec une température inférieure d'un demi-hystérésis à la température cible. Mais, c'est voulu.
    Mon doute concerne le code :
    Dois-je aussi traiter la situation où l'on est "entre" les seuils bas et haut d'hystérésis, qui ont été franchis ou non ? ou le if / else if est suffisant ?
    Non, quand on dans la zone d'hystérésis, on ne bouge pas, c'est le principe même. Donc oui, l'existant est suffisant.

    Un dernier else permettrait de repositionner le choix courant, ce qui permettrait aussi d'avoir une sécurité genre l'ordre périodique arme un monostable qui coupe au bout de disons 15s, et donc si la boucle s’arrête, la chaudière sera coupée au bout de 15s, sans risque de surchauffe.
    Jusqu'ici tout va bien...

  5. A voir en vidéo sur Futura
  6. #5
    RATAXES64

    [RESOLU] Code Hystérésis en C

    Citation Envoyé par polo974 Voir le message
    Donc oui, l'existant est suffisant.
    Merci de cette confirmation ; Je laisse donc tel quel.

Discussions similaires

  1. [Programmation] Hystérésis
    Par invite06839ce8 dans le forum Électronique
    Réponses: 0
    Dernier message: 25/11/2020, 10h50
  2. Seuillage par hystérésis (hysteresis thresholding) dans le détecteur de Canny
    Par invite2ec0a62b dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 11/10/2014, 18h44
  3. Hystérésis
    Par invite7d728e29 dans le forum Physique
    Réponses: 6
    Dernier message: 08/09/2013, 16h57
  4. Un langage codé léger, 2 caractères non codé=1 caractère codé. Une solution?
    Par invite06e0b926 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 30/06/2010, 11h02
  5. hysteresis
    Par inviteb015abc4 dans le forum Physique
    Réponses: 3
    Dernier message: 17/04/2009, 23h53