temperature[canal] avec canal entre 0 et 3, cela représente les 4 sources de température possibles (localement ou via le réseau).
C'est dans les paramètres qu'on spécifie les canaux de température.
Je vois 3 températures dans votre fonction calculTempEau(), vous avez donc 3 sondes?
Si c'est le cas, chaque température va être associée à un canal. Par exemple:
temp_depart c'est temperature[0]
temp_retour c'est temperature[1]
temp_ext c'est temperature[2]
temperature_ambiance c'est temperature[3]
Je devine que temp_retour_preco est la sortie du calcul de loi d'eau, comment doit-elle agir sur votre système?
On pourrait par exemple substituer temp_retour (donc temperature[1]) avec cette valeur calculée, ce qui permettrait de contrôler le SSR sur ce résultat.
...
} else {
TemperatureValide[canal] = 5;
temperature[canal] = temperature_brute;
if (canal == 3) temperature[1] = calculTempEau(temperature[0], temperature[1], temperature[2], temperature[3]); // on remplace temp_retour par une nouvelle valeur calculée
}
...
avec:
float calculTempEau(float temp_depart , float temp_retour , float temp_ext, float temperature_ambiance )
{
// float decalage_parallele = ??;
// float pente=??;
float A, temp_retour_preco;
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 + decalage_parallele ;
}
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 + decalage_parallele ;
}
return temp_retour_preco;
}
C'est dans les paramètres qu'on spécifie les canaux de température.
Je vois 3 températures dans votre fonction calculTempEau(), vous avez donc 3 sondes?
Si c'est le cas, chaque température va être associée à un canal. Par exemple:
temp_depart c'est temperature[0]
temp_retour c'est temperature[1]
temp_ext c'est temperature[2]
temperature_ambiance c'est temperature[3]
Je devine que temp_retour_preco est la sortie du calcul de loi d'eau, comment doit-elle agir sur votre système?
On pourrait par exemple substituer temp_retour (donc temperature[1]) avec cette valeur calculée, ce qui permettrait de contrôler le SSR sur ce résultat.
...
} else {
TemperatureValide[canal] = 5;
temperature[canal] = temperature_brute;
if (canal == 3) temperature[1] = calculTempEau(temperature[0], temperature[1], temperature[2], temperature[3]); // on remplace temp_retour par une nouvelle valeur calculée
}
...
avec:
float calculTempEau(float temp_depart , float temp_retour , float temp_ext, float temperature_ambiance )
{
// float decalage_parallele = ??;
// float pente=??;
float A, temp_retour_preco;
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 + decalage_parallele ;
}
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 + decalage_parallele ;
}
return temp_retour_preco;
}