(self, error)
| 14 | self._min = 0.0 |
| 15 | |
| 16 | def step(self, error): |
| 17 | self._window.append(error) |
| 18 | self._max = max(self._max, abs(error)) |
| 19 | self._min = -abs(self._max) |
| 20 | |
| 21 | if len(self._window) >= 2: |
| 22 | integral = np.mean(self._window) |
| 23 | derivative = (self._window[-1] - self._window[-2]) |
| 24 | else: |
| 25 | integral = 0.0 |
| 26 | derivative = 0.0 |
| 27 | |
| 28 | return self._K_P * error + self._K_I * integral + self._K_D * derivative |