modelDryAirNASA
Extends from ThermofluidStream.Idealized.Examples.TUMExercisesThermodynamicCycles.Exercise3OttoEngine.BaseModel.
Information
Example of an Otto cycle engine model. See TUMExercisesThermodynamicCycles.Exercise3OttoEngine for the problem description.
This example makes use of the following components and settings:
-
DryAirNasa medium (ideal gas with temperature-dependent
cp) -
Adiabatic process model (which is only available for
systemSpec = Flow)
The calculation of outlet pressure for given outlet density is achieved by the use of the InverseBlockConstraints model. An implicit nonlinear equation is introduced, which requires suitable start values.
The Adiabatic model defines isentropic efficiency based on shaft work (i.e., changes in specific enthalpy), whereas for a closed-cycle process the isentropic efficiency is commonly defined based on the net expansion work (i.e., changes in specific internal energy). In general both definitions are not equivalent and discrepancies can arise. The results will however be identical when the isentropic efficiency is equal to unity, or when the working fluid is an ideal gas with constant isentropic exponent.
This setup is based on the fact that the specific work of a thermodynamic cycle is given by the closed integral in the p–v diagram (pressure - specific volume).
Therefore, integrating with respect to volume, p*dv (boundary work as typically transferred in a piston–cylinder system),
and integrating with respect to pressure, v*dp (“artificial” shaft work of a dual stationary-flow process),
yield the same net cycle work, even though the individual contributions of each process step differ.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Medium.AbsolutePressure | p1 (from BaseModel) | 100000 | Pressure before compression |
| Medium.Temperature | T1 (from BaseModel) | 300 | Temperature before compression |
| Real | compressionRatio (from BaseModel) | 10 | Compression ratio |
| Medium.Temperature | T3 (from BaseModel) | 2200 | Temperature after combustion |
| SI.MassFlowRate | m_flow (from BaseModel) | 1 | Mass flow rate |
| Medium.Density | rho1 (from BaseModel) | Medium.density_pTX(p1, T1, Medium.X_default) | Density before compression |
| Medium.Density | rho2 (from BaseModel) | rho1*compressionRatio | Density after compression |
| SI.SpecificVolume | v1 (from BaseModel) | 1/rho1 | Specific volume before compression |
| SI.SpecificVolume | v2 (from BaseModel) | 1/rho2 | Specific volume after compression |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| ThermofluidStream.DropOfCommons | dropOfCommons (from BaseModel) | ||
| ThermofluidStream.Idealized.Processes.Adiabatic | compression | ||
| ThermofluidStream.Idealized.Processes.Isochoric | combustion | ||
| ThermofluidStream.Idealized.Processes.Adiabatic | expansion | ||
| ThermofluidStream.Idealized.Processes.Isochoric | gasExchange | ||
| Modelica.Blocks.Sources.RealExpression | density1 | ||
| Modelica.Blocks.Sources.RealExpression | density2 | ||
| Modelica.Blocks.Math.InverseBlockConstraints | inverseBlockConstraints | ||
| Modelica.Blocks.Math.InverseBlockConstraints | inverseBlockConstraints1 | ||
| ThermofluidStream.Sensors.SingleSensorSelect | sensorDensity1 | ||
| ThermofluidStream.Sensors.SingleSensorSelect | sensorDensity2 | ||
| ThermofluidStream.Idealized.Boundaries.LoopBreaker_m | loopBreaker | ||
| ThermofluidStream.Idealized.EnergyFlow.Components.Sum | shaftPower | ||
| ThermofluidStream.Utilities.showRealValue | maximumPressure | ||
| ThermofluidStream.Utilities.showRealValue | efficiency | ||
| ThermofluidStream.Utilities.showRealValue | netWork |
Revisions
-
2026, by Raphael Gebhart (raphael.gebhart@dlr.de):
Initial version.