Methods for System Identification

I may have asked this question before, but what the heck:
All of the practical methods for system identification that I know of
involve injecting a signal somewhere in the signal path then looking at the signal response to that signal at one, two or more points. Once you get a data set you can either put the whole thing into the frequency domain and get a transfer function, or you can keep everything in the time domain and get a difference (or differential) equation directly.
The method that I have used almost exclusively is a swept sine-wave using a HP control systems analyzer or hand-built software. For the systems that I've worked with this has worked very well. If you can afford to do the test the swept sine wave can give a very clean frequency response, in the face of nonlinearities it gives exactly the information needed for describing functions, and it's a very direct and intuitive way to get your frequency response.
But I know that other methods exist, mostly ones that involve stimulating the system with random data or a step (i.e. a bump test), and otherwise extracting a transfer function, or stimulating the system and directly designing a controller (Ziegler-Nichols).
So what, if any, methods do you use?
Thanks.
--

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

at
you
the
and
system
I have tried using other methods of system identification (equation error, output error, correlation etc), but always come back to the good old frequency response. The other methods seem to do OK in computer simulations, but when it comes to real systems I have not had very good experiences. I think that because the frequency response approach allows the system to settle nicely to a fixed frequency where an "averaged" measurement can be taken, it does not suffer as much from noise effects like the other methods do. Problems with convergence and biased estimates don't seem to plague sine wave measurements. Also, one can get a handle on some nonlinear behaviours via the describing function. Well, that's my 2 cents worth!
Fred.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

you

You can use Recursive Least Squares system ID techniques while the system is running. It's model based. Such techniqes go hand in hand with adaptive control schemes, because the system is allowed to change if it wants to. Of course, to get good estimates across the freq spectrum, the input must sufficiently excite the system across a frequency range--but if the input doesn't involve some part of the freq spectrum, do you really need to know what the system does in that range?
Scott
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Scott Seidman wrote:

I've done RLS in simulation (of an adaptive system) but not in practice. Worked nicely. I could see doing this with a white noise input off line -- but you have to guess the number of significant poles and zeros before hand AFAIK.
--

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

As an addendum to an earlier post, I often use random signals techniques, such as the Welch Periodogram, in conjunction with a coherence analysis. This way, you get estimates of precision.
Scott
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tim,
IMHO, the good old step takes some beating. You certainly need more than one, unless your noise is miraculously low. The key point is to get the plant into a good, quiet state as far as possible before the tests are started. You'll always do better if there's less noise. I've found that with plants that are experienced in the art of plant testing, the operators can do a real good job of settling things down when they want to.
I read occasional reports of people making a go of PRBS identification, with forcing function size around the noise level, but they must have done something that I didn't because my various trials in the past have drawn a blank. The cross correlation is just too messed up by low frequency disturbances.
One other point is how much data you need and how good it has to be. At the end of the day, you'll be tweaking the controller settings anyway, and the inevitable nonlinearities and other real world stuff will ensure that things will change over time. Practical controls have to be robust enough to deal with all this, ergo they can be set up with reasonably coarse data.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
I use system identification. I can't use a sinewave to excite my system. I tune a lot of hydraulic systems and the system gain while extending is different than the gain while retracting. :( This means I must make a move in each direction.
I then execute the model using the same control signal data I used to create the model. The estimated position should be very close to the actual position data. I use the ISE ( integrated squared error ) to evaulate how close the model is.
Getting system identification to work took a lot of effort to learn the tricks that aren't mentioned in the text books..
After I get a model I use pole placement. For hydrauluic systems the desired tuning will usually be underdamp or maybe critically damped.
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.