主要内容

isnlarx

检测非线性估计数据

描述

例子

isnlarx (数据,订单)检测的非线性数据通过测试是否非线性ARX模型表示订单产生更好的估计数据线性ARX模型。非线性模型使用一个默认的treepartition非线性估计量。

测试的结果是输出到命令窗口并显示非线性是否检测到。使用印刷检测率来评估非线性检测的可靠性测试:

  • 更大的值(> 2)表明,一个重要的非线性检测。

  • 更小的值(< 0.5)表明,任何错误原因不明的线性模型主要是噪音。也就是说,没有检测到显著的非线性。

  • 值接近1测试表明,非线性检测是不可靠的,弱非线性可能存在。

例子

isnlarx (数据,订单,肯塔基州)限制了非线性测试输出通道肯塔基州多输出数据。

例子

isnlarx (___,名称,值)指定附加非线性ARX模型使用一个或多个选项名称,值对参数。

例子

NLHyp= isnlarx (___)返回结果的非线性测试和抑制命令窗口的输出。

例子

(NLHyp,NLValue,NLRegs,NoiseSigma,DetectRatio)= isnlarx (___)此外返回测试数量背后的评估。

例子

全部折叠

加载信号传输数据集。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“frictiondata”))

构造一个iddata对象的评估数据。

z = iddata (f1, v, 1);

指定模型订单和延迟。

订单= (1 1 0);

运行测试来检测非线性。

% isnlarx (z,订单);

大型检测率表明,测试是健壮的和显著的非线性检测。此外,线性模型的估计差异被发现,解释为非线性的数据,明显大于噪声误差,可以表明一个重要的非线性。

加载装运箱数据集。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“cstrdata”))

构造一个iddata对象的估计数据使用一个示例以0.1秒的成绩。

z = iddata (y1, u1, 0.1);

指定模型订单和延迟。

订单= [3 * 1 (2,2),(2、3),2 * 1 (2、3)];

运行测试来检测非线性第二输出通道。

% isnlarx (z,订单,2);

比率检测不到1表明没有检测到非线性。然而,因为这个值是0.5附近可能有弱非线性这不是试验检测到的。

加载信号传输数据集。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“signaltransmissiondata”))

构造一个iddata对象的估计数据使用一个示例以0.1秒的成绩。

z = iddata(输出电压,vin, 0.1);

指定模型订单和延迟。

订单= (3 0 2);

显示模型的解释变量idnlarx模型与给定的命令。

getreg (idnlarx(订单));

检测数据的非线性,非线性回归量,寻找最好的组合。

% isnlarx (z,命令,“NonlinearRegressors”,“搜索”);

使搜索发现,使用前两个解释变量产生的最佳非线性估计给定的数据。

检测比例大于1但低于2意味着一个非线性检测,但测试并不强劲。这个结果可能表明检测非线性并不重要。此外,解释的数据非线性小于噪声误差,可弱非线性的信号。

负荷估算数据。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“cstrdata”))

构造一个iddata使用估计的数据对象。

z = iddata (y1, u1, 0.1);

指定模型订单和延迟。

订单= [3 * 1 (2,2),(2、3),2 * 1 (2、3)];

检测数据的非线性,并确定评价背后的测试数量。

% NLHyp = isnlarx (z,订单);

负荷估算数据。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“narendralidata”))

构造一个iddata使用估计的数据对象。

z = iddata (u, y1, 1);

指定模型订单和延迟。

订单= [1 1 2];

检测数据的非线性,并确定评价背后的测试数量。

% (NLHyp、NLValue NLRegs、NoiseSigma DetectRatio] = isnlarx (z,订单);

输入参数

全部折叠

