Stop pressurizer pumping a cold loop
This commit is contained in:
@@ -309,8 +309,7 @@ class Reactor:
|
|||||||
state.primary_loop.mass_flow_rate = self._ramp_value(
|
state.primary_loop.mass_flow_rate = self._ramp_value(
|
||||||
state.primary_loop.mass_flow_rate, 0.0, dt, self.primary_pump.spool_time
|
state.primary_loop.mass_flow_rate, 0.0, dt, self.primary_pump.spool_time
|
||||||
)
|
)
|
||||||
pressurizer_floor = constants.PRIMARY_PRESSURIZER_SETPOINT_MPA - 0.5 if self.pressurizer_level > 0.05 else 0.5
|
target_pressure = max(0.5, saturation_pressure(state.primary_loop.temperature_out))
|
||||||
target_pressure = max(pressurizer_floor, saturation_pressure(state.primary_loop.temperature_out))
|
|
||||||
state.primary_loop.pressure = self._ramp_value(
|
state.primary_loop.pressure = self._ramp_value(
|
||||||
state.primary_loop.pressure, target_pressure, dt, self.primary_pump.spool_time
|
state.primary_loop.pressure, target_pressure, dt, self.primary_pump.spool_time
|
||||||
)
|
)
|
||||||
@@ -551,6 +550,8 @@ class Reactor:
|
|||||||
return max(0.0, min(1.0, available / constants.NPSH_REQUIRED_MPA))
|
return max(0.0, min(1.0, available / constants.NPSH_REQUIRED_MPA))
|
||||||
|
|
||||||
def _apply_pressurizer(self, primary: CoolantLoopState, dt: float) -> None:
|
def _apply_pressurizer(self, primary: CoolantLoopState, dt: float) -> None:
|
||||||
|
if self.shutdown and primary.mass_flow_rate <= 100.0:
|
||||||
|
return
|
||||||
target = constants.PRIMARY_PRESSURIZER_SETPOINT_MPA
|
target = constants.PRIMARY_PRESSURIZER_SETPOINT_MPA
|
||||||
band = constants.PRIMARY_PRESSURIZER_DEADBAND_MPA
|
band = constants.PRIMARY_PRESSURIZER_DEADBAND_MPA
|
||||||
heat_rate = constants.PRIMARY_PRESSURIZER_HEAT_RATE_MPA_PER_S
|
heat_rate = constants.PRIMARY_PRESSURIZER_HEAT_RATE_MPA_PER_S
|
||||||
|
|||||||
@@ -5,14 +5,15 @@ from reactor_sim.commands import ReactorCommand
|
|||||||
def test_pressurizer_raises_pressure_with_level():
|
def test_pressurizer_raises_pressure_with_level():
|
||||||
reactor = Reactor.default()
|
reactor = Reactor.default()
|
||||||
state = reactor.initial_state()
|
state = reactor.initial_state()
|
||||||
state.primary_loop.pressure = 5.0
|
state.primary_loop.pressure = 0.5
|
||||||
reactor.pressurizer_level = 0.8
|
reactor.pressurizer_level = 0.8
|
||||||
reactor.primary_pump_active = False
|
reactor.primary_pump_active = False
|
||||||
reactor.secondary_pump_active = False
|
reactor.secondary_pump_active = False
|
||||||
|
reactor.shutdown = False
|
||||||
|
|
||||||
reactor.step(state, dt=1.0, command=ReactorCommand.scram_all())
|
reactor.step(state, dt=1.0, command=ReactorCommand())
|
||||||
|
|
||||||
assert state.primary_loop.pressure > 5.0
|
assert state.primary_loop.pressure > 0.5
|
||||||
assert reactor.pressurizer_level < 0.8
|
assert reactor.pressurizer_level < 0.8
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user