La serre est constituée d'une vitre horizontale. L'air est confiné entre la vitre et le sol. Soit Φ le flux solaire incident, constitué de 3 pour cent d'UV, 42 pour cent de visible et 55 d'infrarouge proche (λ < 2.5 μm). Ce flux est variable suivant la saison, le moment de la journée, et l'orientation de la vitre. On adoptera la valeur conventionnelle Φ = 600 W/m2. Une fraction d'environ t = 0.80 de ce flux incident est transmise par la vitre et parvient au sol, le reste étant réfléchi ou absorbé (a = 0.15) par le verre. Le sol sera assimilé à un corps noir; il absorbe donc entièrement ce rayonnement. Le rayonnement thermique du sol est situé dans l'infrarouge lointain, avec un maximum aux environs de 10 μm. On considère que le verre absorbe complètement ce rayonnement. Le rayonnement thermique provenant de l'extérieur est aussi entièrement absorbé par le verre.
La température du milieu extérieur est Te = 293 K. Soient Ts la température du sol, Ta la température moyenne de l'air à l'intérieur de la serre, et Tv la température de la vitre. Celle-ci est supposée uniforme à travers l'épaisseur de la vitre car la résistance thermique de conduction (pour une vitre simple) est faible comparée aux résistances thermiques de convection. Le coefficient d'échange convectif entre la vitre et l'extérieur est he = 14 W/m2/K, à l'intérieur hi = 6 W/m2/K. On définit également le coefficient d'échange convectif entre le sol et l'air hs = 10 W/m2/K.
Figure pleine pageLa puissance surfacique de rayonnement thermique du sol est donnée par la loi de Stefan-Boltzmann des corps noirs :
De même, le rayonnement thermique du verre est
et celui de l'extérieur :
À l'état stationnaire, le bilan thermique pour le sol, l'air et la vitre s'écrit :
Pour résoudre ce système d'équations non linéaires, on peut utiliser la méthode de Newton. Pour cela, on part d'une estimation des températures du sol et du verre Tso et Tvo puis on linéarise en écrivant :
Ceci donne le système linéaire suivant
La fonction suivante effectue la résolution de ce système
import numpy import numpy.linalg def solution(Ts,Ta,Tv,Te,phi,a,t,he,hi,hs): sigma = 5.67e-8 A=numpy.zeros((3,3)) B=numpy.zeros(3) A[0,0] = 4*sigma*Ts**3+hs A[0,1] = -hs A[0,2] = -4*sigma*Tv**3 A[1,0] = hs A[1,1] = -hs-hi A[1,2] = hi A[2,0] = 4*sigma*Ts**3 A[2,1] = hi A[2,2] = -(hi+8*sigma*Tv**3+he) B[0] = t*phi-3*sigma*Tv**4+3*sigma*Ts**4 B[1] = 0 B[2] = -a*phi-he*Te+3*sigma*Ts**4-6*sigma*Tv**4-sigma*Te**4 x = numpy.linalg.solve(A,B) return (x[0],x[1],x[2])
Voici un exemple
Tv=293 Ts=293 Ta=293 Te=293 phi=300 a=0.3 t=0.7 he=50 hi=10 hs=10 for i in range(10): (Ts,Ta,Tv) = solution(Ts,Ta,Tv,Te,phi,a,t,he,hi,hs)
print([Ts-273,Ta-273,Tv-273]) --> [43.48088656751753, 34.42555300140782, 25.370219435298054]