Bonjour,

Je souhaite calculer la valeur Cd (en fait par interpolation) , et donc je définis la fonction Calcul_Cd comme ci-dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
import numpy
 
 
'Calcul de de Cl à la masse donnee, et à l altitude donnee en pieds:'
 
def Calcul_Cl(m,z):
    g = 9.81
    M= 0.80
    'Calcul de l altitude en metres:'
    Z = z * 0.3048
    'Calcul de la pression atmospherique en fonction de l altitude'
    P = 1013.25 * ( 1 - 0.0065 * Z / 288.15) ** 5.255
    S = 122
    Cl_calcule = m * g / (0.7 * M * P * S)
    return Cl_calcule
 
 
print Calcul_Cl(300, 28000)
 
'Calcul de Cd au Cl obtenu:on remarque que le Cd varie très peu avec l altitude'
 
Cd_estime_03 = [0.30000000011809469, 0.30000000000669508, 0.29999999994176058, 0.29999999992405341, 0.29999999995434001, 0.30000000009642647]
Cd_estime_04 = [0.400000000111635, 0.39999999998390268, 0.39999999991430868, 0.39999999989260837, 0.39999999993067226, 0.40000000008888037]
Cd_estime_05 = [0.50000000033188807, 0.49999999997029515, 0.49999999977881926, 0.49999999973033582, 0.4999999998561484, 0.50000000034040726]
Cd_estime_06 = [0.60000000023402666, 0.59999999997859921, 0.59999999983337593, 0.59999999979954355, 0.59999999988904773, 0.60000000022203293]
Cd_estime_07 = [0.70000000060984957, 0.69999999994922579, 0.69999999957577963, 0.69999999949208214, 0.69999999972894267, 0.70000000059845613]
Cd_estime_08 = [0.80000000039923314, 0.79999999997470916, 0.79999999974954816, 0.79999999969064783, 0.79999999983392978, 0.80000000038927588]
Cd_estime_09 = [0.90000000052930407, 0.89999999997581048, 0.89999999966170541, 0.89999999959289489, 0.89999999978082668, 0.90000000049493944]
Cd_estime_091 = [0.91659000006080116, 0.91658999999955737, 0.91658999996438362, 0.91658999995544022, 0.9165899999753282, 0.9165900000516366]
 
 
'Calcul de Cd par interpolation:'
 
def Calcul_Cd (Cl):
    if Cl in numpy.arange(0.3,0.4):
        Cd_calcule = Cd_estime_03[1] + (Cl - 0.3) * (Cd_estime_04[1] - Cd_estime_03[1]) / (0.4-0.3)
    elif Cl in numpy.arange(0.4,0.5):
        Cd_calcule = Cd_estime_04[1] + (Cl - 0.4) * (Cd_estime_05[1] - Cd_estime_04[1]) / (0.5-0.4)
    elif Cl in numpy.arange(0.5,0.6):
        Cd_calcule = Cd_estime_05[1] + (Cl - 0.5) * (Cd_estime_06[1] - Cd_estime_05[1]) / 0.1
    elif Cl in numpy.arange(0.6,0.7):
        Cd_calcule = Cd_estime_06[1] + (Cl - 0.6) * (Cd_estime_07[1] - Cd_estime_06[1]) / 0.1
    elif Cl in numpy.arange(0.7,0.8):
        Cd_calcule = Cd_estime_07[1] + (Cl - 0.7) * (Cd_estime_08[1] - Cd_estime_07[1]) / 0.1
    elif Cl in numpy.arange(0.8,0.9):
        Cd_calcule = Cd_estime_08[1] + (Cl - 0.8) * (Cd_estime_09[1] - Cd_estime_08[1]) / 0.1
    elif Cl in numpy.arange(0.9,0.91):
        Cd_calcule = Cd_estime_09[1] + (Cl - 0.9) * (Cd_estime_091[1] - Cd_estime_09[1]) / 0.1
    return Cd_calcule
 
print Calcul_Cd(0.33)
Mais je reçois le message d'erreurs suivant: (étonnant puisque la première fonction fonctionne bien..)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
0.130779037427
 
Traceback (most recent call last):
  File "C:/Users/Mathilde/Desktop/Python/Calcul_Conso.py", line 85, in <module>
    print Calcul_Cd(0.33)
  File "C:/Users/Mathilde/Desktop/Python/Calcul_Conso.py", line 83, in Calcul_Cd
    return Cd_calcule
UnboundLocalError: local variable 'Cd_calcule' referenced before assignment