Esempio n. 1
0
class Controller:
    def __init__(self, Kp, Ki, n, A, B, C, Q, R):
        self.Kp = Kp
        self.Ki = Ki
        self.u = 0.0
        self.err = 0.0
        self.kalman = Kalman(n, A, B, C, Q, R)

    def compute_next_u(self, y_err):
        (x_out, y_out) = self.kalman.compute_kalman(self.u, y_err)
        self.err = (self.err - y_out)[0, 0]
        self.u = (self.Ki * self.err - self.Kp * x_out)[0, 0]
        return self.u