[wpilib] Allow disabling ElevatorSim gravity (#4145)

Closes #4144.
This commit is contained in:
Tyler Veness
2022-04-24 07:19:18 -07:00
committed by GitHub
parent aaa69f6717
commit 9d20ab3024
9 changed files with 97 additions and 54 deletions

View File

@@ -33,6 +33,7 @@ class ElevatorSimTest {
0.75 * 25.4 / 1000.0,
0.0,
3.0,
true,
VecBuilder.fill(0.01));
try (var motor = new PWMVictorSPX(0);
@@ -62,18 +63,15 @@ class ElevatorSimTest {
@Test
void testMinMax() {
var plant =
LinearSystemId.createElevatorSystem(
DCMotor.getVex775Pro(4), 8.0, 0.75 * 25.4 / 1000.0, 14.67);
var sim =
new ElevatorSim(
plant,
DCMotor.getVex775Pro(4),
14.67,
8.0,
0.75 * 25.4 / 1000.0,
0.0,
1.0,
true,
VecBuilder.fill(0.01));
for (int i = 0; i < 100; i++) {
@@ -93,17 +91,21 @@ class ElevatorSimTest {
@Test
void testStability() {
var sim = new ElevatorSim(DCMotor.getVex775Pro(4), 100, 4, Units.inchesToMeters(0.5), 0, 10);
var sim =
new ElevatorSim(DCMotor.getVex775Pro(4), 100, 4, Units.inchesToMeters(0.5), 0, 10, true);
sim.setState(VecBuilder.fill(0, 0));
sim.setInput(12);
for (int i = 0; i < 50; i++) {
for (int i = 0; i < 50; ++i) {
sim.update(0.02);
}
var system =
LinearSystemId.createElevatorSystem(
DCMotor.getVex775Pro(4), 4, Units.inchesToMeters(0.5), 100);
assertEquals(
sim.m_plant.calculateX(VecBuilder.fill(0, 0), VecBuilder.fill(12), 0.02 * 50.0).get(0, 0),
system.calculateX(VecBuilder.fill(0, 0), VecBuilder.fill(12), 0.02 * 50.0).get(0, 0),
sim.getPositionMeters(),
0.1);
0.01);
}
}