Tutorial: High Frame Rates

Background:

VBar EVO supports higher than default framerates, for the swashplate servos. This is possible since it uses a very powerful processor that is able to calculate the full VBar algorithm in a fraction of a millisecond compared to the NEO's processor, which needs a few milliseconds. Additionally, the calculation is way more accurate.

The EVO's algorithm is able to scale it's parameters in a way that the framerate has no influence on the flight performance of the heli, with a single but very important exception: the filters for vibration rejection (sensor input filter).

This filter is intentional, since there is the expectation that using higher frequencies has at least some effect on the control loop (faster response). If the vibration filter would have been scaled with the framerate, there would be no effect on the behaviour. If we want to have a beneficial effect, we need to shift the frequency in a way so we separate vibrations from the needed input signal, to higher frequencies.

Physics:

Some rough considerations on the frequencies and timeframes that we find on model helicopter mainrotors:

Assuming that the main blades spin at say 2,000 RPM, that means the rotor spins every 30 ms or at 33 Hz. On a 2-bladed rotor, there is a blade passing any given position every 15 ms. That means, if the servos have no delay whatsoever, that it would be possible to apply a control input to the mainrotor already at a maxiumum rate of 66 Hz. There is some buildup which is in effect a bit faster than that, but it shall help understanding the rough idea. With our normal control frequency of 144 Hz, we are already well beyond this value.

Now, the heli will respond with quite some delay, since the aerodynamics need some time to build up the pressure, and the servos need some time to build up the control output force. Dampening is delaying further, but current 3D helis are designed to almost eliminate this delay already. Heli inertia is another factor.

It is clear that, if an input is applied, there will be a major vibration peak at the rotor rotation frequency, which is normal for any heli/rotor system. This frequency has almost no use for the control loop, since as described above, the control loop can not do anything before a blade passes next time at the given orientation (where it has leverage).

As a result, the servos will act up, trying to control the swashplate and the rotor system where it has no actual effect, compensating for the vibration on the next pass. This builds up to an unwanted oscillation that amplifies with the self resonance frequency and the harmonics of the whole heli/rotor system.

Limitations:

As a consequence, there is a limitation of the useful control frequency. It does not result from the control frequency itself, but it depends on the main rotor RPM, the number of blades, the servos and the self resonance frequencies of the heli/rotor system.

The EVO's input filtering separates the vibration at about 1/3 of the control frequency. That is of course not a sudden drop, it's a gradual separation. So, with 144 Hz, the separation is roughly at 50 Hz, which is very close to the limits described above.

Tuning:

Increasing the control frequency shall be seen as a tuning process, it is not just about maxing out the technical possible, since the tuning also shifts a very important parameter in the control loop. Mind that the helicopter proper is also part of the control loop, as the controlling element! Usually, the default value is close to the optimum, higher frequencies don't necessarily make it better, just because they are higher.

Worst case, increasing the control frequency may increase unwanted vibration amplification, which in turn leads to an unstable or wobbly behaviour of the heli. In this case, the limit has been exceeded.

The EVO gives the benefit of much shorter calculation time, which is always a benefit, independant of the control frequency. Shortening the pulse length also may give a slight benefit, without unwanted sideeffects, but here we are in a range which, in practice, does not really matter anymore.

Procedure:

Try the available frequencies, starting with default 144 Hz, and slowly work up. We have included lots of options in the latest setup panels, so you have plenty of options to choose from. Watch closely how the heli behaves. If it starts showing oscillations, or if it starts fo feel sloppy in the controls, go back one or two steps and try again. Reducing the servo pulsewidth from 1,500 to 750 µs—by comparison—has less effect than half a step in the frequency settings, so it is not necessary/beneficial to change this (even if your servo supports it) until you can select/use a frequency setting beyond the 333 Hz.

Conclusion:

We have a new powerful tuning parameter here, with the framerate setting. It has the potential to provide better stability, allow higher overall gains, and get better control authority on the main rotor. It has to be tuned with care, it's not a the-more=the-better-type parameter, since it requires a heli-servo combination that is intended to be tuned like this. Sometimes, even lower settings than 144 Hz could provide a better overall result!

The tailrotor is usually a different thing, where higher control frequencies (and the narrower pulse) almost always result in a noticeable improvement, also/mainly by also allowing higher overall gain settings.

Warning:

If your model starts to oscillate immediately after takeoff, or if you increase the headspeed, reduce the headspeed and land again immediately. Be prepared to switch off the drive system, and to auto down. Change the control frequency to a _lower_ value. 144 Hz is always as safe and as good as it was before. Actually, even at 144 Hz VBar EVO performs better, because of the shorter calculation times, and the higher overall gains you can very likely set!