Skip to content

Instantly share code, notes, and snippets.

@blalop
Created December 13, 2018 00:17
Show Gist options
  • Save blalop/3a2cb9b7502e066b7d841e1fca11fb53 to your computer and use it in GitHub Desktop.
Save blalop/3a2cb9b7502e066b7d841e1fca11fb53 to your computer and use it in GitHub Desktop.
class PID:
def __init__(self, kp, ki, kd):
self.kp = kp
self.ki = ki
self.kd = kd
self.acc_e = 0
self.prev_e = 0
def proportional(self, e):
return self.kp * e
def integral(self, e):
self.acc_e = self.acc_e + e
return self.ki * self.acc_e
def derivative(self, e):
delta = e - self.prev_e
self.prev_e = e
return self.kd * delta
def calculate(self, e):
p = self.proportional(e)
i = self.integral(e)
d = self.derivative(e)
u = p + i + d
return u
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment