主要内容

比较

比较确定了模型输出和测量输出

描述

模拟和测量输出

比较(数据,sys)一个动态系统模型的模拟响应sys或数组的动态系统模型,并添加在绘制每个模型的响应中包含输入/输出测量数据数据数据可以是一个时间表,逗号分隔输入/输出矩阵对,还是一个数据对象,例如一个iddata对象或一个idfrd对象。

情节也显示了归一化均方根(NRMSE)测量的模拟响应之间的合适的美好和输出测量数据。

使用这个函数当你想验证一个模型或者你什么时候想评估一组候选模型识别相同的测量数据。

时间表和数据对象,比较匹配的输入/输出通道的通道名称sys并忽略nonmatching渠道。

比较(数据,LineSpec)还指定了线类型、标记符号和颜色为模型反应。

例子

比较(数据、sys1 sysN……)比较多个动态系统的反应在同一坐标轴。比较自动选择规范。

例子

比较(数据,LineSpec1 sys1…, sysN LineSpecN)比较多个系统的反应在同一轴使用线类型,指定标记符号和颜色为每个系统。

预测模型的输出

例子

比较(___,kstep)预测的反应sys规定,使用预测地平线kstep。预测使用输出测量以及输入测量项目未来的响应。kstep代表时间样本的数量计算之间的每个输出测量和计算的结果预测的反应。

有关预测的更多信息,请参阅模拟和预测识别模型输出。您可以使用该语法与任何以前的输入/输出的组合。

指定附加选项

例子

比较(___,选择)配置比较使用一组选项。选项包括初始条件处理,数据偏移量和数据选择。

返回结果

例子

(ymod,适合,集成电路)=比较(___)返回模型的响应ymod,拟合优度值适合和初始条件集成电路。这个语法不生成一个情节,所以任何线规格将被忽略。

例子

全部折叠

确定一个线性模型和可视化模拟模型响应从它生成的数据。

负载的输入/输出测量tt1和确定一个三阶状态空间模型sys

负载sdata1tt1;sys = ss (tt1 3);

sys是一个连续时间状态标识(中的难点)模型。

使用比较模拟sys它与tt1中的数据响应和阴谋。

图比较(tt1 sys)

图包含一个坐标轴对象。ylabel y坐标轴对象包含2线类型的对象。这些对象代表验证数据(y), sys: 70.56%。

情节说明了模型之间的差异反应和原始数据。传说中所示的比例是NRMSE健身价值。它代表距离预测模型输出数据。

改变显示选项的情节,右键单击访问上下文菜单的阴谋。例如:

  • 绘制预测输出和测量输出之间的误差,选择错误的阴谋

  • 查看的置信区域模拟反应,选择特征- >ConfidenceRegion

  • 指定数量的标准差情节,双击情节和打开属性编辑器对话框。在选项选项卡中,指定的标准偏差置信区域的识别模型。默认值是1标准差。

确定一个线性模型和可视化的预测模型响应的数据计算。

确定一个三阶使用输入/输出状态空间模型的测量umat1ymat1

负载sdata1umat1ymat1Tssys = ss (umat1 ymat1 3,“t”、Ts);

sys是一个离散时间状态标识(中的难点)模型。

现在使用比较绘制预测的反应。预测与模拟的不同之处在于,它使用两个测量计算系统响应时输入和测量输出。预测地平线定义未来的预测多远,相对于您的当前测量输出点。对于这个示例,将预测地平线kstep十步,和使用比较绘制预测响应对原始测量数据。

kstep = 10;比较(umat1 ymat1 sys, kstep)

图包含一个坐标轴对象。坐标轴对象与ylabel y1包含2线类型的对象。这些对象代表验证数据(日元),sys: 70.8%。

在这个图中,每个sys数据点代表了预测输出与输出测量数据采取了至少10个步骤。例如,指着t = 15秒是基于之前输出测量在或t = 5 s。这个t = 15秒计算sys输入测量数据点也使用t = 15秒,就像一个模拟。

情节说明了模型之间的差异反应和原始数据。传说中所示的比例是NRMSE健身价值。它代表的紧密程度预测模型输出匹配的数据。

