User Info

 
 
Welcome, Guest. Please login or register.
Have you missed your activation email?

Who's Online

Calendar

August 2014
Sun Mon Tue Wed Thu Fri Sat
1 [2]
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


Author Topic: Tuning PIDS Arducopter / MegaPirateNG 2.9.1 + , FAQ - Draft - Work in progress  (Read 26501 times)

0 Members and 1 Guest are viewing this topic.

Offline Jumpy07

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 5
  • -Receive: 174
  • Posts: 1421
  • Liked: 579
  • Country: scotland
  • What goes up.. must come down..
Tuning PID`s
 
This is intended as a guide / reference to PID's in Arducopter 2.9.1 + , (Also applies to latest versions of MegaPirateNG), please feel free to comment / add information for others, will maintain /edit the FAQ as appropriate.
 
A proportional-integral-derivative controller (PID controller) is a generic control loop feedback mechanism (controller) widely used in industrial control systems. A PID controller calculates an "error" value as the difference between a measured process variable and a desired setpoint. The controller attempts to minimize the error by adjusting the process control inputs.

In specific multicopter terms this means the PID software will be taking data measured by the sensors on the flight controller (gyros / accelerometers etc) and comparing that against expected/desired values to alter the speed of the motors to compensate for any differences and maintain control.

The PID controller calculation (algorithm) involves three separate constant parameters, and is accordingly sometimes called three-term control: the proportional, the integral and derivative values, denoted P, I, and D. Heuristically, these values can be interpreted in terms of time:
 
  • P depends on the present error
  • I on the accumulation of past errors
  • D is a prediction of future errors, based on current rate of change
Depending on your flight controller there will be PID's associated with a number of flight modes. This FAQ focuses on Arducopter but the principles apply to other FC's that use PID tuning.
 
Current PID tuning parameters for Arducopter 2.9.1 + are shown below, as you can see certain PID's are only active in certain flight modes in Arducopter. You should always start tuning standard PID's first,  Rate Roll, Rate Pitch and Rate Yaw. Until you get these stable then there little point in moving on to the others.

The PID's in Arducopter are optimised for the 3DR/jDrones quad with 850 motors and 10" props. If you're using more powerful motors/props and are seeing bad flight behaviour in stabilize, start by turning down Rate Roll P in 25% steps first.

Unless you have a Multi with strange motor layout, Pitch and Roll are normally locked to each other, ie: change one the other matches the same settings.

From 2.9.1+ it is important that the FC is not hard mounted, the board should be mounted on foam, gel or isolation mount. Failure to do this will make the Multi hard to tune. Pay special attention to prop balancing and motor balance. If you are still having problems with Alt Hold or Loiter then try changing the setting for AHRS_MPU6K_FILTER in advanced parameters in Mission Planner to 20 or lower.


[ Guests cannot view attachments ]

Rate Roll
  • P - Too much rate P will oscillate quickly, and cause to copter to sound angry under stick input, bouncing rather than smoothly following your inputs. It will also shake more at full throttle and under hard turning. Not enough you will not feel like you have full control,  it will feel lazy and be very easy to over correct with your inputs, inputs will feel delayed.
  • I -  Too much rate_I will oscillate if you get high enough (a much slower oscillation than a rate_P shake).  But quite a long while before it oscillates it will have other detrimental effects on flight performance, like a sluggish feeling or a tendency to flip over on take-off. Not enough will cause the copter to get pushed by a constant wind, then it will fight back using just P.  It will not hold a very firm angle during forward flight and will need more correction. This will not be as smooth as it could be in either case.
  • D - Too much rate_D will cause fast oscillations, you will see a twitch forming then a fast buzzing oscillations. Not enough rate_D will result in you not being able to dial enough rate_P in, you will then suffer the effects of having rate_P too low
  • IMAX - The maximum possible build up of Roll
Rate Pitch
  • P - Too much rate P will oscillate quickly, and cause to copter to sound angry under stick input, bouncing rather than smoothly following your inputs. It will also shake more at full throttle and under hard turning. Not enough you will not feel like you have full control,  it will feel lazy and be very easy to over correct with your inputs, inputs will feel delayed.
  • I - Too much rate_I will oscillate if you get high enough (a much slower oscillation than a rate_P shake).  But quite a long while before it oscillates it will have other detrimental effects on flight performance, like a sluggish feeling or a tendency to flip over on take-off. Not enough will cause the copter to get pushed by a constant wind, then it will fight back using just P.  It will not hold a very firm angle during forward flight and will need more correction. This will not be as smooth as it could be in either case.
  • D - Too much rate_D will cause fast oscillations, you will see a twitch forming then a fast buzzing oscillations. Not enough rate_D will result in you not being able to dial enough rate_P in, you will then suffer the effects of having rate_P too low
  • IMAX - The maximum possible build up of Pitch

Rate Yaw
  • P - Should be set higher get more aggressive control and lower to slow reaction time.
  • I -
  • D -
  • IMAX - The maximum possible build up of Yaw


Stablize Roll
  • P - The desired rate at which the copter will return to level from roll.  If this is too high, it could cause an oscillation.
  • I - Acts like a trim to overcome poor copter balance. Defines time it takes to achieve max value. Higher = faster.
  • IMAX -
Stabilize Pitch
  • P - The desired rate at which the copter will return to level from pitch forward or back.  If this is too high, it could cause an oscillation.
  • I - Acts like a trim to overcome poor copter balance. Defines time it takes to achieve max value. Higher = faster.
  • IMAX -
Stabilize Yaw
  • P - The desired rate at which the copter will return to the target heading.  If this is too high, it could cause an oscillation.
  • I - Acts like a trim to overcome poor copter balance. Defines time it takes to achieve max value. Higher = faster.
  • IMAX -
Loiter Speed
  • P - Too low and Multi will overshoot position.
  • I - Overcomes wind to hold position (turn to zero in no wind conditions to tune P)
  • IMAX - Maximum speed to position.
Rate Loiter
  • P - The rate at which the copter will move towards the target point.  If this is not high enough, the copter will not be able to fight high winds and will drift.  If it's too high, it will oscillate around the target.
  • I - This will help the copter fight winds while having a zero error.  However use it with caution because it will also cause an oscillation if it's too high.
  • D
  • IMAX - The maximum possible build up of Loiter
Throttle Rate
  • P - amount of throttle output used to change the climb rate
  • I - compensates for error in achieving desired climb rate (zero by default.)
  • D
  • IMAX  - The maximum possible build up of throttle.
Altitude Hold
 
If you are having problems tuning ALT HOLD, make sure you have minimised all vibrations of the frame and mounted the FC on foam or gel etc. Also try setting AHRS_MPU6K_FILTER to 20 in advanced params in Mission Planner
  • P - Used to convert altitude error in centimeters to a desired climb_rate in centimeter/second. Higher = faster climb rate
  • I - Used to account for a copter having trouble holding altitude, usually due to a low voltage battery.
  • IMAX - Amount of throttle we can adjust  (units: 1000 = 100%)
Crosstrack Correction
  • Gain - Cross track correction is intended to guide the Multi to an optimal path, as opposed to simply pointing towards the desired waypoint. This is desired when wind blows the Multi off course. It can also be useful to keep a Multi on a certain line between waypoints for photography. Gain is the amount of multiplied force used to keep the Multi on the original track.
Nav WP
  • P - we use our speed (4m/s as defined m/s) offset as the error. high numbers = more pitch to achieve the desired speed
  • I - Allows ramp up against the wind force. Higher value ramps faster.
  • D -
  • IMAX - Amount of Pitch we can add to overcome wind
  • m/s - Maximum Speed in metres per second between waypoints.
Throttle Accel
  • P - Tune Throttle Accel P and I terms but try to keep P about 1/2 the size of I
  • I - Should be twice size of P
  • D -
  • IMAX -
Tips
"My copter slowly rises or descends when I enable Alt-Hold or Loiter" .
The throttle deadband when in alt-hold or loiter mode is from 40% ~ 60% of the throttle.  If you have an overpowered or underpowered copter then when in stabilize mode the throttle required to maintain a hover may be outside this range.  So when you engage alt-hold or loiter your throttle is outside of the deadband and arducopter thinks you want to climb or descend.  The simple solution is to move your throttle back to center as you engage alt-hold.  A permanent solution is to modify the THR_MID parameter through the mission planner's Adv Parameter List screen.  If your copter hover at 40% of throttle stick when in stabilize mode, make THR_MID = 400.  If it hovers at 60% of throttle make the parameter 600, etc.
 
 
« Last Edit: February 14, 2013, 14:26:28 by Jumpy07 »


BNUC-S Pilot with PFAW.

"All that is necessary for the triumph of evil is that good men do nothing"

Offline Jumpy07

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 5
  • -Receive: 174
  • Posts: 1421
  • Liked: 579
  • Country: scotland
  • What goes up.. must come down..
Re: Tuning PIDS Arducopter - FAQ - Draft - Work in progress
« Reply #1 on: February 13, 2013, 12:12:44 »
Reserved
BNUC-S Pilot with PFAW.

"All that is necessary for the triumph of evil is that good men do nothing"

Offline icedfusion

  • Site Sponsor
  • Full Member
  • *****
  • Thank You
  • -Given: 0
  • -Receive: 1
  • Posts: 211
  • Liked: 10
  • Country: gb
Re: Tuning PIDS Arducopter - FAQ - Draft - Work in progress
« Reply #2 on: February 13, 2013, 19:29:31 »
Excellent post!

ice.

Offline Leebo914

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 29
  • Liked: 0
  • Country: gb
Re: Tuning PIDS Arducopter - FAQ - Draft - Work in progress
« Reply #3 on: February 13, 2013, 23:57:24 »
Awesome, that is a huge help, thank you ~~

Online Gaza07

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 348
  • -Receive: 161
  • Posts: 4261
  • Liked: 397
  • Country: gb
    • Multi Rotor UK
Re: Tuning PIDS Arducopter - FAQ - Draft - Work in progress
« Reply #4 on: February 13, 2013, 23:59:29 »
Excellent work Craig  :bravo:

Online Marty McFly

  • Site Sponsor
  • Hero Member
  • *****
  • Thank You
  • -Given: 13
  • -Receive: 34
  • Posts: 532
  • Liked: 119
  • Country: scotland
Re: Tuning PIDS Arducopter - FAQ - Draft - Work in progress
« Reply #5 on: February 14, 2013, 10:04:04 »
   :thankyou:   once again an excellent piece of work Craig,thank you,Marty. :scotland:

Offline Mslater

  • Jr. Member
  • **
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 93
  • Liked: 12
  • Country: england
    • Revolution Models
Tis good Craig, one change to note is that Stab I does nothing now - should be set to Zero in all Stab parameters.
Duvet - The quickest way to say Duck Down !

Offline Polleke1949

  • Jr. Member
  • **
  • Thank You
  • -Given: 1
  • -Receive: 1
  • Posts: 53
  • Liked: 0
  • Country: nl
Very Good Craig.
Thanx a lot  ~~
Got a question though.
What's the difference in MegaPirateNG 2.9.1 and Arducopter 2.9.1  :confused: ?
« Last Edit: February 14, 2013, 20:18:45 by Polleke1949 »

Offline Jumpy07

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 5
  • -Receive: 174
  • Posts: 1421
  • Liked: 579
  • Country: scotland
  • What goes up.. must come down..
Very Good Craig.
Thanx a lot  ~~
Got a question though.
What's the difference in MegaPirateNG 2.9.1 and Arducopter 2.9.1  :confused: ?
Arducopter is for genuine APM board and clones such as APM 2.5 and Arduflyer 2.5 (2.9.1 has been released)
MegaPirate is for boards such as Crius AIOP and Blackvortex etc (2.9 is in beta)
 
 
BNUC-S Pilot with PFAW.

"All that is necessary for the triumph of evil is that good men do nothing"

Offline Polleke1949

  • Jr. Member
  • **
  • Thank You
  • -Given: 1
  • -Receive: 1
  • Posts: 53
  • Liked: 0
  • Country: nl
Arducopter is for genuine APM board and clones such as APM 2.5 and Arduflyer 2.5 (2.9.1 has been released)
MegaPirate is for boards such as Crius AIOP and Blackvortex etc (2.9 is in beta)

I have a Crius AIOPro V1.1, so I will have to wait for the 2.9 version......... :waiting:
Any idea when it's coming?

Offline Jumpy07

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 5
  • -Receive: 174
  • Posts: 1421
  • Liked: 579
  • Country: scotland
  • What goes up.. must come down..
I have a Crius AIOPro V1.1, so I will have to wait for the 2.9 version......... :waiting:
Any idea when it's coming?
Its in Beta at the  moment.. but has a few bugs.. dont think it will be that long until its released.
BNUC-S Pilot with PFAW.

"All that is necessary for the triumph of evil is that good men do nothing"

Offline lakis21

  • Newbie
  • *
  • Thank You
  • -Given: 3
  • -Receive: 5
  • Posts: 49
  • Liked: 10
  • Country: gr
Thank you!!! Another great thread from you! Really helpful!  ~

Offline fruitsalad

  • Site Sponsor
  • Hero Member
  • *****
  • Thank You
  • -Given: 2
  • -Receive: 45
  • Posts: 666
  • Liked: 198
  • Country: gb
  • pilot error nah not my fault ground got in the way
im in process of tuning..
this guide is very helpful and well explained.
thanks jumpy07..
dont grow up,just buy bigger toys!!!!

Online robshaw

  • Site Sponsor
  • Hero Member
  • *****
  • Thank You
  • -Given: 135
  • -Receive: 51
  • Posts: 964
  • Liked: 188
  • Country: gb
This post has just saved my bacon.  New transmitter caused my quad to fly terribly.  As it was tuned by somebody else for my old DX6i I was a newbie. Now flying happily tuned with my new 9xr.  Cheers Jumpy07  :beer2:
Hubsan X4, F330 KK, F450 CRIUS AIO Pro, 3DR Telemetry, DX6i, Fat Shark Attitude SD, SONY HAD II 650 line Camera, GoPro Hero 3 Silver, Turnigy 9XR

Offline Loiner

  • Site Sponsor
  • Newbie
  • *****
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 26
  • Liked: 0
  • Country: gb
Great description of a misunderstood subject, in geeks terms " The effects of the parameters of Differential equations in the time domain"
That's as it may or may not be, my problem is much more nobish. I can not find any mention of AHRS_MPU6K_FILTER in advanced parameters of Mission Planner. I used the LPF parameters in MultiWii and found them very effective so would like the opportunity of trying same in ArduCopter 2.9.1. Reason being my rig has a tendency to climb quite quickly when "engaging" Loiter. Not necessarily all due to vibration as I have not as yet done very much tweaking but I would like to try and eliminate as many variables as possible before diving in. Yes both the RC Timer clone APM 2.5 and the base on which it is mounted are resiliently mounted via rubber grommets both above and below.

Regards

John

PS
 ~~
Found the MPU6000 LPF setting its in Advanced params The variable name is INS_MPU6K_FILTER, should look harder before asking for help! :help: Will try and do better in future  :laugh: Now I can give the frame another try at Loiter. I do note that the default value suggested for on ArduCopter is 42Hz, as any one tried both 20 and 42 to get a comparison?

« Last Edit: March 11, 2013, 16:23:31 by Loiner »