主要内容

本页采用了机器翻译。点击此处可查看英文原文。

resid

计算并测试残差

说明

resid(Data,sys) 计算已识别模型 sys 的 1 步前预测误差(残差),并根据 Data 中的数据,以以下任一形式绘制残差-输入动态:

  • 对于时域数据,resid 绘制残差的自相关图以及残差与输入信号的互相关图。相关系数是在滞后值 -25 至 25 的区间内生成的。要指定不同的最大延迟值,请使用 residOptions。99% 置信边界标记的统计学上不显著相关性以阴影区域形式显示在 X 轴周围。

  • 对于频域数据,resid 绘制从输入信号到残差的频率响应的伯德图。99% 置信边界标记统计学上无显著反应的区域,以围绕 X 轴的区域形式呈现。

要更改显示选项,请右键点击绘图以访问上下文菜单。有关菜单的更多详细信息,请参阅提示

示例

resid(Data,sys,Linespec) 设置线型、标记符号和颜色。

示例

resid(Data,sys1,...,sysn) 计算并绘制多个已识别模型 sys1,...,sysn 的残差。

示例

resid(Data,sys1,Linespec1,...,sysn,Linespecn) 为每个系统设置线型、标记符号和颜色。

示例

resid(___,Options) 指定额外的残差计算选项。将 Options 与上述任何语法结合使用。

示例

resid(___,Type) 指定绘图类型。将 Type 与上述任何语法结合使用。

示例

[E,R] = resid(Data,sys) 返回计算出的残差 E 及残差相关系数 R。未生成任何绘图。

示例

示例

全部折叠

加载时域数据。

load iddata1
data = z1;

估计一个 ARX 模型。

sys = arx(data,[1 1 0]);

绘制残差的自相关函数以及残差与输入信号之间的互相关函数。

resid(data,sys)

Figure contains 2 axes objects. Axes object 1 with title AutoCorr, ylabel e@y1 contains 2 objects of type line. One or more of the lines displays its values using only markers This object represents sys. Axes object 2 with title XCorr (u1) contains 2 objects of type line. One or more of the lines displays its values using only markers This object represents sys.

相关性计算持续至默认最大滞后值 25。99% 置信边界标记的统计学上不显著相关性以阴影区域形式显示在 X 轴周围。

将数据转换为频域。

data2 = fft(data);

计算已识别模型 sys 与频域数据的残差。用红色十字标记残差响应。

resid(data2,sys,'rx')

Figure contains 2 axes objects. Axes object 1 with title From: u1 To: e@y1, ylabel Magnitude (dB) contains a line object which displays its values using only markers. This object represents sys. Axes object 2 with ylabel Phase (deg) contains a line object which displays its values using only markers. This object represents sys.

对于频域数据,resid 绘制伯德图,展示从输入到残差的频率响应。

加载时域数据。

load iddata1

估计一个 ARX 模型。

sys1 = arx(z1,[1 1 0]);

估计传递函数模型。

sys2 = tfest(z1,2);

绘制残差的相关性图。

resid(z1,sys1,'b',sys2,'r')

Figure contains 2 axes objects. Axes object 1 with title AutoCorr, ylabel e@y1 contains 4 objects of type line. One or more of the lines displays its values using only markers These objects represent sys1, sys2. Axes object 2 with title XCorr (u1) contains 4 objects of type line. One or more of the lines displays its values using only markers These objects represent sys1, sys2.

sys2 残差与输入信号之间的互相关系数在所有滞后时段上均处于 99% 置信边界内。

加载时域数据。

load iddata1

估计一个 ARX 模型。

sys = arx(z1,[1 1 0]);

指定残差相关性计算的最大滞后值。

opt = residOptions('MaxLag',35);

绘制从输入到残差的冲激响应曲线。

resid(z1,sys,opt,'ir')

Figure contains an axes object. The axes object with title From: u1 To: e@y1 contains 2 objects of type line. One or more of the lines displays its values using only markers This object represents sys.

加载时域数据。

load iddata7

该数据集为双输入单输出数据集。

估计一个 ARX 模型。

sys = tfest(z7,2);

计算残差及其与输入变量的自相关和互相关。

[E,R] = resid(z7,sys);

R 是一个 26×3×3 的相关矩阵。例如,

  • R(:,1,1) 是残差至滞后 25 的自相关系数。

  • R(:,1,2) 是残差与第一个输入信号的互相关,持续至滞后 25。

E 是一个 iddata 对象,其输出数据为残差,输入数据为验证数据 (z7)。您可以使用 E 来识别错误模型并分析错误动态。

绘制误差图。

plot(E)

Figure contains 3 axes objects. Axes object 1 with title e@y1 contains an object of type line. This object represents E. Axes object 2 with title u1 contains an object of type line. This object represents E. Axes object 3 with title u2 contains an object of type line. This object represents E.

估计输入与残差之间的冲激响应。绘制包含 3 个标准差置信边界的曲线图。

I = impulseest(E);
showConfidence(impulseplot(I,20),3)

MATLAB figure

输入参数

全部折叠

