IDDATA

的输入输出数据,并在时间或频率域其系统识别属性

描述

使用IDDATA对象封装要标识的系统的输入和输出测量数据。系统识别功能使用这些度量来估计一个模型。模型验证函数使用输入度量来为模拟提供输入,使用输出度量来比较估计的模型响应与原始数据的吻合程度。

IDDATA对象可以包含一个单一的组测量或多个集合。每一组数据对应的成实验。对象具有以下特征,其在该对象编码性能

  • 数据可以在频域或时域。您可以从一个域转换对象到另一个。

  • 在时域中,数据可以被均匀地或者非均匀采样。要使用IDDATA对象估计,但是,数据必须被均匀地采样,并且对于每个实验的输入和输出的数据必须在相同的时刻被记录。

  • 您可以指定数据属性,例如采样时间,开始时间,时间点,频率采样点,采样间的行为。

  • 您可以提供标签和注释来区分和注释数据组件、实验和整个对象。

创建

描述

数据= IDDATA(ÿüTs创建IDDATA对象包含时域输出信号ÿ和输入信号üTs指定实验数据的采样时间。

您可以使用IDDATA创造一个多实验IDDATA通过指定对象ÿü作为单元阵列。或者,你可以创建单一实验IDDATA对象和使用合并(iddata)将对象组合成一个multiexperimentIDDATA目的。有关multiexperiment更多信息IDDATA对象,见在命令行创建Multiexperiment数据

数据= IDDATA(ÿ,[]Ts创建IDDATA对象为时间序列数据。该对象包含一个时域输出信号ÿ输入信号为空[]Ts指定实验数据的采样时间。

数据= IDDATA(ÿüTs,'频率',w ^创建IDDATA对象,分别包含频域数据。w ^设置IDDATA属性频率变成一个频率矢量。通常情况下,ÿü是傅里叶变换的时域信号的离散。

数据= IDDATA(___名称,值设置使用名称 - 值对参数的附加属性。指定名称,值在前面语法中的任何输入参数组合之后。

输入参数

全部展开

系统的输出信号,指定为下列任一种:

  • 一个ñ为单个输出系统的-乘1向量,其中ñ是观测值的数量

  • 一个ñ-通过-尹恩惠多输出系统的矩阵,其中尹恩惠输出信道的数量

  • 一个ñË元件单元阵列用于multiexperiment数据集,其中ñË是实验次数和每个细胞包含的输出信号为一个实验

  • []对于没有输出信号的系统中,当只对输入信号进行记录的如

ÿ必须在相同的域中的输入数据ü。如果数据是在时域,ÿü必须同时记录瞬间。

如果使用IDDATA对象;估计,ÿü必须均匀地采样。如果不均匀性很小,你可能能够将您的数据转换成均匀采样组有足够的完整性转换后的数据支持了估计。金宝app有关技术,您可以尝试更多信息,请参阅interp1MATLAB中的数据丢失(MATLAB)。

ÿ设置OutputData财产IDDATA目的。

系统的输入信号,指定为下列之一:

  • 一个ñ×1向量用于单个输入系统,其中ñ是观测值的数量

  • 一个ñ-通过-ñü矩阵的多输入系统中,在那里ñü是输入信道数

  • 一个ñË元件单元阵列用于multiexperiment数据集,其中ñË每个单元的实验次数是否包含一个实验的输入信号

  • []对于不具有输入信号,例如作为时间序列的系统

ü必须在相同的域中的输出数据ÿ。如果数据是在时域,ÿü必须同时记录瞬间。

如果使用IDDATA对象;估计,ÿü必须均匀地采样。如果不均匀性很小,你可能能够将您的数据转换成均匀采样组有足够的完整性转换后的数据支持了估计。金宝app有关技术,您可以尝试更多信息,请参阅interp1MATLAB中的数据丢失(MATLAB)。

ü设置InputData财产IDDATA目的。

在单位采样时间规定由酒店TIMEUNIT,指定为下列其中一项:

  • 标量时ÿü均匀采样。

  • 0对于在频域中的连续时间的数据。

  • []ÿü不是均匀采样,你在属性中指定的时间值SamplingInstants。对于非均匀采样,ÿü必须在时域。

Ts设置Ts财产IDDATA目的。

属性

全部展开

数据时域或频域,指定为:

  • '时间'- 数据是在时域

  • '频率'- 数据是在频域中

每个数据的名称设置包含在IDDATA对象,指定为ñË×1字符向量,其中的单元阵列ñË是实验次数。每个单元包含相应的实验的名称。例如,{“MyMeas1”;“MyMeas2”;“MyMeas3”}包含三实验实验名称IDDATA目的。

为频域数据,指定为频率值:

  • 一个ñ×1向量,其中ñ是频率值在一次实验数

  • A 1逐ñË单元阵列,ñË是实验次数和每个细胞包含用于相应实验频率矢量。频向量必须全部在相同的单位。

频率单位为频域数据,指定为以下情况之一:

  1. 标量为一个单一的实验。

    A 1逐ñË单元阵列,ñË是实验次数。因为所有频率向量必须具有相同的单位,所有数值FrequencyUnit必须是相同的。

更改此属性不会缩放或转换数据。修改属性更改现有数据的唯一解释。

系统的输入信号值,指定为下列之一:

  • 对于单个实验中,ñ-通过-ñü矩阵,其中ñ是数据采样的数量和ñü是输入信道数

  • 对于多个实验中,含有细胞阵列ñË实验矩阵,ñË是实验次数

当访问InputData在命令行中,你可以使用简写形式ü。例如,U1 = data.InputData相当于U1 = data.u

输入通道名称,指定为ñü-通过-1单元阵列,ñü输入信道的数目。

输入信道单元,指定为ñü-通过-1单元阵列,ñü输入信道的数目。每个单元包含相应输入通道的单位。

例:{ '弧度'; '弧度/秒'}

采样间行为离散时间和连续时间之间的变换,指定为字符向量或作为字符向量的单元阵列。对于每个试验,对每个输入信道的可能值如下:

  • ZOH- 零阶保持保持样本之间的分段恒定输入信号。

  • FOH- 第一阶保持保持样本之间的分段线性输入信号。

  • BL-限带行为指定连续时间输入信号在奈奎斯特频率以上的功率为零。

对于单个实验与单个输入信道,采样间包含在前面的列表中的一个值。对于多个实验,采样间是一个ñü-通过-ñË单元阵列,ñü输入通道的数目和ñË是实验次数。每个单元包含与所述小区代表实验和输入信道相关联的行为的值。

数据集的名称,指定为字符向量。

例:“机数据”

关于数据集的注释,指定为字符矢量,或者对于multiexperiment数据集,一个ñË×1字符向量,其中的单元阵列ñË是实验次数。

例:{'来自实验1的数据';来自实验2的数据'}

从系统中,指定为以下的一个输出信号的值:

  • 对于单个实验中,ñ-通过-ñÿ矩阵,其中ñ是数据采样的数量和ñÿ输出信道的数量

  • 对于多个实验中,含有细胞阵列ñË实验矩阵,ñË是实验次数

当访问OutputData在命令行中,你可以使用简写形式ÿ。例如,Y1 = data.InputData相当于Y1 = data.y

输出信道的名称,指定为ñÿ-通过-1单元阵列,ñÿ输出信道的数目。

输出信道单元,指定为ñÿ-通过-1单元阵列,ñü输出信道的数目。每个单元包含相应输入通道的单位。

例:{ '弧度'; '弧度/秒'}

输入信号的周期,指定为每次实验的双值。值是天道酬勤由属性所指定非周期性输入信号或在单位期间TIMEUNIT用于周期性输入信号。

  • 对于单个实验与单个输入信道,包含单个值。

  • 为多输入系统中,是一个ñü×1向量,其中ñü输入通道和数量ķ个条目包含的时期ķ个输入。

  • 对于多实验数据,是1逐ñË单元阵列,ñË是实验次数和每个细胞包含用于相应实验周期的标量或矢量。

所指定单位的时域数据的时间值TIMEUNIT,规定为:

  • 一个ñ×1向量,其中ñ是数据点的数量

  • A 1逐ñË单元阵列,ñË是实验次数和每个细胞包含用于相应实验采样时刻。

中的值SamplingInstants可以是均匀的或不均匀的。如果您指定Ts财产,该软件计算在统一的时间值SamplingInstantsTsT开始。如果您有不均匀的采样点,在指定的时间值SamplingInstants。然后,该软件设置Ts属性为空。估计函数不支持非均匀采样。金宝app

时间变量和采样时间的单位,指定为标量。此属性适用于数据集中的所有实验。

更改此属性不重采样或转换数据。修改属性更改现有数据的唯一解释。

由指定的单位采样时间TIMEUNIT,指定为一个标量或一个单元阵列。对于每一个实验,该值是下列之一:

  • 标量,当ÿü被均匀采样

  • 0对于在频域中连续时间数据

  • []ÿü是非均匀采样和在时域,这是因为SamplingInstants属性设置为这样的数据的时间值。

对于单个实验,Ts是一个标量。对于multiexperiment数据,Ts是1逐ñË单元阵列,ñË为实验次数,每个单元包含相应实验的采样时间。

对于频域数据,该软件使用Ts解释数据。

  • 如果Ts为0时,该软件解释输入和输出对应的信号的连续时间傅立叶变换(CTFTs)。

  • 如果Ts是一个标量,该软件解释输入和输出与对应的信号的离散时间傅立叶变换(DTFTs)Ts作为采样时间。

开始时间时域数据,具体为:

  • 一种用于单次实验中的标量

  • A 1逐ñË用于多次实验的细胞阵列,其中ñË是实验次数和每个细胞包含的开始时间相应的实验

数据集的附加注释,指定为任何MATLAB数据类型。

对象函数

一般而言,任何适用于系统识别数据的功能都适用于anIDDATA目的。这些功能一般有三种类型。

  1. 双方并返回操作功能IDDATA对象使您能够操作和处理IDDATA对象。

    • FFT传输线改造现有IDDATA对象与时间和频率域。例如:

      datafd = fft(数据);datatd =传输线(Dataf);

    • 合并(iddata)合并IDDATA对象变成单个对象IDDATA对象包含多个实验。从multiexperiment提取实验IDDATA对象,用途getexp。例如:

      data123 =合并(DATA1,DATA2,DATA3);DATA2 = getexp(data123,2);

      有关更详细的示例,请参见提取和型号专用数据段

    • 使用预处理功能,如消除趋势要么idfilt在过滤数据IDDATA对象和删除不良数据。例如:

      DATA_D =消除趋势(数据);DATA_F = idfilt(数据,过滤器);

  2. 上执行分析处理的功能IDDATA对象和创建情节或返还的具体参数或值让你分析数据,并决定投入使用的估计。

    • 使用分析功能,如delayest温泉计算变量,如时间延迟和频谱。

  3. 中使用数据的函数IDDATA对象估计,仿真和验证模型让你创建动态模型和评估模型响应如何密切验证数据相匹配。

    • 使用估计功能,如ssest特遣部队估计模型的具体结构。

    • 使用验证功能,如比较SIM卡模拟估算模型和模拟输出,验证数据,并与其他车型比较。

    下面列出包含您可以使用该功能的子集代表IDDATA对象。

全部展开

iddata /图 情节的输入输出数据
getexp 从多实验数据集具体实验
合并(iddata) 将数据集合并到iddata对象中
消除趋势 减去偏移量或从时域信号趋势包含在IDDATA对象
retrend 向数据信号添加偏移量或趋势
idfilt 滤波数据使用用户定义的通带,一般的过滤器,或巴特沃斯滤波器
DIFF 在IDDATA对象差分信号
错误数据 重建缺失的输入和输出数据
idresamp 通过抽取或插值重新采样时域数据
FFT 转变IDDATA目的是频域数据
传输线 将iddata对象从频率域转换为时间域
realdata 确定是否IDDATA基于实值信号
delayest 从数据中估计的时间延迟(死区时间)
是真实的 确定模型的参数或数据值是否是真实的
impulseest 非参数脉冲响应估算的
pexcit 输入信号的激励水平
反馈 识别可能的反馈数据
ETFE 经验估计的传递函数和周期图
spafdr 使用光谱分析与频率相关的分辨率估计频率响应和频谱
温泉 利用频谱分析估计固定频率分辨率下的频率响应
iddataPlotOptions 对于选项设置iddata /图
ssest 使用时域或频域数据估计状态空间模型
特遣部队 传递函数估计
AR 标量时间序列估计AR模型或ARI模型的参数
SIM卡 模拟所识别模型的响应
findstates 估计模型的初始状态
比较 比较识别的模型输出和测量的输出
预测 预计K-领先一步模型输出
goodnessOfFit 分析测试和基准数据,并确定模型的有效性之间的拟合优度
procest 使用时间或频率数据估计过程模型
渣油 计算和测试残差

例子

全部收缩

创建一个IDDATA使用单输入/单输出(SISO)的时域数据对象。的输入和输出各含有1000个样本为0.08秒的采样时间。

加载dryer2_data产量输入;数据= IDDATA(输出,输入,0.08)
数据=时域数据组具有1000个样本。采样时间:0.08秒输出单元(如果指定的话)Y1输入单元(如果指定的话)U1

该软件将指定默认的频道名称“日元”到第一个也是唯一的输出通道。当输出信号包含多个通道时,软件会指定默认的名称'Y1', 'Y2',......, 'YN'。同样,软件会分配默认的频道名称'U1'到第一和唯一的输入通道。有关命名通道的详细信息,请参阅命名,添加和删除数据通道

图中的数据。

图(数据)

相邻的地块显示输出数据和输入数据。

创建一个IDDATA从时间序列数据对象。时间序列数据没有输入通道。

加载数据集的输出通道,并创建一个IDDATA对象具有0.08秒的采样时间。

加载dryer2_data产量数据= IDDATA(输出,[],0.08)
数据=时域数据组具有1000个样本。采样时间:0.08秒输出单元(如果指定)Y1

图中的数据。

图(数据)

您可以使用数据用于时间序列模型估计。

创建和检查的IDDATA从复值的频域的输入输出数据对象。将对象转换到时域。

输入和输出数据时域的输入输出信号的傅里叶变换的形式有时表示。您可以在频域封装这一数据IDDATA目的。

加载数据,它由复值输入输出频域数据的üÿ,频率向量w ^和采样时间Ts

加载demofr1üÿw ^Ts

创建频域IDDATA目的data_fr

data_fr = IDDATA(Y,U,TS,'频率',W)
data_fr =响应501个频率的频域数据集。采样时间:0.1秒输出单元(如果指定)y1输入单元(如果指定)u1

检查属性。频域IDDATA对象包括频率特定的属性,如频率对于频率向量和FrequencyUnit频率的单位。相比之下,时域IDDATA对象包括特定时间属性,如T开始SamplingInstants对时域数据。

得到(data_fr)
ANS =同场的结构:域: '频率' 名称: '' OutputData:[501x1双] Y: '同OutputData' OutputName:{ 'Y1'} OutputUnit:{ ''} InputData:[501x1双] U: '同InputData' InputName:{ 'U1'} InputUnit:{ ''}期间:Inf文件采样间: 'ZOH' TS:0.1000 FrequencyUnit: '弧度/ TIMEUNIT' 频率:[501x1双] TIMEUNIT: '秒' ExperimentName: 'EXP1' 注:{}的UserData:[]

分配的频率属性的内容到可变F

F = data_fr.Frequency;

获取数据的频率单位。酒店TIMEUNIT设定的采样时间的单位。

frequ = data_fr.FrequencyUnit
frequ = '弧度/ TIMEUNIT'
timeu = data_fr.TimeUnit
timeu =“秒”

兑换data_fr回时域,通过使用逆傅立叶变换函数传输线

data_t = IFFT(data_fr)
data_t =时域数据组具有1000个样本。采样时间:0.1秒输出单元(如果指定的话)Y1输入单元(如果指定的话)U1
得到(data_t)
ANS =同场的结构:域: '时间' 姓名: '' OutputData:1000x1双] Y: '同OutputData' OutputName:{ 'Y1'} OutputUnit:{ ''} InputData:1000x1双] U: '同InputData' InputName:{ 'U1'} InputUnit:{ ''}期间:Inf文件采样间: 'ZOH' TS:0.1000 T开始:[] SamplingInstants:[] TIMEUNIT: '秒' ExperimentName: 'EXP1' 注:{}的UserData:[]

的视图属性IDDATA目的。无论是在和对象创建后修改的属性。

加载输入和输出数据。

加载dryer2_data输入产量

创建一个IDDATA目的。

数据= IDDATA(输出,输入,0.08)
数据=时域数据组具有1000个样本。采样时间:0.08秒输出单元(如果指定的话)Y1输入单元(如果指定的话)U1

查看的所有属性IDDATA目的。

得到(数据)
ANS =同场的结构:域: '时间' 姓名: '' OutputData:1000x1双] Y: '同OutputData' OutputName:{ 'Y1'} OutputUnit:{ ''} InputData:1000x1双] U: '同InputData' InputName:{ 'U1'} InputUnit:{ ''}期间:Inf文件采样间: 'ZOH' TS:0.0800 T开始:[] SamplingInstants:[1000x0双] TIMEUNIT: '秒' ExperimentName: 'EXP1' 注:{}的UserData:[]

当你创建一个可以指定属性IDDATA对象使用名称-值对参数。创建一个IDDATA来自同一数据输入对象,但是从它的默认设置来改变试验名称Dryer2

数据= IDDATA(输出,输入,0.08,'ExperimentName''Dryer2'
数据=实验Dryer2.Time域数据组具有1000个样本。采样时间:0.08秒输出单元(如果指定的话)Y1输入单元(如果指定的话)U1

要更改属性值的现有IDDATA对象,使用点符号。更改采样时间属性Ts0.05秒。

data.Ts = 0.05
数据=实验Dryer2.Time域数据组具有1000个样本。采样时间:0.05秒输出单元(如果指定的话)Y1输入单元(如果指定的话)U1

属性名称不区分大小写。此外,如果前几个字母唯一识别的财产,你不需要键入整个属性名称。

data.exp =“Dryer2 2015年1月”
数据=实验Dryer2一月2015.Time域数据组具有1000个样本。采样时间:0.05秒输出单元(如果指定的话)Y1输入单元(如果指定的话)U1

您可以使用data.y作为一个速记data.OutputData访问的输出值,或使用data.u作为一个速记data.InputData来访问输入值。

y_data = data.y;u_data = data.u;

R2006a前推出