Tuning 1.4m X8, oversensitive

Hello,

We are in the process of tuning a large (1.4m/T-MOTOR U10 II KV100/28x8.4 propellor) X8 multicopter (25kg), and are looking for some advice on this scary process. So far we have done a couple of flights trying to get the response to inputs to be solid, before moving on to loiter. We have tested in stabilize but mostly in alt hold, as the altitude controller appears to work very well, greatly simplifying the process. The included log file contains several short flights in calm weather, where we found the copter to be flyable, but responding overly sensitive to pitch/roll commands. The copter seems to be too responsive (it feels like roll/pitch stick inputs are limited to literally milimeters). Also, when looking at Pitch vs. DesPitch in the logs the controller frequently overshoots. At the end of the file a crash occurs during take-off, but it looks like this is due to pilot error (judging by RCIN.C2), before the excessive pitch input we did not find any abnormalities in the log.

Below we include some screenshots, movies, and descriptions of specific events that we think give a good indication of how the drone behaved. The entire log-file is also included. We’re looking for any tips or suggestions on how to improve the handling of this copter, or any other issues that we did not see that might be there. One of the issues we know that exists is the compass, for future flights we will mount the Here+ and Here2 modules that we use further away from the (high current) electronics in an attempt to mitigate this issue.

We started out with stock PID values, and all we have tried so far is to reduce the sensitivity to control inputs by reducing the roll/pitch sensitivity slider in the Basic Tuning tab. It appears this slider sets the rate roll/pitch kP and kI values directly. This is the only parameter that was changed between the flights, and we include the value for the events below.

We’re looking for any help based on the data below to help us tune this copter. We also have some specific questions:

  • Did we do right to try to improve control by decreasing the roll/pitch sensitivity parameter in Mission planner? Unfortunately, we did not have a chance to play with other settings before the crash occurred.
  • We are also wondering if we should have added some weight to the copter (there was no payload now, total weight just under 25kg).
  • Since the drone is so sensitive to rc inputs, does it make sense to lower the maximum lean angles that can be commanded by the pilot and/or change ATC_INPUT_TC?

LOG: https://drive.google.com/open?id=1YoHV0H6bmmsEWw9m_JjiBVxY4odrlN7F

Below are some pitch/despitch plots, and also some videos which show of some of the behaviour of the drone.

No logs no candy…

But based on the video; dont fly your drone without the weight of the intended payload.
Always tune with it, use a dummy weight if you need.

Forgot to link the log, added now

The log is now linked; we would like to also be able to fly in conditions without payload hence the reason for testing it like this. MOT_THST_HOVER is around 45% so it seems that the Copter is not severely overpowered in this situation, or are there other factors to take into account for this?

It depends on the payload, 45% is ideal, so with large payload it will be under-powered.

When you tune you tune for the lightest load that you intend to use your copter with. However, if there are a large difference between tuned load and actual load, your copter will be sluggish under heavy load.

For tuning, it is easy. Set AUTOTUNE_AGGR to 0.05 and ATC_RAT_PIT_FILT and ATC_RAT_RLL_FILT to 10 (or even to 7) and do an autotune. (Start it in Loiter).

In Alt hold it will be always sensitive, if you dumb down then you will have problems in heavy winds. Use loiter and keep alt hold for emergency situations.

