Skip to main content

PidConfig

Struct PidConfig 

Source
pub struct PidConfig {
    pub kp: f32,
    pub ki: f32,
    pub kd: f32,
    pub setpoint_weight_b: f32,
    pub derivative_filter_n: f32,
    pub kb: f32,
    pub output_min: f32,
    pub output_max: f32,
}
Expand description

Tuning and limits for a PidController.

Fields§

§kp: f32

Proportional gain.

§ki: f32

Integral gain (per second).

§kd: f32

Derivative gain (seconds).

§setpoint_weight_b: f32

Setpoint weight b on the proportional term (b·setpoint − measurement). 1.0 is classic PID; lower values (≈0.7) reduce overshoot on setpoint changes while keeping full disturbance rejection.

§derivative_filter_n: f32

Derivative filter divisor N (the filter time constant is (Kd/Kp)/N). Typical range 2..=20; higher N filters less. Must be > 0.

§kb: f32

Back-calculation anti-windup gain. 0.0 disables anti-windup. A common starting point is Kb ≈ Ki (anti-windup time constant 1/Kb).

§output_min: f32

Lower saturation bound on the output.

§output_max: f32

Upper saturation bound on the output.

Trait Implementations§

Source§

impl Clone for PidConfig

Source§

fn clone(&self) -> PidConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PidConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PidConfig

Source§

fn default() -> Self

Defaults tuned for the DCC frame-time loop: output is the budget multiplier in [0.3, 1.0], the plant is the discrete strategy ladder sampled at the cold-path rate (~20 Hz). Conservative gains favour stability over speed on this coarse, non-linear actuator.

Source§

impl PartialEq for PidConfig

Source§

fn eq(&self, other: &PidConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for PidConfig

Source§

impl StructuralPartialEq for PidConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AppLifecycle for T
where T: ?Sized,

Source§

fn on_start(&mut self, ctx: &mut dyn AppContext)

Called once after the backend is up but before the first update. Apps install their theme / fonts here.
Source§

fn on_exit(&mut self)

Called once when the window is closing. Persist state here.
Source§

impl<T> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to the inner value as &dyn Any.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.