Outils pour utilisateurs

Outils du site


teaching:progappchim:pressions_partielles_systemes_non_ideaux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

teaching:progappchim:pressions_partielles_systemes_non_ideaux [2016/03/04 16:02] (Version actuelle)
villersd créée
Ligne 1: Ligne 1:
 +====== Graphiques des pressions partielles de systèmes non-idéaux ======
 +
 +<​sxh ​ python; title : pressions_partielles_systemes_non_ideaux.py>​
 +#​!/​usr/​bin/​env python
 +# -*- coding: utf-8 -*-
 +"""​
 +Graphiques des pressions partielles de systèmes non-idéaux
 +Basé sur le travail de ML et VM, ba2 chimie 2013-2014
 +"""​
 +
 +import numpy as np
 +import matplotlib.pyplot as plt
 +from Tkinter import*
 +
 +#données
 +R = 0.082                  #cste des gaz parfaits
 +T = 293                    # temperature cste (k)
 +U01 = np.array([343,​330,​328,​313,​308,​295,​290,​284,​275,​274,​263,​262,​254,​252,​250,​246,​242,​241,​233,​232,​227,​225,​217,​207,​180,​124,​121,​110,​103,​86,​73,​62,​0]) #​[0,​1,​2,​3,​4,​5,​6,​7,​8,​9,​10,​11,​12,​13,​14,​15,​16,​17,​18,​19,​20] ​ #potientiel chimique standard, donnee = exemple
 +U02 = np.array([0,​110,​122,​191,​206,​259,​272,​284,​323,​328,​357,​361,​381,​382,​390,​394,​403,​405,​419,​420,​427,​428,​438,​447,​465,​490,​489,​491,​491,​495,​502,​501,​513])
 +a1 = np.array([0,​0.061,​0.071,​0.121,​0.133,​0.185,​0.198,​0.209,​0.275,​0.288,​0.35,​0.356,​0.405,​0.414,​0.447,​0.452,​0.492,​0.498,​0.569,​0.572,​0.612,​0.615,​0.67,​0.72,​0.828,​0.918,​0.923,​0.934,​0.939,​0.954,​0.961,​0.969,​1])#​f represente le rapport des constituants,​ o etant le constituant 1 et p le consituant 2 par ex
 +a2 = np.ones(1)-a1
 +
 +x1 = np.array([0,​0.1891,​0.3851,​0.5945,​0.8243,​1])
 +x2 = np.ones(1)-x1
 +U03 = np.array([80])
 +U04 = np.array([45])
 +
 +def graph1():
 +    U1= (np.log(a1)*R*T)+U01
 +    U2= (np.log(a2)*R*T)+U02
 +    plt.figure(1)
 +    plt.plot(a1,​U1,'​r''​x''​-'​)
 +    plt.plot(a1,​U2,'​g''​o''​-'​)
 +    plt.plot(a1,​ U1+U2,'​b'​)
 +    plt.xlabel ('​fraction molaire des constituants'​)
 +    plt.ylabel ('​pression en mmHg')
 +    plt.title ('​diagramme de l acetone et du CS2')
 +    plt.legend(("​acetone","​CS2","​somme des 2"​),'​best'​)
 +    plt.show()
 +
 +def graph2():
 +    U3= (np.log(x1)*R*T)+U03
 +    U4= (np.log(x2)*R*T)+U04
 +    plt.figure(2)
 +    plt.plot(x2,​U3,'​b''​-'​)
 +    plt.plot(x2,​U4,'​g''​x''​-'​)
 +    plt.plot(x2,​ U3+U4,'​k''​o''​-'​)
 +    plt.xlabel ('​fraction molaire des constituants'​)
 +    plt.ylabel ('​pression en mmHg')
 +    plt.title ('​diagramme du benzene et du toluene'​)
 +    plt.legend(("​benzene","​toluene","​somme des 2"​),'​best'​)
 +    plt.show()
 +
 +def graph3 ():
 +    U1= (np.log(a1)*R*T)+U01
 +    U2= (np.log(a2)*R*T)+U02
 +    U3= (np.log(x1)*R*T)+U03
 +    U4= (np.log(x2)*R*T)+U04
 +    ​
 +    plt.figure(3)
 +
 +    plt.subplot(121)
 +    plt.plot(a1,​U1,'​r''​x''​-'​)
 +    plt.plot(a1,​U2,'​g''​o''​-'​)
 +    plt.plot(a1,​ U1+U2,'​b'​)
 +    plt.xlabel ('​fraction molaire des constituants'​)
 +    plt.ylabel ('​pression en mmHg')
 +    plt.title ('​diagramme de l acetone et du CS2')
 +    plt.legend(("​acetone","​CS2","​somme des 2"​),'​best'​)
 +
 +    plt.subplot(122)
 +    plt.plot(x2,​U3,'​b''​-'​)
 +    plt.plot(x2,​U4,'​y''​x''​-'​)
 +    plt.plot(x2,​ U3+U4,'​k''​o''​-'​)
 +    plt.xlabel ('​fraction molaire des constituants'​)
 +    plt.ylabel ('​pression en mmHg')
 +    plt.title ('​diagramme du benzene et du toluene'​)
 +    plt.legend(("​benzene","​toluene","​somme des 2"​),'​best'​)
 +
 +    plt.show()
 +
 +def abientot ():
 +    print "en esperant vous revoir bientôt !"
 +    fen1.destroy()
 +
 +fen1 = Tk()
 +fen1.title("​diagramme des cas non ideaux et ideaux"​)
 +
 +#création widget
 +
 +Label(fen1, text="​choisissez votre diagramme parmis les propositions ci dessous :", bg="​orange",​ fg="​black"​).grid(row=2,​ column=1,​columnspan=2,​ padx=3, pady=3)
 +Button(fen1,​ text="​acetone CS2", command=graph1,​ bg="​yellow",​ fg="​black"​).grid(row=3,​ column=0, columnspan=2)
 +Button(fen1,​ text="​benzene toluene",​ command=graph2,​ bg="​blue",​ fg="​white"​).grid( row=3, column=2, columnspan=2)
 +Button(fen1,​ text="​comparatif des 2 diagrammes",​ command=graph3,​ bg="​green",​fg="​black"​).grid( row=3,​column=4,​columnspan=2)
 +Button(fen1,​ text="​quitter",​ command=abientot,​ bg="​red",​ fg="​black"​).grid(row=5,​ column=2, columnspan=2)
 +
 +fen1.mainloop()
 +
 +</​sxh>​
 +
  
teaching/progappchim/pressions_partielles_systemes_non_ideaux.txt · Dernière modification: 2016/03/04 16:02 par villersd