Loading ...
Sorry, an error occurred while loading the content.

Re: [SeattleRobotics] Re: Robotic control algorithms

Expand Messages
  • Kipton Moravec
    ... If you are trying to achieve the desired speed in the minimum time you will have overshoot. It is a critically damped system. If you have a system that is
    Message 1 of 75 , May 2, 2008
    • 0 Attachment
      On Fri, 2008-05-02 at 23:24 +0100, Peter Balch wrote:
      > From: "Kevin Ross" <kevinro@...>
      >
      > You seem to be referring to any mismatch between desired and actual speed as
      > "overshoot". I'm simply referring to what is called "overshoot" in
      > discussions of controllers. For instance, the first graph in
      > http://en.wikipedia.org/wiki/PID_controller
      > shows overshoot. The word "overshoot" is used in that technical sense
      > throughout the article and throughout any discussion of PIDs.
      >
      > > your simulation must be
      > > broken. Simple laws of physics will ALWAYs apply. There is a reason that
      > > PID
      > > exists, not just P.
      >
      > The laws of physics predict that there will be overshoot using a P
      > controller that controls the position of a motor. The laws of physics
      > predict that there will NOT be overshoot using a P controller that controls
      > the speed of a motor.
      >
      > There are many PID controllers on the web. Can you find one that
      > demonstrates overshoot in a speed controller. (Remember, most of the demos
      > are of position controllers.)

      If you are trying to achieve the desired speed in the minimum time you
      will have overshoot. It is a critically damped system.

      If you have a system that is over damped you can achieve the desired
      speed without overshoot, but it will take longer to get to the desired
      speed. (Just turn down the gain of the P term.)

      PID works on the difference between desired and actual. It does not
      matter if the error term is position, speed, rotation, or anything else
      you are controlling. So it works the same no matter what the system is.
      If it overshoots for position, then it will overshoot for speed. If it
      does not overshoot for speed then it will not overshoot for position.
      But believe me, for a critically damped controller it will overshoot.
      Just like the Wikipedia graphs.


      >
      > > Sorry, momentum is a force.
      >
      > Momentum is not a force in any physics textbook I've ever read.

      Momentum is mass * velocity

      Force is mass * acceleration


      > The laws of our universe make it so that a mass tends to resist a change in
      > velocity. That's momentum. A mass does not resist a change in acceleration.

      You are referring to the physics law:

      "A body moving on a level surface will continue in the same direction at
      a constant speed unless disturbed."

      But it the real world it IS disturbed, by wind resistance, and friction.
      There is a lot of friction in a motor control system.

      >
      >
      > That's why momentum causes overshoot in a position controller. And why
      > momentum cannot cause overshoot in a speed controller. There's a fundamental
      > difference between a position controller and a speed controller.
      >
      > >>> 6) Changes in the mass of your robot
      > >> That has no effect on overshoot. It only affects the rate of response.
      > > If your controller is outputting a force to keep a robot at a speed, and
      > > the
      > > mass of the robot changes, the robot is going to accelerate.
      >
      > There will be a mismitch in speed which will be corrected by the controller.
      > There will be no overshoot.
      >
      >
      > If there is no sensor and power-control lag then a P controller will not
      > cause overshoot. Other "real-world" factors may cause a speed mismatch but
      > the controller itself will not cause overshoot.
      >

      A PID controller changes the voltage (or current) to a motor (in this
      case) the motor does not instantaneously change the speed. So there is
      lag in the system. The lag is what causes overshoot in a critically
      damped system. If there was no lag, you would not need PID.

      --
      Kipton Moravec KE5NGX
      "Always do right; this will gratify some people and astonish the rest."
      --Mark Twain
    • Peter Balch
      Dave ... I hadn t realised that. I guess it s obvious when someone points it out. I knew that D was sensitive to noise but I d always been wary of filtering it
      Message 75 of 75 , May 9, 2008
      • 0 Attachment
        Dave

        > In the real world, the D term is low pass filtered for frequencies
        > above the loop response. The effect is to cap the D term gain for
        > frequencies above the loop response.

        I hadn't realised that. I guess it's obvious when someone points it out.

        I knew that D was sensitive to noise but I'd always been wary of filtering
        it because filters introduce delay and delay causes oscillation.

        > > To start with, there is a delay in the system of 1/20 sec at 20 Hz.
        > I took a guess from your statement: "Here is a plot of a PD velocity
        > controller, showing the controller variables and output for
        > 6 seconds at 20 Hz, 120 samples, for my SR04 robot."

        (That was dpa's statement. And graphs and robot.)

        > I jumped to the conclusion that the 20 Hz was the servo pulse update
        > rate. I hope my parachute opened.

        Ah. I was searching for something subtle in the graphs.

        > > If you remove the D term, check the overshoot and ringing.
        > > I bet it will go up.

        I just realised something. You were suggesting in your previous post that "a
        conventional D term cannot compensate for this [20mS] delay". Therefore the
        D term isn't there for that purpose. It's a velocity controller so D is not
        there because of momentum. It must be there simply for "balancing the I and
        D terms". So if you remove both I and D then you wouldn't expect extra
        overshoot and ringing.

        And why can't D compensate for a fixed delay?

        Peter
      Your message has been successfully submitted and would be delivered to recipients shortly.