Improve persistence and reactor dynamics
This commit is contained in:
@@ -6,10 +6,7 @@ from dataclasses import dataclass
|
||||
import logging
|
||||
|
||||
from . import constants
|
||||
from typing import Optional
|
||||
|
||||
from .state import CoolantLoopState, TurbineState
|
||||
from .consumer import ElectricalConsumer
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -33,7 +30,6 @@ class Turbine:
|
||||
self,
|
||||
loop: CoolantLoopState,
|
||||
state: TurbineState,
|
||||
consumer: Optional[ElectricalConsumer] = None,
|
||||
steam_power_mw: float = 0.0,
|
||||
) -> None:
|
||||
enthalpy = 2_700.0 + loop.steam_quality * 600.0
|
||||
@@ -41,31 +37,14 @@ class Turbine:
|
||||
available_power = max(steam_power_mw, (enthalpy * mass_flow / 1_000.0) / 1_000.0)
|
||||
shaft_power_mw = available_power * self.mechanical_efficiency
|
||||
electrical = shaft_power_mw * self.generator_efficiency
|
||||
if consumer:
|
||||
load_demand = consumer.request_power()
|
||||
supplied = min(electrical, load_demand)
|
||||
consumer.update_power_received(supplied)
|
||||
LOGGER.debug(
|
||||
"Consumer %s demand %.1f -> supplied %.1f MW",
|
||||
consumer.name,
|
||||
load_demand,
|
||||
supplied,
|
||||
)
|
||||
else:
|
||||
load_demand = 0.0
|
||||
supplied = 0.0
|
||||
condenser_temp = max(305.0, loop.temperature_in - 20.0)
|
||||
state.steam_enthalpy = enthalpy
|
||||
state.shaft_power_mw = shaft_power_mw
|
||||
state.electrical_output_mw = electrical
|
||||
state.condenser_temperature = condenser_temp
|
||||
state.load_demand_mw = load_demand
|
||||
state.load_supplied_mw = supplied
|
||||
LOGGER.debug(
|
||||
"Turbine output: shaft=%.1fMW electrical=%.1fMW condenser=%.1fK load %.1f/%.1f",
|
||||
"Turbine output: shaft=%.1fMW electrical=%.1fMW condenser=%.1fK",
|
||||
shaft_power_mw,
|
||||
electrical,
|
||||
condenser_temp,
|
||||
supplied,
|
||||
load_demand,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user