teaching:progappchim:pressions_partielles_systemes_non_ideaux

no way to compare when less than two revisions

Différences

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


teaching:progappchim:pressions_partielles_systemes_non_ideaux [2016/03/04 16:02] (Version actuelle) – créée villersd
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
  • de villersd