Traçage de courbes sur python

Modérateur : Michel Quercia

Répondre
momo77
Messages : 24
Enregistré le : ven. avr. 20, 2018 10:29 pm
Classe : MP

Traçage de courbes sur python

Message par momo77 » mar. juin 05, 2018 7:13 pm

Bonjour,
J'aimerais tracer quelques courbes en thermodynamique sur python notamment le diagramme P-T de l'eau.
QQ a-t-il une idée sur les scripts?
Merci.

Lily1998
Messages : 266
Enregistré le : jeu. févr. 16, 2017 8:16 pm
Classe : PC*

Re: Traçage de courbes sur python

Message par Lily1998 » mar. juin 05, 2018 9:12 pm

Tu connais matplotlib ?

momo77
Messages : 24
Enregistré le : ven. avr. 20, 2018 10:29 pm
Classe : MP

Re: Traçage de courbes sur python

Message par momo77 » mar. juin 05, 2018 9:35 pm

Oui. Je sais comment tracer des courbes sur python. Je demande si quelqu'un a un script pour dessiner le diagramme P-T de l'eau ou au moins des données relatives à la pression et température de l'eau.

Avatar du membre
Néodyme
Messages : 285
Enregistré le : sam. janv. 09, 2016 10:12 am
Classe : prof physique

Re: Traçage de courbes sur python

Message par Néodyme » mer. juin 06, 2018 7:03 am

Il y a le module CoolProp, mais ce n'est pas évident à prendre en main.

Par exemple pour tracer un diagramme p-T de l'eau (ça vient de leur site je crois) :

Code : Tout sélectionner

import matplotlib
import numpy as np
import CoolProp as CP
import matplotlib.pyplot as plt
import scipy.interpolate

Water = CP.AbstractState("HEOS", "Water")
pc = Water.keyed_output(CP.iP_critical)
Tc = Water.keyed_output(CP.iT_critical)
Tmin = 200
Tmax = 1000
pmax = Water.keyed_output(CP.iP_max)
pt = 611.657
Tt = 273.16
fillcolor = 'g'

fig = plt.figure()
ax = fig.add_subplot(111)
lw = 3

# --------------
# Melting curve
# --------------
melt_args = dict(lw = lw, solid_capstyle = 'round')
TT = []
PP = list(np.logspace(np.log10(pt), np.log10(pmax),1000))
for p in PP:
    TT.append(Water.melting_line(CP.iT, CP.iP, p))

#Zone VI
for T in np.linspace(max(TT), 355):
    TT.append(T)
    theta = T/273.31
    pi = 1-1.07476*(1-theta**4.6)
    p = pi*632.4e6
    PP.append(p)

plt.plot(np.array(TT)-273.15,PP,'darkblue',**melt_args)

# ----------------
# Saturation curve
# ----------------
Ts = np.linspace(273.16, Tc, 1000)
ps = CP.CoolProp.PropsSI('P','T',Ts,'Q',0,'Water')

# ------
# Labels
# ------

plt.plot(Ts-273.15,ps,'orange',lw = lw, solid_capstyle = 'round')

# Critical lines
plt.axvline(Tc-273.15, dashes = [2, 2])
plt.axhline(pc, dashes = [2, 2])

# Labels
plt.text(850-273.15, 1e8, 'supercritical',ha= 'center')
# plt.text(850-273.15, 1e5, 'supercritical_gas', rotation = 90)
# plt.text(450-273.15, 1e8, 'supercritical_liquid', rotation = 0, ha = 'center')
plt.text(350-273.15, 3e6, 'liquid', rotation = 45)
plt.text(450-273.15, 5e4, 'gas', rotation = 45)

plt.ylim(611,1e9)
plt.gca().set_yscale('log')
plt.gca().set_xlim(240-273.15, 1000-273.15)
plt.ylabel(u'Pressure [Pa]')
plt.xlabel(u'Temperature [°C]')
plt.xticks(np.arange(0.,1000.,50.))
plt.tight_layout()
plt.grid()
plt.show()

momo77
Messages : 24
Enregistré le : ven. avr. 20, 2018 10:29 pm
Classe : MP

Re: Traçage de courbes sur python

Message par momo77 » jeu. juin 07, 2018 12:09 am

Néodyme a écrit :
mer. juin 06, 2018 7:03 am
Il y a le module CoolProp, mais ce n'est pas évident à prendre en main.
On m'affiche lors de l’exécution:
ImportError: No module named 'CoolProp'

Lily1998
Messages : 266
Enregistré le : jeu. févr. 16, 2017 8:16 pm
Classe : PC*

Re: Traçage de courbes sur python

Message par Lily1998 » jeu. juin 07, 2018 6:52 am

Essaye de l'installer d'abord

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités