PID controller question



Yes, I call it a "tail". I got burnt on that early in my career and have avoided pole cancellation ever since; unless I had an outside loop to kill the tail. It's best not to take it too casually even then. Sometimes you have to make sure _that_ zero moves to _that_ pole when the loop gain is changed; and doesn't wander off.
Ray
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

[/quote] I don't understand this statement. I would like to see an example. If you place the closed loop poles on the negative real axis away from 0 the system will be safe. The response will be like a multi-pole low pass filter. Yes, a lot depends on where you place the poles.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Mon, 01 Feb 2010 09:38:18 -0800, pnachtwey wrote:

In general terms, however, the faster the poles that you're placing -- no matter how well damped they are -- the more gain you need and the more predictability that you're demanding from the plant at high frequencies. Since most plants tend to get unpredictable at high frequencies, this isn't necessarily a safe thing to do blind.
In your case, IIRC, you usually close hydraulic systems at around 10Hz. As an extreme example, what happens when you place your poles at 100Hz instead? 1000?
Without getting too close to reality, consider a system with a real transfer function
1 1 H(s) = - --------------- s (s/1000 + 1)^4
Say that your best model gives you a transfer function H(s) = 1/s.
Now do a simple proportional-only controller with a pole placed at 10Hz -- all is well. But try to push that pole placement out to 50Hz and you're down to less than a 30 degree phase margin, with over 6dB of peaking, bad behavior, and who knows what will happen on a really cold day. Push the placed pole out to 80Hz and you're at almost 20dB of peaking, on the ragged edge of stability.
You could use the 'five pole' model to push the pole placement out much further -- but if you aimed for that 80Hz loop closure you'd have a system that's exquisitely sensitive to relatively small changes in the pole location.
(note that to do pole placement with five poles you need at least a four- pole controller; if you've got that many poles in your controller then you're probably leading yourself down the garden path unless you have a _really_ good idea of what your plant is going to do over environmental, aging, and possibly per-part variation).
--
www.wescottdesign.com

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Don't confuse the technique with the execution. Obviously the poles can't be placed too far to the left. There are practical limitations such as sample rate, sample resolution, output limitations and other un-modeled features.
A system like your H(s) requires 5 gains if the integrator is not used and the sample rate needs to be 10K. Your example has another practical limitation that JCH often ignores. How does one measure second, third, forth and fifth derivative?
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Mon, 01 Feb 2010 22:16:20 -0800, pnachtwey wrote:

20+
Well, that's my point exactly -- as a technique, pole placement works great _if_ you already have a good idea of where the poles can be placed. I contend, however, that it gives you no means of determining where those poles _should_ be placed without using other techniques (such as robust design techniques or Monte-Carlo design tries).

Obvious from the _outside_ of the pole placement algorithm, yes -- that's what I was trying to point out. From _inside_ the algorithm there's no guidance whatsoever, as contrasted to robust design techniques which demand that you start with an awareness of the parameter variation of your plant and go from there.

One could write a book on them.

A 5th-order system would need five gains _for pole placement_, yes. But many robust control design techniques (not excluding Bode plot design, although it is arguably not 100% robust) work very well to find reduced- order compensators. Given a 5th-order system definition would you insist on making a 4th-order controller each and every time? Does this mean that if you had a 10th-order system definition you'd insist on a 9th- order controller? What about H(s) = (e^(0.001s))/s? Where do you find the infinity of poles for your controller, to place the infinity of poles in your plant? Bode plot design (and other robust techniques) take care of this with little problem.
--
www.wescottdesign.com

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

No, I couldn't accurately identify that many poles. I would model the dominate poles and compute the gains for that. Then I would use a smooth target generator so I wouldn't excite the other poles.

You approximate that with a Taylor's approximation.

I don't see how you can tell were one pole begins simply by looking at the Bode plot. Finding real poles is hard enough. It is harder yet to pick imaginary poles. It is too hard to pick the pole locations accurately from a plot.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Tue, 02 Feb 2010 22:09:14 -0800, pnachtwey wrote:

You make my point, then. With an approximate model you cannot do pole positioning with arbitrarily fast poles. From past discussions in this forum I have no doubt that you can figure out how far you can push things using your calibrated eyeball to tell you where the danger zone is -- I just think that there are better and more easily taught ways of getting to the same end.

When I do Bode plot design I discard any pretense of knowing where the poles are -- I just design the system in the frequency domain, then (if necessary) double-check the results in the time domain to find out if there are any interesting behaviors like the long tail previously mentioned.
--
www.wescottdesign.com

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

One should know their system well enough to know what poles exist. The higher poles are not a problem if you don't excite them. This is why target generators are so important.

I don't see most systems. We sell a motion controller and the customer installs it. We provided tuning wizard that helps. Our customers are usually able to tune the systems by themselves if their hydraulic systems doesn't have too many flows. Since we control hydraulic systems that are moving TONS instead of pounds it is not wise to do a frequency sweeps. Also the gains change as a function of direction.
Motors are easy to tune. Here is an example of auto tuning a motor in torque mode. http://www.deltamotion.com/peter/Videos/AutoTuneMotor.mp4 You can see when I move the cursor across the plot the target and actual position are almost the same.

OK, so I ignored the RL time constant. The tuning is still almost perfect. This is because the RL time constant is much shorter than the time constant due to inertia.

I would like to see how you do this. I have motors and data that I can send or post. I would be interested in seeing if you can get the same results for tuning this motor.
I haven't seen the long tail behavior.
Tuning this motor is easy. Underdamped second order systems are much harder. I would like to see how you handle that. Like I said, I have real systems with real data. I have customer with data for all sorts of systems.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
[...]

9th-order is feasable. But order reduction may be better. I haven't implemented 9th-order and tried reducing 6th-order to 3rd-order.
It works:
* http://home.arcor.de/janch/janch/_control/20100203-model-reduction /
--
Regards JCH












Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Nothing is ignored.
First I find directly 'all' derivatives using process identification techniques via least-square approximation methods. Basic for that is a measured process transfer function data set for e.g.
A6*v1^(6) + ... + A2*v1'' + A1*v1' + A0*v1 = v2
See Example yellow line:
* http://home.arcor.de/janch/janch/_control/20100202-process-identification /
Any Ai is known and used for
- feedforward - disturbance compensations
As far as controlling is concerned I use 'State Observation Control'.
That means using all coefficient Ai found per program that I have written for that purpose.
--
Regards JCH






Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You ignore feedback resolution for starters. Try computing the 6th derivative in your example below when the feed back isn't a 17 digit floating point number.

You are estimating the coefficients for the plant but you are not calculating the derivatives of the process variable.
Peter Nachtwey
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Just use 'appropriate' equipment. It depends on the task. (Note: Another one of my programs use 49 digits.)

Read again:

In other words: 100% mathematics! No further improvements are possible!
* http://home.arcor.de/janch/janch/_control/20100202-process-identification /
The dotted black line is the solution of the measured 'real' points (blue dots). The differential equation is shown in the yellow bar. That is the mathematically found process transfer function.
The data used you find on the mentioned page below. (Note: The mentioned techniques can also be applied to non-linear differential equations changing them to linear differential equations.)
--
Regards JCH




Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.