IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[Thermodynamique] Calcul d''une quantité d'énergie à partir de points


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Rennes
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Rennes

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [Thermodynamique] Calcul d''une quantité d'énergie à partir de points
    Bonjour,

    J'aimerai calculer l'énergie qu'échange un échangeur. Pour çela j'ai pris toutes les secondes environs les température en entré et en sortie de l'échangeur. De plus, je possède le débit écoulé depuis le début de l'enregistrement que je récupérer avec un sortie à impulsion (1imp/L). J'enregistre toutes les secondes l'ensemble des information ci bien que je n'ai pas une courbe mais ensemble de points.

    La formule sur laquelle je m'appuie est la suivante :

    Q = rho .V.c.Delta T
    avec :
    - rho : La masse volumique
    - c : La capacité thermodynamique
    - V : le volume
    - Dellta T : La différence de température entre l'entrée et la sortie de l'échangeur


    Ma question est la suivante :
    avec un débit variant, comment puis je calculer précisément l'énergie que j'ai donné à mon échangeur ?
    Le code est en python, et il n'y a pas de bug.
    Pour le moment je fonctionne de la manière suivante :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    def calculEnergieModel2(data, c, ro):
        """on prend en entrée une dataframe issu de pandas"""
        I = 0 #total de l'énergie 
        V=1 #parfois on a plusieurs litres qui se sont écoulés
        for y in range(0, int(max(data['Dbt Imp']))):
            p = data [data['Dbt Imp'] == y]#p contiendra la sous dataframe 
     
            if p.empty:#on vérifie bien qu'on a 1 litre sinon 
                V +=1
            else:
                dtemp = p['DeltaT'].mean()
                tempc = p['T1'].mean()
                I = I + float(V*c*ro*float(dtemp)/2)/1000
                V=1
        return I
    Voicià quoi ressemble une dataframe !
    pd correspond à l'importation de la librairie pandas.
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    data = pd.DataFrame({'Date': ['26/07/2016', '26/07/2016', '26/07/2016', '26/07/2016', '26/07/2016', '26/07/2016'],
                         'Heure': ['23:50:10', '23:50:20', '23:50:34', '23:50:40', '23:50:45', '23:50:52'],
                         'Duree': ['00:00:00.000063', '00:00:00.952576', '00:00:01.372692', '00:00:01.404059', '00:00:01.635979', '00:00:01.590155'],
                         'T1': [70, 71, 70, 69, 69, 70],
                         'T2': [60, 60, 59, 62, 60, 60],
                         'T3': [75, 75, 75, 75, 75, 75],
                         'T4': [65, 65, 65, 65, 65, 65],
                         'Dbt Imp': [0, 1, 2, 3, 4, 5],
                         'Du': [0, 1, 2, 1, 1, 1]})
     
    data['DeltaT'] = data['T1'] - data['T2']

    Rien de bien sorcier je pense mais je débute en algorithmie et j'aimerai avoir l'avis de personnes plus compétentes.

    Par avance merci

    Gr1nch3

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Avant de chercher à obtenir un calcul plus précis, il faudrait que tu compares les variations présentes dans un dataframe avec les erreurs des instruments de mesure (imprécision). Si les marges d'erreur (tolérance) sont plus élevées que tes variations, alors changer de méthode de calcul t'apportera un autre chiffre que tu ne pourrais pas qualifier de plus précis pour autant.

    Quoiqu'il en soit, en principe, il faut que tu calcules la chaleur échangée lors de chaque relevé de ton dataframe. Ensuite, tu détermines la chaleur échangée de ton dataframe en sommant la chaleur échangée lors de chacun des relevés constituant le dataframe. Avec cette approche, il faut aussi que tu utilises les températures relevées lors de la mesure au lieu d'utiliser une température moyenne comme tu le fais actuellement.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Rennes
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Rennes

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse. Il est vrai que comparer les résultats avec ce que je dois obtenir serait pas mal. Je ferai des tests la dessus et je comparerai.

    Pour calculer la chaleur échangé toutes les secondes, je n'ai qu'une ligne du dataframe. Or il ne s'est pas toujours écoulé un litre par seconde. Du coup je me retrouve avec 1 litre qui s'est écoulé sur quelques secondes avec la température qui varie aussi. C'est pour cela que j'ai choisi de moyenner mes températures. j'ai aussi considéré que le débit était constant entre deux pics où je récupère l'information "1 litre s'est écoulé". Tu prendrai uniquement la dernière valeur toi ?

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Tu n'as peut être qu'un seul dataframe à chaque fois, mais celui-ci contient le temps écoulé entre chaque mesure (enfin, si j'interprète bien le champ 'Duree'). Aussi, au lieu de faire le calcul sur le dataframe en entier, je le ferais sur chacun des intervalles définis dans le dataframe. Ce qui signifie aussi que tu n'auras pas forcément la quantité de chaleur échangé sur une seconde. Si on reprend le dataframe que tu as donné en exemple, il est composé de 6 relevés s'étalant sur presque 7s.

    Ensuite, pour les valeurs à prendre, c'est en fonction du relevé. Pour un relevé précis, tu as toutes les info nécessaires : volume, durée, T1 et T2.

    Je viens de voir dans ton code python que tu définies tempc mais que tu ne l'utilises pas
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    Rennes
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Rennes

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Oui effectivement le champ duree correspond bien à la durée. Il me reste donc à répartir le volume gagné à la ligne n sur l'ensemble des lignes supérieures. Sauf que le débit peut être nul pendant un laps de temps :s du coup T1 et T2 sont en déperditions. Du coup il me faudrait un moyen pour voir les déperditions à travers T1 et T2 afin de ne pas tenir compte des ces valeurs et de cet intervalle de temps.
    Je pense que cela va se jouer en regardant les variations de T1 et T2. Lorsqu'elles sont trop importantes et que cela fait un moment que le débit n'a pas bougé, on considère qu'on est en deper'. La seule chose qui me fait peur c'est le temps que va prendre le calcul de tout cela :s

    pour la variable tempc, je ne l’utilise pas dans le code que j'ai mis car elle sert pour déterminer ro et c qui dépendent de la température (selon on fonction lambda).

    Merci encore. Je vais essayer de traiter les chaleurs ligne par ligne.
    Je te tiens au courant.

    Gr1nch3

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/06/2012, 18h07
  2. Calcul d'une quantité de licence récursivement
    Par Rhadawhisp dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 03/02/2010, 15h13
  3. Calcul d'une quantité par heure
    Par orzra dans le forum C#
    Réponses: 6
    Dernier message: 12/06/2007, 13h28
  4. Réponses: 14
    Dernier message: 09/01/2007, 16h19
  5. [SUM] récuperer une quantite a partir de plusieurs table
    Par Snowballz dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 14/09/2004, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo