主要内容

比较

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

描述

绘制模拟和测量输出图

比较(数据sys模拟动态系统模型的响应,并将该响应叠加到包含的输入/输出测量数据上数据.该图还显示了模拟响应和测量数据之间的拟合优度的归一化均方根(NRMSE)度量。数据可以是时间表、输入/输出矩阵对或数据对象,例如iddata对象或一个idfrd对象。对于时间表和数据对象,比较根据通道名称匹配输入/输出通道,忽略不匹配的通道。当您想要评估从相同的度量数据中确定的一组候选模型时,或者当您想要验证您所选择的模型时,使用此函数。

比较(数据LineSpec还指定模型响应的行类型、标记符号和颜色。

例子

比较(数据、sys1 sysN……)比较了在同一轴上多个动态系统的响应。比较自动选择线路规格。

例子

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

预测模型的输出

例子

比较(___kstep预测的反应sys,使用由指定的预测水平kstep.预测使用输出测量和输入测量来预测未来的响应。kstep表示每个输出测量的时间点与结果预测响应的时间点之间的时间样本数。有关预测的更多信息,请参见模拟和预测已识别的模型输出.您可以将此语法用于前面的任何输入输出组合。

指定附加选项

例子

比较(___选择使用选项集配置比较。选项包括初始条件处理、数据偏移和数据选择。

返回结果

例子

ymod适合集成电路) =比较(___返回模型响应ymod,拟合值的优度适合和初始条件集成电路.此语法不生成图形,因此将忽略任何行规范。

例子

全部折叠

识别一个线性模型,并用生成模型的数据可视化模拟模型响应。

负载输入/输出测量z1,并确定了一个三阶状态空间模型sys

负载iddata1z1;sys = ss (z1, 3);

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

使用比较模拟sys响应并将其与数据绘制在一起z1

图比较(z1, sys)

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示验证数据(y1), sys: 70.56%。

图中显示了模型响应与原始数据之间的差异。图例中显示的百分比是NRMSE适合度值。它表示预测模型输出与数据的接近程度。

要更改图中的显示选项,请右键单击图以访问上下文菜单。例如:

  • 若要绘制预测输出与测量输出之间的误差,请选择错误的阴谋

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

  • 要指定绘图的标准偏差数,请双击绘图并打开“属性编辑器”对话框。在选项选项卡中指定标准差的个数已识别模型的置信域.默认值为1标准差。

确定一个线性模型,并将预测的模型响应与从中计算的数据可视化。

中的输入/输出度量值确定一个三阶状态空间模型z1

负载iddata1z1;sys = ss (z1, 3);

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

现在使用比较绘制预测反应图。预测与模拟的不同之处在于,它在计算系统响应时同时使用实测输入和实测输出。预测范围定义了预测未来的距离,相对于您当前测量的输出点。对于本例,设置预测范围kstep到10步,并用比较根据原始测量数据绘制预测响应图。

kstep = 10;比较(z1, sys kstep)

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示验证数据(y1), sys: 70.53%。

在这个图中,每个sys数据点表示与至少10步之前获得的输出度量数据相关联的预测输出。例如,t = 15s处的点基于t = 5s时或之前的输出测量。t = 15s的计算sys数据点也使用输入测量直到t = 15s,就像模拟一样。

图中显示了模型响应与原始数据之间的差异。图例中显示的百分比是NRMSE适合度值。它表示预测模型输出与数据的匹配程度。

要更改图中的显示和模拟选项,请右键单击图以访问上下文菜单。例如,要绘制预测输出和测量输出之间的误差,请选择错误的阴谋从上下文菜单。若要更改预测水平值,或在模拟和预测之间切换,请选择预测地平线从上下文菜单。

识别相同数据的几种模型类型,并比较结果,以确定哪一种最适合数据。

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

负载iddata1

z1,为下列每一个线性形式确定一个模型:

  • ARMAX (idpoly),死时间为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)

图中包含一个axes对象。axis对象包含4个line类型的对象。这些对象代表验证数据(y1), 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(data,[2 2 1]);

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

将估计模型的频率响应与数据进行比较。

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

图中包含2个轴对象。u1包含3个类型为line的对象。这些对象表示Data, sys1: 88.03%, sys2: 88.04%。Axes对象2包含3个line类型的对象。这些对象表示Data, sys1: 88.03%, sys2: 88.04%。

这两个模型的NRMSE拟合值相对于计算它们的数据几乎相等。

当您将估计模型与测量数据进行比较时,修改默认行为。

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

负载iddata1z1;sys =特遣部队(z1, 3);

sys为连续时间识别传递函数(idtf)模型。

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

创建一个选项集以指定初始条件处理。若要使用零作为初始条件,请指定“z”“InitialCondition”选择。

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

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

比较(z1, sys,选择)

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示验证数据(y1), sys: 70.66%。

加载数据。

负载iddata2z2

将数据分成估计集和验证集。

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

图中包含2个轴对象。标题为y1的axis对象1包含两个类型为line的对象。这些对象表示z2e, z2v。标题为u1的Axes对象2包含两个类型为line的对象。这些对象表示z2e, z2v。

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

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

使用比较得到…的初始条件sys_ss

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

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

[y_tf, fit_tf ic_tf] =比较(z2e sys_tf);ic_tf
ic_tf = initialCondition属性:A: [2x2 double] X0: [2x1 double] 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单元阵列{2x1 double} {1x1 initialCondition}

ic_sstf是否包含的初始状态向量的单元格数组sys_ss和一个initialCondition对象sys_tf

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

输入参数

全部折叠

验证数据,指定为时间表、一对输入/输出矩阵、一个单元格数组或一个数据对象。的规范数据取决于数据类型。

时间表

对于SISO、MISO和MIMO系统,将数据指定为Ns————(ν+纽约)的时间表,Ns为每个变量的数据样本数,ν是输入的个数,和纽约是输出的数量。数据必须与每个模型的原始数据具有相同的变量名sys据估计。模型属性包括输入和输出变量的名称。因此,您不需要显式地指定在时间表中使用哪些通道。

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

矩阵

对于SISO、MISO和MIMO系统,将数据指定为一对具有维度的矩阵Ns——- - - - - -ν对于输入矩阵和Ns——- - - - - -纽约对于输出矩阵。该软件使用样本周期Ts的属性sys

对于多实验数据,指定数据作为一对1乘-细胞阵列,是实验的次数。所有实验的采样时间必须与的采样时间相匹配sys

数据对象

指定数据为iddataidfrd,或的朋友模型对象。

如果sys是:

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

  • 频率响应数据模型(或idfrd,或的朋友模型对象),然后数据还必须是一个频率响应数据模型。

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

有关示例,请参见:

有关使用估计数据类型的更多信息,请参见“系统标识工具箱”中的数据类型

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

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

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

  • -比较模拟响应sys数据

  • 正有限整数-比较的预测响应sys数据,其中每个预测响应点不仅基于该时间点之前的输入数据,而且基于该时间点之前的输出数据kstep时间点。

比较忽略了kstepsys是一个iddata对象、FRD模型或无噪声成分的动态系统。比较也忽视了kstep当使用频率响应验证数据时。

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

有关模拟和预测的更多信息,请参见模拟和预测已识别的模型输出

示例请参见将识别的时域模型的预测响应与实测数据进行比较

线和标记的线样式、标记和颜色,指定为字符向量,例如“b”“b +:”

有关配置的详细信息LineSpec,请参阅Linespec输入参数的情节.示例请参见将多个估计模型与频域实测数据进行比较

比较选项,指定为使用创建的选项集compareOptions

可用的选项包括:

  • 初始条件的处理

  • 计算适合数的样本范围

  • 数据偏移量

  • 输出权重

有关示例,请参见:

输出参数

全部折叠

模型响应,返回为时间表,一个矩阵,一个iddata对象,一个idfrd对象、单元格数组或数组。输出类型取决于您提供的模型和数据,如下所示:

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

  • multimodel比较,ymod是一个单元格数组,只有一个时间表,矩阵,iddata对象,或idfrd每个输入模型的对象条目。

  • 对于multiexperiment数据,ymod是一个单元格数组,每个实验都有一个条目。

  • 对于使用多个实验数据的多模型比较,ymod是一个Nsys——- - - - - -N经验值单元阵列,Nsys是型号的多少,和N经验值是实验的次数。

  • 如果sys是一个模型数组,ymod数组中的每个模型都对应一个元素吗sys和实验数据.有关模型数组的更多信息,请参见堆栈

如果kstep是不指定的还是,然后比较返回模拟的响应ymod

否则,比较返回预测的响应。的测量输出值数据到时间tn-kstep是用来预测产量的sys在时间tn.有关模拟和预测的更多信息,请参见模拟和预测已识别的模型输出

比较响应计算需要一个初始条件处理规范。默认情况下,比较估计初始条件,使拟合数据最大化。看到compareOptions了解更多关于如何比较确定要使用的初始条件。

NRMSE适应度值指示模拟或预测模型响应与测量数据的匹配程度,作为向量、矩阵或单元格数组返回。输出取决于您提供的模型和数据,如下所示:

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

  • 如果数据是FRD模型,适合是一个Ny——- - - - - -Nu矩阵,Nu输入的数量是多少数据

  • 对于单个模型和单个实验数据集,适合是向量还是矩阵

  • multimodel比较,适合单元格数组是否每个输入模型都有一个条目

  • 对于multiexperiment数据,适合每个实验都有一个单元格数组吗

  • 对于使用多个实验数据的多模型比较,适合是一个Nsys——- - - - - -N经验值单元阵列,Nsys是型号的多少,和N经验值是实验的次数吗

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

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

适合 One hundred. 1 | | y y | | | | y 的意思是 y | |

在哪里y是否输出验证数据 y 的输出sys

对于FRD模型-比较计算适合通过比较复频响。幅值和相位曲线的拟合如图所示比较图没有计算比较分开。

用于计算系统响应的初始条件,返回为空数组、向量和initialCondition对象或单元格数组。

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

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

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

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

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

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

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

  • 对于使用多个实验数据的多模型比较,集成电路是一个Nsys——- - - - - -N经验值单元格或对象数组,其中Nsys是型号的数量和N经验值是实验的次数。

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

默认情况下,比较使用findstates来估计初始状态集成电路.要更改此行为,请设置“InitialCondition”选项选择(见compareOptions).如果您的输入/输出历史记录正好在您的起点之前,您可以设置“InitialCondition”历史数据。比较然后使用data2state计算历史数据的结束状态,从而计算模拟的开始状态。其他选择包括将初始条件设置为零,或设置为您先前确定的特定值。有关寻找初始条件的更多信息,请参见估计模拟已识别模型的初始条件

如果您使用的评估模型没有显式地使用状态,比较首先将模型转换为它的状态空间表示,然后将数据映射到初始状态。比较然后将初始状态向量和一个而且C状态空间矩阵变成initialCondition对象。举个例子比较有了这样的模型,看获得初始条件

提示

  • 所获得的NRMSE拟合结果比较可能与模型识别中报告的拟合值不精确匹配。这些差异通常来自初始条件的不匹配,以及用于识别和验证的预测水平默认值的差异。差异通常很小,并且不应该影响您的模型选择和验证工作流。有关更多信息,请参见解决模型识别与比较命令之间的拟合值差异

  • 比较中的输入/输出通道匹配数据而且sys根据通道名称。因此,可以评估不使用可用的所有输入通道的模型数据.这种灵活性允许您比较从不同的输入/输出通道集独立识别的多个模型。

  • 比较Plot允许您更改关键参数。例如,你可以交互控制:

    • 无论您生成的是模拟响应还是预测响应

    • 预测地平线价值

    • 初始条件处理

    • 你查看哪些实验数据

    • 您查看哪些系统模型

    要访问控件,右键单击该图形以弹出选项菜单。

版本历史

介绍了R2006a

Baidu
map