Verzweigungen in eSim
In eSim ist es möglich, Anweisungen und Gleichungen verzweigt auszuführen. Dazu werden if-Anweisungen verwendet, für die folgende Syntax gilt:
Ungleichungen werden mit den Verhältniszeichen < und > bzw. <= und >= gebildet.
Ein logisches oder wird durch zwei senkrechte Striche || (Pipe) dargestellt.
If-else-Konstrukt für abschnittsweise definierte Gleichungen
Im Unterschied zu den Case-Bedingungen handelt es sich bei den if-Bedingungen nicht um eine prozedurale Programmierung, sondern um die abschnittsweise Definition einer Funktion. Das If-else-Konstrukt wird nach folgendem Muster gebildet.
if (Bedingung)
Gleichung1;
else
Gleichung2;
end if
Beispiele
Einfaches Beispiel
if(C_water < C_air)
Cr = C_water/C_air;
else
Cr = C_air/C_water;
end if
Erstes Beispiel mit Gleichungen in den Ausführungspfaden
if(T< 0)
c_p = 2.22 [kJ/kg K];
else if (T<100)
c_p = 4.18 [kJ/kg K];
else
c_p = 1.86 [kJ/kg K];
end if
Zweites Beispiel mit Gleichungen in den Ausführungspfaden
if(T_calc < 0.073 | | T_calc > 60)
c_p = 2.0 [kJ/kg K] * T_calc;
else if (T_calc < 0.2)
c_p = 3.0 [kJ/kg K] * T_calc;
else
c_p = 4.0 [kJ/kg K] * T_calc;
end if
Beispiele mit Zuweisungen in den Ausführungspfaden
if(T_calc < 0.073 | | T_calc > 60)
c_p := 2.0 [kJ/kg K] * T_calc;
else if (T_calc < 0.2)
c_p := 3.0 [kJ/kg K] * T_calc;
else
c_p := 4.0 [kJ/kg K] * T_calc;
end if
Im nachfolgenden Beispiel befindet sich im letzten Ausführungspfad eine andere zu berechnende Variable.
if(T_calc < 0.073 | | T_calc > 60)
// c_p kann berechnet werden
c_p := 2.0 [kJ/kg K] * T_calc;
else if (T_calc < 0.2)
// c_p kann berechnet werden
c_p := 3.0 [kJ/kg K] * T_calc;
else
// Fehler! Der letzte Pfad weist eine andere Variable zu.
c_v := 4.0 [kJ/kg K] * T_calc;
end if
Im nachfolgenden Beispiel kann nur c_p berechnet werden, da T_calc im letzten Pfad fehlt.
if(T_calc < 0.073 | | T_calc > 60)
// c_p in T_calc in diesem Pfad
c_p = 2.0 [kJ/kg K] * T_calc;
else if (T_calc < 0.2)
// c_p in T_calc in diesem Pfad
c_p = 3.0 [kJ/kg K] * T_calc;
else
// c_p in diesem Pfad
c_p = 4.0 [kJ/kg K]
end if

