PID parameters

More
27 Oct 2011 17:05 #14329 by jmelson
Replied by jmelson on topic Re:PID parameters
andypugh wrote:

BigJohnT wrote:

So if FF0 is for a velocity loop and FF1 is for a position loop what is FF3 for?


FF3? No idea.

FF2 would be the torque (or accelleration) precontrol to a position loop.

Maybe.

Assuming an axis, FF0 would create an offset proportional to axis position. This would be
bad for an axis. FF1 applies an adjustment based on commanded velocity. It helps
correct following error at constant speed. FF2 is proportional to acceleration, and
helps correct following error when accelerating and decelerating. You can do short
jogs and get a trapezoidal velocity profile. There, you get to see all the error
states. Stationary, accel, cruise, and decel. If you plot velocity on one halscope
trace and following error on the other, you can correlate which bumps in the
following error are due to which modes of the motion, and know which term
(P I D FFx) to adjust.

Jon

Please Log in or Create an account to join the conversation.

More
27 Oct 2011 17:42 - 27 Oct 2011 17:42 #14330 by kostas
Replied by kostas on topic Re:PID parameters
jmelson wrote:

Assuming an axis, FF0 would create an offset proportional to axis position. This would be
bad for an axis.


Could you comment a little on this Jon? I can't quite understand the meaning.
Last edit: 27 Oct 2011 17:42 by kostas.

Please Log in or Create an account to join the conversation.

More
27 Oct 2011 17:57 #14331 by BigJohnT
Replied by BigJohnT on topic Re:PID parameters
I wish there was a short tutorial on tuning servos... JMK started one on the wiki but never finished it.

That is some good info on FFx. So is FF0 better for spindles?

John

Please Log in or Create an account to join the conversation.

More
29 Oct 2011 04:12 - 29 Oct 2011 04:15 #14358 by jmelson
Replied by jmelson on topic Re:PID parameters
kostas wrote:

jmelson wrote:

Assuming an axis, FF0 would create an offset proportional to axis position. This would be
bad for an axis.


Could you comment a little on this Jon? I can't quite understand the meaning.

Each of the FFs take some parameter from the commanded position and add a
value to the PID output. So, FF0 does commanded position * FF0 = value and then
adds that value to the pid output. FF1 is first derivative of position * FF1 = value
and FF2 is second derivative of position * FF2 = value.

So, when I say FF0 would be bad for an axis, it would cause a following error
that would be proportional to position. You could get the following error to zero
at one spot like X=1.2345", but there would be an accumulating error either side of that magic
location. This would not be a good thing.

So, FF0 is proportional to position (assuming an axis) or otherwise whatever parameter
is the input to the PID. FF1 is the first derivative of position, so that is proportional
to velocity. FF2 is second derivative of position, so it is proportional to acceleration.

I have not used the PID for a spindle application, but I can see that the PID is
given a position command for an axis, but a speed (velocity) for a spindle, so
there FF0 would be the right thing to adjust to compensate for finite servo
gain.

Jon
Last edit: 29 Oct 2011 04:15 by jmelson. Reason: expand

Please Log in or Create an account to join the conversation.

More
29 Oct 2011 07:47 #14363 by Zig
Replied by Zig on topic Re:PID parameters
You have understood the application of FF ( feed forward parameters).

Take a portion of set point and add it to the PID controller output.

Problem with PID controller is that it may not be able to cope with processes which have dead time or significant lag.

Derivative component inn the PID loop is there to help with some of this aspect but in the end think of feed forward as follows:


my PID controller will eventually give me say correct position but it might take excessive time getting there especially with the integral component trying to produce zero positional error and anyway if the proportional gain is increased too high in order to get tighter loop( read lower following error) the loop may become unstable ( conditions for loop stability less than unity gain... less than 180 degree phase shift .. been a while since i visited this theory)

so by telling the loop here is a sample of where you got to be... the PID controller has less work to do in terms of keeping to a following error budget.

Of course You would not use excessively large FF component, the loop would become uncontrollable. Just keep in mind FF is a one off addition to the PID output and PID output goes to zero and may swing negative to minimise possible effects of FF .

In terms of our experience of the world feed forward is like telling the rally driver turn to right in 50 feet because it might be too late for him to react by the time the car gets to the point in question.

And NO control systems are not that simple but it helps to get a gut feeling for the process.

If you want to know a bit more theory especially in terms of sampled time ( real time digital control ) come to grips with Z transforms and subsequent matrix algebra.

Please Log in or Create an account to join the conversation.

More
01 Nov 2011 07:41 #14478 by 1:1
Replied by 1:1 on topic Re:PID parameters
JMelson ...

Thanks!

You've explained FF in a way that I understand finally - not that I've looked super hard, it's just something that always went over my head. It's pretty basic actually, the way you put it, which assuming you're right is good.

Next though I need to mull on it and think about the potential drawback situations - that might not be so clear :side:

Please Log in or Create an account to join the conversation.

Time to create page: 0.223 seconds
Powered by Kunena Forum