1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
from DeperditionCourante import UC
from InputDataParameters import ConditLimite
from InputDataParametersIntermediate import TempLinear, LameDAir2
from ResistanceThermique import ResisUtileIsolant, ResisLameDair, ResisSupInt, ResisSupExt, ResisEnduit, ResisMurSupport
import numpy as np
class Correction(UC):
""" Correction des températures """
def __init__(self,humidite,em,lambdam,epsilon1,epsilonm,ei,epsilon2,lambdaid,Ii,fTi,Tiref,fui,uiref,ee,lambdae,epsilone,ea,Tint,Text,E,v,ui,deltaU2,FRi,FTi,Fui,Rid):
ConditLimite.__init__(self,Tint,Text)
UC.__init__(self,humidite,em,lambdam,epsilon1,epsilonm,ei,epsilon2,lambdaid,Ii,fTi,Tiref,fui,uiref,ee,lambdae,epsilone,ea,Tint,Text,E,v,ui,deltaU2,FRi,FTi,Fui,Rid)
TempLinear.__init__(self,em,lambdam,epsilon1,epsilonm,ei,epsilon2,lambdaid,Ii,fTi,Tiref,fui,uiref,ee,lambdae,epsilone,ea,Tint,Text,E,v,ui,deltaU2)
LameDAir2.__init__(self,em,lambdam,epsilon1,epsilonm,ei,epsilon2,lambdaid,Ii,fTi,Tiref,fui,uiref,ee,lambdae,epsilone,ea,Tint,Text,E,v,ui,deltaU2)
def calcul(self):
# Première Phase de Calcul #
# Calcul des températures initiales, des résistances thermiques et de UC #
TempLinear.calcul(self)
ResisUtileIsolant.calcul(self)
ResisLameDair.calcul(self)
ResisSupInt.calcul(self)
ResisSupExt.calcul(self)
ResisEnduit.calcul(self)
ResisMurSupport.calcul(self)
UC.calcul(self)
self.Q = UC.calcul(self)*(self.Tint-self.Text)
self.Tsec = self.Q*self.Rsext+ self.Text
self.Teic = self.Q*self.Re + self.Tsec
self.T2c = self.Q*self.Riu + self.Teic
self.T1c = self.Q*self.Ra + self.T2c
self.Tsic = self.Q*self.Rm + self.T1c
self.VectEtat2 = np.array([self.Tsec,self.Teic,self.T2c,self.T1c,self.Tsic])
self.Qc = (self.Tint - self.Text)/ResisSupInt.calcul(self)
# Exemple pour le moment #
self.seuil= 0.1
while (((abs(self.VectEtat2[0]-self.VectEtat[4]))>self.seuil)|((abs(self.VectEtat2[0]-self.VectEtat[2]))>self.seuil)|((abs(self.VectEtat2[2]-self.VectEtat[1]))>self.seuil)|((abs(self.VectEtat2[3]-self.VectEtat[0]))>self.seuil)|((abs(self.VectEtat2[4]-self.VectEtat[3]))>self.seuil)|((abs(self.Qc-self.Q))>self.seuil)):
self.VectEtat = self.VectEtat2
TempLinear.calcul(self)
LameDAir2.calcul(self)
ResisUtileIsolant.calcul(self)
ResisLameDair.calcul(self)
ResisSupInt.calcul(self)
ResisSupExt.calcul(self)
ResisEnduit.calcul(self)
ResisMurSupport.calcul(self)
UC.calcul(self)
self.Q = UC.calcul(self)*(self.Tint-self.Text)
self.Tsec = self.Q*self.Rsext + self.Text
self.Teic = self.Q*self.Re + self.Tsec
self.T2c = self.Q*self.Riu + self.Teic
self.T1c = self.Q*self.Ra + self.T2c
self.Tsic = self.Q*self.Rm + self.T1c
self.VectEtat2 = np.array([self.Tsec,self.Teic,self.T2c,self.T1c,self.Tsic])
self.Qc = (self.Tint - self.Text)/ResisSupInt.calcul(self)
return self.VectEtat, self.Riu, self.Ra, self.Rsint, self.Rsext, self.Re, self.Rm, self.Q |
Partager