diff --git a/src/reactor_sim/control.py b/src/reactor_sim/control.py index 686af35..5e6aba1 100644 --- a/src/reactor_sim/control.py +++ b/src/reactor_sim/control.py @@ -37,7 +37,7 @@ class ControlSystem: return self.rod_fraction error = (state.power_output_mw - self.setpoint_mw) / self.setpoint_mw # When power is low (negative error) withdraw rods; when high, insert them. - adjustment = error * 0.2 + adjustment = error * 0.35 adjustment = clamp(adjustment, -constants.CONTROL_ROD_SPEED * dt, constants.CONTROL_ROD_SPEED * dt) self.rod_target = clamp(self.rod_target + adjustment, 0.0, 0.95) self._advance_banks(self.rod_target, dt) @@ -78,10 +78,10 @@ class ControlSystem: if subcooling_margin is not None: severity = max(severity, max(0.0, 3.0 - subcooling_margin) / 3.0) if dnb_margin is not None: - severity = max(severity, max(0.0, 1.0 - dnb_margin) / 1.0) + severity = max(severity, max(0.0, 0.7 - dnb_margin) / 0.7) if severity <= 0.0: return - backoff = (0.005 + 0.03 * severity) * dt + backoff = (0.003 + 0.02 * severity) * dt self.rod_target = clamp(self.rod_target + backoff, 0.0, 0.95) self._advance_banks(self.rod_target, dt) LOGGER.debug("Safety backoff applied: target=%.3f severity=%.2f", self.rod_target, severity)