Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Matrix

Table of contents

  1. Dynamic Filter on Gyro
    1. Tuning
    2. Many options (0.3.X+)
    3. Variables and Values
  2. Dynamic Filter on D-Term
    1. “Q” Example Graphic
    2. Dynamic Filter was formerly “Matrix”

Dynamic Filter on Gyro

  • The gyro Dynamic_Filter in EmuFlight 0.3.X (a.k.a. Matrix) is a per-axis dynamic gyro notch written by Paweł Spychalski.
  • 0.4.0+ upgrades the dynamic_filter in part with code from KarateBrot and calculations from QuickFlash

Tuning

  • EmuFlight stock defaults are fair for a 5” standard-frame quadcopter, but generally over-filter.
  • Defaults have dynamic_filter enabled as well as 2 dTerm LPF’s, which again may be overfiltering. (Helio is disabled by default.)
  • The goal of filter tuning is to have a quad-specific tune that is neither over-filtered nor under-filtered.

Many options (0.3.X+)

  • dynamic_filter may placed over the motor-noise spikes to remove dTerm noise from gyro; However,
  • dynamic_filter may also be placed above motor-noise spike to clean-up only high frequency noise.
  • Often it is found that with dynamic_filter enabled, only one dTerm LPF is required.
  • Prior to 0.4.0, it was found that with dynamic_filter disabled, two dTerm LPF’s were preferred if not required. (But this may vary with different aircraft, especially on Helio/Strix.)
  • With 0.4.0+, dynamic dTerm notches may be enabled as the primary dTerm filter. It seems a single dTerm LPF still helps in this situation, but allows for a much higher cutoff.

Variables and Values

  • Enable: feature dynamic_filter; Disable:feature -dynamic_filter
  • Q (dynamic_gyro_notch_q) - Width of the dynamic per-axis notches. Higher value is a narrower notch, while smaller values are a wider notch. Smaller values (wider notches) are more latent than larger values (narrower notches). Range: 1-1000. Default: 350.
  • dynamic_gyro_notch_count Range 1-5, Default 3. (0.4.0+)
  • Min (dynamic_gyro_notch_min_hz) is the lowest value that a notch’s cutoff may exist. Range: 30-1000. Default: 150.
  • Max (dynamic_gyro_notch_max_hz) [0.3.2+ / CLI only] is the highest value that a cutoff may exist. 0.4.0-Range is 400-1000. 0.3.0-Range is 600-1000. Default: 600.

Dynamic Filter on D-Term

  • uses the analysis of the gyro dynamic filter to apply d-Term notches
  • dterm_dyn_notch_enable Range ON, OFF. Default OFF.
  • dterm_dyn_notch_q Range 1-1000, Default 400.

“Q” Example Graphic

example dynamic_filter Q Q (dynamic_gyro_notch_q) is a width. (note*: graphical representation only, not necessarily actual size.)

Dynamic Filter was formerly “Matrix”

Paweł Spychalski matrix Screenshot

  • Matrix Introduction, by Paweł: https://youtu.be/7s8ZeP135uI
  • How it Works, by Paweł: https://youtu.be/w0QsVIXYWCE