Prevent turbine output when steam quality or flow is negligible
This commit is contained in:
@@ -35,7 +35,8 @@ class Turbine:
|
||||
steam_power_mw: float = 0.0,
|
||||
dt: float = 1.0,
|
||||
) -> None:
|
||||
if steam_power_mw <= 0.0 and loop.steam_quality <= 0.01:
|
||||
effective_mass_flow = loop.mass_flow_rate * max(0.0, loop.steam_quality)
|
||||
if steam_power_mw <= 0.0 and (loop.steam_quality <= 0.01 or effective_mass_flow <= 10.0):
|
||||
# No steam available; turbine should idle.
|
||||
state.shaft_power_mw = 0.0
|
||||
state.electrical_output_mw = 0.0
|
||||
@@ -46,8 +47,9 @@ class Turbine:
|
||||
return
|
||||
|
||||
enthalpy = 2_700.0 + loop.steam_quality * 600.0
|
||||
mass_flow = loop.mass_flow_rate * 0.6
|
||||
available_power = max(steam_power_mw, (enthalpy * mass_flow / 1_000.0) / 1_000.0)
|
||||
mass_flow = effective_mass_flow * 0.6
|
||||
computed_power = (enthalpy * mass_flow / 1_000.0) / 1_000.0
|
||||
available_power = steam_power_mw if steam_power_mw > 0 else computed_power
|
||||
shaft_power_mw = available_power * self.mechanical_efficiency
|
||||
electrical = shaft_power_mw * self.generator_efficiency
|
||||
if electrical > self.rated_output_mw:
|
||||
|
||||
Reference in New Issue
Block a user