Hallo VBA-Profis,
ich sitze seit mehreren Stunden an einer Iteration in VBA und weiß nicht mehr weiter. Dazu muss ich sagen, dass ich ein Anfänger in der VBA-Programmierung bin und hoffe ihr könnt mir weiter helfen.
Folgende Aufgabenstellung:
Es geht um einen Wärmetauscher, in welchem ein kalter Luftstrom durch einen im Gegenstrom geführten warmen Luftstrom erwärmt wird. Der zu erwärmende Luftstrom ist vollständig definiert, sodass ich die zu übertragene Wärmemenge (Qges) habe. Somit muss der wärmeabgebende Luftstrom dieselbe Wärmemenge abgeben. Dabei kann Wasser auskondensieren. Den Anfangszustand des wärmeabgebenden Luftstroms nenne ich 1. Dieser ist vollständig definiert. Nun habe ich berechnet, welche Wärmemenge bis zum Sättigungszustand übertragen werden muss. Den Sättigungszustand nenne ich 2. Dieser ist auch vollständig definiert. Nun bleibt ein Restwärmestrom (Q_3 bzw. Q_4) übrig, welcher dazu führt, dass Wasserdampf aus dem abzukühlenden Luftstrom auskondensiert (man bewegt sich auf der Sättigungslinie in Richtung geringerer Temperatur -> dadurch verkleinert sich der Wasserdampfgehalt meines Luftstroms). Diesen Wärmestrom hab ich durch Abzug der Wärmemenge bis zur Sättigung von der Gesamtwärmemenge berechnet. Über Gleichung 1 berechnet sich (bei vorgegebener Temperatur und dazu berechnetem Sättigungswassergehalt) die Wärmemenge Q_4. Diese soll um maximal 1 von der Wärmemenge Q_3 abweichen (condition). Ich ziehe zunächst von der Starttemperatur (t_3= t_2) ein hohes Delta ab. Daraus relultiert ein großes Q_4. Nun soll Delta bzw. t_3 solange verringert werden, bis meine Bedingung erfüllt ist.
Bisher wird gar keine Iteration durchgeführt, sondern als t_soll immer der Startwert minus Delta angegeben, was ja nicht sein kann.
Hier der Code dazu:
Public Function t_soll(Q_11, Q_12, Q_21, Q_22, mL, xs_2, t_2, p)
'Q_11 - Wärmeinhalt Strom 1 Eintritt WT
'Q_12 - Wärmeinhalt Strom 1 Austritt WT
'Q_21 - Wärmeinhalt Strom 2 Eintritt WT
'Q_22 - Wärmeinhalt Strom 2 am Sättigungspunkt/ vor Kondensation
'mL - Massenstrom trockene Luft
'xs_2 - Sättigungswassergehalt im Punkt 2
't_2 - Temperatur im Punkt 2 (Sättigungstemperatur)
'p - Luftdruck
Qges = Q_12 - Q_11 'dieser Wärmestrom wird ausgetauscht
Q_3 = Qges - (Q_21 - Q_22) 'dieser Wärmestrom wird abgegeben, bis die Sättigung erreicht wird
Delta = 20 'das Delta soll von der Sättigungstemperatur im Punkt 2 abgezogen werden
t_3= t_2
Do While Abs(Q_4 - Q_3) < 1 'Wärmemengen Q_3 und Q_4 sollen höchstens um 1 abwei.
t_3= t_3 - Delta 'Temperatur wird verkleinert
xs_3 = xs(t_3, p) 'Funktion zur Berechnung des Sättigungs-Wassergehaltes
Q_4 = (mL * (cL * (t_2 - t_3) + (xs_2 - xs_3) * rLV + (xs_2 - xs_3) * cD * (t_2 - t_3))) / 3600 'Gleichung 1
Delta = Delta - 0.1 'Delta wird verkleinert um sich t_3 zu nähern
Loop
t_soll = t_3 'Übergabe des aktuellen t_3
End Function
Ich hoffe ihr könnt mir schnellstmöglich helfen.
Vielen Dank schon im Voraus!!!!
Lieben Gruß, Lisa
|