Struct pid_loop::PID[][src]

pub struct PID<F, const W: usize> {
    pub kp: F,
    pub ki: F,
    pub kd: F,
    // some fields omitted
}
Expand description

PID controller

Examples

use pid_loop::PID;

let target = 42.0;
let mut controller = PID::<f64, 1>::new(2.0, 0.7, 0.3);
let correction = controller.next(target, measure());

fn measure() -> f64 { todo!() }

Fields

kp: F

Proportional gain.

ki: F

Integral gain.

kd: F

Derivative gain.

Implementations

Create a new instance of PID.

Examples
#![allow(unused_assignments)]
use pid_loop::PID;

let mut controller = PID::<f32, 1>::new(0.7, 0.034, 0.084);

Reset controller internal state.

Examples
#![allow(unused_assignments)]
use pid_loop::PID;

let target = 30.0;
let mut controller = PID::<f32, 1>::new(0.7, 0.034, 0.084);
controller.next(target, 42.0);
controller.reset();

Push next measurement into the controller and return correction.

Examples
#![allow(unused_assignments)]
use pid_loop::PID;

let target = 30.0;
let mut controller = PID::<f64, 1>::new(0.7, 0.034, 0.084);
let correction = controller.next(target, 42.0);

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.