AdaptivePIDController
- class cubie.integrators.AdaptivePIDController(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], n: int = 1, **kwargs)[source]
Bases:
BaseAdaptiveStepControllerAdaptive PID step size controller.
- __init__(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], n: int = 1, **kwargs) None[source]
Initialise a proportional–integral–derivative controller.
- Parameters:
precision – Precision used for controller calculations.
n – Number of state variables.
**kwargs – Optional parameters passed to PIDStepControlConfig. See PIDStepControlConfig for available parameters including dt_min, dt_max, atol, rtol, algorithm_order, kp, ki, kd, min_gain, max_gain, deadband_min, deadband_max. None values are ignored.
- build_controller(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], clamp: Callable, min_gain: float, max_gain: float, dt_min: float, dt_max: float, n: int, atol: ndarray, rtol: ndarray, algorithm_order: int, safety: float) ControllerCache[source]
Create the device function for the PID controller.
- Parameters:
precision – Precision callable used to coerce scalars on device.
clamp – Callable that clamps proposed step sizes.
min_gain – Minimum allowed gain when adapting the step size.
max_gain – Maximum allowed gain when adapting the step size.
dt_min – Minimum permissible step size.
dt_max – Maximum permissible step size.
n – Number of state variables controlled per step.
atol – Absolute tolerance vector.
rtol – Relative tolerance vector.
algorithm_order – Order of the integration algorithm.
safety – Safety factor used when scaling the step size.
- Returns:
CUDA device function implementing the PID controller.
- Return type:
Callable