VFF tuning question

Yi,
So the plots shown in this post were from a flight with the parameters as provided in the Param file in the post? Before adjusting the low pass filter, I would suggest figuring out what the frequency of the oscillation is. If it is higher than 5 hz then I would say that you can lower the filter to no lower than 4 hz. Any lower and you will notice that it will affect your handling qualities (i.e. aircraft will seem sluggish).

As for the pitch bobble, it appears from your plot of the pitch axis that there is still an oscillation that occurs with 2 to 3 overshoots before damping out. I guess you are not seeing this behavior in flight? I’m seeing a similar thing with my heli but it is a flybarred heli. I did find that the D gain did help reduce the oscillation but not completely eliminate it. The P gain I found actually amplified it. My theory is that it is occurring due to the attitude feedback loop. So I lowered the ATC_ANG_PIT_P to 3.5 and used to D gain to help damp out the oscillation. The pitch bobble is still present but not as noticeable. remember that I have a flybarred heli which is already providing P gain mechanically. So your results my vary from mine.

Hi Chris,

The main blades are pretty carefully balanced in terms of CG and weight. And I will double check the tracking issue. Thank you again!

Hi Bill,

I read your post of how to tuning the low pass filter and magnify the P and D gains, it was very inspiring. And the “little wave” on my RATE RLL curve is at the frequency around 20hz. I don’t know if I should keep tuning down the low pass filter of RLL to any figure under 10.

The Y axil vibe has been troubling me for a while, if it has been caused by mechanical issues, then I should have a pretty high X vibe as well. I tried to test the Vibe read while all mechanical parts are still, and I got a higher Y axil Vibe read than other two axils even under that circumstance. So I assume that it might be an accelerator issue, but even after several very careful acc calibrations, it doesn’t change at all.

Yi,
I just realized why you are seeing the oscillations in your rate.R signal. So the ATC_RATE_XXX_FILT filters will filter the error signal being sent to the Rate controller. I believe the rate.R signal is the gyro rate signal which is not filtered by that filter. I would return your ATC_RATE_XXX_FILT parameters back to 20 and then change the INS_ACCEL_FILTER to 10 and the INS_GYRO_FILTER to 10 and see what that does to the signal. These parameters are the cutoff frequencies for the filters that come from the accels and gyros which feed the Rate controller. You can leave the ATC_RATE_XXX_FILT params at 10 and that will further filter the signal that is feed to the rate controller.

Regards,
Bill

Not necessarily. I’ve seen blades out of track cause that. You can set the pitch the same on the bench, but may need to put a piece of reflective tape on one blade and track them in hover visually.

Chris,

Right now the heli is flying ok in the stabilize mode despite the oscillation on the RATE.R curve. In the ALT hold mode and Loiter mode, can still feel some little glitches when the maneuver is too dramatic.

The Rate PID params are:
ATC_RAT_PIT_D , 0.003500
ATC_RAT_PIT_FILT , 10.000000
ATC_RAT_PIT_I , 0.150000
ATC_RAT_PIT_ILMI , 0.000000
ATC_RAT_PIT_IMAX , 0.400000
ATC_RAT_PIT_P , 0.040000
ATC_RAT_PIT_VFF , 0.18000
ATC_RAT_RLL_D , 0.003500
ATC_RAT_RLL_FILT , 10.000000
ATC_RAT_RLL_I , 0.100000
ATC_RAT_RLL_ILMI , 0.000000
ATC_RAT_RLL_IMAX , 0.40000
ATC_RAT_RLL_P , 0.040000
ATC_RAT_RLL_VFF , 0.150000

Hi Bill,

I tired to set the both INS_ACCEL_FILTER and the INS_GYRO_FILTER to 10 while remaining the ATC_RATE_XXX_FILT at 10. It seems like the oscillations in the rate.R is not getting much improvement. Weird though, when I tune all these params back to 12, the heli oscillates on the roll axil when the maneuvers are dramatic. Do you think I can go any further under 10 for these INS filters?


Regards,
Yi

That is strange because if the oscillation was up at 20 hz then a low pass filter at 10 hz should attenuate the signal quite a bit.

So each time you change the filter settings, you will need to retune the P and D gains.

Yes. You can go lower but I don’t recommend going lower than 5 hz.

I would look at the timing of the RCOUT signals to the servos vs the oscillation peaks and see if the flight controller is actually driving the rate oscillation or responding to it. I have doubts that it is driving it. That is interference or noise on the gyros and I would bet is caused by a low-frequency vibration, approximately in time with the main rotor or gear train. Which I think is a slight dynamic imbalance in the main rotor, a main gear that has axial runout, even a tail drive gear that has inconsistent backlash for the full revolution of the autorotation gear can cause it.

