Traçage de courbes sur python

Messages : 0

Inscription : 20 avr. 2018 22:29

Profil de l'utilisateur : Élève de lycée

Traçage de courbes sur python

Message par momo77 » 05 juin 2018 19:13

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.

Messages : 0

Inscription : 16 févr. 2017 19:16

Profil de l'utilisateur : Élève de lycée

Re: Traçage de courbes sur python

Message par Lily1998 » 05 juin 2018 21:12

Tu connais matplotlib ?

Messages : 0

Inscription : 20 avr. 2018 22:29

Profil de l'utilisateur : Élève de lycée

Re: Traçage de courbes sur python

Message par momo77 » 05 juin 2018 21:35

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.

Messages : 0

Inscription : 09 janv. 2016 09:12

Profil de l'utilisateur : Élève de lycée

Re: Traçage de courbes sur python

Message par Néodyme » 06 juin 2018 07:03

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()

Messages : 0

Inscription : 20 avr. 2018 22:29

Profil de l'utilisateur : Élève de lycée

Re: Traçage de courbes sur python

Message par momo77 » 07 juin 2018 00:09

Néodyme a écrit :
06 juin 2018 07:03
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'

Messages : 0

Inscription : 16 févr. 2017 19:16

Profil de l'utilisateur : Élève de lycée

Re: Traçage de courbes sur python

Message par Lily1998 » 07 juin 2018 06:52

Essaye de l'installer d'abord

Répondre