Skip to content

Controllers¤

Control ¤

An interface for a control algorithm.

apply(dt: float, state: T, /, *, error_power: float) -> tuple[float, T] ¤

Propose a time-step-size.

init(dt: float) -> T ¤

Initialise the controller state.

S = TypeVar('S') module-attribute ¤

T = TypeVar('T') module-attribute ¤

__all__ = ['Control', 'control_integral', 'control_proportional_integral'] module-attribute ¤

control_integral(*, safety=0.95, factor_min=0.2, factor_max=10.0) ¤

Construct an integral-controller.

apply(dt, state: tuple, /, *, error_power) ¤

factor_max = factor_max instance-attribute ¤

factor_min = factor_min instance-attribute ¤

init(dt) -> tuple ¤

safety = safety instance-attribute ¤

control_proportional_integral(*, safety=0.95, factor_min=0.2, factor_max=10.0, exponent_integral=0.3, exponent_proportional=0.4) ¤

Construct a proportional-integral-controller with time-clipping.

apply(dt: float, error_norm_inv_prev: float, /, *, error_power) ¤

exponent_integral = exponent_integral instance-attribute ¤

exponent_proportional = exponent_proportional instance-attribute ¤

factor_max = factor_max instance-attribute ¤

factor_min = factor_min instance-attribute ¤

init(dt: float) -> float ¤

safety = safety instance-attribute ¤