import numpy as np import matplotlib.pyplot as plt h=150 lamb=16 Text=20 L=0.10 # a calculer précisement... def phi(Lx): #fonction qui retourne le flux évacué par une ailette # de longueur Lx et de longueur caractéristique L = 10 cm dx=2e-3 # intervalle entre deux points Nx=int(Lx/dx) precision = 1e-4 T=np.zeros(Nx) T2=np.zeros(Nx) T[:]=20 T[0]=60 #------------calcul méthode de Jacobi ------------------- emax=1000 # on met une valeur arbitraire > précision k=0 # pour que le while ne stoppe pas tout de suite # les itérations, emax sera l'écart max de # potentiel entre deux itérations while emax>precision: # tant que la précision n'est pas atteinte # on met à zéro au départ pour calculer le max emax=0 # d'écart sur l'ensemble de la grille T2=T.copy() for i in np.arange(1,Nx-1,1): # équation différentielle du second d'ordre (cf cours) discrétisée. # on calcule Ti en fonction de Ti-1, Ti+1 et Text (idem méthode de Jacobi) T2[i]=((T[i+1]+T[i-1])/dx**2+Text/L**2)/(2/dx**2+1/L**2) emax=max(emax,abs(T2[i]-T[i])) # on compare pour trouver # l'écart maximum T2[Nx-1]= (h*Text+lamb/dx*T2[Nx-2])/(h+lamb/dx) # convection à droite # Van Neumann. T=T2.copy() k=k+1 # on compte le nombre d'itérations #--------------------------------------------------------------------------- # flux évacué print(2e-3*0.1*lamb*(T[0]-T[1])) return 2e-3*0.1*lamb*(T[0]-T[1]) # retourne le flux # qui est simplement celui reçu # l'ailette en x=0 de la part du système # que l'on refroidit #---------------------------------------------------------------------------- Long=np.arange(1e-2,20e-2,2e-2) # longueur variable de l'ailette ph=[] for Lx in Long: ph.append(phi(Lx)) # on stoke les diverses valeurs de flux plt.figure(figsize=(10,7)) # on les affiches : la longueur Lx = 2L plt.plot(Long,ph) # semble idéale pour dimensionner plt.xlabel("en m") # l'ailette : min de matière utilisée plt.ylabel("en W") # max de flux évacué atteint... plt.title("Flux évacué en fonction de la longueur de l'ailette") plt.show()