From 7b98e0b21d3d3920f029a9f401269d912828ad67 Mon Sep 17 00:00:00 2001 From: "Dr.-Ing. Amilcar do Carmo Lucas" Date: Sat, 20 Jun 2026 17:23:57 +0200 Subject: [PATCH 1/8] PIDReview: add D_FF PID parameter and data Also adds a prominent notice at the top of the page reminding users that the PID bit of LOG_BITMASK must be enabled for any PID log messages to be present in the log. Adds documentation and a signalflow graph --- ...uCopter_angle_rate_control_loop.drawio.png | Bin 0 -> 138327 bytes PIDReview/PIDReview.js | 27 ++++--- PIDReview/Readme.md | 67 +++++++++++++++++- PIDReview/index.html | 18 ++++- 4 files changed, 101 insertions(+), 11 deletions(-) create mode 100644 PIDReview/ArduCopter_angle_rate_control_loop.drawio.png diff --git a/PIDReview/ArduCopter_angle_rate_control_loop.drawio.png b/PIDReview/ArduCopter_angle_rate_control_loop.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..368e638202ca3e76dea5811b12b1528f1a0a40f6 GIT binary patch literal 138327 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 H)Fb}~KD}wg literal 0 HcmV?d00001 diff --git a/PIDReview/PIDReview.js b/PIDReview/PIDReview.js index 175a1ab2..7ce7007d 100644 --- a/PIDReview/PIDReview.js +++ b/PIDReview/PIDReview.js @@ -4,7 +4,7 @@ var DataflashParser const import_done = import('../modules/JsDataflashParser/parser.js').then((mod) => { DataflashParser = mod.default }); // Keys in data object to run FFT of -const fft_keys = ["Tar", "Act", "Err", "P", "I", "D", "FF", "Out"] +const fft_keys = ["Tar", "Act", "Err", "P", "I", "D", "FF", "DFF", "Out"] function run_batch_fft(data_set) { @@ -272,7 +272,7 @@ function setup_plots() { Plotly.newPlot(plot, TimeInputs.data, TimeInputs.layout, {displaylogo: false}) - const pid_outputs = ["P","I","D","FF","Output"] + const pid_outputs = ["P","I","D","FF","D FF","Output"] TimeOutputs.data = [] for (const item of pid_outputs) { TimeOutputs.data.push({ mode: "lines", @@ -388,7 +388,7 @@ function link_plots() { } // Add data sets to FFT plot -const plot_types = ["Target", "Actual", "Error", "P", "I", "D", "FF", "Output"] +const plot_types = ["Target", "Actual", "Error", "P", "I", "D", "FF", "D FF", "Output"] function get_FFT_data_index(set_num, plot_type) { return set_num*plot_types.length + plot_type } @@ -717,12 +717,14 @@ function add_param_sets() { document.getElementById("PIDX_I").disabled = !have_all document.getElementById("PIDX_D").disabled = !have_all document.getElementById("PIDX_FF").disabled = !have_all + document.getElementById("PIDX_DFF").disabled = !have_all document.getElementById("Spec_Err").disabled = !have_all document.getElementById("Spec_P").disabled = !have_all document.getElementById("Spec_I").disabled = !have_all document.getElementById("Spec_D").disabled = !have_all document.getElementById("Spec_FF").disabled = !have_all + document.getElementById("Spec_DFF").disabled = !have_all // Uncheck any that are disabled if (!have_all) { @@ -731,13 +733,15 @@ function add_param_sets() { document.getElementById("PIDX_I").checked = false document.getElementById("PIDX_D").checked = false document.getElementById("PIDX_FF").checked = false + document.getElementById("PIDX_DFF").checked = false // Change to Out on spectrogram if disabled option is set const disabled_checked = document.getElementById("Spec_Err").checked || document.getElementById("Spec_P").checked || document.getElementById("Spec_I").checked || document.getElementById("Spec_D").checked || - document.getElementById("Spec_FF").checked + document.getElementById("Spec_FF").checked || + document.getElementById("Spec_DFF").checked if (disabled_checked) { document.getElementById("Spec_Out").checked = true } @@ -806,7 +810,10 @@ function redraw() { if ("FF" in set[i]) { TimeOutputs.data[3].y = TimeOutputs.data[3].y.concat(set[i].FF) } - TimeOutputs.data[4].y = TimeOutputs.data[4].y.concat(set[i].Out) + if ("DFF" in set[i]) { + TimeOutputs.data[4].y = TimeOutputs.data[4].y.concat(set[i].DFF) + } + TimeOutputs.data[5].y = TimeOutputs.data[5].y.concat(set[i].Out) } } @@ -1204,7 +1211,7 @@ function update_hidden(source) { var index for (let j = 0; j < fft_keys.length; j++) { const key = fft_keys[j] - if (id.endsWith(key)) { + if (id.endsWith("_" + key)) { index = j break } @@ -1300,9 +1307,12 @@ function get_PID_param_names(prefix) { KI: prefix + "I", KD: prefix + "D", FF: prefix + "FF", + D_FF: prefix + "D_FF", I_max: prefix + "IMAX", Target_filter: prefix + "FLTT", + Notch_target: prefix + "NTF", Error_filter: prefix + "FLTE", + Notch_error: prefix + "NEF", D_filter: prefix + "FLTD", Slew_max: prefix + "SMAX"} } @@ -1545,7 +1555,8 @@ async function load(log_file) { P: Array.from(log_msg.P.slice(batch.batch_start, batch.batch_end)), I: Array.from(log_msg.I.slice(batch.batch_start, batch.batch_end)), D: Array.from(log_msg.D.slice(batch.batch_start, batch.batch_end)), - FF: Array.from(log_msg.FF.slice(batch.batch_start, batch.batch_end))}) + FF: Array.from(log_msg.FF.slice(batch.batch_start, batch.batch_end)), + ...( "DFF" in log_msg ? {DFF: Array.from(log_msg.DFF.slice(batch.batch_start, batch.batch_end))} : {} )}) } } @@ -1610,7 +1621,7 @@ async function load(log_file) { const len = batch.P.length batch.Out = new Array(len) for (let i = 0; i +

+ Note: To log PID data, the PID bit of the LOG_BITMASK parameter must be set. + In Mission Planner this is found under CONFIG > Full Parameter List. + In ArduPilot methodic configurator this is done automatically when tuning the PID notch filters. + Without this bit set, no PID log messages will be present in the log and this tool will show no data. + Here are more details about this tool and how to use it. +

+ +