Vectored yaw tiltrotors (also “tilt-for-yaw”) are particularly subject to yaw oscillation because the yaw control derives from the tilting of the motors, not from the propellor speed itself. The counter to this is using the feed-forward (FF) term in the yaw PID controller, which should be set prior to the P and D terms.
ArduPilot docs
This is so common that ArduPlane has its own page dedicated to it: https://ardupilot.org/plane/docs/tilt-vectored-yaw-tuning.html
Check tilt servo range
Tilt-for-yaw vehicles often need to tilt their props well outside the normal 0-90deg range. See Tilt servo ranges and ensure the AV is able to do this before any flight testing with vectored yaw enabled!
Flight Test
Ensure notch filters are configured and working first!
Perform a brief hover flight, with short sharp yaw movements in both directions. If possible, rotate the vehicle a full 360deg around in both directions.
Log analysis
Download the log from the AV, and using a log analyzer which supports expression graphing, graph:
PIQY.FF + PIQY.P + PIQY.DX * PIQY.Act, whereXis ~0.2 at first
Adjust the X value until both lines converge. Then, set Q_A_RAT_YAW_FF and Q_A_RAT_YAW_I both to the X value.
MAVExplorer shortcut
MAVExplorer has a shortcut for this graph. Load the log file as usual, then navigate to Graphs ⇒ QuadPlane ⇒ PID Tuning ⇒ Yaw ⇒ FF Calculation. You can’t adjust the
Xparameter with this preset though, so definitely keep a raw expression graph utility around.
Flight test, part 2
From here, resume flight testing and tuning of the Q_A_RAT_YAW_D term first, then the associated _P term until the vehicle is stable.