SlewRateLimiter
- class wpimath.SlewRateLimiter(*args, **kwargs)
Bases:
pybind11_objectA class that limits the rate of change of an input value. Useful for implementing voltage, setpoint, and/or output ramps. A slew-rate limit is most appropriate when the quantity being controlled is a velocity or a voltage; when controlling a position, consider using a TrapezoidProfile instead.
@see TrapezoidProfile
Overloaded function.
__init__(self: wpimath._wpimath.SlewRateLimiter, positiveRateLimit: wpimath.units.units_per_second, negativeRateLimit: wpimath.units.units_per_second, initialValue: float = 0.0) -> None
Creates a new SlewRateLimiter with the given positive and negative rate limits and initial value.
- Parameters:
positiveRateLimit – The rate-of-change limit in the positive direction, in units per second. This is expected to be positive.
negativeRateLimit – The rate-of-change limit in the negative direction, in units per second. This is expected to be negative.
initialValue – The initial value of the input.
__init__(self: wpimath._wpimath.SlewRateLimiter, rateLimit: wpimath.units.units_per_second) -> None
Creates a new SlewRateLimiter with the given positive rate limit and negative rate limit of -rateLimit.
- Parameters:
rateLimit – The rate-of-change limit.
- calculate(input: float) float
Filters the input to limit its slew rate.
- Parameters:
input – The input value whose slew rate is to be limited.
- Returns:
The filtered value, which will not change faster than the slew rate.
- lastValue() float
Returns the value last calculated by the SlewRateLimiter.
- Returns:
The last value.
- reset(value: float) None
Resets the slew rate limiter to the specified value; ignores the rate limit when doing so.
- Parameters:
value – The value to reset to.
- setLimit(*args, **kwargs)
Overloaded function.
setLimit(self: wpimath._wpimath.SlewRateLimiter, positiveRateLimit: wpimath.units.units_per_second, negativeRateLimit: wpimath.units.units_per_second) -> None
Sets the rate-of-change limit to the given positive and negative rate limits.
- Parameters:
positiveRateLimit – The rate-of-change limit in the positive direction, in units per second. This is expected to be positive.
negativeRateLimit – The rate-of-change limit in the negative direction, in units per second. This is expected to be negative.
setLimit(self: wpimath._wpimath.SlewRateLimiter, rateLimit: wpimath.units.units_per_second) -> None
Sets the rate-of-change limit to the given positive rate limit and negative rate limit of -rateLimit.
- Parameters:
rateLimit – The rate-of-change limit in both directions, in units per second. This is expected to be positive.