Skip to content

Commit 12d7359

Browse files
committed
Add PID controller implementation
1 parent 1a90c8e commit 12d7359

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

Diff for: control_algorithms/pid.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313

1414
class PID:
15-
def __init__(self, kp: float, ki: float, kd: float, setpoint: float = 0):
15+
def __init__(self, kp: float, ki: float, kd: float, setpoint: float = 0.0):
1616
"""
1717
Initialize the PID controller.
1818
@@ -26,8 +26,8 @@ def __init__(self, kp: float, ki: float, kd: float, setpoint: float = 0):
2626
self.kd = kd
2727
self.setpoint = setpoint
2828

29-
self.integral = 0
30-
self.previous_error = 0
29+
self.integral = 0.0
30+
self.previous_error = 0.0
3131

3232
def compute(self, measured_value: float, dt: float) -> float:
3333
"""
@@ -38,8 +38,8 @@ def compute(self, measured_value: float, dt: float) -> float:
3838
:return: Control output
3939
"""
4040
error = self.setpoint - measured_value
41-
self.integral += error * dt if error != 0 else 0
42-
derivative = (error - self.previous_error) / dt if dt > 0 else 0
41+
self.integral += error * dt if error != 0 else 0.0
42+
derivative = (error - self.previous_error) / dt if dt > 0 else 0.0
4343

4444
output = (self.kp * error) + (self.ki * self.integral) + (self.kd * derivative)
4545
self.previous_error = error

0 commit comments

Comments
 (0)