Using results from Transfer Function Estimates in System Identification Toolbox

I am using the System Identification Toolbox, to estimate the transfer function of an input - output data set. Both are observed, discrete time-series data.
Using the toolbox, I have generated good results that show best fits of 60-70+ in the compare window. However, when I use the resulting numerator and denominator coefficients from the tf model, then run the input data through a filter using those coefficients, the output data looks nothing like the actual measured output data.
So I have a couple of questions:
  • What is the fit line, that is overlaying the measured output data in the compare window? How is that generated from the transfer function using the input data?
  • How do I use the results of the transfer function estimate to give output predictions on new input data?
Ultimately I would like to take the transfer function result, repeat the experiment with new input data, and yield output data that matches well with measured output data.
I have simplified this and only have been using SISO, but I will use MIMO for the end system analysis. I have already played with this a bit, and it brought up another question:
  • When providing the tfest with MIMO data, let's say 3 inputs and 3 outputs, the resulting transfer functions are from u1 -> y1, u2 -> y1, u3 -> y1, u1 -> y2, etc. Yet for estimating a single output, say y1, is the estimation derived from the SISO transfer function at (1,1) with u1 as the input, or does the output y1 depend upon u1, u2, and u3 for a complete result? To rephrase, if I were to estimate y1 as measured on a new experiment with new inputs, how do I arrive at the result given u1, u2, u3, and the SISO transfer functions at (1,1), (1,2), and (1,3)?
Again, I hope to use input data to eventually generate an output that matches the measured output.
I hope that makes sense. Any insight would be much appreciated.

Answers (1)

Most likely the issue is due to not using the proper initial conditions as explained in the previous post.

6 Comments

Okay that is a good place for me to start, thanks. Since I am not using Simulink or the HW non-linear model, does this still apply? I'm assuming the easiest thing to do is to estimate the model with the initial conditions I expect (zero, steady-state).
Do you have any additional comments about the MIMO-3 questions?
Yes, it still applies. When you use "compare", or System Identification Tool plot, these tools estimate and use initial conditions. If you are doing comparison yourself, then most likely the initial conditions are set to 0 by default, which would in general give you very different results.
You should either set the estimation option to sue zero initial conditions, or use function findstates to estimate initial conditions, and then use these initial conditions in your calculations. This is explained here in the doc.
As for MIMO question, if you have MIMO transfer function, you would predict y1 by applying tf11 to u1, tf12 to u2, and tf13 to u3 and adding the results up.
Okay I've made some progress, but I'm still having issues with using coefficients for validation. I've forced the models to use zero as an initial condition (which is what it should be). I'm now using an arx model and converting to a idtf model. When I use compare on the system and validation data, it looks great, 92% fit on one column.
When I take the coeffs from num and den, and apply the y1 = (tf11)*u1 + (tf12)*u2 + (tf13)*u3, it still doesn't look like the estimates in the model / compare function using the same validation data. Here, tf11 is b = num(1,1), a = den(1,1), etc.
Are there any other factors that could affect this? What am I missing?
Also, I noticed that running compare(data, sys) generates good results, but then running sim(data, sys) generates something completely different. How is that possible for the same system and validation data??
Hard to troubleshoot more without seeing your data and code.You can either:
  1. Share it by attaching files to this thread, or
  2. Contact tech support.
Arkadiy
Any updates on this guys?
Having the same issue where the generated estimate does not really predict we’ll , even with the fitness exceeding 95%
Feel free to email me details
Shadyalzubi@gmail.com

Sign in to comment.

Asked:

on 31 Oct 2013

Commented:

on 16 Aug 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!