[sysid] Load DataLog files directly for analysis (#6103)

Co-authored-by: Oblarg <emichaelbrnett@gmail.com>
This commit is contained in:
Peter Johnson
2024-01-05 16:24:31 -08:00
committed by GitHub
parent f94e3d81b9
commit 7c26bc70ab
33 changed files with 1086 additions and 2013 deletions

View File

@@ -7,10 +7,6 @@
#include "sysid/analysis/AnalysisType.h"
TEST(AnalysisTypeTest, FromName) {
EXPECT_EQ(sysid::analysis::kDrivetrain,
sysid::analysis::FromName("Drivetrain"));
EXPECT_EQ(sysid::analysis::kDrivetrainAngular,
sysid::analysis::FromName("Drivetrain (Angular)"));
EXPECT_EQ(sysid::analysis::kElevator, sysid::analysis::FromName("Elevator"));
EXPECT_EQ(sysid::analysis::kArm, sysid::analysis::FromName("Arm"));
EXPECT_EQ(sysid::analysis::kSimple, sysid::analysis::FromName("Simple"));

View File

@@ -241,54 +241,6 @@ TEST(FeedforwardAnalysisTest, Arm) {
}
}
TEST(FeedforwardAnalysisTest, Drivetrain) {
{
constexpr double Ks = 1.01;
constexpr double Kv = 3.060;
constexpr double Ka = 0.327;
sysid::SimpleMotorSim model{Ks, Kv, Ka};
RunTests(model, sysid::analysis::kDrivetrain, {{Ks, Kv, Ka}},
{{8e-3, 8e-3, 8e-3}});
}
{
constexpr double Ks = 0.547;
constexpr double Kv = 0.0693;
constexpr double Ka = 0.1170;
sysid::SimpleMotorSim model{Ks, Kv, Ka};
RunTests(model, sysid::analysis::kDrivetrain, {{Ks, Kv, Ka}},
{{8e-3, 8e-3, 8e-3}});
}
}
TEST(FeedforwardAnalysisTest, DrivetrainAngular) {
{
constexpr double Ks = 1.01;
constexpr double Kv = 3.060;
constexpr double Ka = 0.327;
sysid::SimpleMotorSim model{Ks, Kv, Ka};
RunTests(model, sysid::analysis::kDrivetrainAngular, {{Ks, Kv, Ka}},
{{8e-3, 8e-3, 8e-3}});
}
{
constexpr double Ks = 0.547;
constexpr double Kv = 0.0693;
constexpr double Ka = 0.1170;
sysid::SimpleMotorSim model{Ks, Kv, Ka};
RunTests(model, sysid::analysis::kDrivetrainAngular, {{Ks, Kv, Ka}},
{{8e-3, 8e-3, 8e-3}});
}
}
TEST(FeedforwardAnalysisTest, Elevator) {
{
constexpr double Ks = 1.01;

View File

@@ -45,19 +45,13 @@ TEST(FilterTest, NoiseFloor) {
TEST(FilterTest, StepTrim) {
std::vector<sysid::PreparedData> testData = {
{0_s, 1, 2, 3, 5_ms, 0, 0}, {1_s, 1, 2, 3, 5_ms, 0.25, 0},
{2_s, 1, 2, 3, 5_ms, 0.5, 0}, {3_s, 1, 2, 3, 5_ms, 0.45, 0},
{4_s, 1, 2, 3, 5_ms, 0.35, 0}, {5_s, 1, 2, 3, 5_ms, 0.15, 0},
{6_s, 1, 2, 3, 5_ms, 0, 0}, {7_s, 1, 2, 3, 5_ms, 0.02, 0},
{8_s, 1, 2, 3, 5_ms, 0.01, 0}, {9_s, 1, 2, 3, 5_ms, 0, 0},
{0_s, 1, 2, 0, 5_ms, 0, 0}, {1_s, 1, 2, 3, 5_ms, 0.25, 0},
{2_s, 1, 2, 0, 5_ms, 10, 0}, {3_s, 1, 2, 3, 5_ms, 0.45, 0},
{4_s, 1, 2, 9.6, 5_ms, 0, 0}, {5_s, 1, 2, 3, 5_ms, 0.15, 0},
{6_s, 1, 2, 0, 5_ms, 0, 0}, {7_s, 1, 2, 3, 5_ms, 0.02, 0},
{8_s, 1, 2, 10, 5_ms, 0, 0}, {9_s, 1, 2, 3, 5_ms, 0, 0},
};
std::vector<sysid::PreparedData> expectedData = {
{2_s, 1, 2, 3, 5_ms, 0.5, 0},
{3_s, 1, 2, 3, 5_ms, 0.45, 0},
{4_s, 1, 2, 3, 5_ms, 0.35, 0},
{5_s, 1, 2, 3, 5_ms, 0.15, 0}};
auto maxTime = 9_s;
auto minTime = maxTime;
@@ -66,9 +60,7 @@ TEST(FilterTest, StepTrim) {
sysid::TrimStepVoltageData(&testData, &settings, minTime, maxTime);
minTime = tempMinTime;
EXPECT_EQ(expectedData[0].acceleration, testData[0].acceleration);
EXPECT_EQ(expectedData.back().acceleration, testData.back().acceleration);
EXPECT_EQ(5, settings.stepTestDuration.value());
EXPECT_EQ(4, settings.stepTestDuration.value());
EXPECT_EQ(2, minTime.value());
}