From 05d5fc2ecc7da215d19cba6e82a1be6c97ef839a Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 4 Apr 2021 19:49:09 +1000 Subject: [PATCH] AP_Logger: added SRate logging to PIDs --- libraries/AP_Logger/AP_Logger.h | 1 + libraries/AP_Logger/LogFile.cpp | 1 + libraries/AP_Logger/LogStructure.h | 12 +++++++----- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libraries/AP_Logger/AP_Logger.h b/libraries/AP_Logger/AP_Logger.h index 292667e249..2ba4308f3b 100644 --- a/libraries/AP_Logger/AP_Logger.h +++ b/libraries/AP_Logger/AP_Logger.h @@ -357,6 +357,7 @@ public: float D; float FF; float Dmod; + float slew_rate; bool limit; }; diff --git a/libraries/AP_Logger/LogFile.cpp b/libraries/AP_Logger/LogFile.cpp index 19db9fb4b5..7cab571b43 100644 --- a/libraries/AP_Logger/LogFile.cpp +++ b/libraries/AP_Logger/LogFile.cpp @@ -498,6 +498,7 @@ void AP_Logger::Write_PID(uint8_t msg_type, const PID_Info &info) D : info.D, FF : info.FF, Dmod : info.Dmod, + slew_rate : info.slew_rate, limit : info.limit }; WriteBlock(&pkt, sizeof(pkt)); diff --git a/libraries/AP_Logger/LogStructure.h b/libraries/AP_Logger/LogStructure.h index d1dcbae5f0..5bfdb102e5 100644 --- a/libraries/AP_Logger/LogStructure.h +++ b/libraries/AP_Logger/LogStructure.h @@ -405,6 +405,7 @@ struct PACKED log_PID { float D; float FF; float Dmod; + float slew_rate; uint8_t limit; }; @@ -846,10 +847,10 @@ struct PACKED log_PSCZ { #define ISBD_UNITS "s--ooo" #define ISBD_MULTS "F--???" -#define PID_LABELS "TimeUS,Tar,Act,Err,P,I,D,FF,Dmod,Limit" -#define PID_FMT "QffffffffB" -#define PID_UNITS "s---------" -#define PID_MULTS "F---------" +#define PID_LABELS "TimeUS,Tar,Act,Err,P,I,D,FF,Dmod,SRate,Limit" +#define PID_FMT "QfffffffffB" +#define PID_UNITS "s----------" +#define PID_MULTS "F----------" // @LoggerMessage: ACC // @Description: IMU accelerometer data @@ -1192,7 +1193,8 @@ struct PACKED log_PSCZ { // @Field: D: derivative part of PID // @Field: FF: controller feed-forward portion of response // @Field: Dmod: scaler applied to D gain to reduce limit cycling -// @Field: Limit: 1 if I term is limited due to output saturation +// @Field: SRate: slew rate used in slew limiter +// @Field: Limit: 1 if I term is limited due to output saturation // @LoggerMessage: PM // @Description: autopilot system performance and general data dumping ground