[wpimath] Fix ElevatorSim::GetCurrentDraw() in C++ (#8370)

The Kv calculation in C++ was missing a negative sign compared to the Java implementation.
This commit is contained in:
Benjamin Hall
2025-11-13 13:48:43 -05:00
committed by GitHub
parent b8d6bc2eb1
commit 95cb38e6df
3 changed files with 25 additions and 1 deletions

View File

@@ -124,4 +124,16 @@ class ElevatorSimTest {
sim.getPositionMeters(),
0.01);
}
@Test
void testCurrentDraw() {
var motor = DCMotor.getKrakenX60(2);
var sim = new ElevatorSim(motor, 20, 8.0, 0.1, 0.0, 1.0, true, 0.0, 0.01, 0.0);
assertEquals(0.0, sim.getCurrentDrawAmps());
sim.setInputVoltage(motor.getVoltage(motor.getTorque(60.0), 0.0));
sim.update(0.100);
// current draw should start at 60 A and decrease as the back emf catches up
assertTrue(0.0 < sim.getCurrentDrawAmps() && sim.getCurrentDrawAmps() < 60.0);
}
}