mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
Add SlewRateLimiter class (#2192)
This is extremely useful for implementing various "ramping" functions (such as voltage ramps, setpoint ramps, etc). Usage is straightforward; it behaves like all of our other filter classes. C++ version is unit-safe.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2019 FIRST. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
package edu.wpi.first.wpilibj;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class SlewRateLimiterTest {
|
||||
@Test
|
||||
void slewRateLimitTest() {
|
||||
SlewRateLimiter limiter = new SlewRateLimiter(1);
|
||||
Timer.delay(1);
|
||||
assertTrue(limiter.calculate(2) < 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
void slewRateNoLimitTest() {
|
||||
SlewRateLimiter limiter = new SlewRateLimiter(1);
|
||||
Timer.delay(1);
|
||||
assertEquals(limiter.calculate(0.5), 0.5);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user