mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[wpilib] LinearSystemSim.setState: calculate new output state (#7799)
Establishes the invariant that the state and measurement always match up, even immediately after construction.
This commit is contained in:
@@ -44,6 +44,15 @@ TEST(ElevatorSimTest, StateSpaceSim) {
|
||||
EXPECT_NEAR(controller.GetSetpoint(), sim.GetPosition().value(), 0.2);
|
||||
}
|
||||
|
||||
TEST(ElevatorSimTest, InitialState) {
|
||||
constexpr auto startingHeight = 0.5_m;
|
||||
frc::sim::ElevatorSim sim(frc::DCMotor::KrakenX60(2), 20, 8_kg, 0.1_m, 0_m,
|
||||
1_m, true, startingHeight, {0.01, 0.0});
|
||||
|
||||
EXPECT_DOUBLE_EQ(startingHeight.value(), sim.GetPosition().value());
|
||||
EXPECT_DOUBLE_EQ(0, sim.GetVelocity().value());
|
||||
}
|
||||
|
||||
TEST(ElevatorSimTest, MinMax) {
|
||||
frc::sim::ElevatorSim sim(frc::DCMotor::Vex775Pro(4), 14.67, 8_kg, 0.75_in,
|
||||
0_m, 1_m, true, 0_m, {0.01});
|
||||
|
||||
@@ -21,3 +21,12 @@ TEST(SingleJointedArmTest, Disabled) {
|
||||
// The arm should swing down.
|
||||
EXPECT_NEAR(sim.GetAngle().value(), -std::numbers::pi / 2, 0.01);
|
||||
}
|
||||
|
||||
TEST(SingleJointedArmTest, InitialState) {
|
||||
constexpr auto startingAngle = 45_deg;
|
||||
frc::sim::SingleJointedArmSim sim(frc::DCMotor::KrakenX60(2), 125, 3_kg_sq_m,
|
||||
30_in, 0_deg, 90_deg, true, startingAngle);
|
||||
|
||||
EXPECT_EQ(startingAngle, sim.GetAngle());
|
||||
EXPECT_DOUBLE_EQ(0, sim.GetVelocity().value());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user