主要内容

idSigmoidNetwork

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

描述

一个idSigmoidNetwork对象实现了一个sigmoid网络函数,是一个非线性映射函数,用于估计非线性ARX和非线性Hammerstein-Wiener模型。映射函数,也称为a非线性它使用线性权重、偏移量和非线性函数的组合来计算输出。非线性函数包含在输入的脊组合(加权线性和)上操作的sigmoid单位函数。

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

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

在这里:

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

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

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

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

  • 年代X)是扩张和平移的sigmoid函数的和。sigmoid函数的总数称为单位数量n网络的。

对于sigmoid函数项的定义年代X),见更多关于

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

sys = nlarx(data,regressors,idSigmoidNetwork)
nlarx估计模型,它本质上估计参数idSigmoidNetwork函数。

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

创建

描述

例子

年代= idSigmoidNetwork创建一个idSigmoidNetwork对象年代用了10个单位。模型估计时确定输入数,输出数为1。

例子

年代= idSigmoidNetwork (numUnits指定sigmoid函数的个数numUnits

例子

年代= idSigmoidNetwork (numUnitsUseLinearFcn指定函数是否使用线性函数作为子组件。

例子

年代= idSigmoidNetwork (numUnitsUseLinearFcnUseOffset指定函数是否使用偏移量项y0参数。

输入参数

全部展开

单位数,指定为正整数。numUnits决定sigmoid函数的个数。

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

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

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

属性

全部展开

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

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

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

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

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

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

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

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

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

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

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

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

  • NumberOfUnits-单位数,以正整数指定。NumberOfUnits决定sigmoid函数的个数。

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

    字段名 描述 默认的
    InputProjection

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

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

    []
    OutputCoefficient

    Sigmoid函数输出系数年代,指定为n1的向量。

    []
    翻译

    平移矩阵,指定为n——- - - - - -平移行向量的矩阵c

    []
    扩张

    膨胀系数b,指定为n1的向量。

    []

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

例子

全部折叠

加载数据z7并创建一个子集用作估计数据。

负载iddata7z7Ze = z7(1:300);

创建和配置idSigmoidNetwork映射对象。将偏移量固定为0.2,单元数固定为15。

S = idSigmoidNetwork;S.Offset.Value = 0.2;S.Offset.Free = false;S.NonlinearFcn.NumberOfUnits = 15;

创建线性和多项式模型回归。使用的输入和输出变量名z7作为回归函数的变量名。

var_names = [z7.OutputName;z7.InputName]
var_names =3 x1细胞{'y1'} {'u1'} {'u2'}
Reg1 =线性回归(var_names,{1:4,0:4,1});Reg2 =多项式回归(var_names,{1:2,0:2,0},2);

设置评估选项。

选择nlarxOptions(“SearchMethod”“fmincon”);opt.SearchOptions.MaxIterations = 40;

估计非线性ARX模型。

sys = nlarx(ze,[Reg1;Reg2],S,opt)
sys =非线性ARX模型,1输出2输入输入:u1, u2输出:y1回归量:1。线性回归变量y1 u1 u2 2。变量y1, u1, u2中的二阶回归函数输出函数:15单元Sigmoid网络采样时间:1秒状态:终止条件:最大迭代次数或达到函数求值次数。迭代次数:40,函数求值次数:88使用NLARX对时域数据“ze”进行估计。拟合估计数据:74.27%(预测焦点)FPE: 6.11, MSE: 0.6547更多信息在模型的“报告”属性。

估计一个Hammerstein-Wiener模型idSigmoidNetwork作为输出非线性。

加载数据

负载throttledata

创建一个idSigmoidNetwork有15个单元且没有输入非线性或偏移的映射对象。

S = idSigmoidNetwork(15,false,false)
S = Sigmoid网络非线性函数:15单元的Sigmoid网络线性函数:不使用输出偏移量:不使用输入:{1x0 cell}输出:{1x0 cell}非线性fcn: 'Sigmoid单元及其参数'线性fcn: '线性函数参数'偏移量:'偏移量参数'

估计一个Hammerstein-Wiener模型。

sys = nlhw(ThrottleData,[4 4 0],[],S)
sys =一输出一输入Hammerstein-Wiener模型对应阶数nb = 4, nf = 4, nk = 0的线性传递函数输入非线性:无输出非线性:15单元Sigmoid网络采样时间:0.01秒状态:终止条件:达到最大迭代次数。迭代次数:20,函数评估次数:345在时域数据“ThrottleData”上使用NLHW估计。拟合估计数据:55.55% FPE: 309.4, MSE: 218更多信息在模型的“报告”属性。

更多关于

全部展开

算法

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

版本历史

在R2007a中引入

全部展开