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
> 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."