Vertical oscilations and PIDA.P term jumping up and down

Hi guys,

I’m building a large heli based on the Goblin 700. I’ve had a few successful flights so far in different modes including a few autonomous flights.

So far the problem I’m facing is related to some vertical oscilations that happen in a few scenarios. They almost always happen after take-off when I gain altitude. They also happen if I start going fast to a point and I want to stop and make a turn there. If I move slowly things are under control.

From the logs I see that the PIDA.P term is all over the place - jumping between -1000 and +1000 while all other PID parameters such as PIDR, PIDP, PIDY (the P terms) are quite low - between -1 and 1.

I tried lowering the PSC_VELZ_P from 5 to 2.5 then to 1.5 and it does not seem to help. PSC_ACCZ_P is also close to the lower bound - 0.28.

In all other directions the heli is stable, only in Z it seems to have problems some of the time.

It does not seem to be a sensor problem as the altitude is measured correctly. I use a Cube Orange+ BTW.

Is there anything else I can check that affects the way PIDA.P term behaves that I can change to make it stop boincing up and down?

A video can be seen here: Watch IMG_64702 | Streamable

Thanks for the input :slight_smile:

Please post a link to a log showing this behavior. It’s better if we can see the data.

Hey, here’s a log file that shows the behaviour: Filebin | v5hfu82zybhva0ny
Any guidance is appreciated :slight_smile:

This is kind of odd behavior for a kit heli like the Goblin 700. I noticed that your H_COL_MIN and H_COL_MAX are still at their default values yet you have the H_COL_ANG_MIN and H_COL_ANG_MAX set to some reasonable values. Is it true that you used the default values to get the max collective to +8 deg and the min to -5 deg at the default pwm values? It just sounds odd to me.

What rotor speed are you using? I see that you are using the Passthrough mode for the RSC. Why did you choose to do that?

I also see that the hover collective is 1.8 to 2.0 deg. That is super low so the rotor speed must be high.

Thanks Bill!

I guess I misunderstood the process of setting those and never actually changed the PWM values. I’ll set the COL angles to 12 / -4 and measure the correct PWM values for those angles. Will get back to you once I set-up everything.

As for the rotor mode - I am not sure. I will have to read more on the topic. What issues do you think will this cause?

Depending on the weight of your aircraft, that range may be too much especially the upper end. I have a sport 700 and my max collective is 8 deg. Unless you plan on doing acrobatics or auto rotation, I don’t think you’ll need the collective to be that high.

The pass-through mode of the rotor speed control is not recommended because if not set up properly, the motor could be stopped if you have a loss of link with the transmitter. If your ESC is being used in governor mode, it is best to use mode to of the RSC. Otherwise, you could use the throttle curve if you don’t have an RPM sensor and no governor in your ESC.

Hi, the root cause for what you are experiencing is a wrong parametrization for the attitude control in my opinion:

  1. why did you set accels this low?
  2. Both ATC_RAT_PIT_P and ATC_RAT_RLL_P are way too high. Did you run through the tuning process for helis?
    Having ang accels that low and rate P terms that high is not ideal.
    Also, PSC_ACCZ_P should be reduced.
    The collective oscillation is a consequence: at flight speed pitch and collective become more coupled :

Thank you for your input!

No, I have not done the PID tuning yet, if that’s what you’re referring to. I was trying to get some more stable flight first before attempting that.

I will test those ideas as soon as I can and come back with the results.
I just have to wait for some blade delivery as I’ve hit my rotor blade on my last flight :frowning:

So yesterday I had a very stable flight. The issue was as discussed - the angles and the PWM values related to them. For some reason I did not understand the procedure correctly initially, but after fixing the values it all went great. I also tweaked some of the acceleration speeds.
Thanks again for your responses, they are invaluable!