autopdex.dae.PIDController
- class autopdex.dae.PIDController(pcoeff: float = 0.0, icoeff: float = 1.0, dcoeff: float = 0.0, limiter: Any = None, atol=1e-06, rtol=0.001)[source]
Proportional-Integral-Derivative (PID) Step Size Controller.
Inspired by https://docs.kidger.site/diffrax/api/stepsize_controller and https://docs.sciml.ai/DiffEqDocs/stable/extras/timestepping/
- __init__(pcoeff: float = 0.0, icoeff: float = 1.0, dcoeff: float = 0.0, limiter: Any = None, atol=1e-06, rtol=0.001)[source]
Initialize the PIDController.
- Parameters:
pcoeff (float) – The coefficient of the proportional part of the step size control.
icoeff (float) – The coefficient of the integral part of the step size control.
dcoeff (float) – The coefficient of the derivative part of the step size control.
limiter (callable) – Limiter function. If None the limiter is set to 1.0 + jnp.arctan(x - 1.0).
atol (float) – Absolute tolerance.
rtol (float) – Relative tolerance.
Methods
__delattr__
(name, /)Implement delattr(self, name).
__dir__
()Default dir() implementation.
__eq__
(value, /)Return self==value.
__format__
(format_spec, /)Default object formatter.
__ge__
(value, /)Return self>=value.
__getattribute__
(name, /)Return getattr(self, name).
__getstate__
()Helper for pickle.
__gt__
(value, /)Return self>value.
__hash__
()Return hash(self).
__init_subclass__
This method is called when a class is subclassed.
__le__
(value, /)Return self<=value.
__lt__
(value, /)Return self<value.
__ne__
(value, /)Return self!=value.
__new__
(**kwargs)__reduce__
()Helper for pickle.
__reduce_ex__
(protocol, /)Helper for pickle.
__repr__
()Return repr(self).
__setattr__
(name, value, /)Implement setattr(self, name, value).
__sizeof__
()Size of object in memory, in bytes.
__str__
()Return str(self).
__subclasshook__
Abstract classes can override this to customize issubclass().
check_accept
(state, converged, verbose)Check whether the current step should be accepted.
compute_scaler
(error, q, q_n, state, order, ...)Compute the scaling factor step_scaler and update the controller state.
initialize
(initial_error)TODO: Initialization of time increment? See diffrax
Attributes
__abstractmethods__
__annotations__
__dict__
__doc__
__module__
__slots__
__weakref__
list of weak references to the object
_abc_impl