示例#1
0
文件: Zone.java 项目: beaudin/bremo
 /**
  * Mit dieser Methode kann ein Massenelement eines Gases mit der Temperatur T_m der Zone mit der
  * Temperatur T_Zone zugemischt werden. Die sich ergebende Mischungstemperatur wird für
  * VERÄNDERLICHE CVs und ein adiabates System nach dem ersten HS berechnet. Das Volumen der Zone
  * bleibt Konstant --> das zugemischte Massenelement leistet Verschiebearbeit!
  *
  * @param m_Zu --> zugemischtes Massenelement [kg]
  * @param T_Zu --> Temperatur des zugemischten Massenelements [K]
  * @param s_Zu --> Zusammensetzung des Massenelements
  */
 public void massenElementZumischenKonstVolEinfacher(double m_Zu, double T_Zu, Spezies s_Zu) {
   // Nach dem 1HS gilt: dm*h=dU
   double dH = m_Zu * s_Zu.get_h_mass(T_Zu);
   double U_Zone_mass_temp = m_Zone * gg_Zone.get_u_mass(T_Zone) + dH;
   // dieser Aufruf muss vor der Temperaturberechnung erfolgen da sich hier die Masse und die
   // Zusammensetzung
   // der Zone ändert
   massenElementZumischen(m_Zu, s_Zu);
   // Berechnen der Mischungstemperatur
   U_Zone_mass_temp = U_Zone_mass_temp / m_Zone;
   T_Zone = gg_Zone.get_T4u_mass(U_Zone_mass_temp);
 }
示例#2
0
文件: Zone.java 项目: beaudin/bremo
  /**
   * Mit dieser Methode kann eine Zone mit einer anderen gemischt werden. Das Volumen der beiden
   * Zonen wird addiert entsprechent wird keine Verschiebearbeit geleistet. Temperaur, Masse und
   * Zusammensetzung werden entsprechend {@link massenElementZumischen} berechnet
   *
   * @param Zone zone2 --> die Zone die zugemischt werden soll
   */
  public void zoneZumischen(Zone zone2) {

    double m_Zu = zone2.get_m();
    double T_Zu = zone2.get_T();
    double V_Zu = zone2.get_V();
    Spezies s_Zu = zone2.get_ggZone();

    // Nach dem 1HS gilt: -pdV+dm*h=dU --> -p*deltaV+deltaH=deltaU=U2-U1 --> U2=U1+deltaH-p*deltaV
    double H_zu = m_Zu * s_Zu.get_h_mass(T_Zu);
    // deltaV=V_zu  außerdem ist der Druck in beiden Zonen identisch
    double U2_Zone_mass = m_Zone * gg_Zone.get_u_mass(T_Zone) + H_zu - p_Zone * V_Zu;
    // dieser Aufruf muss vor der Temperaturberechnung erfolgen da sich hier die Masse und die
    // Zusammensetzung
    // der Zone ändert
    massenElementZumischen(m_Zu, s_Zu);
    // Berechnen der Mischungstemperatur
    T_Zone = gg_Zone.get_T4u_mass(U2_Zone_mass / m_Zone);
  }
示例#3
0
文件: Zone.java 项目: beaudin/bremo
  public static Zone zonenMischen(CasePara cp, Zone z1, Zone z2, boolean burns, int ID) {
    double p = z1.get_p(); // fuer beide Zonen gleich
    double m1 = z1.get_m();
    double T1 = z1.get_T();
    double V1 = z1.get_V();
    Spezies s1 = z1.get_ggZone();

    double m2 = z2.get_m();
    double T2 = z2.get_T();
    double V2 = z2.get_V();
    Spezies s2 = z2.get_ggZone();

    // Erzeugen einer Spezies die durch die Mischung der beiden ZonenSpezies entsteht
    GasGemisch s0 = new GasGemisch("zonenGemisch");
    Hashtable<Spezies, Double> ht0 = new Hashtable<Spezies, Double>(3);
    double mGes = m1 + m2;
    ht0.put(s1, m1 / mGes);
    ht0.put(s2, m2 / mGes);
    s0.set_Gasmischung_massenBruch(ht0);
    // Berechnung der Mischungstemperatur
    // 1.HS --> Kontrollraumgrenze wird um beide Zonen gelegt
    // Dann gilt: Umisch=U1+U2;
    double Umisch = m1 * s1.get_u_mass(T1) + m2 * s2.get_u_mass(T2);
    // Berechnung der Temperatur bei der die innere Energie von Spezies s0=Umisch ist.
    // Dies entspricht der Mischungstemperatur
    double T0 = s0.get_T4u_mass(Umisch / mGes);
    // Das Volumen beider Zonen wird addiert
    double V0 = V1 + V2;

    // Test ob alles stimmt
    double pV = z1.get_p() * V0;
    double mRT = mGes * T0 * s0.get_R();
    double T =
        (m1 * s1.get_cv_mass(T1) * T1 + m2 * s2.get_cv_mass(T2) * T2)
            / (m1 * s1.get_cv_mass(T1) + m2 * s2.get_cv_mass(T2));
    double deltaT = (T - T0) / T0 * 100;
    double T3 = pV / mGes / s0.get_R();
    double mRT2 = mGes * T * s0.get_R();
    double mRT3 = mGes * T3 * s0.get_R();
    // Fazit ueber die Gasgleichung geht es auch und zwar viel einfacher und genauer!

    Zone z0 = new Zone(cp, p, V0, T0, mGes, s0, burns, ID);
    return z0;
  }