EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot Permet la résolution de systèmes d équations algébriques, non linéaires Contient différentes bases de données thermodynamiques. Souplesse dans l écriture du programme : - écriture des bilans «comme sur papier» - l ordre des équations n intervient pas : EES réarrange les équations Aperçu des menus Exemple : Système x*ln(x)=y^3 sqrt(x)=1/y Ecriture du programme dans la fenêtre «Equation window» Vérification de la syntaxe (optionnel) : bouton ou menu calculate.check format Résolution : bouton ou menu calculate.solve Visualisation des équations formatées : menu window.formated equation Visualisation des résultats : x=1.467 y=0.8255 Information sur les variables : menu options.variable info Erreurs de calcul : menu window.residual Pour les applications en thermo, voir le menu options.preferences puis unit system Réalisation d un 1 er exemple en thermo : Une vanne permet de détendre du R134 gazeux de 700 à 300 kpa de façon isenthalpique. Les sections d entrée et de sortie sont identiques. Entrée : A 1 =0.0110m 2 T 1 =50 C P 1 =700 kpa V 1 = 15 m/s Sortie : A 2 =0.0110m 2 T 2 =? P 2 =300 kpa V 2 =? Qm=? - régler le système d unités - pour les conditions 1 et 2 relier le débit aux conditions thermodynamiques et à la vitesse - écrire les équations de bilan massique et bilan d enthalpie (totale) - résoudre - créer une table : table. new parametric table où P 2 variera entre 100 et 700 kpa - tracer T 2 = f(p 2 ) menu plot. new plot window "exemple 1 - détente R134 - unités massiques SI kpa - C" T1=50;P1=700;A1=0.011;Vel1=15 P2=300 m1=a1*vel1*density(r134a_mh,t=t1,p=p1) m2=a2*vel2*density(r134a_mh,t=t2,p=p2) A2=A1 m1=m2 m1*(h1+vel1^2/2)=m2*(h2+vel2^2/2) h1=enthalpy(r134a_mh,t=t1,p=p1) h2=enthalpy(r134a_mh,t=t2,p=p2) Université de Rouen - M2 - IUP Maîtrise de l énergie Logiciel EES p. 1
Quelques règles d écriture des équations dans EES: - commentaires : entre crochets {} ou entre guillemets doubles - séparateur d équations sur une même ligne : ; - maximum 255 caractères sur une ligne Variables : - maximum 5000 variables - par défaut variables réelles ; pour le mode complexe, voir onglet complex du menu options.preferences ou ajouter la directive $Complex en début de programme. Toutes les variables sont alors de type complexe. - pas de distinction entre majuscules/minuscules - un nom de variable doit commencer par une lettre - caractères interdits dans les noms de variable : ( ) * : + - ^ { } : «; - utiliser des noms de variable différents des fonctions de EES (ex : PI, Enthalpy, etc) - chaînes de caractères : se terminent par $, longueur maxi 30 caractères - possibilité de variables bien lisibles dans la fenêtre formated equation : fenêtre équation : fenêtre formated equation : alpha α GAMMA Γ DELTAT ΔΤ n_1 n 1 n 1 n 1 m_dot m T_infinity T NB : les équations apparaissant dans la fenêtre équations peuvent être incorporées en tant qu image dans une application Windows (Word, Excel ) Constantes - leur nom se termine par # - les constantes permanentes sont stockées dans le fichier Constants.txt ; sont accessibles dans les différents systèmes d unités. Voir menu Options.Constants - Possibilité d ajouter une constante à la liste déconseillé ne pas modifier Constants.txt ; définir ses constantes de façon locales par la directive $Constant en début de programme. - Exemple : $Constant n#=4 Opérateurs - règles conformes aux règles usuelles : x=3+4*5 vaut 23 - le signe «=» n est pas une affectation mais une égalité attention aux réflexes de programmation! x=x+1 n est pas admis - élévation à une puissance : ^ ou ** Tables et tableaux Tables parametric faire varier un paramètre d entrée Tables lookup utiliser des données tabulées Sauvegarder en binaire (.LKT) ou en ASCII (.TXT) Accès au contenu de la table par la fonction lookup, ainsi que interpolate, differentiate Variable de type tableau : nom[indice], nom[n _ligne, n _col]. Université de Rouen - M2 - IUP Maîtrise de l énergie Logiciel EES p. 2
inutile de faire une déclaration spécifique intérêt : les résultats apparaissent sous forme de tableau Présentation des résultats : Menu windows.solution Possibilité de souligner, ou ne pas afficher certaines variables : options.variable info Tracé de diagrammes thermodynamiques : menu plot.property plot Exemple (T,s), (P,h), diagramme d air humide Possibilité de représenter les points d un cycle Conseil : - numéroter les différents états du cycle étudié (1, 2, 3 ) - calculer les différentes caractéristiques sous forme de tableau h[1]=, h[2]=, bonne lisibilité des résultats (tableau), + possibilité de tracer le cycle dans un diagramme thermodynamique schéma interactif : window.diagram window permet de créer (ou d insérer) un schéma du problème traité, avec bouton solve possibilités réduites par rapport à la version commerciale On bascule entre mode édition et mode utilisation en appelant à nouveau window.diagram window Appel des fonctions thermodynamiques voir menu options.function info, fluid properties Suivant les fluides considérés, les propriétés sont traitées en gaz réel ou en gaz parfait. NB : la fonction ISIDEALGAS(composant) renvoie 1 pour un GP, 0 sinon Voir aussi l onglet fluid info 02, CO2, gaz parfait alors que Oxygen, CarbonDioxyde sont des fluides réels NB : Air est une exception puisqu il est traité en GP Liste des fluides disponibles dans EES (symbole * : équation d état de haute précision) ---- Ideal Gas --- (gaz pafait) Air AirH2O CH4 C2H2 C2H4 C2H6 C2H5OH C3H8 C4H10 C6H14 C8H18 CO CO2 H2 H2O N2 NO NO2 O2 SO2 --------------------------------- Real Fluid ------------- (gaz réel) Air_ha* Methanol* R11 R404A Ammonia* n-butane* R12 R407C Argon* n-heptane* R13 R410A Carbondioxide* n-hexane* R14 R500 Carbonmonoxide* n-octane* R22* R502 Cyclohexane* n-pentane* R23* R507A Deuterium* Neon* R32* R508B Ethane* Nitrogen* R114 R600* Ethanol* Oxygen* R116* R600a Ethylene* Propane* R123* R717* Fluorine* Propylene* R124* R718* Helium* Steam* R125* R744* Hydrogen* Steam_IAPWS* R134a* RC318* HydrogenSulfide* Steam_NBS* R141b* Ice* SulfurHexafluoride R143a* Isobutane* Water R152a* Isopentane* Xenon* R290* Krypton* Methane* Université de Rouen - M2 - IUP Maîtrise de l énergie Logiciel EES p. 3
Le nombre d arguments lors de l appel d une fonction thermodynamique varie suivant le fluide considéré et suivant la fonction appelée. Exemple : Enthalpy( Air, T=300) H varie seulement avec T pour un GP Enthalpy( Oxygen, T=T1, P=P1) H fct de T et P pour un GR Entropy( Air, T=T1,P=P1) S fct de T et P pour un GP L utilisateur peut choisir les arguments utilisés (en respectant la thermodynamique!) Exemple : la fonction Enthalpy doit être appelée avec T ou U pour argument. Consulter l aide! Les symboles réservés pour les arguments sont : H= specific enthalpy enthalpie (massique ou molaire suivant unités) P= pressure S= specific entropy entropie (massique ou molaire suivant unités) T= temperature U= specific internal energy énergie interne (massique ou molaire) V= specific volume volume massique ou molaire (ou spécifique) Air humide B = wetbulb temperature température humide D = dewpoint temperature température de rosée R= relative humidity humidité relative (Pvap/Psat) W= humidity ratio humidité spécifique X= quality fraction massique de vapeur pour un fluide en changement d état (renvoie 100 en liquide, 100 en vapeur surchauffée, sinon valeur entre 0 et 1) Exemples : U1=INTENERGY(Air,T=300) H1=ENTHALPY(Air,U=U1) T1=TEMPERATURE(Air,U=U1) S1=ENTROPY(Air,U=U1,P=100) Université de Rouen - M2 - IUP Maîtrise de l énergie Logiciel EES p. 4
Fonctions, procédures et modules EES Fonction : plusieurs arguments en entrée, un seul en sortie procédure : plusieurs arguments en entrée, plusieurs en sortie module : plusieurs arguments en entrée, plusieurs en sortie (comme une procédure) mais les règles d écriture restent celles de la fenêtre d équations EES à contrario, les règles d écriture à l intérieur des fonctions et des procédures sont similaires à celles des langages classiques : o possibilité de tests IF THEN ELSE, o de structures itératives REPEAT UNTIL de GOTO o l ordre des instructions est respecté o pas d égalités mais des assignations : utiliser l opérateur := ou spécifier allow = in functions/procedures dans le menu options.preferences.display options règles communes aux fonctions, procédures et modules : o les variables sont locales, sauf celles définies à l aide de la directive $COMMON o pas de structures récursives! (structure faisant appel à elle même) Les fonctions EES doivent apparaître au début de la fenêtre équations, avant les modules et les équations, mais après les procédures une fonction commence par FUNCTION nom_de_fonction(argument1,argument2 ) se termine par END est appelée par toto= nom_de_fonction(argument1,argument2 ) respecter nombre et ordre des arguments lors de l appel les fonctions travaillent uniquement en mode réel même si EES est en complexe Les procédures EES doivent apparaître au début de la fenêtre équations, avant fonctions et modules commence par PROCEDURE nom_de_proc(entr1,entr2 :sort1,sort2 ) remarquer : les arguments d entrée (en 1 er ) sont séparés des arguments de sortie par : minimum une entrée et une sortie se termine par END est appelée par CALL nom_de_ proc(entr1, entr2 : sort1,sort2 ) respecter nombre et ordre des arguments lors de l appel les procédures peuvent appeler des fonctions mais ne peuvent pas appeler de module Les modules EES format similaire aux procédures mais écrits en langage EES (des égalités et non des assignations) NB : le : séparant les entrées des sorties peut être remplacé par, Lorsque le module est appelé, EES le «recopie» dans le corps principal en renommant les variables voir organisation dans la fenêtre résidus La directive $COMMON Se place après la déclaration de fonction, procédure ou module, dans la fenêtre d équation Syntaxe : $COMMON var1,var2 (directive seule sur sa ligne) Permet de récupérer les valeurs de variables du programme principal, mais pas de les affecter Université de Rouen - M2 - IUP Maîtrise de l énergie Logiciel EES p. 5