主要内容

idWaveletNetwork

非线性ARX和Hammerstein-Wiener模型的小波网络函数

描述

一个idWaveletNetwork对象实现了一个小波网络函数,是一个非线性映射函数,用于估计非线性ARX和非线性Hammerstein-Wiener模型。映射函数,也称为a非线性它使用线性权重、偏移量和非线性函数的组合来计算输出。非线性函数包含小波单元函数,它作用于输入的径向组合。

数学上,idWaveletNetwork是映射的函数吗输入Xt) = [xt1),x2t),…xt)]T到标量输出yt)使用下列关系:

y t y 0 + Χ t T P l + W Χ t + 年代 Χ t

在这里:

  • Xt)是一个输入的-by-1向量,或者解释变量

  • y0是输出偏移量,一个标量。

  • P是一个——- - - - - -p投影矩阵,其中回归量的数量和p是线性权值的个数。必须大于等于p

  • l是一个p-by-1的权重向量。

  • WX),年代X)共同构成小波网络的非线性函数。WX)是扩展小波和平移小波的和年代X)是扩张和平移缩放函数的和(也称为scalelets).小波的总数dw缩放函数d年代被称为单位数量网络的。

关于小波函数项的定义WX)和标度函数项年代X),看更多关于

使用idWaveletNetwork的值OutputFcn的属性idnlarx模型或InputNonlinearity而且OutputLinearity属性idnlhw对象。例如,指定idWaveletNetwork当你估计idnlarx使用以下命令进行建模。

sys = nlarx(数据,回归器,idWaveletNetwork)
nlarx估计模型,它本质上估计参数idWaveletNetwork函数。

您可以配置idWaveletNetwork函数禁用组件并修复参数。要省略线性分量,请设置LinearFcn。使用.若要省略偏移量,请设置偏移量。使用.若要指定线性函数和偏移量的已知值,请设置它们价值属性,并设置相应的免费的属性来.使用评估计算给定输入向量下函数的输出。

创建

描述

例子

W= idWaveletNetwork创建一个idWaveletNetwork对象W,该函数在模型估计时自动计算单元数。

例子

