blob: beb73ac630b917e72495b2cdae0243cd052acfd9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#pragma once
#include "protocol.h"
class PID {
private:
float A0, A1, A0d, A1d, A2d, tau, alpha, d0, d1, fd0, fd1;
float error[3];
float output;
const float dt = 1.0;
const float N = 10.0;
public:
PID(float P = -0.02, float I = 0.13, float D = -300.0);
float iter(float target);
void reset(float value);
};
/** @brief edit `current` to be closer to `target` using PID controllers */
void apply_pid(dui_state_t* target, dui_state_t* current);
|