PID is not difficult. It is very time consuming to get it right. It is a straightforward mathematical calculation. The dynamic reactionin the real world makes it hard.
If you have an electronic thermostat at home it is PID controlled. So is your oven. I have worked on hundreds of PID equipped machinesthat use PID to control a moving mass driven by a motor and screw, a 6,000,000btu burner (12 of them. Some gas bill!) and lots more.
You use PID every day when you drive your car. When you are driving along at 60 mph you have about 10% throttle. Try stopping the car andstarting off with 10% throttle. You will eventually get to 60 mph. It will takea long time.
You don’t drive that way. Instead, you push the throttle down. Driver A in a Honda Civic uses 50%. Driver B in a Ford Mustang uses 95%.How much I push the throttle is “P”.
In our case not the real RC throttle, but the reaction to a difference between where we are and we should be. If we are not touching theroll stick and we are level there is no difference. If the wind changes theroll then the sensor reads the difference. How much you want to react isdetermined by “P”.
Both drivers lift off the throttle at exactly 60 mph. The Civic overshoots by 5 mph. The Mustang overshoots by 20 mph. That would be an “I”of zero and a large "P". In real life you start backing out of the throttle as you approach 60mph. The Civic driver starts to ease out of the throttle at 50 and gently rollsup to 60 mph. The Mustang driver starts to ease out at 55 and still overshootsa little. How much I lift off the throttle as I approach 60 mph is “I”. If “I”is too big you overshoot. If ”I” is too small it may never get there. “I” ispart of the equation from the start, but “P” has the largest influence. As youget closer to where you want to be “I” exerts a stronger influence to smoothlybring that difference to zero. “P” justlooks at the amount of error, “I” looks at the accumulation of errors over time and brings you smoothly to zero error.The tuning information on the wiki says “I” should be zero. I disagree.
The Civic has a responsive throttle and responds to engine braking very well and rolls along at exactly 60 mph. The Mustang has verylittle engine braking and a very responsive throttle and rolls along somewherebetween 58 and 62 mph. To adjust long term variance in speed is “D”. Onlynecessary when you have a static condition. That almost never happens withflying vehicles. It is possible to have a very small negative number to helpcertain conditions, but that is long after “P” and “I” have been sorted out.
If you are flying a camera and want a smooth reaction with no wobbles or overshoot you will end up with different values than the guy thatis only interested in acrobatics and wants the fastest reaction and is willingto put up with a little overshoot to get what he wants.
One of the problems in coming to grips with PID is the fact that the numbers are dimensionless. We know what 5 lbs, 23 feet, and 94 psilook like because there is a dimension attached. PID isn’t related to anything.It is just a number that reflects the mass of the system and how quickly thesystem can react to changes. The numbers could be 0 or 100. There is no way to knowwhere to start with PID.
Fortunately for you the team here has established baseline PID numbers. Let’s assume that you and your buddy build identical quadcopters.You have received the finest parts that are available. Your buddy shops thebargain bin. They are going to fly slightly different from each other. The samePID numbers might be close. Might be different. Even if you managed to adjustthe PID, when you mount a camera the center of mass and weight change and so dothe PID numbers. Different prop, different motor . . .
If you have too large a number for “P” then it over reacts and you get a rapidly oscillating out of control vehicle. If “P” is too smallthen it is too slow to react and by then the situation has changed and you geta drunk vehicle. It’s important to slightly reach these conditions tounderstand where the middle is. If you are starting from scratch start with "I" zero and work on "P". When you introduce "I", everytime you adjust “P” you affect “I”. When you are getting close to a number thatworks you are going to have to look at the numbers as well as the reaction. Thenumbers will tell you more about the reactions than your eyes will. On thissmall of a vehicle a very small change goes a long ways. The Aeroquad PIDTuning methodology should work well, but I still think adjusting “I” isnecessary. One set of PID numbers only works in a narrow range of fixed conditions. The Arducopter team has already figured out that a cascading PID is necessary. And multiple PID conditions.
So you tuned it perfectly on that nice summer day at the beach. Now in the winter at 6,000 ft you expect the same tuning to work? (PS: Tuning outdoors with the wind makes life 10times harder.) Because we are tuning with multiple axis the job is moredifficult. As your axis angle increases you start to slide down hill and youraltitude has to compensate.
Keep track of every number you change and the reaction. When you get lost it helps you to get back on track. Change only 1 number at a timeand by small values. So what you are looking for is middle ground that will getyou running and make you happy. You can spend a ton of hours tuning the systemif you don’t have PID experience. Have patience. If you have no patience, usethe baseline number and go on with life.
Replies
Fantastic! I had previously heard PID explained in terms of the temperature of running water (wikipedia I think).
However I was driving in traffic and thought I was getting closer to understanding the whole concept as I noticed my mental calculations of throttle vs total speed vs distance to next vehicle.
Some people with a lead foot, rather than smoothly applying and reducing gas to adjust speed. This would be a to high a P... resulting in the oscillations that typically cause car sickness.
This write-up really helped me understand the mental algorithms I was doing in my head. Something in the way you said it, made it click into place. I'm much more well prepared to fix the tuning my 450.
Thanks and well done.
Great!!! This is just what i needed! Thanks alot! :)
Can you elaborate on cascading PID .
at what frequency should i change my motor speed .
Is 100 hz fine for PID ?
Peter
That was an awesome write-up! Absolutly great... Call it "PID for Dummies" ;)
Thanks for writing all that