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

3 Ansichten (letzte 30 Tage)
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.

Antworten (1)

Rajiv Singh
Rajiv Singh am 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 Kommentare
Rajiv Singh
Rajiv Singh am 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.
grigory yashin
grigory yashin am 3 Sep. 2019
Ok, thank you. Now I know that resampling is the only one way for this task.

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by