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

1 次查看(过去 30 天)
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.

回答(1 个)

Rajiv Singh
Rajiv Singh 2019-9-3
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 个评论
Rajiv Singh
Rajiv Singh 2019-9-3
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Linear Model Identification 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by