Package org.chsrobotics.lib.math.filters
Class RateLimiter
java.lang.Object
org.chsrobotics.lib.math.filters.Filter
org.chsrobotics.lib.math.filters.RateLimiter
Filter which constrains the maximum rate of change of a reference. Useful for ensuring that an
open-loop-controlled mechanism doesn't accelerate uncontrollably, or that measurements can't
change unreasonably fast.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondouble
calculate
(double value, double dtSeconds) Adds the value to the window and calculates the current output of the filter, with a change in time since the last call of this.double
Returns the current output of the filter without updating with a new value.void
reset()
Resets the history of the filter.Methods inherited from class org.chsrobotics.lib.math.filters.Filter
add, calculate, scalarMultiply
-
Constructor Details
-
RateLimiter
public RateLimiter(double rateLimit) Constructs a RateLimiter.- Parameters:
rateLimit
- Maximum rate-of-change of the reference, in units per second. If equal to zero, this will not apply any kind of rate limiting.
-
-
Method Details
-
calculate
public double calculate(double value, double dtSeconds) Description copied from class:Filter
Adds the value to the window and calculates the current output of the filter, with a change in time since the last call of this.Some filters do not use time in their calculations, and this method is identical to
calculate()
for them. -
reset
public void reset()Description copied from class:Filter
Resets the history of the filter. -
getCurrentOutput
public double getCurrentOutput()Description copied from class:Filter
Returns the current output of the filter without updating with a new value.- Specified by:
getCurrentOutput
in classFilter
- Returns:
- The current output of the filter (0 if no values have been given to
calculate()
).
-