Tighten rod auto-control to better hit 3GW
This commit is contained in:
@@ -37,7 +37,7 @@ class ControlSystem:
|
|||||||
return self.rod_fraction
|
return self.rod_fraction
|
||||||
error = (state.power_output_mw - self.setpoint_mw) / self.setpoint_mw
|
error = (state.power_output_mw - self.setpoint_mw) / self.setpoint_mw
|
||||||
# When power is low (negative error) withdraw rods; when high, insert them.
|
# 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)
|
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.rod_target = clamp(self.rod_target + adjustment, 0.0, 0.95)
|
||||||
self._advance_banks(self.rod_target, dt)
|
self._advance_banks(self.rod_target, dt)
|
||||||
@@ -78,10 +78,10 @@ class ControlSystem:
|
|||||||
if subcooling_margin is not None:
|
if subcooling_margin is not None:
|
||||||
severity = max(severity, max(0.0, 3.0 - subcooling_margin) / 3.0)
|
severity = max(severity, max(0.0, 3.0 - subcooling_margin) / 3.0)
|
||||||
if dnb_margin is not None:
|
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:
|
if severity <= 0.0:
|
||||||
return
|
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.rod_target = clamp(self.rod_target + backoff, 0.0, 0.95)
|
||||||
self._advance_banks(self.rod_target, dt)
|
self._advance_banks(self.rod_target, dt)
|
||||||
LOGGER.debug("Safety backoff applied: target=%.3f severity=%.2f", self.rod_target, severity)
|
LOGGER.debug("Safety backoff applied: target=%.3f severity=%.2f", self.rod_target, severity)
|
||||||
|
|||||||
Reference in New Issue
Block a user