验证输入输出数据,指定为 iddata 对象。Data 可包含多个输入输出通道。当 sys 为线性时,Data 属于时域或频域。当 sys 为非线性时,Data 属于时域。

用于计算残差的系统,指定为已识别的线性或非线性模型。

示例: idpoly

线型、标记符号和颜色,以字符向量形式指定。有关详细信息,请参阅 plot。当 Type 被指定为 'corr' 时,仅使用线型样式。

示例: 'Linespec','kx'

残差分析选项,指定为 residOptions 选项集。

图类型,指定为以下值之一:

  • 'corr' - 绘制残差的自相关函数 e 以及残差与输入信号的互相关函数 u。相关系数是在滞后值 -25 至 25 的区间内生成的。使用 residOptions 来指定不同的最大延迟值。99% 置信边界标记的统计学上无显著相关性,同样以阴影区域围绕 X 轴呈现。置信边界的计算是在假设 e 为白噪声且与 u 互不相关的前提下进行的。

    'corr' 是时域数据的默认设置。此图类型不适用于频域数据。

  • 'ir' - 绘制系统从输入到残差的脉冲响应,延迟范围上限为 25。impulseest 命令首先利用 e 作为输出数据和 u 作为输入数据来估计冲激响应模型。然后 impulseest 计算估计模型的冲激响应。99% 置信边界标记统计学上无显著反应的区域显示为阴影区域。低数值表明建模可靠。

    此图类型不适用于频域数据。

  • 'fr' - 从输入到残差的频率响应(基于高阶 FIR 模型)以波德图形式呈现。99% 置信边界标记统计学上无显著反应的区域显示为阴影区域。在感兴趣的频率范围内,较低的幅度值表明建模可靠。

    'fr' 是频域数据的默认设置。

输出参量

全部折叠

模型残差,以 iddata 对象形式返回。残差存储在 E.OutputData 中,输入存储在 E.InputData 中。使用 E 构建模型,描述从输入到残差的动态过程。如果 sys 是一个可靠的已识别模型,则该动力学效应可忽略不计。

残差的相关性,返回值为以下之一:

  • 双精度矩阵 - 用于时域数据

    R 是一个尺寸为 M+1×(ny+nu)×(ny+nu) 的矩阵。其中,MOptions 中指定的最大延迟,ny 是输出数量,nu 是输入数量。M 的默认值是 25。

    在每个滞后点 k (k = 0:M) 处,R(k,i,j) 是期望值 <Z(t,i).Z(t+k-1,j)>。其中,Z = [E.OutputData,E.InputData]

    例如,对于一个双输出、单输入模型,Z = [e1,e2,u1]。其中,e1 是第一个输出的残差,e2 是第二个输出的残差,u1 是输入。R26×3×3 矩阵,其中:

    • R(5,1,2) = <e1(t).e2(t+4)>e1e2 之间滞后 4 的互相关。

    • R(5,1,3) = <e1(t).u1(t+4)>e1u1 之间滞后 4 的互相关。

    • R(5,1,1)R(5,2,2)R(5,3,3) 分别是 e1e2u1 的滞后 4 自相关系数。

  • [] - 用于频域数据

提示

  • 右键点击图例可打开上下文菜单,其中包含以下选项:

    • Systems - 选择系统以查看残差相关性或响应图。默认情况下,所有系统都会被绘制出来。

    • Show Confidence Region - 查看 99% 置信边界标记的统计学上不显著的相关性。仅适用于相关性图。

    • Data Experiment - 仅适用于多试验数据。在不同试验的数据之间切换。

    • Characteristics - 查看数据特征。不适用于相关性图。

      • Peak Response - 查看数据的峰值响应。

      • Confidence Region - 查看 99% 置信边界标记的统计学上无显著差异的响应。

    • Show - 仅适用于频率响应曲线图。

      • Magnitude - 查看频率响应的幅度。

      • Phase - 频率响应的视相。

    • I/O Grouping - 适用于包含多个输入或输出通道的数据集。选择图上的输入和输出通道的分组。不适用于相关性图。

      • None - 在各自的轴上绘制输入-输出通道。

      • All - 将所有输入通道组合在一起,将所有输出通道组合在一起。

    • I/O Selector - 适用于包含多个输入或输出通道的数据集。选择输入和输出通道的子集进行绘制。默认情况下,将绘制所有输出通道。

    • Grid - 向图中添加网格。

    • Normalize - 归一化图中所有数据的 y 刻度。不适用于频率响应数据。

    • Full View - 返回完整视图。默认情况下,绘图会缩放至完整视图。

    • Initial Condition - 指定初始条件的处理。

      指定为下列项之一:

      • Estimate - 将初始条件视为估计参数。

      • Zero - 将所有初始条件设置为零。

      • Absorb delays and estimate - 将非零延迟吸收到模型系数中,并将初始条件视为估计参数。此选项仅适用于离散时间模型。

    • Properties - 打开 Property Editor 对话框来自定义绘图属性。

参考

[1] Ljung, L. System Identification: Theory for the User. Upper Saddle River, NJ: Prentice-Hall PTR, 1999, Section 16.6.

版本历史记录

在 R2006a 之前推出