nlhw

估算的Hammerstein-Wiener模型

描述

例子

SYS= nlhw(数据,命令)创建并使用所述估计数据,模型订单和延迟,并且默认分段线性函数作为输入,并输出非线性估计估计的Hammerstein-Wiener模型。

例子

SYS= nlhw(数据,命令,InputNL,OutputNL)指定InputNLOutputNL分别作为输入和输出非线性估计量。

例子

SYS= nlhw(数据,LinModel)使用一个线性模型来指定模型的阶数和延迟,以及输入和输出非线性估计器的默认分段线性函数。

例子

SYS= nlhw(数据,LinModel,InputNL,OutputNL)指定InputNLOutputNL分别作为输入和输出非线性估计量。

例子

SYS= nlhw(数据,sys0)提炼或估计一个的Hammerstein-Wiener模型的参数,sys0,使用估计数据。

使用此语法:

  • 更新之前估计的模型的参数,以提高对估计数据的拟合。在这种情况下,估计算法使用的参数sys0作为初始猜测。

  • 估计以前使用创建的模型的参数idnlhw构造函数。在此之前的估计,你可以配置使用点符号模型属性。

例子

SYS= nlhw(___,选项)指定额外的模型估计选项。用选项与任何以前的语法。

例子

全部折叠

负载iddata3M1 = nlhw(Z3,[4 2 1]);

加载数据。

负载twotankdata;Z = IDDATA(Y,U,0.2%,“名字”,“两舱系统”);Z1 = Z(1:1000);

具有0下限和5上限创建一个饱和对象。

InputNL =饱和度('LinearInterval',[0 5]);

无输出非线性的估计模型。

米= nlhw(Z1,[2 3 0],InputNL,[]);

生成自定义网络非线性需要一个用户定义的单元的功能的定义。

定义单元功能,并将其保存为gaussunit.m

%2015年版权所有MathWorks公司功能并[f,G,A] = gaussunit(X)F = EXP(-x * X。);如果1 g = -2*x.*f;一个= 0.2;结束

属性创建自定义网络非线性gaussunit函数。

H = @gaussunit;CNET的= customnet(H);

加载估计数据。

负载twotankdata;Z = IDDATA(Y,U,0.2%,“名字”,“两舱系统”);Z1 = Z(1:1000);

估计使用自定义网络的Hammerstein-Wiener模型。

米= nlhw(Z1,[5 1 3],CNET,[]);

估计线性模型OE。

负载throttledata.matTR = getTrend(ThrottleData);Tr.OutputOffset = 15;DetrendedData =消除趋势(ThrottleData,TR);选择= oeOptions('焦点',“模拟”);线性模型= OE(DetrendedData,[1 2 1],优化);

估计哈默斯汀-维纳模型使用OE模型作为它的线性成分和饱和作为它的输出非线性。

SYS = nlhw(ThrottleData,线性模型,[]'饱和');

加载估计数据。

负载iddata1

通过构建的Hammerstein-Wiener模型idnlhw以限定的模型属性BF

sys0 = idnlhw ((2 2 0), [],'wavenet');sys0。B{1} = [0.8,1]; sys0.F{1} = [1,-1.2,0.5];

估计模型。

SYS = nlhw(Z1,sys0);

使用估计的Hammerstein-Wiener模型nlhw以限定的模型属性BF

sys2 = nlhw (z1 (2 2 0), [],'wavenet','B',{[0.8,1]},'F',{1,-1.2,0.5});

比较两个估计的模型,看看它们是等价的。

比较(Z1,SYS,'G'sys2,'R--');

估计一个Hammerstein-Wiener模型。

负载iddata3SYS = nlhw(Z3,[4 2 1],'sigmoidnet','wavenet');

细化模型,SYS

sys = nlhw (z3、sys);

创建估计选项集nlhw到视野估计进展和最大迭代步骤设定为50。

选择= nlhwOptions;opt.Display =“上”;opt.SearchOptions。MaxIterations = 50;

加载数据并估计模型。

负载iddata3SYS = nlhw(Z3,[4 2 1],'sigmoidnet','盲区',选择);

输入参数

全部折叠

时域估计数据,指定为IDDATA

顺序和线性子系统传递函数的延迟,指定为(nb nf nk)向量。

的尺寸命令:

  • 对于SISO传递函数,命令是正整数的向量。

    NB是零加1的数量,NF是极数,以及NK为输入延迟。

  • 对于具有MIMO传输函数nu输入和ny输出,命令是矩阵的向量。

    NB,NFNKny-通过-nu矩阵,其i j个条目指定从订单和传递函数的延迟j个输入到个输出。

输入静态非线性估计器,指定如下之一。

“pwlinear”要么pwlinear对象
(默认)
分段线性函数
'sigmoidnet'要么sigmoidnet对象 乙状结肠网络
'wavenet'要么wavenet对象 小波网络
'饱和'要么饱和对象 饱和
'盲区'要么死区对象 死区
'poly1d'要么poly1d对象 一维多项式
'unitgain'要么[]要么unitgain对象 单位增益
customnet对象 自定义网络 - 以类似sigmoidnet,但与用户定义的替换为S形函数。

指定字符载体,例如'sigmoidnet',创建具有默认设置的非线性估计对象。使用对象表示,而不是配置非线性估计的性能。

InputNL = wavenet;InputNL.NumberOfUnits = 10;

