Add set_ambient_temperature and set_model_plant_params stubs to TempControllerBase
Same pattern as set_model_power: these methods only existed on the Smith controller, forcing five hasattr guards at call sites. No-op stubs on the base class give all controllers a stable interface; Smith overrides them. Remove the now-redundant hasattr guards. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tqxrk8uj4M3w3d3eXm3xK8
This commit is contained in:
@@ -89,6 +89,12 @@ class TempControllerBase(APid):
|
||||
def post_pid(self):
|
||||
pass
|
||||
|
||||
def set_ambient_temperature(self, theta_amb):
|
||||
pass
|
||||
|
||||
def set_model_plant_params(self, model_params):
|
||||
pass
|
||||
|
||||
def set_model_power(self, power):
|
||||
pass
|
||||
|
||||
|
||||
@@ -108,8 +108,7 @@ class SudForecastEstimator:
|
||||
pot.initial(start_theta)
|
||||
tc = PidFactory.create(self.pid_type, self.dt)
|
||||
tc.set_params(self.tempctrl_params)
|
||||
if hasattr(tc, 'set_ambient_temperature'):
|
||||
tc.set_ambient_temperature(self.theta_amb)
|
||||
tc.set_ambient_temperature(self.theta_amb)
|
||||
tc.set_enabled(True)
|
||||
tc.set_theta_ist(pot.get_temperature())
|
||||
# Seed the target at start_theta - this tc is a fresh, throwaway
|
||||
@@ -159,8 +158,7 @@ class SudForecastEstimator:
|
||||
step_starts.setdefault(sud.index, t[-1])
|
||||
params = sud.derive_plant_params(step.get('grain_mass', 0), step.get('water_mass', 0))
|
||||
pot.set_plant_params(params)
|
||||
if hasattr(tc, 'set_model_plant_params'):
|
||||
tc.set_model_plant_params(params)
|
||||
tc.set_model_plant_params(params)
|
||||
if sud.state == SudState.RAMPING and step['temperature'] is not None:
|
||||
tc.set_theta_soll(step['temperature'])
|
||||
tc.set_heatrate_soll(step['ramp']['rate'])
|
||||
|
||||
Reference in New Issue
Block a user