Import the dependence of experimental data on time in the System Identification Toolbox

1 view (last 30 days)
Is it possible to load directly the dependence of experimental data on time in the System Identification Toolbox instead of data and indicating a constant interval between them? I understand that it is possible to calculate the average value of the time interval, but this will distort the real experimental data and if I understand correctly, the time delay will not be taken into account.

Answers (1)

Rajiv Singh
Rajiv Singh on 3 Sep 2019
It is possible to do so by specifying a time vector instead of a constant sample time, as in:
data = iddata(y, u, 'SamplingInstants', t)
However, most routines in the toolbox require constant sampling interval. So you must really try to get data on a uniform time grid (by interpolation, fillin missing values etc). An alternative is to use your own routine to convert the data into frequecy domain (see, for example, https://www.youtube.com/watch?v=O2K0ptoYpuc CAUTION: I have not tried it, can't speak to its correctness or usefulness). The frequency domain data does not have to be uniformly sampled in the frequency grid.
Intersample behavior need not by zero-order-hold (constant between samples). The toolbox supports two more options:
  • First-order-hold: linear trend between samples
  • band-limited: The data varies smoothly over its time span, so that there is no frequency higher that 0.5/Ts hertz (where Ts is sampling interval) in the data.
Example:
data = iddata(y, u, Ts, 'InterSample','foh')
Inter-sample behavior can be specified using the InterSample property of iddata object. Inter-sample behavior is irrelevant if you are identifying discrete-time models. For continuous-time models it helps incorporate aliasing effects when estimating.
  3 Comments
Rajiv Singh
Rajiv Singh on 3 Sep 2019
The app does not support import of data with non-uniform sampling. For a data object with custom time vector that is non-uniform, "Ts" property value is indeed empty. So the App is just expressing its inability to handle non-uniformly sampled data.
I would advise using RESAMPLE or other interpolation method (e.g., interp1) to bring the data to a uniform time grid. If that is not feasible for your task, I am afraid the System Identification Toolbox cannot help with model estimation.

Sign in to comment.

Categories

Find more on Linear Model Identification in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!