I have seen this before and it has always been vibration issues. Try adding a bunch of lead wheel weights to your Pixhawk’s case, or changing the headspeed and see if it changes or goes away.

I agree that oscillations above 10 hz most likely are not being driven by the flight controller. So going back to your original concern. Seeing these high frequency oscillations to a certain extent is acceptable especially if your vibe levels provided by your EKF are in acceptable ranges. You want to keep the filter cutoff frequency as high as you can but not above the default of 20 hz. In my experience, I have seen the actual rates to have some oscillatory behavior and not exactly follow the desired with the same smoothness. If I don’t notice it in flight then I typically don’t worry about it. But Chris is right, the oscillation is probably some vibration being fed into the controller and it is probably at a high enough frequency that it is being sensed by the controller but not being fed back into the servos.

As far as your original concern with the bobble, I assume that it is some lower frequency like 2 hz or less. In this case I doubt the higher frequency oscillations are causing that. That’s where you can try one of the methods Chris and I proposed to see if that gets rid of it.

Wouldn’t hurt to post an actual flight log on your Google Drive, DropBox, etc… There are situations where vibration is not in the frequency range being logged, but is still a problem. It would be nice to see if you’re getting any clipping or aliasing of the IMU’s and look at some other logged parameters.

Hi Chris,

I think you are right, I compared the RCOUT curves and the RATE R curve:


It is pretty clear that the RCOUT curves don’t have the same oscillation issue, so logically it has been nailed that it should be a mechanical problem, right?

I will replace some of the key mechanical parts like the rotor head and blades to see if the vibe can be eliminated. Thank you again!

Yi

I do want to share a log with you guys, but Google is a website that we can not really visit here in Shanghai… Let me try to figure it out… :frowning:

I don’t know that you have to replace anything. Tuning dynamic “wobble” out of a helicopter main rotor is somewhat of an art, not a science. Most times it’s “good enough” to not cause an issue. But it can be caused by anything from a slightly bent mainshaft, to worn head dampers. What I like to do is put different color tape on the leading edge of the blades - maybe red on one and green or silver on the other. Hover the heli and observe the rotor disc edge-on. If the green blade appears to want to track above the red one, for instance, reduce the pitch on the green blade with the pitch link.

You can set the pitch on the bench with a digital pitch gauge and most times it’s close enough. But for a really smooth running heli dynamic tuning of the pitch/blade tracking is almost always required.

At the RC club, tuning turbine scale models with 4 or 6 blade rotors that are 2-3 m diameter, we have even used a GoPro at high frame rate and spent a whole afternoon tracking a 4 or 6 blade rotor to get it scale smooth.

Hi Bill,

Thank you for your suggestions! Yes, I don’t see the oscillations in the actual flights. I did what Chris suggested to compare the RCOUT curves in the log to the RATE R curve, and it is very clear that the RCOUT curves don’t have oscillations similar to the RATE R. And the VIBE levels in my log is like this:

Something else weird that I just discovered: if I set the RATE R and VIBE Y curves to the same temporal scale, I don’t see the same oscillation on the VIBE curve as well…

Yes, I know this method of using colored tapes to tune the blades, I will definitely give it a try. Since the kit is brand new out of the box, I believe the shafts are not likely to be bended though.

Regards,

Yi

I doubt that for a SAB Heli Division machine. Those are usually pretty high quality kits. Unfortunately, though, I have seen a couple of the lower quality kits come with a pre-bent mainshaft :grinning:

That is just indicative of noise or different frequency vibration causing interference to the gyro output to the rate controller that’s not being logged. I have had at least one helicopter that I remember that had very good looking vibes in the vibe logging. But it would blow the EKF due to IMU aliasing and the rate curve looked way worse than yours. Changing the mount on the FC and isolating vibration being introduced by the GPS/compass cable fixed that one.

Yi,
Be careful in comparing these signals. The Vibe.y is a standard deviation of the y acceleration signal. The Rate.R is a gyro or angular rate signal. So not only are they are measuring two different things (linear acceleration vs angular rate) but the Vibe signal is a statistic where the rate.R signal is the measured value. Now that being said if your sensor is not at the center of gravity of the vehicle then angular accelerations can be seen as linear accelerations. But I still go back to the fact that the VIBE and Rate signals are inherently different.

Can you use Dropbox?