At the moment the copter is not stable in loiter (third plot in the original post at around 1486s in the logfile, and https://drive.google.com/open?id=1OcWS2pBN37fOv-IOEaOvuAcvFsmS-lnQ ), for which I see two possibilities, badly tuned (likely to me) or maybe the compass issues.
Will reducing ATC_RAT_RLL_FILT help for this?

How is your experience with autotune on larger copters? We have had some really bad crashes in the past in autotune mode so we are really apprehensive about it. I understand some changes were made to it recently, but it will be hard to trust it enough to use on such a large copter.

If you feel the aircraft is too sensitive to RC Inputs, you can adjust Roll/Pitch sensitivity. This setting DOES NOT ADJUST ANY PIDS. It only adjusts the “volume” of the inputs from the radio. You can also think of this like adding exponential in the radio settings. With that being said, what may work for one pilot may or may not work for another…

Another thing that may help is using Auto Trim

Along those same lines, as far as piloting goes, NOTHING CAN TAKE THE PLACE OF STICK TIME. If I were running this program I would have ONE Test Pilot, and his first order of business is to get familiar enough with the aircraft to be able to put the aircraft into a stable hover using only the Stabilized flight mode.

As for the actual tune, this must be done with the aircraft at or near its intended Take Off Weight (TOW). If you get the aircraft tuned without the intended payload weight you must retune again with the intended payload weight, so do it now and save your self some work.

For the compass interference, run CompassMot.. Take note: To use CompassMot YOU MUST HAVE A BATTERY MONITOR INSTALLED.

I looked at your logs and I do not see ANY battery data. Not only is a battery monitor necessary for running CompassMot, battery data is used for the Low Battery Failsafe and battery data is invaluable for analyzing the power system performance.

For landings, particularly when a pilot is in control, use Stabilize Mode. When the aircraft is flying in Altitude Hold there is a “dead band” around the throttle. For a pilot to change aircraft altitude he must raise or lower throttle enough to cross this dead band. This situation can and does lead to “bad” or “ugly” landings. This issue can be particularly troublesome with aircraft that are overpowered, with the reason being there is less throttle resolution below hover throttle which can lead to over and under control particularly when the aircraft is descending through ground effect.

1 Like

Hi, for the RC inputs we want them a bit less reactive just to make things a bit easier but we know this doesn’t affect tuning parameters. Regarding tuning we have lowered the (only) value in Mission Planner’s “Basic Tuning” tab, this does set the Rate Roll, Rate Pitch P and I values (ATC_RAT_RLL_P, TC_RAT_RLL_I, ATC_RAT_PIT_P, TC_RAT_PIT_I) directly, as can be seen in the log-file. It did not help much however (we went from stock values down to 0.09), so our main question is whether we were simply adjusting these parameters in the wrong direction or these were the wrong parameters to adjust at all. We decreased them because we observed oscillations, however they were quite slow (less than 1Hz, I would say). Would that be possible for too high kP values, or does a slow oscillation mean something else?

One thing I plan to do differently is to only adjust the kP values first, and perhaps only per axis so that we really isolate the effects of adjusting these parameters. Also we plan to reduce ATC_RAT_PIT_FILT ATC_RAT_RLL_FILT as suggested in other topics on this forum for larger copters.

Regarding the compasses, this requires some work indeed (move them to a better location, and setting up CompassMot which we had not yet done). For sure its performance can be improved.

Once you’ve got flying correctly you can adjust RC Feel (which is called something else now) or even put it on a knob for live adjustment.

Back when there was no Autotune, I used to have a pot on RC6 with a parameter selected and a min and a max value, that I had to make sure are centered on the default value. If in the first meter above ground the bird was reacting lazy, I’d go after Rate_P to sharpen it. If it was wobbly or twitchy I’d start with Rate_D to “damp” it.
I’m looking at the Extended Tuning screen in MP now and don’t see the choice anymore…

Thanks all, we’ll be doing some more tests within the next few days taking your advice into account.
We will set up the current sensors, lower ATC_RAT_PIT_FILT to 10 or 7 and play with ATC_INPUT_TC. For now, no autotune yet. Like we previously said, we have experienced crashes using autotune on a previous copter. At the time, we were using a Combo Air Gear 350 from T-motor. We read a few posts which reported crashes using Flame ESCs (Crash on a X8 after starting AutoTune and Drone crash at AutoTune step 4). Since our configuration is based on some Flame 60HV ESCs, we are really apprehensive about trying the autotune on this machine.
In order to tune this large copter, our first guess is to slightly increase the D values on the rate roll and pitch (compared to the stock values) in order to kill the slow oscillations if they still occur as suggested by Cornel Fudulu. We will set it up on a knob in order to make very fine adjustments during flight.
Does any of you have some typical PID roll/pitch rate values that you find to work well for larger copters? We were wondering if the PID had any specificities for large copters or if the fact that the motor power increases with the size and weight was making the PIDs very similar.

Its a good tool but I never needed to use it.

I always thought that understanding PIDs would be too hard, but it’s actually quite an art. Here is where I started:

You’ll learn that:

P = your copter aggressiveness. If it overshoots, it’s because there’s too much P.
D = your copter’s dampening ability. If your P is as strong as you need it to be, it will overshoot on its own. To have a strong P but also a responsive and stable copter you must have D to slow the aggressiveness once you’re getting to target.
I = your copter’s ability to reach target in the end, fighting wind (steady-state error).

2 Likes

Try change ATC_ACCEL_P_MAX and ATC_ACCEL_R_MAX to 70000 but for sure ATC_RAT_RLL_FILT and ATC_RAT_PIT_FILT should be max 10