Controlling a shaker table with a PID

Hi,
I created a thread covering part of this subject back in September but after having read more about controllers I'm a bit more confidential with the
terms used in the "controller world" besides having more specific data of my system and therefore I thought that starting from scratch creating a new thread would be better. I got the book from Tim Wescott since then so it is possible to reference to it if needed.
The task is to control a shaker table (a very small one ~20N max): 1) The command curve (deflection) is within the frequency range from about 0.1 Hz to 60Hz. 2) The curve lenght is up to about 60s max. 3) The sensor is a DC accelerometer - there is no deflection sensor attached (not possible) so the feedback signal is therefore a double integrated acceleration. 4) The sample frequency is 4000 Hz.
I'm a novice within control theory and the control loop is just a necessary part of the entire project so I have decided to try with a PID loop as the first shoot.
-I've been suggested to use a leaky integrator in order to avoid accumulation of DC error but how to make a leaky integrator (any references)?
-What sort of PID would you recommend (where to place the propertional part)?
-How should i tune the PID parameters correctly (I would like to use an auto tune algorithem)?
Thanks for any comment! Ole
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
A few thoughts to get you started:
A decent reference on a leaky integrator algorithm can be found at: http://www.dspguru.com/comp.dsp/tricks/alg/dc_block.htm
For a good tutorial on the basics of PID, I refer you to: http://www.expertune.com/tutor.html
I am not clear on the control objectives. What are you really trying to control? * Position? (double-integral of accelerometer) * Frequency? * Amplitude / Max position? * Max velocity? * Max acceleration? The choice of control objective could definitely change the approach to control strategy and algorithm.
The sample frequency seems fast enough...for more on sample frequencies, see this 6-minute on-line presentation: http://www.expertune.com/present.asp?name=Sample
Good luck!
-George
Ole wrote:

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

The purpose is to control the position of the shaker connection / accelerometer and the feedback is taken from the accelerometer. The position is however not a steady position but a curve or a sine ( 1 Hz to 30 Hz or so).
Thanks, Ole
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ole wrote:

I hope it will prove helpful.

If your drive exerts a force on the table you'll probably find that the derivative action isn't necessary, and you may want to cascade another integrator in there -- this depends on what you have and what you want, so to start I'd suggest just PI control.

I do not recall the thread, but if you wanted to drive the table with a position command you could use a leaky integrator for feedback. I would suggest instead that if you want to drive the table with a pseudo position (I say 'pseudo' because you'll have to high-pass filter it) you'd be better off differentiating the position twice to get an acceleration command, and 'asking' the table to follow that.

I'm not sure what options you're dealing with. The "PID" refers to what's in the feedback path; how much of the controller you put in the forward path depends on what you want the system to do. If you want to smooth the command signal then you want just the integral in the forward path -- conversely, if you want to follow the command as smartly as possible, you want to put all of the controller in the forward path.

Walk before you try to run. Don't play with auto tune algorithms until you understand the basic control.
I would model the system, and design control gains that would work for a variety of loads -- then I'd back up my model with real measurements (I have a chapter on this), and modify my design accordingly.
Once you get that working then you can consider autotuning. The shaker tables that I'm familiar with have significantly more 'shaken' mass than anything you'd ever put on them, so the tuning won't change a whole heck of a lot, obviating the need for auto tuning.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Won't the drift problem be the same whether the position is differentiated twice or the acceleration is integrated twice? The shaker must follow a position command and if I use a PID regulator I'll get the noise cancelling advantage by double integrating the accelerometer signal to get the position. Isn't a leaky integrator in reality a low coutoff freq highpass filter?

I've seen different kind of PID setups like in your article: PID Without a PhD: http://www.embedded.com/2000/0010/0010feat3.htm where you show two possible setups in figure 1
http://i.cmpnet.com/embedded/gifs/2000/0010/0010feat3fig1.gif . I've also seen a setup where all three parts (P, I andD) are placed in the forward path, so if I want my system to follow the position command as close as possible, what setup should I then use?
Thanks, your help is highly appreciated Ole
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You want at least two of the lower order gains ( Ki and Kp ) in the forward path. The two gains in the forward path provide zero a zero that will extend the bandwidth. Three gains in the forward path is more problematic. Now you will have two zeros and they may be complex which may hurt rather than help.
Feed forwards are a must.
Peter Nachtwey
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.