Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de boucle et de valeurs

    23 mai 2024 à 21:03:22

    Bonsoir,

    Je me trouve à coder sur Python pour un projet de système énergétique. Afin d'obtenir une courbe je souhaite récupérer des valeurs pour différentes conditions.

    Comme on peut le voir sur mon code, je veux que P2 (la pression) prenne plusieurs valeurs, et à chaque nouvelles valeurs de P2 je veux connaître les valeurs des variables qui dépendent de P2.

    Je décide donc de faire une boucle (For ou While j'ai le même problème). Dans cette boucle j'indique les valeurs que P2 doit prendre, puis j'y mets les variables à calculer. Or comme vous pouvez le voir un message d'erreur s'affiche. 

    Ce que je ne comprends, et ce conduit à l'erreur, c'est que les valeurs que je calculs dans la boucle ne sont pas celles que je devrais obtenir. En effet, dans un autre code je calcule toutes variables (sans boucle) pour la valeur fixe de P2 = 10*1e5, et si je remplace par P2 = 2*1e5 je n'ai pas les mêmes valeurs que celles que j'obtiens avec ma boucle. Gros problème qui doit mener à l'erreur. 

    Je précise l'import de la bibliothèque CoolProp me permet d'obtenir la valeur d'une variable thermodynamique en connaissant au moins deux pour un même point.

    J'espère avoir été clair et précise, je pense qu'il y a un problème dans ma boucle ou/et avec CoolProp. Si vous avez une idée.

    Cordialement,

    import CoolProp.CoolProp as CP
    import numpy
    
    # Etude parametrique TaG
    P1 = 1*1e5
    T1 = 25 + 273.15
    h1 = CP.PropsSI('H','P',P1,'T',T1,'air')
    s1 = CP.PropsSI('S','P',P1,'T',T1,'air')
    n2 = 0.85
    n4 = 0.85
    s2is = s1
    Pre = 10*1e5
    P2 = 0
    
    # Pour un rapport de température de 3
    T3 = 894,15
    
    for P2 in [2*1e5; 3*1e5, 4*1e5]
      h2is = CP.PropsSI('H','P',P2,'S',s2is,'air')
      h2 = (h2is - h1)/n2 + h1
      h3 = CP.PropsSI('H','P',P2,'T',T3,'air')
      s3 = CP.PropsSI('S','P',P2,'T',T3,'air')
      h4is = CP.PropsSI('H','P',P1,'S',s3,'air')
      h4 = n4*(h4is - h3) + h3
      mair = Pre/(h3 - h2)
      n = mair*(h4 - h3 + h2 - h1)
    
    
    

    • Partager sur Facebook
    • Partager sur Twitter
      23 mai 2024 à 21:35:22

      Bonjour,

      As-tu fais des print sur tes variables h4is et h3 ? Quelles sont leur valeur respective ?

      P.S Je ne devrai pas le préciser, mais ces print doivent être appliqués avant le calcul de h4.

      -
      Edité par fred1599 23 mai 2024 à 21:38:00

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        23 mai 2024 à 22:43:09

        fred1599 a écrit:

        Bonjour,

        As-tu fais des print sur tes variables h4is et h3 ? Quelles sont leur valeur respective ?

        P.S Je ne devrai pas le préciser, mais ces print doivent être appliqués avant le calcul de h4.

        -
        Edité par fred1599 il y a environ 1 heure


        J'ai fait des print mais en dehors de la boucle, et les valeurs ne correspondait pas. J'ai également fait une boucle de la sorte :

        for P2 in [2*1e5]

        et de même avec un print hors boucle je n'avais pas les bonnes valeurs. 

        • Partager sur Facebook
        • Partager sur Twitter
          24 mai 2024 à 7:47:10

          Pourquoi ne donnes tu pas tes valeurs comme demandé dans ma précédente réponse ?

          EDIT: Et je ne vois pas comment tu as placé hors de la boucle tes print ? Peux-tu présenter le code test ?

          -
          Edité par fred1599 24 mai 2024 à 7:56:24

          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            24 mai 2024 à 10:48:14

            fred1599 a écrit:

            Pourquoi ne donnes tu pas tes valeurs comme demandé dans ma précédente réponse ?

            EDIT: Et je ne vois pas comment tu as placé hors de la boucle tes print ? Peux-tu présenter le code test ?

            -
            Edité par fred1599 il y a environ 1 heure


            Je n'ai accès au code que lorsque je suis sur le réseau de l'école. 

            Voila mon code ci-joint.

            Edit : Finalement j'ai résolu mon problème. J'ai pris tout mon code précédent que j'ai mis dans la boucle, ce qui inclut les conditions initiales et celles qui sont fixes, et ça marche.

            Je ne comprends pas la différence mais bon.

            -
            Edité par FlorianFerri 24 mai 2024 à 11:22:16

            • Partager sur Facebook
            • Partager sur Twitter
              24 mai 2024 à 11:25:04

              h3 et h4is semblent être des valeurs de type array. La soustraction entre ces types me semblent compliqué. Pourtant PropsSI est censé retourner un type float quand je regarde la documentation...

              EDIT : L'erreur ne peut être que sur P2 ou T3 et la valeur de T3 est incorrecte (virgule au lieu d'un point).

              -
              Edité par fred1599 24 mai 2024 à 11:47:34

              • Partager sur Facebook
              • Partager sur Twitter

              Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
              La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                24 mai 2024 à 14:39:23

                fred1599 a écrit:

                h3 et h4is semblent être des valeurs de type array. La soustraction entre ces types me semblent compliqué. Pourtant PropsSI est censé retourner un type float quand je regarde la documentation...

                EDIT : L'erreur ne peut être que sur P2 ou T3 et la valeur de T3 est incorrecte (virgule au lieu d'un point).

                -
                Edité par fred1599 il y a environ 1 heure

                Oui erreur de ma part. Merci pour votre aide.

                • Partager sur Facebook
                • Partager sur Twitter
                  24 mai 2024 à 16:19:45

                  Bonjour,

                  Sujet résolu

                  Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e ;)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Problème de boucle et de valeurs

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown