P Control vs full PID

  1. 6 days ago


    Mar 13 Virginia 84927A Team Leader

    Is it worth it to use full PID or just keep it at P (or PI or PD or something) for simplicity?

  2. mattynmax

    Mar 13 Grayson Ga

    A well tuned P loop can be extremely effective for something lighter like a chain bar, but I personally always use either a PI or a full PID. Though I have heard of success using PD, the "step" of the vex sensors is too great for it to be reasonable.

    The D in PID is a a derivative or the slope of a point in relation to infinitely close points. In computer science/programming a heuristic of picking a really small number is used instead due to the lower computation time. Since you are restricted to only 20 ms refresh rates (its probably higher, I am just factoring in the rate of change in the motor controller) the D term is not very useful on its own.

  3. NyQuil

    Mar 13 Ashburn, VA 80508X

    We used PI for our long skills runs, (didn't get to run it) it worked well but it was slow. For match auton I would recommend just P or gyro for drive straights. For skills auton I would use gyro and PI for greater accuracy.

  4. Mystellianne

    Mar 13 Miami, Florida 4411S

    I would only use PID for mechanisms that will be constantly using it, like a chainbar or a lift. For driving forward/turning in auton, it’s reslly not necessary. I have a consistent 84 point programming skill and I use neither PID turning nor PID driving. Granted what I do instead isn’t as simple as straight “move forward until this point”, but it just goes to show that PID is not as necessary as people say it is for long runs (not to mention how slow it is).

  5. nenik

    Mar 13 V5 Beta Tester

    Actually, D is very helpful for any arm/lift movement. Potentiometers have great resolution, about 16 ticks for an angular degree. Do the math, at 100rpm, even geared 1:5 like a typical lift, it's still about 40 ticks every 20ms when going full speed (100 / 5[gear] / 60[seconds in minute] * 360[degres per turn] * 16[ticks per degree] * 0.02[seconds/iteration] = 38.4[ticks/iteration]). That's plenty of precision for nice slow-down on the approach to the target value. Just don't forget to filter the input - pots are sometimes a little jittery.


or Sign Up to reply!