modelGasolineEngineChp_EngineModel
Information
The model of the internal combustion engine is the centrepiece of the BHKW model developed. It is divided into a thermal and a mechanical-chemical part.
The energy balance of the combustion engine is used to determine the maximum heat released. The mechanical power is calculated using a mean value model, which is characterized by short calculation times and simple parameterization. An empirical approach is used to describe the specific enthalpy of the exhaust gas. The required mass flows of the combustion products are determined by assuming complete combustion with a known fuel composition. Various liquid and gaseous fuels have been implemented on the basis of the existing material models and are available to the user.
Due to the complexity of a combustion engine, assumptions have to be made. These are listed below to understand the function and applicability of the model.
Assumptions
Assumptions made and resulting limitations of the internal combustion
engine model:
- The nominal power point of the power unit is known and the modulationof the operation point is achieved by a reduction of the introduced fuel.
- The indicated mean pressure is assumed to be constant as a necessary measure for the calculation of engine power. This corresponds to a constant thermodynamic combustion process within the cylinders.
- The engine must be started with an electric machine. It is controlled by the release of the fuel quantity from a minimum speed (800rpm). The speed then increases to equilibrium with the counteracting generator torque.
- Complete and superstoichiometric combustion is assumed to solve the gross reaction equation
- Entry of air and fuel at ambient conditions and constant amount of fuel and air per combustion cycle
-> Only conditionally with turbocharging of the engines, since then the cylinder filling can vary depending on the boost pressure (slight consideration due to stored rated performance data)
Air ratio or residual oxygen in the exhaust gas is known to estimate
the combustion process. So this is a necessary assumption for the
calculation of material flows (mass flows, composition of the exhaust
gas).
The mean specific heat capacity of the exhaust gas for a temperature range from 0 ° C to the maximum adiabatic combustion temperature is used to calculate the exhaust gas temperature.
The mean specific heat capacity is determinated with a potency approach according to Müller (1968).
Frictional losses that can be calculated based on a known friction mean pressure at a speed of 3000rpm (if not known, default average values from VK1 by S.Pischinger) are converted into usable heat.
The calculation of the exhaust gas enthalpy according to an empirical approach is based on investigations by R.Pischinger which uses a reference point temperature of 25 ° C (initial state of the reaction educts from combustion air and fuel).
-> Consideration of the chemical and thermal proportions of the enthalpy
-> Limited accuracy for diesel engine (non-premixed) processes
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Volume | VCyl | CHPEngData.VEng/CHPEngData.z | Cylinder displacement |
| RotationSpeed | nEngNominal | 25.583 | Nominal engine speed at operating point |
| Modelica.Units.SI.Power | P_mecNominal | CHPEngData.P_mecNominal | Mecanical power output at nominal operating point |
| Modelica.Units.SI.Temperature | T_Amb | 298.15 | Ambient temperature (matches to fuel and combustion air temperature) |
| GasConstant | R | 8.31446 | Gasconstant for calculation purposes |
| Real | QuoDCyl | CHPEngData.QuoDCyl | |
| Boolean | FuelType | Medium1.isGas | True = Gasoline fuel, False = Liquid fuel |
| Modelica.Units.SI.MassFlowRate | m_MaxExh | CHPEngData.P_FueNominal/H_U*(1 + Lambda*L_St) | Maximal exhaust gas flow based on the fuel and combustion properties |
| Modelica.Units.SI.Mass | m_FueEngRot | CHPEngData.P_FueNominal*60/(H_U*CHPEngData.nEngMax*CHPEngData.i) | Injected fuel mass per engine rotation(presumed as constant) |
| Modelica.Units.SI.Pressure | p_Amb | 101325 | Ambient pressure |
| Modelica.Units.SI.Pressure | p_mi | p_mfNominal + p_meNominal | Constant indicated mean effective cylinder pressure |
| Modelica.Units.SI.Pressure | p_meNominal | CHPEngData.p_meNominal | Nominal mean effective cylinder pressure |
| Modelica.Units.SI.Pressure | ref_p_mfNominal | CHPEngData.ref_p_mfNominal | Friction mean pressure of reference engine for calculation(dCyl=91mm & nEng=3000rpm & TEng=90°C) |
| Modelica.Units.SI.Pressure | p_mfNominal | ref_p_mfNominal*QuoDCyl^(-0.3) | Nominal friction mean pressure |
| Modelica.Units.SI.Temperature | T_ExhOut | CHPEngData.T_ExhPowUniOut | Assumed exhaust gas outlet temperature of the CHP unit for heat calculations |
| Modelica.Units.SI.SpecificEnergy | H_U | Medium1.H_U | Specific calorific value of the fuel |
| Real | Lambda | CHPEngData.Lambda | Combustion air ratio |
| Real | L_St | Medium1.L_st | Stoichiometric air consumption per mass fuel |
| Real | l_Min | L_St*MM_Fuel/MM_Air | Minimum molar air consumption per mole fuel |
| Modelica.Units.SI.MolarMass | MM_Fuel | Medium1.MM | Molar mass of the fuel |
| Modelica.Units.SI.MolarMass | MM_Air | Medium2.MM | Molar mass of the combustion air |
| Modelica.Units.SI.MolarMass[:] | MM_ComExh | Medium3.data[:].MM | Molar masses of the combustion products: N2, O2, H2O, CO2 |
| Real[:] | expFacCpComExh | {0.11, 0.15, 0.20, 0.30} | Exponential factor for calculating the specific heat capacity of N2, O2, H2O, CO2 |
| Modelica.Units.SI.SpecificHeatCapacity[:] | cpRefComExh | {1000, 900, 1750, 840} | Specific heat capacities of the combustion products at reference state at 0°C |
| Modelica.Units.SI.Temperature | RefT_Com | 1473.15 | Reference combustion temperature for calculation purposes |
| Real | n_N2Exh | if FuelType then Medium1.moleFractions_Gas[1] + Lambda*l_Min*Medium2.moleFractions_Air[1] else Lambda*l_Min*Medium2.moleFractions_Air[1] | Exhaust: Number of molecules Nitrogen per mole of fuel |
| Real | n_O2Exh | (Lambda - 1)*l_Min*Medium2.moleFractions_Air[2] | Exhaust: Number of molecules Oxygen per mole of fuel |
| Real | n_H2OExh | if FuelType then 0.5*sum(Medium1.moleFractions_Gas[i]*Medium1.Fuel.nue_H[i] for i in 1:size(Medium1.Fuel.nue_H, 1)) else 0.5*(Medium1.Fuel.Xi_liq[2]*Medium1.MM/Medium1.Fuel.MMi_liq[2]) | Exhaust: Number of molecules H20 per mole of fuel |
| Real | n_CO2Exh | if FuelType then sum(Medium1.moleFractions_Gas[i]*Medium1.Fuel.nue_C[i] for i in 1:size(Medium1.Fuel.nue_C, 1)) else Medium1.Fuel.Xi_liq[1]*Medium1.MM/Medium1.Fuel.MMi_liq[1] | Exhaust: Number of molecules CO2 per mole of fuel |
| Real[:] | n_ComExh | {n_N2Exh, n_O2Exh, n_H2OExh, n_CO2Exh} | |
| Real | n_Exh | sum(n_ComExh[j] for j in 1:size(n_ComExh, 1)) | Number of exhaust gas molecules per mole of fuel |
| Modelica.Units.SI.MolarMass | MM_Exh | sum(n_ComExh[i]*MM_ComExh[i] for i in 1:size(n_ComExh, 1))/sum(n_ComExh[i] for i in 1:size(n_ComExh, 1)) | Molar mass of the exhaust gas |
| Modelica.Units.SI.MassFraction | X_N2Exh | MM_ComExh[1]*n_ComExh[1]/(MM_Exh*n_Exh) | Mass fraction of N2 in the exhaust gas |
| Modelica.Units.SI.MassFraction | X_O2Exh | MM_ComExh[2]*n_ComExh[2]/(MM_Exh*n_Exh) | Mass fraction of O2 in the exhaust gas |
| Modelica.Units.SI.MassFraction | X_H2OExh | MM_ComExh[3]*n_ComExh[3]/(MM_Exh*n_Exh) | Mass fraction of H2O in the exhaust gas |
| Modelica.Units.SI.MassFraction | X_CO2Exh | MM_ComExh[4]*n_ComExh[4]/(MM_Exh*n_Exh) | Mass fraction of CO2 in the exhaust gas |
| Modelica.Units.SI.MassFraction[size(n_ComExh, 1)] | Xi_Exh | {X_N2Exh, X_O2Exh, X_H2OExh, X_CO2Exh} | |
| Unit properties | |||
| AixLib.DataBase.CHP.ModularCHPEngineData.CHPEngDataBaseRecord | CHPEngData | DataBase.CHP.ModularCHPEngineData.CHP_SenerTecDachsG5_5() | Needed engine data for calculations |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_b | port_exh | ||
| Modelica.Mechanics.Rotational.Interfaces.Flange_a | flange_a | Mechanical port of the engines output drive | |
| Modelica.Blocks.Interfaces.RealInput | exhaustGasTemperature | Exhaust gas temperature calculated in the thermal engine model | |
| AixLib.Controls.Interfaces.CHPControlBus | cHPEngineBus | Signal bus of the mechanical combustion engine model |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | SwitchOnOff | true | Operation switch of the CHP unit (true=On, false=Off) |
| RotationSpeed | nEng | Current engine speed | |
| Modelica.Units.SI.MassFlowRate | m_flow_Exh | Mass flow rate of exhaust gas | |
| Modelica.Units.SI.MassFlowRate | m_flow_CO2Exh | Mass flow rate of CO2 in the exhaust gas | |
| Modelica.Units.SI.MassFlowRate | m_flow_Fue | Mass flow rate of fuel | |
| Modelica.Units.SI.MassFlowRate | m_flow_Air | Mass flow rate of combustion air | |
| Modelica.Units.SI.SpecificHeatCapacity[size(n_ComExh, 1)] | meanCpComExh | Calculated specific heat capacities of the exhaust gas components for the calculated combustion temperature | |
| Modelica.Units.SI.SpecificHeatCapacity | meanCpExh | Calculated specific heat capacity of the exhaust gas for the calculated combustion temperature | |
| Modelica.Units.SI.SpecificEnergy | h_Exh | 1000*(-286 + 1.011*T_ExhCHPOut - 27.29*Lambda + 0.000136*T_ExhCHPOut^2 - 0.0255*T_ExhCHPOut*Lambda + 6.425*Lambda^2) | Specific enthalpy of the exhaust gas |
| Modelica.Units.SI.Power | P_eff | Effective(mechanical) engine power | |
| Modelica.Units.SI.Power | P_Fue | m_flow_Fue*H_U | Fuel expenses at operating point |
| Modelica.Units.SI.Power | H_Exh | Enthalpy stream of the exhaust gas | |
| Modelica.Units.SI.Power | CalQ_therm | Calculated heat from engine combustion | |
| Modelica.Units.SI.Power | Q_therm | Total heat from engine combustion | |
| Modelica.Units.SI.Torque | Mmot | Calculated engine torque | |
| Modelica.Units.SI.Temperature | T_logEngCool | 356.15 | Logarithmic mean temperature of coolant inside the engine |
| Modelica.Units.SI.Temperature | T_Com | Temperature of the combustion gases | |
| Modelica.Units.SI.Temperature | T_ExhCHPOut | 383.15 | Exhaust gas outlet temperature of CHP unit |
| Real | modFac | 1 | Modulation factor for energy outuput control of the Chp unit |
| Real | A0 | 1.0895 - 1.079*10^(-2)*(T_logEngCool - 273.15) + 5.525*10^(-5)*(T_logEngCool - 273.15)^2 | |
| Real | A1 | 4.68*10^(-4) - 5.904*10^(-6)*(T_logEngCool - 273.15) + 1.88*10^(-8)*(T_logEngCool - 273.15)^2 | |
| Real | A2 | -4.35*10^(-8) + 1.12*10^(-9)*(T_logEngCool - 273.15) - 4.79*10^(-12)*(T_logEngCool - 273.15)^2 | |
| Real | B0 | -2.625*10^(-3) + 3.75*10^(-7)*(nEng*60) + 1.75*10^(-5)*(T_logEngCool - 273.15) + 2.5*10^(-9)*(T_logEngCool - 273.15)*(nEng*60) | |
| Real | B1 | 8.95*10^(-3) + 1.5*10^(-7)*(nEng*60) + 7*10^(-6)*(T_logEngCool - 273.15) - 10^(-9)*(T_logEngCool - 273.15)*(nEng*60) | |
| Modelica.Units.SI.Pressure | p_mf | p_mfNominal*((A0 + A1*(nEng*60) + A2*(nEng*60)^2) + (B0 + B1*(p_meNominal/100000))) | Current friction mean pressure at operating point |
| Modelica.Units.SI.Pressure | p_me | (modFac*p_mi) - p_mf | Current mean effective pressure at operating point |
| Real | etaMec | p_me/p_mi | Current percentage of usable mechanical power compared to inner cylinder power from combustion |
| Modelica.Fluid.Sources.MassFlowSource_T | exhaustFlow | Flow source of the exhaust gas from the engine combustion | |
| Modelica.Blocks.Sources.RealExpression | massFlowExhaust | ||
| Modelica.Blocks.Sources.RealExpression | effectiveMechanicalTorque | ||
| Modelica.Mechanics.Rotational.Sources.Torque | engineTorque | Calculated engine torque | |
| Modelica.Mechanics.Rotational.Components.Inertia | inertia | Inertia model of the engine | |
| Modelica.Blocks.Sources.RealExpression | engineSpeed | ||
| Modelica.Blocks.Sources.RealExpression | fuelPower | ||
| Modelica.Blocks.Sources.RealExpression | thermalPower | ||
| Modelica.Blocks.Sources.RealExpression | outputTorque | ||
| Modelica.Blocks.Sources.RealExpression | airFlow | ||
| Modelica.Blocks.Sources.RealExpression | carbondioxideFlow | ||
| Modelica.Blocks.Sources.RealExpression | SpecificHeatCapExhGas | ||
| Modelica.Blocks.Sources.RealExpression | fuelFlow |
Contents
| Name | Description |
|---|---|
| RotationSpeed | |
| GasConstant |
Revisions
-
April, 2019 by Julian Matthes:
First implementation (see issue #667)