[PYTHON] Ajoutez une fonction à heatrapy qui peut transférer chaleur + chaleur à température

Ce que j'ai fait

Ajout de la fonction d'entrée de chaleur en fonction du taux de transfert de chaleur et de la température dans l'analyse de transfert de chaleur non stationnaire unidimensionnelle avec heatrapy. À l'origine, c'était une spécification qui permettait à la chaleur d'entrer dans n'importe quelle position, alors j'ai utilisé cela.

Points de réparation

--Je bricoler avec la classe single_object dans system.py

Définissez les conditions d'entrée avec set_input_heat_transfer et chauffez lors du calcul avec compute. La chaleur est entrée à chaque pas de temps en fonction de la différence de température pour chaque heure.

henko.py


class single_object(object):
    def __init__(self, amb_temperature, materials=('Cu',), borders=(1, 11),
                 materials_order=(0,), dx=0.001, dt=0.1, file_name='data.txt',
                 boundaries=(0, 0), Q=[], Q0=[], heat_points=(1, -2),
                 initial_state=False, h_left=50000., h_right=50000.,
                 materials_path=False):

[Omis]

        self.input_heat_transfer = False #Lorsqu'il est réglé sur True, le taux de transfert de chaleur+Mettre en chaleur à température

[Omis]

    def set_input_heat_transfer(self,input_heat_transfer_point,Heat_transfer_coefficient,Heat_transfer_temparature):
        """Ajoutez le taux de transfert de chaleur et la température à n'importe quelle position. Actuellement, il s'agit d'un apport de chaleur à un seul point
        
        Arguments:
            input_heat_transfer_point {int} --C'est un point à réchauffer. 1 pour le haut
            Heat_transfer_coefficient {float} --Taux de transfert de chaleur[W/(m2K)]
            Heat_transfer_temparature {float} --La température utilisée pour le transfert de chaleur[K]
        """
        self.input_heat_transfer=True
        self.input_heat_transfer_point = input_heat_transfer_point
        self.Heat_transfer_coefficient = Heat_transfer_coefficient
        self.Heat_transfer_temparature = Heat_transfer_temparature

[Omis]

    def compute(self, timeInterval, write_interval, solver='explicit_k(x)',
                modeTemp=False, numFlag=0.5, modeTempPoint=1):

            #Lors de la saisie avec le taux de transfert de chaleur et la température
            if self.input_heat_transfer:
                td = self.temperature[self.input_heat_transfer_point][0]
                self.Q0[self.input_heat_transfer_point] = self.Heat_transfer_coefficient * (self.Heat_transfer_temparature - td)/self.dx
                print(td,self.Q0)

Où je suis resté coincé

Je n'ai pas eu la chaleur que j'attendais. La raison était simple et une erreur dans l'unité. Dans le calcul Q0, je divise par self.dx. L'unité du taux de transfert de chaleur est [W / (m2 K)].

tester

Je l'ai essayé avec du cuivre. 【contribution】

heat_transfer_test.py


import heatrapy as ht
import pandas as pd
import os

if os.path.exists("heat_transfer.txt"):
    os.remove("heat_transfer.txt")
    
example = ht.single_object(amb_temperature=293, materials=('Cu',), borders=(1,21),materials_order=(0,),
                            dx=0.001, dt=0.001, file_name='heat_transfer.txt',boundaries=(0,0), Q=[], Q0=[],initial_state=False)

example.set_input_heat_transfer(1,700,900)

example.compute(timeInterval=30, write_interval=10, solver='implicit_k(x)')

df = pd.read_csv("heat_transfer.txt")
df=df.drop("heat[1](W)",axis=1)
df=df.drop("heat[-2](J)",axis=1)
df = df.set_index("time(s)")
df.plot(figsize=(15,8))

【résultat】 Ça fait du bien. Soyez prudent avec la valeur de dt. Diminuer dt augmentera la précision, mais augmentera le temps d'analyse. Il faut rechercher une bonne valeur dt en tournant.

image.png

Code source

Le code source est ci-dessous. https://github.com/myao9494/heatrapy Le test est heat_transfer_test.ipynb

Recommended Posts

Ajoutez une fonction à heatrapy qui peut transférer chaleur + chaleur à température
Ajouter une fonction pour indiquer la météo d'aujourd'hui au bot slack (fabriqué par python)
Ajouter un dictionnaire à MeCab
Comment appeler une fonction
Fonction pratique pour ajouter des colonnes n'importe où dans Pandas DataFrame
Pour ajouter un module C à MicroPython ...
Comment créer une fonction récursive
Ajouter un nouveau problème à GitHub par e-mail (version d'utilisation d'Amazon SES)
Ajoutez une carte GPIO à votre ordinateur. (1)
Comment ajouter un package avec PyCharm
Fonction pour enregistrer les images par date [python3]
Un simple script IDAPython pour nommer une fonction
Affecté à un laboratoire par programmation entière
Ajouter un environnement virtuel Python à VSCode
[Python] Ajouter un commentaire au fichier d'entrée standard
Ajouter une fonction de conversation au robot slack (créé par python) à l'aide de l'API Talk de Recruit
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy