1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-20 06:45:16 +03:00
Commit graph

12 commits

Author SHA1 Message Date
tdogb
1fcb206c46 initial commit 2023-02-10 00:08:12 -05:00
Hugo Chiang
0088eb5f21 switch case cleanup
Co-Authored-By: Petr Ledvina <ledvinap@gmail.com>
Co-Authored-By: haslinghuis <mark@numloq.nl>
2022-08-30 07:04:55 +08:00
Hans Christian Olaussen
13cb7b4280 Fix non DSHOT protocols 2022-02-24 15:26:46 +01:00
ctzsnooze
7b0b8ee35d Retain dynamic idle settings, reduce dependencies 2021-11-25 15:58:36 +11:00
borisbstyle
4a916af6a9 Added DYNAMIC mixer 2020-12-08 12:04:18 +01:00
borisbstyle
75da17a00e New linear mixer (credits to @tylercorleone) 2020-12-08 12:04:07 +01:00
ctzsnooze
8050ecd1e7 Mixer update: dynamic idle and throttle logging improvements
- all CLI parameters related to dynamic idle alone re-named with the `dyn_idle_` prefix
- when linear throttle scaling is active, the user's set idle value is now correct whether dynamic idle is on or off. Previously, the idle value fell when dynamic idle was activated at the same time as linear throttle scaling.
- enabling dynamic idle no longer causes a deadband at full throttle
- the setpoint throttle value sent to Blackbox does not include the dynamic idle offset
- the throttle value sent to the antigravity and dynamic lowpass code includes throttle scaling, but no other modifiers, to avoid false elevation of the apparent throttle position from dynamic idle and unnecessary transient changes in their filter cutoffs
- Dynamic Idle now uses a modified PI controller during active rpm control phase
- the D factor provides early detection of rapid falls in rpm, e.g. in hard chops. It is filtered heavily. Inadequate `dyn_idle_d_gain` may lead to a transient drop in rpm immediately after cutting throttle. Default is 50.
- the P factor provides fast control over rpm during the active control phase. Too much `dyn_idle_p_gain` may cause oscillation in that phase. Note enough and a slow drop in rpm will be inadequately corrected. Default is 50. Needs to be higher with heavier larger props.
- An integral element does most of the work.  It prevents enduring offsets from the set rpm. The I gain is high when increasing responding to low rpm, and slow to release.  The slow release makes a huge difference and avoids I oscillation. Not enough `dyn_idle_i_gain` and there may be wobble in rpm during the control phase, or the idle value may rise too slowly; too much may cause wobble. Default is 50. Needs to be higher with heavier larger props.
- The DYN_IDLE debug shows idle P, I and D in debugs 0, 1 and 2. minRps stays in debug 3.
- Interactions between throttle and thrust linear, dynamic idle, throttle scaling and throttle boost have been checked and work as they should.
2020-11-09 09:09:17 +11:00
Michael Keller
3d7ac0dc6b Improved the naming of the digital idle offset getter. 2020-10-30 16:12:04 +01:00
Michael Keller
6c1cb60784 Added the dynamic idle throttle offset to the blackbox header to fix the motor output display. 2020-10-27 02:01:26 +01:00
mikeller
1a6514cd9b Refactored mixer / servo init. 2020-10-15 07:45:46 +13:00
mikeller
e4b3a1f2e5 Moved mixer profile initialisation to after pid initialisation. 2020-10-11 23:54:26 +13:00
mikeller
9e6b65680e Split mixer code into initialisation and runtime to reduce flash space usage. 2020-10-11 23:54:26 +13:00