regulation de chauffage

bonjour a tous
je travail sur une regulation a base de loi d eau Comment régler / optimiser une courbe de chauffe | ELYOTHERM

pour ca j ai commander :
un arduino nano
un ecran lcd 2 lignes
des sondes ds18b20
des relais

pour l instant j ai les differentes temperature qui s affiche (depart ,retour,ambiance,exterieur
pour la formule de calcul de la temperature en fonction de la temp exterieur:
T° eau = 1.5 x (T° intérieure demandée - T° extérieure) + 23

pas trop compliquer sauf quand la temperature va passer en dessous des 0° il va y avoir T° eau = 1.5 x (21 - -1) + 23
le calcul ne va pas pouvoir se faire car il y aura - -
quelqu un peux me dir comment je peux faire

Bonjour,

Tu prends ta calculatrice et tu calcules 21 - -1. Ca fait combien? -> réponse 22.
Tu vois qu'il n'y a pas de problème pour soustraire des nombres négatifs.

desolé
je l ai fais avec la calculatrice de l ordinateur et moi je trouve 21

au pire tu met entre parenthese...

(21-(-1))+23

au pire, si la temperature est inferieur a 0°C, tu changes de signe...
il faut que tu fasse une condition qui teste si le nombre est inferieur a zéro ou supérieur.

if (temp =>0)
{
action a faire ......... ton calcul
}
else

action a faire...... un autre calcul

ledouble:
desolé
je l ai fais avec la calculatrice de l ordinateur et moi je trouve 21

Ben je te conseille de réessayer

hazerty565:
au pire tu met entre parenthese...

(21-(-1))+23

au pire, si la temperature est inferieur a 0°C, tu changes de signe...
il faut que tu fasse une condition qui teste si le nombre est inferieur a zéro ou supérieur.

if (temp =>0)
{
action a faire ......... ton calcul
}
else

action a faire...... un autre calcul

merci
c est bon avec 21-(-1)+23
je peux continuer mon programme
bonne soirée

bonjour
je travail a nouveau sur ma regulation et j ai plutot bien avancé
il me reste la partie calcul de la temperature de retour d eau (je trouve pas le meme resultat que sur la regulation actuel)

Bonjour

De quel 'calcul de le température de retour' s'agit il ?

Cette température depend , entre autres, des déperditions du bâti
On constate , on mesure cette température de retour, on ne la calcule pas.
Elle est comme la température d'ambiance un résultat de la régulation.

D'autre part si tu appliques dans ton montage telle quelle la loi d'eau de ton régulateur il est fort probable que la température d'ambiance diffère de la température ectuelle

La page web elyotherm simplifie les choses.
'1) La température injectée' dans la loi d'eau n'est pas (en général) la température extérieure de l'instant présent mais une 'température extérieure lissée' tenant compte des valeurs du passé plus ou moins proche. Ton régulateur a peut être un réglage de 'constante de temps du bâti qui set à ce lissage.

Ce traitement de la température extérieure ''avant emploi' est plus ou moins important selon les régulateurs
Dans les RVL (Siemmens et auparavant Landis & Gyr) il dépend de la mise en service ou pas du mode ECO

2)Par ailleurs la loi d'eau 'visible' sur le régulateur est, peut être, modifiée par de parametres moins visibles (décalages...) ce qui fait que la loi d'eau réelle résultante n'est pas toujours celle qu'on croit.

