在命令行中创建多试验数据
为什么要创建多试验数据集?
您可以创建包含多个试验的 iddata 对象。针对具有多个试验结果的 iddata 对象进行模型辨识,将得到一个平均 模型。
在 System Identification Toolbox™ 产品中,试验 既可以指在不同会话期间收集的数据,也可以指在单次会话期间收集的数据的一部分。在后一种情况下,您可以通过将单次会话的数据拆分为多个片段来剔除无效数据,并将有效数据部分合并,从而创建一个多试验的 iddata 对象。
注意
idfrd 对象不支持与多试验数据相对应的 iddata。
数据集限制
您只能合并同时具备以下所有特征的数据集:
输入通道数与输出通道数相同。
输入和输出通道名称相同。
同一数据域(即时域数据或频域数据)。
直接输入多试验数据
要构建一个包含 N 数据集的 iddata 对象,可以使用以下语法:
data = iddata(y,u,Ts)
其中 y、u 和 Ts 是 1×N 的元胞数组,包含来自不同试验的数据。同样地,当您为 iddata 对象指定 Tstart、Period、InterSample 和 SamplingInstants 属性时,必须将这些属性的值赋值为 1 行 N 列的元胞数组。
合并数据集
本示例演示了如何通过合并 iddata 对象来创建一个多试验 iddata 对象,其中每个对象要么包含单个试验的数据,要么本身就是一个多试验数据集。
加载 iddata 对象 z1 和 z3。
load iddata1 load iddata3
将试验 z1 和 z3 合并到 iddata 对象 z 中。
z = merge(z1,z3)
z =
Time domain data set containing 2 experiments.
Experiment Samples Sample Time
Exp1 300 0.1
Exp2 300 1
Outputs Unit (if specified)
y1
Inputs Unit (if specified)
u1
Data Properties
这些命令会创建一个名为 iddata 的对象,其中包含两个试验,这两个试验分别被赋予默认名称 'Exp1' 和 'Exp2'。
向现有的 iddata 对象添加试验
作为合并数据集的另一种方法,您可以将试验逐个添加到 iddata 对象中。
例如,要将 iddata 对象中的 dat4 试验添加到 data 中,请使用以下语法:
data(:,:,:,'Run4') = dat4
该语法将试验名称 'Run4' 显式地分配给新试验。iddata 对象的 Experiment 属性用于存储试验名称。
有关在多试验数据集中进行子引用试验的更多信息,请参阅Subreferencing Experiments。