Commit 0e8dc548 authored by Ibrahim Ahmed's avatar Ibrahim Ahmed
Browse files

controller: Checks for NaNs when calculating feedback

parent 5b782d30
Loading
Loading
Loading
Loading
+10 −2
Changes for src/controller.py: 10 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -128,9 +128,17 @@ def get_controller(**settings) -> BaseEstimator:

        def feedback(self, X):
            if self.target == 'temperature':
                return -X['TempCondIn']
                f = -X['TempCondIn']
                if np.isnan(f):
                    raise ValueError('TempCondIn is NaN. Could not calculate feedback.')
                return f
            else:
                return - X['PowChi'] - X['PowFanA'] - X['PowFanB'] - X['PowConP']
                f = 0.
                for p in ('PowChi', 'PowFanA', 'PowFanB', 'PowConP'):
                    f -= X[p]
                    if np.isnan(p):
                        raise ValueError('{} is NaN. Could not calculate feedback.'.format(p))
                return f

        def starting_action(self, X):
            return np.asarray([X['TempWetBulb'] + self.random.uniform(low=4, high=6)])