My 450 has a wobble on the pitch axis, unless 42 degrees of H_PHANG is added. It appears as a rapid clockwise toiletbowl effect, which subsides as H_PHANG approaches 42 degrees. If H_PHANG exceeds 42 degrees, the toiletbowl effect reverses direction. The wobble varies in severity, and can be hidden with various PID settings, however it means the gains are very low.
If I reduce H_PHANG to 0 the maximum RATE_PITCH_P gain is 0.015, but if H_PHANG is 42, RATE_PITCH_P gain can be higher than 0.1.
Now here is the real problem. Changing H_PHANG solves the wobble, but it means foward cyclic gives diagonal forward-right attitude. Seems logical doesnt it? Well if there is a -42 degree phase offset, why does correcting it CREATE a control offset of 42 degrees?
Its as though my APM2.5 is mounted 42 degrees to the chassis. It wants to fly diagonally because forcing 0 degrees H_PHANG causes rate problems.
So far, everything hardware-related seems fine. Swash is perfectly level, dampers are freshly changed, blades balanced..
PLEASE help/comment/suggest :)
Since the rotation is a fixed amount, I've simplified the code so there are no trig functions being used. I'll test it further and report back
I've just tested again with the following rate gains on pitch:
P = 0.1000
I = 1.0000
D = 0.001
FF = 0.000
STAB_P = 2.8
The wobble is not visible except on very quick stabs of the stick (a very tiny vibration 90 degrees to the commanded cyclic). It only appeared when I introduced the D term. I suspect its because it is very rapid, so might need rotating 90 degrees instead of 45. Actually, I believe an ideal way to control this is to create a function to rotate the rate controller based on how rapidly it changes position. The reason being the phase angle is changing based on the gyroscopic force in the rotor since gyroscopic force is a function of rate of tilt.
There could be a parameter called "gyroscopic correction rate" that tells the rate controller how far to rotate the swash based on the rate of change in total rate output. It would have to be exponential since the maximum rotation shouldn't be allowed to exceed 90 degrees.
So far, the heli flies much better than it has ever flown with arducopter. I wont even think of going back to the original rate controller unless there another way around this weird situation.
I'm following. Or trying to. I'll try to have a better look at this at some point. Maybe you could set up your own clone and push the changes into it?
It's interesting, because I've always doubted the claimed gyroscopic precession that RC heli pilots always talk about. The darn disk is hinged, so it can't impart any moment on the shaft like a gyroscope does. Obviously the reality is somewhere between here and there, because it's not freely hinged, but damped.
But I think what you're doing is that, when you are asking the rotor disk to change tilt, you bump it in a slightly offset way so that the aerodynamics force the blades (which do experience gyroscopic forces) to tilt in the correct direction?