[PYTHON] Fügen Sie Heatrapy eine Funktion hinzu, die Wärme + Wärme bei Temperatur übertragen kann

Was ich getan habe

Die Funktion zur Wärmezufuhr durch Wärmeübertragungsrate und -temperatur wurde in einer eindimensionalen instationären Wärmeübertragungsanalyse mit Heatrapy hinzugefügt. Ursprünglich war es eine Spezifikation, die es ermöglicht, Wärme an jede Position zu bringen, also habe ich diese verwendet.

Reparaturpunkte

Stellen Sie die Eingabebedingungen mit set_input_heat_transfer ein und erwärmen Sie sich bei der Berechnung mit compute. Die Wärme wird zu jedem Zeitschritt entsprechend der Temperaturdifferenz für jede Stunde zugeführt.

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):

[Ausgelassen]

        self.input_heat_transfer = False #Wenn dies auf True gesetzt ist, die Wärmeübertragungsrate+Hitze auf Temperatur bringen

[Ausgelassen]

    def set_input_heat_transfer(self,input_heat_transfer_point,Heat_transfer_coefficient,Heat_transfer_temparature):
        """Fügen Sie jeder Position Wärmeübertragungsrate und Temperatur hinzu. Derzeit wird nur ein Punkt Wärme zugeführt
        
        Arguments:
            input_heat_transfer_point {int} --Es ist ein Punkt zum Aufheizen. 1 für die Spitze
            Heat_transfer_coefficient {float} --Wärmeübertragungsrate[W/(m2K)]
            Heat_transfer_temparature {float} --Die für die Wärmeübertragung verwendete Temperatur[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

[Ausgelassen]

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

            #Bei Eingabe mit Wärmeübertragungsrate und Temperatur
            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)

Wo ich feststeckte

Ich habe nicht die Hitze bekommen, die ich erwartet hatte. Der Grund war einfach und ein Fehler in der Einheit. In der Q0-Berechnung dividiere ich durch self.dx. Die Einheit der Wärmeübertragungsrate ist [W / (m2 K)].

Prüfung

Ich habe es mit Kupfer versucht. 【Eingang】

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))

【Ergebnis】 Es fühlt sich gut an. Seien Sie vorsichtig mit dem Wert von dt. Das Verringern von dt verbessert die Genauigkeit, erhöht jedoch die Analysezeit. Beim Drehen muss nach einem guten dt-Wert gesucht werden.

image.png

Quellcode

Der Quellcode ist unten. https://github.com/myao9494/heatrapy Der Test ist heat_transfer_test.ipynb

Recommended Posts

Fügen Sie Heatrapy eine Funktion hinzu, die Wärme + Wärme bei Temperatur übertragen kann
Fügen Sie eine Funktion hinzu, um dem Wetter heute mitzuteilen, dass der Bot locker ist (hergestellt von Python).
Fügen Sie MeCab ein Wörterbuch hinzu
So rufen Sie eine Funktion auf
Praktische Funktion zum Hinzufügen von Spalten an einer beliebigen Stelle in Pandas DataFrame
So fügen Sie MicroPython ein C-Modul hinzu ...
So erstellen Sie eine rekursive Funktion
Fügen Sie GitHub per E-Mail ein neues Problem hinzu (Amazon SES-Nutzungsversion)
Fügen Sie Ihrem Computer eine GPIO-Karte hinzu. (1)
So fügen Sie ein Paket mit PyCharm hinzu
Funktion zum Speichern von Bildern nach Datum [python3]
Ein einfaches IDAPython-Skript zum Benennen einer Funktion
Durch Ganzzahlprogrammierung einem Labor zugewiesen
Fügen Sie VSCode eine virtuelle Python-Umgebung hinzu
[Python] Fügen Sie der Standardeingabedatei einen Kommentar hinzu
Fügen Sie dem Slack Bot (erstellt von Python) mithilfe der Talk-API von Recruit eine Konversationsfunktion hinzu
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy