High vibrations, seems only when descending

I built a 15in quad standard fpv style x frame. Arms are 16mm thick and 25mm wide (no flex), 4112 motors,top and bottom plate that sandwichs the arms are each 6mm thick. During hovering vibs are 4-6ish but with I am desending they seem to shoot up. I have secured the wires down, nothing else touching the flight controller, props are balanced.

I have attached the flight log if anyone else can tell me what I am doing wrong?

May be descent through propwash, especially if you are descending quickly and have low disk loading, try descending in forward flight.

1 Like

Thanks for the advice, that is typically the only way I decrease altitude, I don’t like propwash.

@dkemxr any thoughts?

Could you please upload a real *.bin log file, because what you have uploaded is not readable by AP’s web tools?

Configuration and tuning looks good. You would have to enable some logging to review the notch filter but based on the parameters you have set I kind of doubt it would have anything to do with that. Or tuning in general really. The attitude control is good, rate control is decent. I’m not seeing anything that I don’t like. Higher vibe levels? Yes, but it’s not clear to me how that could be improved with tuning and there is no clipping events. I have had larger craft with a similar response and just lived with it. But, enable batch sampling anyway and let’s take a look.

I had phenotypically similar situations in the past: a quad was hovering nicely, but in a quick descent it started misbehaving with a characteristic crunching sound.

The explanation was that there was a frame resonance carefully hidden by motor notches, which could not be noticed in gentle hover tests, and it was excited once the motors were spinning down. With a very tight tune, when descending it could easily get 3x as much of the vibes, excessive D term contributions, and a lot of control discrepancy. Similar things were happening on the other end too when attempting to fly quickly.

Since then I included quad drop tests in filter evaluation.

1 Like

Yes, that makes sense. The large vibe spike in this flight is at the bottom of the decent. There is an RPM increase to stop and level the craft where it’s seen.

Vs Baro

Vs x-vibe

So, as you suggest the frame could be excited by this.

How did you fix?

Maybe where the arms join in the center? I am assuming this is filter capable, meaning I cant filter this out right?

First, for noise profile characterization I use pretty aggressive test flights with throttle punches, nearly zero throttle descents, and saw-like throttle inputs. (Should be relatively easy to do outdoors I think; with my small quads, I manage to perform this in a flat). Don’t forget to turn on raw logging or batch logging to be able to see your noise profile.

Then, you usually can see sharp peaks in the noise profile at locations which are the same across multiple attempts - these correspond to your frame resonances. You can cope with some resonances by reviewing and improving the frame design, but usually you cannot remove them all. For these, you have to configure a fixed notch.

Carbon frames sometimes feature multiple resonances with unrelated frequencies. With some care, you can configure a single fixed notch by carefully choosing the base frequency and harmonics. Example: you can configure the base frequency to 13Hz and enable only 9th and 11th harmonics to silence resonances at 117Hz and 143Hz. Obviously, sometimes you cannot nicely do this, so you may need more notch sets enabled (or even custom-compiled). This all depends on how lucky you are with your frame - once I had a commercial toothpick frame where five or six suppressed frequencies were not enough, so I had to give up.

Once you do this, you need to verify (again using the procedure from the first paragraph) that you did the right thing. It’s a bit of trial and error this way. With advanced machinery like vibration stands you can shortcut some of the steps - be aware, however, that you have to test the machine in the complete flight configuration, not part by part - but even then actual validation is necessary.

There are better ways to deploy a single axis targeted notch filter in ArduPilot.

The frame resonance frequency in an axis is usually diferent from the resonance frequency of the other axis. Being able to target them individually reduces control loop lag.

The fixed PID notch filters described above are not a dynamic notch filter configured to be static. They are a completely diferent set of notch filters with very different parameters.

They are not documented in the wiki yet. But they are documented in the AMC tuning guide and in the AMC software. Try them out.

I tend to avoid these.

I tried them once and they completely destroyed the performance of the machine, to almost no control. The devs later told me that these filters are applied at the scheduler rate rather than at the gyro readout rate, and in my case I was severely affected by the resulting aliasing. (I was using the standard settings with 400 Hz of the scheduler rate, and was trying to suppress something at around 250 Hz).

This should be a bit nicer in my current settings with fast rates running at 1Khz (maybe? probably? the EKF rate had to be dropped to 200Hz) but I’m reluctant to try.

It would seem to be a good time to document that in the Wiki. Those PID notches have been around since 2024 I think.

1 Like

Here is a hover and a flight with raw log_9 on.

My experience has been that propwash is more dependent on filter delay than PID values. A tight tune, to me, means filter delay in the 30’s at 50hz (5” props), 40’s at 50hz (7”-10” props). This is only possible after addressing mechanical vibrations, and for me, I test different 1.2ghz antenna lenghts / mounting schemes to remove sub 50hz vibrations (avoid fundamental frequency matching). Prop wash lies somewhere below 50hz, and I shoot for the lowest delay possible under 50hz so that the quad can fall into its propwash at any speed with control fast enough to limit propwash-induced frame rotation magnitudes.

High PID + high filter delay = aggressive and disconcerting pilot feel during the roller coaster ride

Low filter delay + PIDs tuned to the low filtering delay setup = hardly any propwash-induced frame rotations, and the propwash-induced vibration frequency is increased up to where it the notch filter is faster for example. I have become to look at it as the more propwash disturbance, the more delay there must be in the filtering, and there are trade-offs that, for me, revolve around the use case of the rig.

1 Like

There is a chicken and egg effect. Are the low-frequency vibrations due to something like a long antenna, or do they only manifest during rapid decent…only flight testing will reveal. To make sure that low vibrations are not due to any mechanical issues like long antennas, I suggest reviewing logs from two different flights, one where you do several decents through propwash, and one that you do not. You can watch the propwash-induced frequency rise with decreasing filter delay.

What I was talking about was not propwash oscillations per se, but D term runaways once the system suddenly uncovers a resonance mid-flight (typically in the ballpark of 150-250 Hz in cases I personally observed). Two completely different things.

What you say seems very real, but this is not what I was talking about. In layman terms, you are talking about a machine shaking like a madman on vertical descents, and I was talking about near-frying motors on any throttle-down. Or throttle up for that matter. These even sound differently.

That said, I don’t really have a good idea for what is happening in the topic starter case. Right now I don’t have anything other than WebTools for analysis, and the “bin” logs attached are actually text logs, which these tools do not understand.

Ahh. It sounds like too-high PID D-term causing D-term oscillation when the frame resonates, but frame resonating does not occur during tuning / autotuning. The motors make a very discinct sound during d-term oscillation, and I have heard the ‘crunching’ sounds with high D gain. Sometimes it is a ‘shrill’. Excessive D gains will produce hot motors. Web Tools show filter phase delay.

I suspect d-term oscillation is causing high frame vibration, as opposed to vice-versa.