NOTCH filter - how to filter spikes in two different frequencies?

Is it possible to filter out spikes in two different frequencies?
If so could someone let me know how to? I’ve never done notch filtering so I’m not comfortable with it.

I have a large spike at 142 Hz and a smaller one at around 68 Hz.
I’m attaching log files with pre-filter data (Ins_Log_Bat_Opt = 0) and after filter (Ins_Log_Bat_Opt=2) for two cases:
One for default settings and one after I applied Notch Filter for Frequency 142 Hz, BW 72.
Would you think the signal after filter is clean enough or should I try to lower the peeks even further?

https://drive.google.com/file/d/1zYo3Wm_bYY-K9iUA1OgMErQ0k93IMh47/view?usp=sharing
https://drive.google.com/file/d/17T4xobjOGat4e67T_2GbNKxVpqlldXTY/view?usp=sharing
https://drive.google.com/file/d/13lvFwdXLRNHSxBzrIqLvSi3aabK4rS7c/view?usp=sharing
https://drive.google.com/file/d/1uy4soSRyb0MN1NLUOhf3Xo03Rs0AjWul/view?usp=sharing

What you need is:

INS_HNTCH_FREQ 68
INS_HNTCH_BW 34
INS_HNTCH_HMNCS 3

This will cover both 68Hz and 136Hz
And that is close enough to the 142Hz frequency

When FFT based dynamic notch is in a Stable version it has the potential to eliminate a lot of head scratching posts!! Set It And Forget It as they say :smiley:

Understand. Harmonics. Thanks a lot Amilcar! Will give it a try.

I missed one more spike - at 98Hz, So I have 3 spikes. They are at:
68, 98 and 142 Hz. By far the largest spike is at 142 Hz so that’s the priority.

Is there a way to filter out two independent frequencies? If not, how to take care of these three frequencies?
INS_HNTCH_FREQ 32.7 would take care of the 68 and 98 but not of 142.

Some side questions:
Should INS_HNTCH_REF stay at 0? I do not have an RPM sensor.

I am not finding the INS_HNTCH_OPTS. Has it been replaced by another command?

Post in the Single copter thread.
Perhaps wait until V4.1 is stable and then base your version on that. Better Notch filter tools.
You vibe levels are high, the Dynamic Notch filter isn’t a band-aid for that.

Thanks Dave,
I can’t be changing AC versions so frequently. No “stable version” is really stable for quite a while. Can’t take any chances. This is for a large, gas powered copter. Usually takes 4 months to fix it after a crash. It was already a big move for me to go from 3.6 to 4.0.5. On top of it, I have to have the firmware slightly customized. Next change in 2 years.

When I notch-filtered just the 142 Hz, the after filter vibration wet down from 900 to below 1 (!) and the 68Hz from 180 to 5. I’m referring to Gyro X. If I read log files correctly, this is fantastic results for me.

This is a gas powered copter so vibrations will always be way larger than in an electric one. Unless AC is not meant for gasoline powered craft…?
I really struggle with AC so it’s possible that I am misinterpreting those results. I wish there was an on-line academy for ArduCopter. I only learn about new parameters and what they are for after I crash. Not the most efficient way to learn Ardu-Copter.

Yea OK, I understand. Well, the 142Hz notch is working OK. You could additionally try a Static Notch at 60Hz to catch what’s left. The lower peaks are too low to filter and the magnitudes are low anyway.

This is in a later version of firmware. I’m not sure there would be any advantage with your craft anyway. Perhaps Double Notch but not sure.

Thank you Dave!
I’ll try to add a Static Notch to my dynamic. Just need to learn first how to do that.

OK, I see. That would be this command: INS_NOTCH_ENABLE = 1 and the rest the same as dynamic, just INS_NOTCH instead of INS_HNTCH.

One more thing. If in the dynamic notch INS_HNTCH_REF = 0 then dynamic really becomes static, no updates?
I’m still not clear what value I should assign to INS_HNTCH_REF. I see different info on that in different places. Originally I gave it 0.8 as this is my throttle position at hoover. I’m having doubts now, because I also read that it should be 0 for throttle based scaling and 1 for RPM based.

INS_HNTCH_REF = 0 is essentially disabling the HNOTCH while keeping all your settings in place.
Set it to the same value as you find in logs for your MOT_THST_HOVER , and you can round it down a bit too. So if MOT_THST_HOVER = 0.34567 then set INS_HNTCH_REF = 0.34

If you have ESC telemetry or an RPM sensor you can set it to 1

1 Like

As Shawn said. But with your gasser your Hover throttle is way different than a brushless motor/ESC so I’m not sure what the best plan is. Motor RPM probably but even if you had that from a sensor it would have to be coded in to use for the filter. FFT reference would be the next best choice but then we are back to your Firmware version not supporting it.

Yes, right. Give it a shot.

My current gasser is next to full throttle all the time so throttle control should be OK for now (not much throttle/rpm change).
My current Pixhawk Mini autopilots may not support FFT. I’ll upgrade AC to 4.1 when the copter flies stably. That will be a new copter though, with more power and with the Cube autopilot.

Since you guys are very knowledgable, could you please check my other question in the link below and see if you can answer it? I have not received a single answer to it. It’s critical for me to understand:

Servo5 vs Mot_PWM - what is the difference?

Thank you!