mirror of
https://github.com/WallabyLester/RBF-aPID-Controller.git
synced 2026-05-10 21:19:39 +08:00
28 lines
615 B
C++
28 lines
615 B
C++
#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() {
|
|
|
|
return 0;
|
|
}
|