主要内容gydF4y2Ba

idCustomNetworkgydF4y2Ba

非线性ARX和Hammerstein-Wiener模型的自定义网络函数gydF4y2Ba

描述gydF4y2Ba

一个gydF4y2BaidCustomNetworkgydF4y2Ba对象实现了一个自定义网络函数,是一个非线性映射函数,用于估计非线性ARX和非线性Hammerstein-Wiener模型。映射函数,也称为agydF4y2Ba非线性gydF4y2Ba它使用线性权重、偏移量和非线性函数的组合来计算输出。非线性函数包含自定义的单元函数,它们作用于输入的脊线组合(加权线性和)。gydF4y2Ba

数学上,gydF4y2BaidCustomNetworkgydF4y2Ba是映射的函数吗gydF4y2Ba米gydF4y2Ba输入gydF4y2BaXgydF4y2Ba(gydF4y2BatgydF4y2Ba) = [gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba1gydF4y2Ba),gydF4y2BaxgydF4y2Ba2gydF4y2Ba(gydF4y2BatgydF4y2Ba),…gydF4y2BaxgydF4y2Ba米gydF4y2Ba(gydF4y2BatgydF4y2Ba)]gydF4y2BaTgydF4y2Ba到标量输出gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba)使用下列关系:gydF4y2Ba

ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba ygydF4y2Ba 0gydF4y2Ba +gydF4y2Ba ΧgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba TgydF4y2Ba PgydF4y2Ba lgydF4y2Ba +gydF4y2Ba CgydF4y2Ba (gydF4y2Ba ΧgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba

在这里:gydF4y2Ba

  • XgydF4y2Ba(gydF4y2BatgydF4y2Ba)是一个gydF4y2Ba米gydF4y2Ba输入的-by-1向量,或者gydF4y2Ba解释变量gydF4y2Ba.gydF4y2Ba

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

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

  • lgydF4y2Ba是一个gydF4y2BapgydF4y2Ba-by-1的权重向量。gydF4y2Ba

  • CgydF4y2Ba(gydF4y2BaXgydF4y2Ba)是扩展和翻译自定义单元函数的总和。单元函数的总数称为gydF4y2Ba单位数量gydF4y2BangydF4y2Ba网络的。gydF4y2Ba

对于单位函数项的定义gydF4y2BaCgydF4y2Ba(gydF4y2BaXgydF4y2Ba),见gydF4y2Ba更多关于gydF4y2Ba.gydF4y2Ba

使用gydF4y2BaidCustomNetworkgydF4y2Ba的值gydF4y2BaOutputFcngydF4y2Ba的属性gydF4y2BaidnlarxgydF4y2Ba模型或gydF4y2BaInputNonlinearitygydF4y2Ba而且gydF4y2BaOutputLinearitygydF4y2Ba属性gydF4y2BaidnlhwgydF4y2Ba对象。例如,指定gydF4y2BaidCustomNetworkgydF4y2Ba当你估计gydF4y2BaidnlarxgydF4y2Ba使用以下命令进行建模。gydF4y2Ba

sys = nlarx(data,regressors,idCustomNetwork)gydF4y2Ba
当gydF4y2BanlarxgydF4y2Ba估计模型,它本质上估计参数gydF4y2BaidCustomNetworkgydF4y2Ba函数。gydF4y2Ba

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

创建gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

CgydF4y2Ba= idCustomNetwork (gydF4y2BaHgydF4y2Ba)gydF4y2Ba使用函数句柄使用用户定义的单元函数创建非线性映射对象gydF4y2BaHgydF4y2Ba.gydF4y2BaHgydF4y2Ba必须指向一个函数的形式吗gydF4y2Ba[f,g,a] = function_name(x)gydF4y2Ba,在那里gydF4y2BafgydF4y2Ba是函数的值,gydF4y2BaG = df/dxgydF4y2Ba,gydF4y2Ba一个gydF4y2Ba表示单位功能活动范围gydF4y2Ba(一)gydF4y2Ba在哪里gydF4y2BaggydF4y2Ba显著非零。Hammerstein-Wiener模型要求自定义函数只有一个输入和一个输出。gydF4y2Ba

CgydF4y2Ba= idCustomNetwork (gydF4y2BaHgydF4y2Ba,gydF4y2BanumUnitsgydF4y2Ba)gydF4y2Ba指定单元函数的个数gydF4y2BanumUnitsgydF4y2Ba.gydF4y2Ba

CgydF4y2Ba= idCustomNetwork (gydF4y2BaHgydF4y2Ba,gydF4y2BanumUnitsgydF4y2Ba,gydF4y2BaUseLinearFcngydF4y2Ba)gydF4y2Ba指定函数是否使用线性函数作为子组件。gydF4y2Ba

例子gydF4y2Ba

CgydF4y2Ba= idCustomNetwork (gydF4y2BaHgydF4y2Ba,gydF4y2BanumUnitsgydF4y2Ba,gydF4y2BaUseLinearFcngydF4y2Ba,gydF4y2BaUseOffsetgydF4y2Ba)gydF4y2Ba指定函数是否使用偏移量项gydF4y2BaygydF4y2Ba0gydF4y2Ba参数。gydF4y2Ba

输入参数gydF4y2Ba

全部展开gydF4y2Ba

函数句柄,指向窗体的自定义函数gydF4y2Ba[f,g,a] = function_name(x)gydF4y2Ba,指定为函数句柄。这个函数gydF4y2BaHgydF4y2Ba点到必须向量化。也就是说,对于一个向量或矩阵gydF4y2BaxgydF4y2Ba,输出参数gydF4y2BafgydF4y2Ba而且gydF4y2BaggydF4y2Ba一定要和?一样的尺寸gydF4y2BaxgydF4y2Ba当逐个元素计算时。gydF4y2Ba

此参数设置gydF4y2BaC.NonlinearFcn.UnitFcngydF4y2Ba财产。gydF4y2Ba

单位数,指定为正整数。gydF4y2BanumUnitsgydF4y2Ba确定自定义单元函数的数量。gydF4y2Ba

此参数设置gydF4y2BaC.NonlinearFcn.NumberOfUnitsgydF4y2Ba财产。gydF4y2Ba

选项使用线性函数子组件,指定为gydF4y2Ba真正的gydF4y2Ba或gydF4y2Ba假gydF4y2Ba.属性的值gydF4y2BaC.LinearFcn.UsegydF4y2Ba财产。gydF4y2Ba

选项,用于使用偏移量项,指定为gydF4y2Ba真正的gydF4y2Ba或gydF4y2Ba假gydF4y2Ba.属性的值gydF4y2BaC.Offset.UsegydF4y2Ba财产。gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

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

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

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

  • 使用gydF4y2Ba—选择在自定义网络中使用线性函数,指定为标量逻辑。默认值为gydF4y2Ba真正的gydF4y2Ba.gydF4y2Ba

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

  • InputProjectiongydF4y2Ba-输入投影矩阵gydF4y2BaPgydF4y2Ba,指定为gydF4y2Ba米gydF4y2Ba——- - - - - -gydF4y2BapgydF4y2Ba矩阵,它变换输入长度的去趋势向量gydF4y2Ba米gydF4y2Ba变成一个长度向量gydF4y2BapgydF4y2Ba.对于Hammerstein-Wiener模型,gydF4y2BaInputProjectiongydF4y2Ba等于gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

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

软件计算的输出gydF4y2BaLinearFcngydF4y2Ba作为gydF4y2Ba FgydF4y2Ba lgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba ΧgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba TgydF4y2Ba PgydF4y2Ba lgydF4y2Ba .gydF4y2Ba

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

  • 使用gydF4y2Ba—在自定义网络中使用偏移量的选项,指定为逻辑标量。默认值为gydF4y2Ba真正的gydF4y2Ba.gydF4y2Ba

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

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

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

  • UnitFcngydF4y2Ba-函数句柄,指向表单的自定义函数gydF4y2Ba[f,g,a] = function_name(x)gydF4y2Ba.这个函数gydF4y2BaUnitFcngydF4y2Ba点到必须向量化。也就是说,对于一个向量或矩阵gydF4y2BaxgydF4y2Ba,输出参数gydF4y2BafgydF4y2Ba而且gydF4y2BaggydF4y2Ba一定要和?一样的尺寸gydF4y2BaxgydF4y2Ba当逐个元素计算时。gydF4y2Ba

  • NumberOfUnitsgydF4y2Ba-单位数,以正整数指定。gydF4y2BaNumberOfUnitsgydF4y2Ba确定数字gydF4y2BangydF4y2Ba自定义函数。gydF4y2Ba

  • 参数gydF4y2Ba-参数gydF4y2BaidCustomNetworkgydF4y2Ba,具体如下表所示:gydF4y2Ba

    字段名gydF4y2Ba 描述gydF4y2Ba 默认的gydF4y2Ba
    InputProjectiongydF4y2Ba

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

    对于Hammerstein-Wiener模型,gydF4y2BaInputProjectiongydF4y2Ba等于gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

    []gydF4y2Ba
    OutputCoefficientgydF4y2Ba

    自定义函数输出系数gydF4y2Ba年代gydF4y2Ba我gydF4y2Ba,指定为gydF4y2BangydF4y2Ba1的向量。gydF4y2Ba

    []gydF4y2Ba
    翻译gydF4y2Ba

    平移矩阵,指定为gydF4y2BangydF4y2Ba——- - - - - -gydF4y2Ba问gydF4y2Ba平移行向量的矩阵gydF4y2BacgydF4y2Ba我gydF4y2Ba.gydF4y2Ba

    []gydF4y2Ba
    扩张gydF4y2Ba

    膨胀系数gydF4y2BabgydF4y2Ba我gydF4y2Ba,指定为gydF4y2BangydF4y2Ba1的向量。gydF4y2Ba

    []gydF4y2Ba

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

例子gydF4y2Ba

全部折叠gydF4y2Ba

加载数据gydF4y2Ba

负载gydF4y2Baiddata1gydF4y2Baz1gydF4y2Ba

创建一个gydF4y2BacustomnetgydF4y2Ba对象使用gydF4y2BagaussunitgydF4y2Ba作为单位函数。gydF4y2Ba

H = @gaussunit;C = idCustomNetwork(@gaussunit);gydF4y2Ba

设置属性gydF4y2BaCgydF4y2Ba使用点表示法。将偏移量的值固定为0.2,并设置单元函数的数量为15。gydF4y2Ba

C.Offset.Value = 0.2;C.Offset.Free = false;c .非线性fcn . numberofunits = 15gydF4y2Ba
C =自定义网络非线性函数:自定义网络,包含15个单元和“gaussunit”单元函数线性函数:未初始化输出偏移量:固定为0.2输入:“函数输入”输出:“函数输出”线性fcn:“线性函数参数”非线性fcn:“自定义单元及其参数”偏移量:“偏移量参数”gydF4y2Ba

创建模型回归器。gydF4y2Ba

Reg =线性回归([z1.]OutputName z1。输入Name],{1:4 0:4});