改变显示和模拟选项的情节,右键单击访问上下文菜单的阴谋。例如,绘制预测输出和测量输出之间的误差,选择错误的阴谋从上下文菜单中。改变预测地平线的价值,或模拟和预测之间的切换,选择预测地平线从上下文菜单中。

确定几个模型类型相同的数据,并比较结果,看看哪个最适合数据。

加载数据,其中包含iddata对象z1与单独的输入和输出。

负载iddata1;

z1后,确定模型的线性形式:

  • ARMAX (idpoly订单)2、3、1,死时间为0

  • 状态空间(中的难点)和三个州

  • 传递函数(idtf)和三个波兰人

sys_armax = armax (z1 (2 3 1 0));sys_ss = ss (z1, 3);sys_tf =特遣部队(z1, 3);

使用比较、情节三个模型的模拟反应z1

比较(z1、sys_armax sys_ss sys_tf)

图包含一个坐标轴对象。坐标轴对象与ylabel y1包含4线类型的对象。这些对象代表验证数据(日元),sys \ _armax: 70.27%, sys \ _ss: 70.56%, sys \ _tf: 70.96%。

对于这组数据,连同所有模型的默认设置,传输函数形式有最好的NRMSE健康。然而,适合所有模型都在1%左右。

你可以交互式地控制显示哪些模型响应通过右键单击情节和悬停的阴谋系统

比较多个不同类型的估计模型的输出来测量频域数据。

对于这个示例,估计一个流程模型和一个输出误差多项式从频率响应数据。

负载demofr%频率响应数据zfr可以= AMP。* exp (1 * PHA *π/ 180);t = 0.1;data = idfrd (zfr可以W, Ts);sys1 =过程(数据,“P2UDZ”);sys2 = oe(数据,(2 2 1));

sys1,一个idproc模型,是一个连续时间的过程模型。sys2,一个idpoly模型,是一个离散输出误差模型。

比较的频率响应数据估计模型。

比较(数据、sys1‘g’sys2,“r”);

图包含2轴对象。坐标轴对象1的标题:u1, ylabel: y1包含3线类型的对象。这些对象表示数据,sys1: 88.04%, sys2: 88.04%。轴与ylabel对象2:y1包含3线类型的对象。这些对象表示数据,sys1: 88.04%, sys2: 88.04%。

的两个模型有NRMSE适应值几乎相等的数据计算。

修改默认行为当你比较测量数据估计模型。

估计测量数据的传递函数。

负载sdata1tt1;sys =特遣部队(tt1 3);

sys是一个连续时间确定传递函数(idtf)模型。

假设你想让你的初始条件为零。的默认值比较从数据来估计初始条件。

创建一个选项设置为指定初始条件处理。使用零初始条件,指定“z”“InitialCondition”选择。

选择= compareOptions (“InitialCondition”,“z”);

比较估计传递函数模型输出测量数据使用比较选项集。

比较(sys, tt1选择)

图包含一个坐标轴对象。ylabel y坐标轴对象包含2线类型的对象。这些对象代表验证数据(y), sys: 70.66%。

加载数据。

负载iddata2z2

把数据分割成评估和验证集。

z2e = z2 (1:200);z2v = z2 (201:400);idplot (z2e z2v)

图包含2轴对象。坐标轴对象1标题y1包含2线类型的对象。这些对象代表z2e z2v。坐标轴对象2标题u1包含2线类型的对象。这些对象代表z2e z2v。

估计状态空间模型和传递函数模型使用估计数据。

sys_ss = ss (z2e 2);sys_tf =特遣部队(z2e 2 1);

使用比较获得初始条件ic_sssys_ss

[y_ss, fit_ss ic_ss] =比较(z2e sys_ss);ic_ss
ic_ss =2×1-0.0018 - 0.0016

ic_ss是一个数值向量的初始状态。

使用比较获得初始条件ic_tfsys_tf

[y_tf, fit_tf ic_tf] =比较(z2e sys_tf);ic_tf
ic_tf = initialCondition属性:答:[2 x2双]X0: [2 x1双]C: [-1.6093 - 5.1442] Ts: 0

ic_tf是一个initialCondition对象包含,在状态空间形式,一个自由响应的模型sys_tf初始条件。一个C包含自由反应信息X0包含初始状态。

现在获得初始条件对两种模型使用验证数据。

