Rate vibration result from large props

I think I should wait for version 4.4.0.

But compared to the FFT-based notch filter, maybe the notch filter based on rpm sensor or esc telem is more stable? Their data all come from direct measurement of the vibration source.

It seems that I can only rely on the notch filter to solve my problem?

In 4.4 beta

Filtering enhancements
- FFT notch can be run based on filtered data
- Warn of motor noise at RPM frequency using FFT
- In-flight FFT can better track low frequency noise
- In-flight FFT logging improved
- IMU data can be read and replayed for FFT analysis

4.5 will be awhile. 4.4 Stable would be next after betas and RC’s.

But yea, RPM based is probably a better choice.

Well, it looks like it’s time for me to prepare a redundant rpm sensor module for the FC.

Thank you for your answer, have a nice day!

Thanks for the valuable insights.

In Copter firmware version 4.3.2 there was an issue fixed with control and timing issue that looked exactly like what you describe too. I also had this issue but with a much smaller copter - a random slight twitch in Loiter as if you had flicked a stick or there was noise in a pitch a roll channel that just exceeded the dead zone sometimes. There was long loops and other issues fixed too.
So using the latest stable (now 4.3.7) may not have that twitch you speak of. The other non-firmware issues associated with using such big props could still exist of course.

Throttle-based notch filter should work OK, but RPM would be better.

In that latest log your D terms are definitely too high, I would go down to 0.009 as a starting point and re-assess.

It would be interesting to find out how this works in the real world.
INS_GYRO_FILTER,15
INS_HNTCH_MODE,1
INS_HNTCH_FREQ,15
INS_HNTCH_BW,5
INS_HNTCH_ATT,40
INS_HNTCH_REF,0.14
INS_HNTCH_FM_RAT,0.8
INS_HNTCH_HMNCS,3

This is not an ideal result, there is still some noise, but certainly significantly less.
The problem will be if the phase interferes.

There is more graphs, and an extension to the filter review tool that analyses the effect of the phase on PIDs - so there’s many more graphs to display… But in summary the phase change and attenuation starts taking effect up around 11Hz, and it looks like most of the “good” noise is below about 9Hz.

I think the stable version of 4.4.0 should be released soon, and I may have a chance to wait for it. I have recently been installing new rpm sensors for the copter, which has a lot of work, and I need some time to get them back in the sky.

The new log’s pid was obtained through autotune. After I completed the autotune, I did find a lot of twitches, but I didn’t dare to reduce too many D terms, for fear of crashing due to overshoot.

I am wondering if the higher D terms produced by autotune are related to Rate vibration, which may interfere with the FC’s judgment, or maybe it may be related to timing, I am not sure.

But in any case, I will try to update the firmware and readjust the pid…
thank you very much!

Hello!

I secretly test flew it, I upgraded the version to 4.3.7, and reduced some P and D terms, set INS_GYRO_FILTER to 10Hz, and set fltt and fltd to 5Hz.

It seems that there is no problem at large angles, but there are still some small twitches at small angles. This seems to be due to the PID? I think my rate control should not see the frequency of vibration.

My directional control is a bit unbalanced, and I will adjust it later.

Maybe I should try to perform an autotune?

Attitude control is quite good - especially for such large props.

How you have the filters now is probably as good as they will get. Setting a notch filter doesnt make much difference at all.
You could try reducing the ATC_RAT FLTD and FLTT params to 4 Hz or even 3 Hz and that might take out the small oscillations that I talk about below in P terms. I would still reduce the D terms as per below.

It looks like the D terms are too high and oscillating a bit, also causing some oscillation in P term.
You could lower ATC_RAT_PIT_D and ATC_RAT_RLL_D to 0.01 for a start, or it may need to go even lower like 0.008

I suspect that ATC_ANG_PIT_P and ATC_ANG_RLL_P could go a little higher and ATC_RAT P & I values could go a fraction lower. I would try quite small changes.
If that introduces instability, go the other way - ATC_ANG P’s lower and ATC_RAT P & I higher.

I think manual tuning, step by step, is appropriate for this copter. I cant say that I’d like to try Autotune.

Thank you very much! I will try to reduce D terms later. But I may need to lengthen the arm, my copter has some mechanical problems that force me to do so.

This is a good start, and I will pay attention to these when I readjust the pid later.