估计非线性ARX模型。gydF4y2Ba

sys = nlarx(z1,Reg,C)gydF4y2Ba
sys = 1输出1输入的非线性ARX模型输入:u1输出:y1回归:变量y1中的线性回归,u1所有回归的列表输出函数:15个单元的自定义网络采样时间:0.1秒状态:在时域数据“z1”上使用NLARX估计。与估计数据拟合:76.15%(预测焦点)FPE: 4.311, MSE: 1.104gydF4y2Ba

加载数据。gydF4y2Ba

负载gydF4y2BathrottledatagydF4y2Ba

创建一个gydF4y2BacustomnetgydF4y2Ba对象gydF4y2BaCgydF4y2Ba使用gydF4y2BagaussunitgydF4y2Ba作为单位函数。包含指定10个单位的输入参数,并排除线性函数和偏移量。gydF4y2Ba

H = @gaussunit;C = idCustomNetwork(@gaussunit,10,false,false)gydF4y2Ba
C =自定义网络非线性函数:具有10个单元和"gaussunit"单元函数的自定义网络线性函数:不使用输出偏移量:不使用输入:{1x0 cell}输出:{1x0 cell}非线性fcn: '自定义单元及其参数'线性fcn: '线性函数参数'偏移量:'偏移量参数'gydF4y2Ba

使用顺序估计Hammerstein-Wiener模型gydF4y2Ba[4 4 1]gydF4y2Ba,无输入非线性,和gydF4y2BaCgydF4y2Ba作为输出非线性。gydF4y2Ba

sys = nlhw(ThrottleData,[4 4 1],[],C)gydF4y2Ba
1输出1输入的Hammerstein-Wiener模型对应于阶数nb = 4, nf = 4, nk = 1的线性传递函数输入非线性:不存在输出非线性:10个单元的自定义网络和“gaussunit”单元函数采样时间:0.01秒状态:在时域数据“ThrottleData”上使用NLHW估计。拟合估计数据:61.75% FPE: 206.9, MSE: 161.5gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

算法gydF4y2Ba

idCustomNetworkgydF4y2Ba使用迭代搜索技术估计参数。gydF4y2Ba

版本历史gydF4y2Ba

在R2007a中引入gydF4y2Ba

全部展开gydF4y2Ba

R2022a的行为发生了变化gydF4y2Ba

不建议从R2021b开始gydF4y2Ba

不建议从R2021a开始gydF4y2Ba