Micro-Info - Commande d'une vanne à 3 voies pour un optimiseur simplifié. ========================================================================= Revu le 23/02/2012 pour mieux distinguer les 5 états. Utilisation de la logique floue. -------------------------------- Le but est de régler l'ouverture de la vanne à 3 voies afin que la température de l'eau envoyée vers les radiateurs corresponde à la température calculée par l'optimiseur avec un hystérésis choisi (HysEau). 1) - Si TeauM < TeauC, Ecart = TeauC - TeauM. Si Ecart est > que ( HysEau + 1 ) = "Très Froid". La commande de la vanne à 3 voies est égale à deux unités de durée, donc ( CdeVanne = 2 sur Relais2 ). La valeur de CdeVanne est à expérimenter suivant le type de vanne. Prenons par exemple 1 unité = 1 seconde). 2) - Si TeauM < TeauC, Ecart = TeauC - TeauM. Si Ecart est < que ( HysEau + 1 ) = "Froid". La commande de la vanne à 3 voies est égale à une unité de durée, donc ( CdeVanne = 1 sur Relais2 ). 3) - Si TeauM - TeauC <= HysEau OU Si TeauC - TeauM <= HysEau, nous avons Ecart <= HysEau = "BON". Si l'écart (Ecart) entre la température d'eau calculée (TeauC) et la température de l'eau mesurée (TeauM) à la sortie de la vanne à 3 voies est dans la tranche de l'hystérésis (HysEau), on ne fait rien. Cela correspond à une position correcte de la vanne, donc ( CdeVanne = 0 pas d'action sur les relais). 4) - Si TeauC < TeauM, Ecart = TeauM - TeauC. Si Ecart est < que ( HysEau + 1 ) = "Chaud". La commande de la vanne à 3 voies est égale à une unité de durée, donc ( CdeVanne = 1 sur Relais3 ). 5) - Si TeauC < TeauM, Ecart = TeauM - TeauC. Si Ecart est > que ( HysEau + 1 ) = "Très Chaud". La commande de la vanne à 3 voies est égale à deux unités de durée, donc ( CdeVanne = 2 sur Relais3 ). Exemple: HysEau = 2°C en plus ou en moins de ( TeauC ) la température calculée, TeauC = 65°C et TeauM = 61°C donc nous avons un écart de 65 - 61 = 4°C et qui de plus est > que HysEau + 1, donc nous devons commander l'ouverture de la vanne ( Relais2 = On ) pour 2 secondes suivant le cas repris en 1). Maintenant, prenons TeauM = 67,5°C et TeauC = 65°C, cela nous donne un écart de 67,5 - 65 = 2,5°C = "Froid", dans ce cas ( Relais3 = On pour 1 seconde ) comme dans le cas repris en 4). Mettons cela en programmation structurée. ----------------------------------------- Rem: A incorporer dans la struturée de l'Optimiseur simplifié après validation par le club M-I. A adapter pour travailler en millième de degré. DECLARE Ecart AS Integer Base de temps par Interruptions (TempoOld) et remise à zéro de CdeVanneOld après le temps écoulé. Logique_Floue ------------- Description: Contrôle la durée de la commande de la vanne à 3 voies Variables d'entrées : TeauC, TeauM, HysEau Variables de sorties : CdeVanne, Relais2, Relais3, TempoOld Variables de travail : CdeVanneOld Sous-routine appellée : Aucune SUB Logique_Floue LET Ecart = 0 ' Initialisation de Ecart IF CdeVanneOld = 0 THEN ' En attente de changement de valeur IF TeauC > TeauM THEN ' TeauC est > TeauM = Zone LET Ecart = TeauC - TeauM ' Calcul de la différence de température IF Ecart <= HysEau THEN ' Différence température <= HysEau LET CdeVanne = 0 ' Pas d'action sur la vanne LET Relais2 = 0 ' Vanne bien positionnée LET Relais3 = 0 ' Vanne bien positionnée ELSE IF Ecart <= HysEau + 1 THEN ' Différence température <= HysEau + 1 LET CdeVanne = 1 ' Courte action sur la vanne LET Relais2 = 1 ' Commande Ouverture et Led2 rouge LET Relais3 = 0 ' Seul 1 relais peut être activé ELSE IF Ecart > HysEau + 1 THEN ' Différence température > HysEau + 1 LET CdeVanne = 2 ' Temps d'action doublé sur la vanne LET Relais2 = 1 ' Commande Ouverture et Led2 rouge LET Relais3 = 0 ' Seul 1 relais peut être activé ENDIF ENDIF ENDIF ELSE ' TeauC est < TeauM = Zone LET Ecart = TeauM - TeauC ' Calcul de la différence de température IF Ecart <= HysEau THEN ' Différence température <= HysEau LET CdeVanne = 0 ' Pas d'action sur la vanne LET Relais2 = 0 ' Vanne bien positionnée LET Relais3 = 0 ' Vanne bien positionnée ELSE IF Ecart <= HysEau + 1 THEN ' Différence température <= HysEau + 1 LET CdeVanne = 1 ' Courte action sur la vanne LET Relais2 = 0 ' Seul 1 relais peut être activé LET Relais3 = 1 ' Commande Fermeture et Led3 rouge ELSE IF Ecart > HysEau + 1 THEN ' Différence température > HysEau + 1 LET CdeVanne = 2 ' Temps d'action doublé sur la vanne LET Relais2 = 0 ' Seul 1 relais peut être activé LET Relais3 = 1 ' Commande Fermeture et Led3 rouge ENDIF ENDIF ENDIF ENDIF LET TempoOld = TempoOld * CdeVanne ' Transfert de la durée d'action, base ' de temps * valeur de CdeVanne LET CdeVanneOld = 1 ' Variable de travail ENDIF ENDSUB ' Retour à la routine principale *******************************************************************************