Quel régulateur cherches-tu à remplacer ?
Sa loi d''eau est elle définie par une droite , ou comme cela se fait de plus en plus par plusieurs segments de droite ?
Tu es bien en 'boucle ouverte' (sans sonde d'ambiance) ?
Tu agis sur une vanne 2 voies ? 3 voies ? avec ou sans servomoteur ?

J' ai une régulation actuellement qui fonctionne en loi d eau ,en fonction de la température extérieure elle te calcul une température de retour.

Quelle est la référence exacte du régulateur ?
Un examen de sa notice monterait peut être quelques subtilités non décrites dans la page citée au message précédent.

Pour moi un loi d’eau se peaufine progressivement en observant le résultat pour des températures extérieures bien différentes sur une saison de chauffe. Les calculs sont trop simplificateurs.

Ceci dit mon expérience est limitée aux Réseaux de Chaleur , aux sous-stations et aux installations en boucle ouverte (sans sondes d’ambiance).
Les lois d’eau y sont ajustées sur plusieurs saissons de chauffe.
En cas de rempalcement de régulateur le chauffagiste reporte l’ancienne loi d’eau
En cas de nouvelle installation le chauffagiste laisse le réglage d’usine ou au besoin applique ce que l’expérience lui indique dans le secteur pour un bâti analogue en terme de déperditions.
Jamais de calcul sauf si le Bureau d’Etudes ayant dimensionné l’installation indique la loi d’eau (jamais vu, il s’en remet à lexpérience de celui qui conduira l’installation !!)

Bonjour,

On peut très bien réguler la température ambiante à partir de la mesure de la température de retour et la température extérieure, seule la pente est différente.

Le seul (?) problème de ce type de régulation, c'est que l'on considère que la résistance thermique du bâtiment responsable des pertes de chaleur est constante.
Le réglage d'une pente fixe en découle.
Hors si il pleut, si il y a du vent, les pertes augmentent et la pente est trop faible et la température ambiante va baisser.

Il faut donc recalculer la pente en temps réel.

La régulation c est celle ci
http://www.chaleurterre.com/forum/viewtopic.php?t=13248

OK, je vois
Relativiser alors ce que j'ai ecrit au message #7, fortement inspiré du chauffage collectif (par le sol ou pas) en Réseau de Chaleur pour des bâtiments très souvent sans sonde d'ambiance (boucle ouverte).
La loi ('d'eau' ou 'de chauffe') déterminant la consigne de température départ par seule température extérieure. Içi c'est la température de départ qu'on asservit

la fomule

pente =(temp eau de retour - temp ambiante)/(temp ambiante - temp exterieure) je trouve pente 0.20

temp eau de retour = (temp ambiante + temp exterieure ) x pente + temp ambiante je trouve :

pour -15 temp retour = 22.2 et pour 15 temp retour =28.2
sur image ci jointe ont voit l inverse sur ma regulation :fearful:

Y a comme un défaut.
Plus il fait chaud dehors, plus tu chauffe.

ce que j'ai dans ma propre regul de chauffage c'est :
formule de base : Teau= -pente * Text + b

on connait un point de la courbe : (TeauNonChauffage,TextNonChauffage) donc on a :

TeauNonChauffage = -pente * TextNonChauffage + b

donc b = TeauNonChauffage + pente * TextNonChauffage

donc la formule est alors :

Teau = -pente * Text + TeauNonChauffage + pente * TextNonChauffage

ou encore

Teau = pente * ( TextNonChauffage - Text ) + TeauNonChauffage

avec donc trois paramètres à ajuster selon le bâtiment et la météo : TextNonChauffage la température extérieure à partir de laquelle il ne faut plus chauffer, TeauNonChauffage la température d'eau qui ne provoque plus de chauffage (probablement égale à la consigne de chauffage, à vérifier...)

Ensuite pour prendre en compte la température intérieure réelle, j'ai : c*(Tint - TconsigneInt), avec donc deux paramètres de plus : la consigne de température intérieure, et un coefficient de correction c

donc le calcul final est fait en deux passes :

Teau = pente * ( TextNonChauffage - Text ) + TeauNonChauffage
Teau = Teau + c * (Tint - TconsigneInt)

Si on considère que TeauNonChauffage = TconsigneInt, on peut supprimer un paramètre

salut et merci
je pense avoir trouver je trouve comme sur ma regulation actuel
j ai pas testé

void calculTempEau() 
{
temp_ext = sensors.getTempC(TEMP_ext);
                                                                                        
     if(TEMP_ext > 0 )
     {
      A=((temperature_ambiance-(temp_ext))*pente)+temperature_ambiance;      // T° eau= (T°ambiante + T°extérieure) × pente + T° ambiante  
     
      temp_retour_preco = A + parallele ;
          Serial.print("temperature retour a atteindre= ");
          Serial.print("temperature positive= ");
          Serial.println(A);
          Serial.println(temp_retour_preco);
     }
    else                                                                                  // formule si temp  negatif
     {
          A=((temperature_ambiance+(temp_ext))*pente)+temperature_ambiance;      // T° eau= (T°ambiante + T°extérieure) × pente + T° ambiante  
  
      temp_retour_preco = A + parallele ;
          Serial.print("temperature retour a atteindre= ");
          Serial.print("temperature negative= ");
          Serial.println(A);
          Serial.println(temp_retour_preco);
     }
}

void demarageAuto()
{
temp_retour = sensors.getTempC(TEMP_retour);
      if (temp_retour > A+hysteresie/2)
      {
  void PacOff();
      }
      if (temp_retour < A-hysteresie/2)
      {
  void PacOn();
      }