另外,使用与名称 - 值对的参数相关联的输入非线性估计功能。

InputNL = wavenet('单位的数量',10);

nu输入通道,可以分别指定非线性估计用于通过设定每个输入通道InputNLnu×1阵列非线性估计量。

InputNL = [sigmoidnet('单位的数量',5);死区([ -  1,2])]
若要为所有输入指定相同的非线性,请指定单个输入非线性估计器。

输出静态非线性估计,指定为下列之一:

“pwlinear”要么pwlinear对象
(默认)
分段线性函数
'sigmoidnet'要么sigmoidnet对象 乙状结肠网络
'wavenet'要么wavenet对象 小波网络
'饱和'要么饱和对象 饱和
'盲区'要么死区对象 死区
'poly1d'要么poly1d对象 一维多项式
'unitgain'要么[]要么unitgain对象 单位增益
customnet对象 自定义网络 - 以类似sigmoidnet,但与用户定义的替换为S形函数。

指定字符向量创建具有默认设置的非线性估计对象。使用对象表示,而不是配置非线性估计的性能。

OutputNL = sigmoidnet;OutputNL。NumberOfUnits = 10;

另外,使用与名称 - 值对的参数相关联的输入非线性估计功能。

OutputNL = sigmoidnet('单位的数量',10);

ny输出通道,您可以通过设置为每个输出通道分别指定非线性估计器OutputNLny×1阵列非线性估计量。要指定所有输出相同的非线性,指定单个输出非线性估计。

离散时间线性模型用于指定线性子系统,指定为以下一种:

  • 输出误差(OE)结构的输入 - 输出多项式模型(idpoly)

  • 状态空间模型,没有干扰分量(中的难点K=0)

  • 传递函数模型(idtf)

通常情况下,你使用估计模型OE,N4SID, 要么tfest

的Hammerstein-Wiener模型,指定为idnlhw目的。sys0可以是:

  • 先前创建的模型idnlhw指定模型属性。

  • 使用先前估计的模型nlhw,你想用一个新的估计数据集进行更新。

    你也可以改进sys0使用原始估计数据集。如果在数值搜索陷入代价函数的局部极小值时,先前的估计停止,则使用初始化到第一随机化的参数sys0。看到sys0.Report.Termination停止搜索的条件。使用初始化不能保证在进一步细化时得到更好的解决方案。

估计选项的Hammerstein-Wiener模型识别,指定为nlhwOptions选项集。

输出参数

全部折叠

估计Hammerstein-Wiener模型,返回作为一个idnlhw目的。该模型是使用指定模型订单和延迟,输入和输出的非线性估计,和估计选项估计。

关于所使用的估计结果和选项的信息存储在报告模型的属性。报告具有以下字段:

报告字段 描述
状态

的模型状态,其指示该模型是否是由结构创建或通过估计获得摘要。

方法

使用估计命令。

适合

定量评估的估计,返回作为一个结构。看到损失函数和模型质量度量对这些质量度量的更多信息。该结构具有以下字段:

描述
FitPercent

归根的模型的响应如何适合评价数据均方误差(NRMSE)测量,表示为百分比适合= 100(1-NRMSE)。

LossFcn

估计完成时损失函数的值。

MSE

模型的响应如何适合评价数据均方误差(MSE)的措施。

消防工程

该模型最终预测误差。

另类投资会议

原赤池信息量准则(AIC)模型质量的措施。

AICC

小样本大小的修正AIC。

NAIC

标准化AIC。

BIC

贝叶斯信息标准(BIC)。

参数

模型参数估计值。

OptionsUsed

用于估计选项设置。如果尚未配置自定义选项,这是一组的默认选项。看到nlhwOptions想要查询更多的信息。

RandState

随机数流在估计开始时的状态。空的,[],如果在估计期间未使用随机化。有关更多信息,请参见RNG在MATLAB®文档。

DataUsed

用于估计的数据,返回为具有以下字段的结构的属性:

描述
名称

数据集的名称。

类型

数据类型。

长度

数据样本的数量。

TS

样品时间。

InterSample

输入采样间的行为,返回下列值之一:

  • “zoh”-零阶保持器保持样本之间的输入信号为分段常数。

  • 'FOH'- 第一阶保持保持样本之间的分段线性输入信号。

  • 'BL'- 带限行为指明所述连续时间输入信号具有零功率高于奈奎斯特频率。

InputOffset

偏移估计在从时域输入数据中去除。对于非线性模型,它是[]

OutputOffset

偏移估计在从时域输出数据中去除。对于非线性模型,它是[]

终止

预测误差最小化迭代搜索的终止条件。结构具有以下字段:

描述
WhyStop

原因终止数值搜索。

迭代

估计算法进行搜索迭代次数。

FirstOrderOptimality

-搜索算法终止时梯度搜索向量的范数。

FcnCount

调用目标函数的次数。

UpdateNorm

在最后一次迭代的梯度搜索向量的模。省略当搜索方法'lsqnonlin'要么'fmincon'

LastImprovement

在最后一次迭代准则的改进,以百分比表示。省略当搜索方法'lsqnonlin'要么'fmincon'

算法

算法使用'lsqnonlin'要么'fmincon'搜索方法。当使用其他的搜索方法略。

对于估计方法不需要数值搜索优化,终止字段是省略。

有关更多信息,请参见评估报告

扩展功能

介绍了R2007a