时域估计数据,指定为一个iddata对象或一个数字矩阵。

  • 如果数据是一个iddata对象,然后数据可以有一个或多个输出渠道和零个或多个输入通道。

  • 如果数据是一个数字矩阵,然后数据的列数必须匹配的输入(数量的总和nu)和输出的数量(ny

数据必须均匀采样,不能包含失踪()样品。

ARX模型阶矩阵(na nb nk)na表示延迟输出的数量,表示延迟输入的数量nk表示的最小输入延迟。最低输出延迟是固定的1。有关如何构建的更多信息订单矩阵,看到arx

当你指定订单,软件将订单信息转换为线性回归量形式idnlarx解释变量财产。例如,看到的订单创建非线性ARX模型利用ARX模型

输出通道数的估计数据,指定为一个正整数的范围(1,ny),ny是输出通道的数量。

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:“NonlinearRegressors”、“输出”指定仅包含输出变量的解释变量被用作输入的非线性模型的块。

独立的变量名称,指定为逗号分隔组成的“TimeVariable”和一个特征向量。例如,“t”

输入和输出的解释变量由组合,指定为逗号分隔组成的“CustomRegressors”对于下列之一:

  • 单元阵列的特征向量。例如:

    • {“y1(条t - 3) ^ 3”,“y2 (t - 1) * u1(条t - 3)”,“罪(u3 (2))”}

    每个字符向量必须代表一个有效的公式回归量贡献对预测模型的输出。公式必须使用输入和输出写名字和时间变量名作为变量。

  • 数组的定义解释变量对象,使用创建的customregpolyreg

对于一个模型ny输出,指定一个ny1单元阵列的customreg对象数组或字符数组。

这些解释变量除了标准的解释是基于订单

例子:CustomRegressors, {y1(条t - 3) ^ 3,“y2 (t - 1) * u1(条t - 3)}

例子:CustomRegressors,{罪(u3(2))的}

解释变量的子集,输入非线性的块模型作为输入,指定为逗号分隔组成的“NonlinearRegressors”和下列值之一:

  • “所有”——所有解释变量

  • “输出”——包含输出变量的解释变量

  • “输入”——包含输入变量的解释变量

  • “标准”——标准的解释变量

  • “自定义”——自定义的解释变量

  • “搜索”——最好的回归量的估计算法执行一个搜索子集。这是非常有用的,当你想减少大量的解释变量进入非线性估计量的非线性功能块。这个选项必须同时适用于所有输出模型。

  • []——不解释。这将创建一个linear-in-regressor模型。

  • 向量回归量指标。确定解释变量的数量和顺序,使用getreg

模型与多个输出,指定的单元阵列ny元素,ny是输出通道的数量。对于每一个输出,指定前面的选项之一。另外,应用相同的所有解释变量子集模型输出,指定[]或任何特征向量的选项,例如“标准”

例子:“NonlinearRegressors”、“搜索”执行最佳回归量寻找唯一的单输出模型的输出,或所有的输出多个输出模型。

例子:“NonlinearReg”、“输入”只适用于输入解释变量的非线性函数的输入。

例子:NonlinearRegressors,{“输入”、“输出”}输入解释适用于第一个输出和输出的第二输出模型的解释变量和两个输出。

输出参数

全部折叠

非线性测试的结果,作为一个逻辑返回向量长度等于输出通道的数量。的元素NLHyp1如果非线性检测到相应的输出。的值0表明,非线性没有检测到。

估计标准偏差数据的非线性解释说,作为一个向量的非负标量返回长度等于输出通道的数量。的元素NLValue0如果没有检测到非线性的对应的输出。

解释变量应该输入非线性模型中,作为一个向量返回指数的单输出模型。对于多输出模型,NLRegs返回单元阵列,与元素对应于每一个输出通道。NLRegs是空的,[],如果没有发现非线性。

看到“NonlinearRegressors”名称,值参数的更多信息。

估计标准偏差的原因不明的错误,作为一个向量的非负标量返回长度等于输出通道的数量。的元素NoiseSigma0如果没有检测到非线性的对应的输出。

检验统计量和比例检测阈值,作为一个向量长度等于返回输出通道的数量。使用的元素DetectRatio非线性检测的可靠性测试评估相应的输出:

  • 更大的值(> 2)表明,一个重要的非线性检测。

  • 更小的值(< 0.5)表明,任何错误原因不明的线性模型主要是噪音。也就是说,没有检测到显著的非线性。

  • 值接近1测试表明,非线性检测是不可靠的,弱非线性可能存在。

算法

isnlarx使用给定的数据和估计非线性ARX模型treepartition非线性估计量。

可以被描述为估算数据Y(t)=l(t)+Fn(t)+E(t),其中:

  • l(t)是数据的部分解释为非线性ARX模型的线性函数。

  • Fn(t)是数据的部分解释为非线性ARX模型的非线性函数。输出参数NLValue是一个估计的标准偏差Fn(t)。如果非线性函数解释了很大一部分的数据超出了数据解释为线性函数,非线性检测。

  • E(t)是剩余误差,是由非线性ARX模型无法解释的,通常是白噪声。输出参数NoiseSigma是一个估计的标准偏差E(t)。

介绍了R2007a