[y_sstf, fit_sstf ic_sstf] =比较(z2v, sys_ss sys_tf);ic_sstf
ic_sstf =2×1单元阵列{2 x1双}{1 x1 initialCondition}

ic_sstf是一个单元阵列,其中包含一个初始状态向量sys_ss和一个initialCondition对象sys_tf

比较可以提供初始条件与任何现有的模型测量数据集。

输入参数

全部折叠

验证数据,指定为一个时间表,逗号分隔矩阵对,单元阵列或数据对象。的规范数据依赖于数据类型。

时间表

输出、味噌和MIMO系统,指定数据作为一个时间表定期使用间隔时间向量。为时间表数据类型,数据包含变量代表输入和输出通道。

数据必须有相同的变量名是每个模型的原始数据sys据估计。模型属性包括输入和输出变量的名称。因此不需要显式地指定使用哪个频道的时间表。

对于multiexperiment数据,指定数据1,单元阵列,是实验的数量。所有的样品时间实验必须匹配。

矩阵

为输出、味噌和MIMO系统,指定数据作为一对矩阵的维度Ns——- - - - - -ν对输入矩阵和Ns——- - - - - -纽约为输出矩阵。软件使用样本时期Ts的属性sys

对于multiexperiment数据,指定数据作为一对1×-细胞阵列,是实验的数量。所有的样品时间实验必须匹配的样品时间sys

数据对象

指定数据作为iddata,idfrd,或的朋友模型对象。

如果sys是:

  • 参数模型等中的难点,然后数据可以是一个iddata,idfrd,或的朋友模型对象。

  • 频率特性数据模型(一个idfrd,或的朋友模型对象),然后数据也必须一个频率特性的数据模型。

  • 一个iddata对象,然后数据必须是一个iddata与匹配的域对象,实验和时间或频率向量的数量。

有关示例,请参见:

关于处理估计数据类型的更多信息,见数据域和数据类型在系统辨识工具箱

识别模型,指定为一个动态系统模型,一个iddata数组对象,或一个模型。

当时间或频率的单位数据不匹配的单位sys,比较重新调节sys匹配的单位数据

预测地平线,指定为以下之一:

  • ——比较模拟的反应sys数据

  • 积极的有限整数——比较预测的反应sys数据,每个预测响应点不仅是基于测量输入数据的计算,而且在测量输出数据kstep时间点。

比较忽略了kstepsys是一个iddata对象,一个朋友的模型,或者没有噪声的动态系统组件。比较也忽视了kstep当使用频率响应验证数据。

如果您指定kstep大于数据样本的数量,比较kstep并提供一条警告消息。

模拟和预测的更多信息,请参阅模拟和预测识别模型输出

例如,看到的比较预测的反应确定时域模型测量数据

线的风格,标志和颜色的线和标志,指定为一个特征向量,例如“b”“b +:”

关于配置的更多信息LineSpec,请参阅Linespec输入参数的情节。例如,看到的比较多个估计模型来测量频域数据

比较选项,指定为一个选项让你创建使用compareOptions

可用的选项包括:

  • 处理初始条件

  • 样本范围计算合适的数字

  • 数据偏移量

  • 输出权重

有关示例,请参见:

输出参数

全部折叠

模型反应,作为一个返回时间表一个矩阵,iddata对象,一个idfrd对象,一个细胞数组或数组。输出类型取决于你提供的模型和数据,如下:

  • 一个模型和实验数据集,ymod是一个时间表一个矩阵,iddata对象,或idfrd对象。

  • multimodel比较,ymod是一个与一个时间表,单元阵列矩阵,iddata对象,或idfrd为每个输入模型对象条目。

  • 对于multiexperiment数据,ymod是一个单元阵列,每个实验的一个条目。

  • 使用multiexperiment multimodel比较数据,ymod是一个Nsys——- - - - - -N经验值单元阵列,Nsys的数量模型,N经验值是实验的数量。

  • 如果sys数组是一个模型,ymod是一个数组和一个元素对应于每个模型sys和实验数据。有关阵列模型的更多信息,请参阅堆栈

如果kstep没有指定或吗,然后比较返回模拟反应ymod

否则,比较收益预测的反应。测量输出值数据到时间tn- - - - - -kstep用于预测的输出sys在时间tn。模拟和预测的更多信息,请参阅模拟和预测识别模型输出

