libICEpost.src.engineModel.HeatTransferModel.Woschni

@author: F. Ramognino <federico.ramognino@polimi.it> Last update: 12/06/2023

Classes

Woschni

Class for computation of wall heat transfer with Woschni model:

Module Contents

class libICEpost.src.engineModel.HeatTransferModel.Woschni.Woschni(/, *, nwos: float = 1.32, C1: float = 3.26, C2cv: float = 2.28, C2ge: float = 6.18, C2corrcv: float = 0.308, C2corrge: float = 0.417, C3comp: float = 0.0, C3comb: float = 0.00324, useTurbulence: bool = False)[source]

Bases: libICEpost.src.engineModel.HeatTransferModel.HeatTransferModel.HeatTransferModel

Class for computation of wall heat transfer with Woschni model:

h = C1 * (p/1000.)^.8 * T^(-0.53) * D^(-0.2) * uwos^(0.8) C2Prime = C2 + C2corr * (u’/upMean) uwos = C2Prime * upMean + C3 * (p - p_mot) * Vs * T0 / (p0 * V0) p_mot = p * ( V0 / V )**nwos

Vs: Displacement volume upMean: Mean piston speed

Where:
  1. C2 changes depending if at closed-valves (C2cv) or during gas-exchange (C2ge)

  2. C3 changes depending if during compression (C3comp) or during combustion/expansion (C3comb)

  3. Reference conditions (0) are at IVC or startTime if it is in closed-valve region.


Attibutes:
coeffs: dict

Container for model constants

classmethod fromDictionary(dictionary: dict) Woschni[source]

Construct from dictionary.

Parameters:

dictionary (dict) – the input dictionary, containing: nwos (float, default 1.32) C1 (float, default 3.26) C2cv (float, default 2.28) C2ge (float, default 6.18) C2corrcv(float, default 0.308) C2corrge(float, default 0.417) C3comp (float, default 0.0) C3comb (float, default 3.24e-3) useTurbulence (bool, False)

Returns:

Instance of this class

Return type:

Woschni

coeffs
h(*, engine: libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel, CA: float | collections.abc.Iterable | None = None, **kwargs) float[source]

Compute convective wall heat transfer with Woschni correlation:

h = C1 * (p/1000.)^.8 * T^(-0.53) * D^(-0.2) * uwos^(0.8) C2Prime = C2 + C2corr * (u’/upMean) uwos = C2Prime * upMean + C3 * (p - p_mot) * Vs * T0 / (p0 * V0) p_mot = p * ( V0 / V )**nwos

Vs: Displacement volume upMean: Mean piston speed

Where:
  1. C2 changes depending if at closed-valves (C2cv) or during gas-exchange (C2ge)

  2. C3 changes depending if during compression (C3comp) or during combustion/expansion (C3comb)

  3. Reference conditions (0) are at IVC or startTime if it is in closed-valve region.

  4. C2corr changes depending if at closed-valves (C2corrcv) or during gas-exchange (C2corrge)

Parameters:
  • engine (EngineModel) – The engine model from which taking data.

  • CA (float | Iterable | None, optional) – Time for which computing heat transfer. If None, uses engine.time.time. Defaults to None.

Returns:

convective wall heat transfer coefficient [W/(m^2 K)]

Return type:

float

uwos(engine: libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel, *, CA: float | collections.abc.Iterable | None = None) float[source]

uwos = C2Prime * upMean + C3 * (p - p_mot) * Vs * T0 / (p0 * V0) C2Prime = C2 + C2corr * (u’/upMean) p_mot = p * ( V0 / V )**nwos

Vs: Displacement volume upMean: Mean piston speed

Where:
  1. C2 changes depending if at closed-valves (C2cv) or during gas-exchange (C2ge)

  2. C3 changes depending if during compression (C3comp) or during combustion/expansion (C3comb)

  3. Reference conditions (0) are at IVC or startTime if it is in closed-valve region.

  4. C2corr changes depending if at closed-valves (C2corrcv) or during gas-exchange (C2corrge)

Parameters:
  • engine (EngineModel) – The engine model from which taking data.

  • CA (float | Iterable | None, optional) – Time for which computing heat transfer. If None, uses engine.time.time. Defaults to None.

p_mot(*, p0: float | collections.abc.Iterable, V: float | collections.abc.Iterable, V0: float | collections.abc.Iterable)[source]

p_mot = p0 * ( V0 / V )**nwos