W= idWaveletNetwork (numUnits指定单元数numUnits.该语法包含一个选项,允许您交互式地评估单位数和未解释的方差之间的关系。

例子

W= idWaveletNetwork (numUnitsUseLinearFcn指定函数是否使用线性函数作为子组件。

例子

W= idWaveletNetwork (numUnitsUseLinearFcnUseOffset指定函数是否使用偏移量项。

输入参数

全部展开

单位数,指定为表示的字符串或字符向量“汽车”“互动”,或作为正整数。numUnits确定小波或缩放函数的数量,或者,如果两个元素都存在,则确定小波和缩放函数的组合数量。通常,小波网络要么包含小波,要么包含尺度函数,但不是两者都包含。指定numUnits作为下列值之一:

  • “汽车”-软件在模型估计时自动确定单元数。

  • “互动”-在模型估计期间,软件显示一个交互式条形图,将无法解释的方差与单元数联系起来。点击一个栏查看可达到的拟合估计数据为选定的单位数量。蓝色条表示基于广义交叉验证(GCV)准则的最佳选择。选择单位数的一般规则是使用捕获大部分方差的最小单位数。

  • 正整数-软件直接使用指定的数值。

此参数设置W.NonlinearFcn.NumberOfUnits财产。

选项使用线性函数子组件,指定为真正的.属性的值W.LinearFcn.Use财产。

选项,用于使用偏移量项,指定为真正的.属性的值W.Offset.Use财产。

属性

全部展开

映射对象的输入的输入信号名称,指定为1 × -单元格数组,其中是输入信号的个数。这个属性是在估计过程中确定的。

映射对象输出的输出信号名称,指定为1乘1单元格数组。这个属性是在估计过程中确定的。

线性函数的参数,具体如下:

  • 使用-选择使用小波网络中的线性函数,指定为标量逻辑。默认值为真正的.有关设置此选项的示例,请参见从小波网络映射对象中排除线性项

  • 价值-线性权重组成l',指定为1 × -p向量。

  • InputProjection-输入投影矩阵P,指定为——- - - - - -p矩阵,它变换输入向量的长度变成一个长度向量p.对于Hammerstein-Wiener模型,InputProjection等于1

  • 免费的-选项更新的条目价值在估计期间,指定为1 × -p逻辑向量。该软件尊重免费的规格仅当起始值为价值是有限的。默认值为真正的

偏移量项的参数,指定如下:

  • 使用-选择在小波网络中使用偏移量,指定为标量逻辑。默认值为真正的

  • 价值—偏移值,指定为标量。

  • 免费的-更新选项价值在估计期间,指定为标量逻辑。该软件尊重免费的规范的只若值价值是有限的。默认值为真正的

非线性函数的参数,具体如下:

  • NumberOfUnits-单元数,指定为“汽车”“互动”,或正整数。NumberOfUnits确定小波或缩放函数的数量,或者,如果两个元素都存在,则确定小波和缩放函数的组合数量。通常,小波网络要么包含小波,要么包含尺度函数,但不是两者都包含。的选项NumberOfUnits分别如下:

    • “汽车”-软件在模型估计时自动确定单元数。

    • “互动”-在模型估计期间,软件显示一个交互式条形图,将无法解释的方差与单元数联系起来。点击一个栏查看可达到的拟合估计数据为选定的单位数量。蓝色条表示基于广义交叉验证(GCV)准则的最佳选择。选择单位数的一般规则是使用捕获大部分方差的最小单位数。

    • 正整数-软件直接使用指定的数值。

  • 结构—高级选项,用于控制小波和缩放函数的结构,具体如下表所示。

    财产 描述 默认的
    FinestCell 最小单元格中的最小数据点数,指定为“汽车”或者一个正整数。单元格是小波中显著非零的部分所覆盖的区域。的默认设置“汽车”指定软件在估计期间确定此值。 “汽车”
    MinimumCells 分区中的最小单元格数,指定为正整数。 16
    MaximumCells 分区中的最大单元格数,指定为正整数。 16
    MaximumLevels 小波级别的最大数目,指定为正整数。 10
    DilationStep 膨胀步长,指定为正整数。 2
    TranslationStep 转换步长,指定为正整数。 1

  • 参数-参数idWaveletNetwork,具体如下表所示。

    字段名 描述 默认的
    InputProjection

    投影矩阵,指定为——- - - - - -矩阵。转换去趋势输入向量 X X ¯ 的长度变成一个长度向量.通常情况下,与线性投影矩阵的维数相同P.在这种情况下,等于p,即线性权值的个数。

    对于Hammerstein-Wiener模型,InputProjection等于1

    []
    ScalingCoefficient

    标度函数系数年代,指定为ds1的向量。

    []
    ScalingTranslation

    缩放平移矩阵,指定为ads——- - - - - -变换行向量的矩阵e

    []
    ScalingDilation

    缩放函数膨胀系数d,指定为ds1的向量。

    []
    WaveletCoefficient

    小波函数系数w,指定为dw1的向量。

    []
    WaveletTranslation

    小波平移矩阵,e,指定为dw——- - - - - -小波平移行向量的矩阵c

    []
    WaveletDilation

    小波膨胀系数b,指定为dw1的向量。

    []

  • 免费的-估计参数的选项,指定为逻辑标量。如果所有参数都有有限值,例如idWaveletNetwork对象对应于先前估计的模型,然后进行设置免费的导致非线性函数的参数WX),年代X)在估算时保持不变。默认值为真正的

例子

全部折叠

MO = id小波网络;

查看idWaveletNetwork对象。

disp (MO)
小波网络非线性函数:自动选择单元数的小波网络线性函数:未初始化输出偏移量:未初始化输入:{1x0 cell}输出:{1x0 cell}非线性fcn: '<小波和标度函数单元及其参数>'线性fcn: '<线性函数参数>'偏移量:'<偏移量参数>' EstimationOptions: '<估计选项>'

创建idWaveletNetwork映射对象

MO = id小波网络;

排除线性项

MO.LinearFcn.Use = false;

查看idWaveletNetwork对象。

disp (MO)
小波网络非线性函数:自动选择单元数的小波网络线性函数:未使用输出偏移量:未初始化输入:{1x0 cell}输出:{1x0 cell}非线性fcn: '<小波和标度函数单元及其参数>'线性fcn: '<线性函数参数>'偏移量:'<偏移量参数>' EstimationOptions: '<估计选项>'

线性函数没有被使用。

加载估计数据。

负载twotankdatayu

创建一个iddata对象从估计数据中获取。

Z = iddata(y,u,0.2);

创建带有五个单元的小波网络映射对象。

MO = idWaveletNetwork(5);

估计非线性ARX模型。

sys = nlarx(z,[4 4 1],MO)
sys = 1输出1输入的非线性ARX模型输入:u1输出:y1回归器:变量y1, u1中的线性回归器所有回归器列表输出函数:5单元小波网络采样时间:0.2秒状态:在时域数据“z”上使用NLARX估计。与估计数据拟合:96.8%(预测焦点)FPE: 3.553e-05, MSE: 3.515e-05

加载估计数据。

负载motorizedcamera

创建一个iddata对象。

Z = iddata(y,u,0.02,“名字”“机动相机”“TimeUnit”“年代”);

z是一个iddata对象,具有六个输入和两个输出。

指定模型顺序和延迟。

Orders = [ones(2,6),ones(2,6),ones(2,6)];

为每个输入通道指定相同的非线性估计器。

InputNL = idWaveletNetwork;

为每个输出通道指定不同的非线性估计器。

OutputNL = [idDeadZone,idWaveletNetwork];

估计Hammerstein-Wiener模型。

sys = nlhw(z,Orders,InputNL,OutputNL);

要查看估计的输入和输出非线性的形状,请绘制非线性图。

情节(系统)

图Hammerstein-Wiener模型Plot包含6个轴对象和其他类型为uipanel、uicontrol的对象。Axes对象1包含一个line类型的对象。该节点表示sys:idWaveletNetwork。坐标轴对象2包含一个line类型的对象。该节点表示sys:idWaveletNetwork。Axes对象3包含一个line类型的对象。该节点表示sys:idWaveletNetwork。Axes对象4包含一个line类型的对象。该节点表示sys:idWaveletNetwork。Axes对象5包含一个line类型的对象。 This object represents sys:idWaveletNetwork. Axes object 6 contains an object of type line. This object represents sys:idWaveletNetwork.

单击图顶部的输入和输出非线性块查看非线性。

加载估计数据。

负载iddata7z7

指定idWaveletNetwork为模型输出函数。配置idWaveletNetwork对象使其具有固定的偏移值1,并在非线性组件中使用五个单元。

w = id小波网络;w.Offset.Value = 1;w.Offset.Free = false;w.NonlinearFcn.NumberOfUnits = 5;

使用产生四个连续输出回归量和五个连续输入回归量的滞后数组指定线性模型回归量集。

reg =线性回归({“日元”‘u1’}, {1:4, 0:4});

估计非线性ARX模型。

Sys = nlarx(z7,reg,w);

检查输出函数的后估计属性。

disp (sys.OutputFcn)
小波网络输入:y1(t-1), y1(t-2), y1(t-3), y1(t-4), u1(t), u1(t-1), u1(t-2), u1(t-3), u1(t-4)输出:y1(t)非线性函数:5单元小波网络线性函数:初始化为[-1.12 0.469 1.25 0.556 -0.81 -0.261 -0.074 0.711 1.15]输出偏移量:固定为1输入:{1x9单元}输出:{'y1(t)'}非线性函数cn: '<小波和缩放函数单元及其参数>'线性函数cn: '<线性函数参数>'偏移量:'<偏移量参数>'估计选项:“<选项>估计”
disp (sys.OutputFcn.Input)
函数输入名称:{1x9 cell}含义:[5.3829e-17 7.1772e-17 2.6914e-17 0 -4.4857e-18 -4.4857e-17…范围:[2x9 double]
disp (sys.OutputFcn.NonlinearFcn)
小波和尺度函数单元及其参数NumberOfUnits: 5参数:'<小波参数>'自由:1输入:{1x9单元}输出:{'y1(t):非线性'}

加载估计数据。

负载throttledata

指定idWaveletNetwork为模型输出非线性并设置参数NumUnits5而且UseLinearFcn而且UseOffset

w = idWaveletNetwork(5,false,false);

删除线性函数和偏移量的另一种方法是在创建非线性后使用点表示法。

w.LinearFcn.Use = false;w.Offset.Use = false;

估计模型,使用订单规范的[4 4 1]

sys = nlhw(ThrottleData,[4 4 1],[],w);

将模拟模型响应与估计数据进行比较。

比较(ThrottleData sys);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示ThrottleData(节流阀位置),sys: 71.89%。

更多关于

全部展开

算法

你可以使用idWaveletNetwork在非线性ARX和Hammerstein-Wiener模型。估计的算法idWaveletNetwork参数取决于您所估计的模型。

  • 在非线性ARX模型中,idWaveletNetwork使用非迭代或迭代技术来预测参数,这取决于中的选项设置nlarxOptions

    • 如果焦点选项设置为“预测”,然后idWaveletNetwork使用快速非迭代技术估计参数[1].第一次估计之后的连续细化使用迭代算法。

    • 如果焦点选项设置为“模拟”,然后idWaveletNetwork使用迭代技术估计参数。

    • 若要始终使用迭代或非迭代算法,请指定IterativeWavenet的属性nlarxOptions作为“上”“关闭”,分别。

  • 在Hammerstein-Wiener模型中,idWaveletNetwork采用迭代最小化法确定参数。

参考文献

[1]张清华。小波网络在非参数估计中的应用。IEEE神经网络汇刊8,不。2(1997年3月):227-36。https://doi.org/10.1109/72.557660。

版本历史

在R2007a中引入

全部展开

R2022a的行为发生了变化

不建议从R2021b开始

不建议从R2021a开始