Is the slight overshoot and delay in my attitude due to the low ang p?

Like this.

By my way of thinking, and it could be wrong, I’m very open to corrections

  • ANG P’s are responsible for “actual” following large deviations in “desired”
  • Rate P’s will look after fine adjustments to make actual follow desired
  • Rate I and D will pull the Rate P into line, fixing overshoot or undershoot
  • D term is safer to be too low rather than too high
  • If there’s too much overshoot or undershoot, or every attitude change causes overshoot or undershoot, then changes must be made. By how much and which term is the 64 million dollar question.
  • Low ACCEL values can be responsible for apparent overshoot when “actual” appears to overshoot the “desired” and must “turn around” and come back to meet desired. This effect is most easily seen in Yaw.
  • Too low in ACCEL and the copter cant respond to demands before the demand changes, too high and the copter is more vulnerable to oscillations if any of the PIDs are wrong.

Thank you for your valuable advice! I think you are right, although I have some superficial understanding of these issues, you obviously know these issues very well!

I always thought that low accel would not cause such internal control problems, and I only thought that if it was too low, it would only respond slowly to external disturbances.

I will try to reduce D terms and increase accel, although the amplitude may not be too large, I will take it slowly.

I have another question, Can high rate vibration cause autotune to have higher D terms?

High vibrations (or noise) can cause Autotune to never end, or have excessively high PID results. There’s probably a range of evils.

In other words, would high rate vibration cause autotune to produce any possibility that would make the PID deviate from normal values?

I hope you can help me check the log on June 28th, which is another copter of mine. It has 8 48-inch props and has added an RPM sensor for notch filtering.

Based on my previous misunderstanding of ardupilot, I have now reviewed these logs again, and I think it must have had too high D terms and the low-pass filter was set at the wrong frequency.

This copter has gone through autotune, but I think the values it obtained must be abnormal, possibly due to high rate vibration

If I’m not mistaken, my follow-up work on my 48-inch props copter is: upgrade to the latest firmware, lower the frequency of the low-pass filter, and lower the D terms of rate and increase the P terms of rate?

That sounds reasonable - which logs are you referring to?
The low pass filter (do you mean gyro filter?) should be set during initial configuration. It could be that it needs to go a bit lower with these very large props, but that would be specific to each different copter.

this
I want to confirm what I should do next, please help me see if my analysis is correct.

In that log I think the D term is over-active and you can see the nervousness in attitude control and noisy motor outputs.
I would change ATC_RAT_RLL_D and ATC_RAT_PIT_D to about 0.016 and retest.

I would definitely set up the voltage failsafe levels and actions.

The Harmonic notch filter is a bit excess to requirements, adjust to these:
INS_HNTCH_HMNCS,15

Test this change as a separate flight in case it introduces any undesired effects

INS_GYRO_FILTER,15
INS_HNTCH_HMNCS,3  //  doesnt need to be more while the gyro filter is lower

Thank you! It looks like my analysis was partly correct, and I will try to adjust them. I have another question, if I find that every attitude change causes overshoot or undershoot, can I only increase rate P and accel?

My copter is very large and may carry a lot of weight. I don’t think it should have high accel, but I’m worried that increasing rate P won’t solve the overshoot. My min_TOW / max_TOW = 0.42, I think this copter has an accel of 11000 when empty, so I set it to 4500.

But every attitude change causes overshoot or undershoot makes me very worried. Can you explain this part in detail for me?

I would limit ACCEL changes to 60% of ACCEL for max_TOW, or there could be instability if you go too low.
I believe min_TOW / max_TOW = 0.42 (42%) will give a you an ACCEL that is too low.

Next test flight should be with:

ATC_RAT_RLL_D,0.016
ATC_RAT_PIT_D,0.016
INS_HNTCH_HMNCS,15

and if that goes OK you could try

INS_GYRO_FILTER,15
INS_HNTCH_HMNCS,3

From those results we can assess the filter and if there needs to be more PID changes.

@Ben_bili
Hi which flight controller you used and how do you mount it using rubber damper or direct Hardmount?

I used Qiotek’s H743 as my FC. I used a homemade shock absorption platform, and I just posted a discussion about shock absorption platforms for large drones.
I think you can take a look, it might be helpful to you.
Regarding the shock absorption of large drones, I hope to add it to the wiki - General / Website and Documentation errors - ArduPilot Discourse