Created adaptive PID controller class.

This commit is contained in:
Andru Liu
2024-10-08 00:30:02 -07:00
parent 9bf4825a07
commit 3434cd607a
+20 -1
View File
@@ -1,8 +1,27 @@
#include <iostream>
#include <cmath>
class aPIDController {
public:
aPIDController(double kp, double ki, double kd, double dt)
: Kp(kp), Ki(ki), Kd(kd), dt(dt), integral(0.0), prev_err(0.0) {}
double update(double target, double measured_value) {
double error = target - measured_value;
integral += error * dt;
double derivative = (error - prev_err) / dt;
prev_err = error;
return (Kp * error) + (Ki * integral) + (Kd * derivative);
}
private:
double Kp, Ki, Kd, dt;
double integral;
double prev_err;
};
int main() {
std::cout << "Test" << std::endl;
return 0;
}