比较反应初始条件计算需要一个规范处理。默认情况下,比较估计最大化的初始条件适合的数据。看到compareOptions更多的信息比较确定要使用的初始条件。

NRMSE健身价值的指标如何模拟或预测模型的响应与测量数据匹配,返回为一个向量,矩阵,或一个细胞数组。输出取决于你提供的模型和数据,如下:

  • 如果数据是一个iddata对象,适合是一个向量的长度Ny,在那里Ny是输出的数量吗

  • 如果数据是一个朋友的模型,适合是一个Ny——- - - - - -Nu矩阵,Nu输入的数量吗数据

  • 一个模型和实验数据集,适合是一个向量或矩阵

  • multimodel比较,适合与一个条目是一个单元阵列每个输入模型

  • 对于multiexperiment数据,适合是一个与一个条目为每个单元阵列实验吗

  • 使用multiexperiment multimodel比较数据,适合是一个Nsys——- - - - - -N经验值单元阵列,Nsys的数量模型,N经验值是实验的数量吗

  • 如果sys数组是一个模型,适合是一个数组和一个元素对应于每个模型sys和实验数据

比较计算适合(百分比)使用:

适合 = One hundred. ( 1 | | y y ^ | | | | y 的意思是 ( y ) | | ) ,

在哪里y验证数据输出和吗 y ^ 的输出是sys

朋友模型-比较计算适合通过比较复杂的频率响应。适合的大小和相位曲线所示比较情节不计算比较分开。

初始条件用于计算系统响应,返回一个空数组,一个向量,一个initialCondition对象,或一个单元阵列。

一个模型和实验数据,输出的形式取决于模型类型。

  • 为状态空间模型,集成电路是一个数值向量包含初始状态。

  • 为传递函数和多项式模型,集成电路是一个initialCondition对象。一个initialCondition代表,在状态空间形式,的自由响应模型(一个C矩阵)估计初始状态(x0)。

  • sys是一个的朋友iddata对象,集成电路是一个空数组[]不能使用,因为初始条件与这些对象。

对多个模型和/或试验,输出的形式如下:

  • multimodel比较,集成电路是一个单元或对象数组,用一个向量,矩阵,还是initialCondition为每个输入模型条目。

  • 对于multiexperiment数据,集成电路是一个单元或对象数组,每个实验的一个条目。

  • 使用multiexperiment multimodel比较数据,集成电路是一个Nsys——- - - - - -N经验值细胞或对象数组,Nsys的模型和数量吗N经验值是实验的数量。

  • 如果sys数组是一个模型,集成电路是一个数组和一个元素对应于每个模型sys和实验数据

默认情况下,比较使用findstates初始状态的估计集成电路。要改变这种行为,设置“InitialCondition”选项选择(见compareOptions)。如果你有输入/输出历史立即先于你的起点,你可以设置“InitialCondition”历史数据。比较然后使用data2state计算历史数据的最终状态,因此一开始状态的模拟。其它选择包括设置初始条件为零,或特定的值,你确定之前。发现初始条件的更多信息,请参阅估计模拟识别模型的初始条件

如果您正在使用一个估计模型,并不显式地使用状态,比较首先将模型转换为整数阶,然后将数据映射到初始状态。比较初始状态向量,然后包一个C状态矩阵为initialCondition对象。对使用的一个例子比较有了这样一个模型,明白了获得初始条件

提示

  • 你获得NRMSE适应结果比较报告的适应值模型可能不精确匹配识别。这些差异通常出现在初始条件不匹配,在预测地平线违约的差异识别和验证。一般的差异小,应该不会影响你的模型选择和验证工作流。有关更多信息,请参见模式识别和解决适应值差异比较命令

  • 比较匹配的输入/输出通道数据sys基于通道名称。因此,它是可能的评估模型,不使用所有可用的输入通道数据。这种灵活性使您可以比较每个确定的多个模型独立于不同的输入/输出通道。

  • 比较图允许您改变关键参数。例如,您可以交互式地控制:

    • 你是否生成一个模拟或预测的反应

    • 预测地平线价值

    • 初始条件处理

    • 实验数据视图吗

    • 该系统模型视图吗

    访问控制,右键单击弹出选项菜单。

版本历史

介绍了R2006a

全部展开