Skip to content

Commit 1db0260

Browse files
authored
Use correct error calculation in PI and PID Controllers (#11)
* use param instead of const generics for pwm resolution * correct pid error measurement
1 parent 27eacc3 commit 1db0260

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/pid.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ impl PIController {
2121
}
2222

2323
/// Update the PI controller, returning the new output value.
24-
pub fn update(&mut self, measurement: I16F16, setpoint: I16F16, dt: I16F16) -> I16F16 {
25-
let error = measurement - setpoint;
24+
pub fn update(&mut self, setpoint: I16F16, measurement: I16F16, dt: I16F16) -> I16F16 {
25+
let error = setpoint - measurement;
2626
self.k_p * error + self.integral.update(error, dt)
2727
}
2828
}
@@ -54,8 +54,8 @@ impl PIDController {
5454
}
5555

5656
/// Update the PID controller, returning the new output value.
57-
pub fn update(&mut self, measurement: I16F16, setpoint: I16F16, dt: I16F16) -> I16F16 {
58-
let error = measurement - setpoint;
57+
pub fn update(&mut self, setpoint: I16F16, measurement: I16F16, dt: I16F16) -> I16F16 {
58+
let error = setpoint - measurement;
5959
self.k_p * error + self.integral.update(error, dt) + self.derivative.update(measurement, dt)
6060
}
6161
}

0 commit comments

Comments
 (0)