From 1551d096fc1a8a54ec20a6657f8decbe498f4bb4 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Fri, 14 Nov 2025 20:27:02 +0300 Subject: [PATCH] Merge changes from master --- flix/control.ino | 12 +++++------- flix/pid.h | 8 ++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/flix/control.ino b/flix/control.ino index 719ffb3..4de742c 100644 --- a/flix/control.ino +++ b/flix/control.ino @@ -9,7 +9,6 @@ #include "lpf.h" #include "util.h" -#define ARMED_THRUST 0.1 // thrust to indicate armed state #define PITCHRATE_P 0.05 #define PITCHRATE_I 0.2 #define PITCHRATE_D 0.001 @@ -135,12 +134,11 @@ void controlTorque() { return; } - if (thrustTarget < ARMED_THRUST) { - // minimal thrust to indicate armed state - motors[0] = ARMED_THRUST; - motors[1] = ARMED_THRUST; - motors[2] = ARMED_THRUST; - motors[3] = ARMED_THRUST; + if (thrustTarget < 0.1) { + motors[0] = 0.1; // idle thrust + motors[1] = 0.1; + motors[2] = 0.1; + motors[3] = 0.1; return; } diff --git a/flix/pid.h b/flix/pid.h index 0e1525a..ac7a66b 100644 --- a/flix/pid.h +++ b/flix/pid.h @@ -11,20 +11,20 @@ class PID { public: float p, i, d; float windup; - float maxdt; + float dtMax; float derivative = 0; float integral = 0; LowPassFilter lpf; // low pass filter for derivative term - PID(float p, float i, float d, float windup = 0, float dAlpha = 1, float maxdt = 0.1) : - p(p), i(i), d(d), windup(windup), lpf(dAlpha), maxdt(maxdt) {} + PID(float p, float i, float d, float windup = 0, float dAlpha = 1, float dtMax = 0.1) : + p(p), i(i), d(d), windup(windup), lpf(dAlpha), dtMax(dtMax) {} float update(float error) { float dt = t - prevTime; - if (dt > 0 && dt < maxdt) { + if (dt > 0 && dt < dtMax) { integral += error * dt; derivative = lpf.update((error - prevError) / dt); // compute derivative and apply low-pass filter } else {