modelExhaustHeatExchanger
Extends from AixLib.Fluid.Interfaces.PartialFourPortInterface (Partial model with four ports and declaration of quantities that are used by many models).
Information
Overview
Exhaust gas heat exchanger for engine combustion and its heat transfer to a cooling circle.
Assumptions
The convective heat transfer between exhaust gas and heat exchanger is calculated as a cylindrical exhaust pipe. For the pipe cross-section, the connection cross-section of the power unit is used; the heat transfer area and the capacity of the heat exchanger can be calibrated.
Known variables are the combustion air ratio and the heat flow to the cooling water circuit at nominal operation. These are used to estimate the pipe diameters if unknown.
The heat transfer to the environment (G_Amb) and the cooling water circuit (G_Cool) is calculated by means of heat conduction.
There is the option of considering the heat output from the condensation of water in the flue gas. This is determined from the determination of the precipitating water via the saturation vapour pressure and the critical loading in the flue gas for the critical state (at outlet temperature). The evaporation enthalpy is approximated using an empirical formula based on table data for ambient pressure.
Simplifying it is assumed that the latent heat flux in addition to the convective heat flux is transferred to the capacity of the exhaust gas heat exchanger.
-
April, 2019 by Julian Matthes:
First implementation (see issue #667)
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MolarMass | M_H2O | 0.01802 | Molar mass of water |
| Real | A | 11.7621 | |
| Real | B | 3874.61 | |
| Real | C | 229.73 | |
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.Length | d_iExh | CHPEngData.dExh | Inner diameter of exhaust pipe |
| Modelica.Units.SI.PressureDifference | dp_CooExhHex | CHPEngData.dp_Coo | Pressure drop at nominal mass flow rate inside the coolant circle |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Unit properties | |||
| AixLib.DataBase.CHP.ModularCHPEngineData.CHPEngDataBaseRecord | CHPEngData | DataBase.CHP.ModularCHPEngineData.CHP_ECPowerXRGI15() | Needed engine data for calculations |
| Advanced › Sensor Properties | |||
| Modelica.Units.SI.Time | tau | 1 | Time constant of the temperature sensors at nominal flow rate |
| Modelica.Blocks.Types.Init | initType | Modelica.Blocks.Types.Init.InitialState | Type of initialization (InitialState and InitialOutput are identical) |
| Boolean | transferHeat | false | If true, temperature T converges towards TAmb when no flow |
| Modelica.Units.SI.Time | tauHeaTra | 1200 | Time constant for heat transfer, default 20 minutes |
| Advanced › Initialization | |||
| Modelica.Units.SI.Temperature | T1_start | T_Amb | Initial or guess value of output (= state) |
| Modelica.Units.SI.Temperature | T2_start | T_Amb | Initial or guess value of output (= state) |
| Modelica.Media.Interfaces.Types.AbsolutePressure | p1_start | p_Amb | Start value of pressure |
| Modelica.Media.Interfaces.Types.AbsolutePressure | p2_start | p_Amb | Start value of pressure |
| Modelica.Media.Interfaces.Types.AbsolutePressure | dp_start | CHPEngData.dp_Coo | Guess value of dp = port_a.p - port_b.p |
| Modelica.Units.SI.MassFlowRate | m_flow_start | 0 | Guess value of m_flow = port_a.m_flow |
| Advanced › Condensing technology | |||
| Boolean | ConTec | false | Is condensing technology used and should latent heat be considered? |
| Ambient Properties | |||
| Modelica.Units.SI.Temperature | T_Amb | 298.15 | Fixed ambient temperature for heat transfer |
| Modelica.Media.Interfaces.Types.AbsolutePressure | p_Amb | 101325 | Start value of pressure |
| Calibration parameters | |||
| Modelica.Units.SI.Area | A_surExhHea | 50 | Surface for exhaust heat transfer |
| Modelica.Units.SI.ThermalConductance | GAmb | 5 | Constant thermal conductance of material |
| Modelica.Units.SI.ThermalConductance | GCoo | 850 | Constant thermal conductance of material |
| Modelica.Units.SI.HeatCapacity | CExhHex | 4000 | Heat capacity of exhaust heat exchanger(default= 4000 J/K) |
| Calibration parameters › Engine parameters | |||
| Modelica.Units.SI.Length | l_ExhHex | 1 | Length of the exhaust pipe inside the exhaust heat exchanger |
| Thermal | |||
| Modelica.Units.SI.MolarMass | M_Exh | 1200 | Molar mass of the exhaust gas |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| AixLib.Controls.Interfaces.CHPControlBus | cHPExhHexBus | Signal bus of the exhaust gas heat exchanger | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | port_amb | Heat port to ambient |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_a1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow)) | Medium properties in port_a1 |
| Medium1.ThermodynamicState | sta_b1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow) | Medium properties in port_b1 |
| Medium2.ThermodynamicState | sta_a2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow)) | Medium properties in port_a2 |
| Medium2.ThermodynamicState | sta_b2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow) | Medium properties in port_b2 |
| Real | QuoT_ExhInOut | senTExhHot.T/senTExhCold.T | Quotient of exhaust gas in and outgoing temperature |
| Real | x_H2OExhDry | Water load of the exhaust gas | |
| Real | xSat_H2OExhDry | Saturation water load of the exhaust gas | |
| Modelica.Units.SI.MassFlowRate | m_H2OExh | Mass flow of water in the exhaust gas | |
| Modelica.Units.SI.MassFlowRate | m_ExhDry | Mass flow of dry exhaust gas | |
| Modelica.Units.SI.MassFlowRate | m_ConH2OExh | Mass flow of condensing water | |
| Modelica.Units.SI.AbsolutePressure | pExh | Pressure in the exhaust gas stream (assuming ambient conditions) | |
| Modelica.Units.SI.AbsolutePressure | pSatH2OExh | Saturation vapor pressure of the exhaust gas water | |
| Modelica.Units.SI.SpecificEnthalpy | deltaH_Vap | Specific enthalpy of vaporization (empirical formula based on table data) | |
| Modelica.Units.SI.SpecificHeatCapacity | meanCpExh | cHPExhHexBus.calMeaCpExh | Calculated specific heat capacity of the exhaust gas for the calculated combustion temperature |
| Modelica.Units.SI.HeatFlowRate | Q_Gen | cHPExhHexBus.calThePowGen | Calculated loss heat from the induction machine |
| Modelica.Units.SI.Temperature | T_LogMeanExh | Mean logarithmic temperature of exhaust gas | |
| Medium1.ThermodynamicState | state1 | Medium1.setState_pTX(senTExhHot.port_b.p, T_LogMeanExh, senTExhHot.port_b.Xi_outflow) | |
| Modelica.Units.SI.SpecificEnthalpy | h1_in | Medium1.specificEnthalpy(state1) | |
| Modelica.Units.SI.DynamicViscosity | eta1_in | Medium1.dynamicViscosity(state1) | |
| Modelica.Units.SI.Density | rho1_in | Medium1.density_phX(state1.p, h1_in, state1.X) | |
| Modelica.Units.SI.Velocity | v1_in | senMasFloExh.m_flow/(Modelica.Constants.pi*rho1_in*d_iExh^2/4) | |
| Modelica.Units.SI.ThermalConductivity | lambda1_in | Medium1.thermalConductivity(state1) | |
| Modelica.Units.SI.ReynoldsNumber | Re1_in | Modelica.Fluid.Pipes.BaseClasses.CharacteristicNumbers.ReynoldsNumber(v1_in, rho1_in, eta1_in, d_iExh) | |
| Modelica.Blocks.Sources.RealExpression | machineIsOff | Calculated heat from generator losses | |
| AixLib.Utilities.Logical.SmoothSwitch | switch2 | ||
| Modelica.Blocks.Sources.RealExpression | heatToCooling | ||
| Modelica.Blocks.Sources.RealExpression | condensingWater | ||
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTExhHot | Temperature sensor of hot side of exhaust heat exchanger | |
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTExhCold | Temperature sensor of cold side of exhaust heat exchanger | |
| AixLib.Fluid.Sensors.MassFlowRate | senMasFloExh | Sensor for mass flwo rate | |
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTCooCold | Temperature sensor of coolant cold side of exhaust heat exchanger | |
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTCooHot | Temperature sensor of coolant hot side of exhaust heat exchanger | |
| AixLib.Fluid.Sensors.MassFlowRate | senMasFloCool | Sensor for mass flwo rate | |
| AixLib.Fluid.FixedResistances.Pipe | pipeCoolant | Pipe model for heat transfer to the cooling circuit | |
| Modelica.Fluid.Vessels.ClosedVolume | volExhaust | Fluid volume of the exhaust gas inside the heat exchanger | |
| AixLib.Fluid.FixedResistances.HydraulicDiameter | pressureDropExhaust | Pressure drop of the exhaust gas | |
| AixLib.Utilities.HeatTransfer.HeatConvPipeInsideDynamic | heatConvExhaustPipeInside | Heat transfer model using convection calculation | |
| Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow | additionalHeat | Heat flow from water condensation in the exhaust gas and generator losses | |
| Modelica.Blocks.Sources.RealExpression | latentAndGeneratorHeat | Calculated latent exhaust heat from water condensation | |
| Modelica.Thermal.HeatTransfer.Components.HeatCapacitor | heatCapacitor | Thermal capacity of the exhaust gas heat exchanger | |
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | ambientLoss |
Contents
| Name | Description |
|---|---|