主要内容

nlhw

估计Hammerstein-Wiener模型

描述

例子

sys= nlhw (数据订单使用估计数据、模型阶数和延迟,以及默认的分段线性函数作为输入和输出非线性估计,创建并估计Hammerstein-Wiener模型。

例子

sys= nlhw (数据订单InputNLOutputNL指定InputNLOutputNL分别为输入和输出非线性估计量。

例子

sys= nlhw (数据LinModel使用线性模型来指定模型的阶数和延迟,并默认分段线性函数作为输入和输出非线性估计量。

例子

sys= nlhw (数据LinModelInputNLOutputNL指定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]);

没有输出非线性的估计模型。

m = nlhw(z1,[2 3 0],InputNL,[]);

生成自定义网络非线性需要定义一个自定义单元函数。

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

版权所有2015 The MathWorks, Inc.函数[f, g, a] = gauss (x)如果Nargout >1 g = - 1 *x.*f;一个= 0.2;结束

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

H = @gaussunit;CNet = customnet (H);

加载估计数据。

负载twotankdata;z = iddata (y, u, 0.2,“名字”“两舱系统”);z1 = z (1:1000);

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

m = nlhw(z1,[5 1 3],CNet,[]);

估计线性OE模型。

负载throttledata.matTr = getTrend (ThrottleData);Tr.OutputOffset = 15;DetrendedData = dettrend (ThrottleData, Tr);选择= oeOptions (“焦点”“模拟”);线性模型= oe(DetrendedData,[1 2 1],opt);

以OE模型为线性分量,饱和作为输出非线性,估计Hammerstein-Wiener模型。

sys = nlhw (ThrottleData LinearModel, [],“饱和”);

加载估计数据。

负载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,系统,‘g’sys2,“r——”);

图中包含一个坐标轴。轴线包含3个线型对象。这些对象代表z1 (y1), sys: 70.04%, sys2: 70.04%。

估计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

线性子系统传递函数的阶数和延迟,记为a(nb nf nk)向量。

的尺寸订单

  • 对于SISO传递函数,订单是一个正整数向量。

    是0加1的个数,nf是极点数,和nk为输入延迟。

  • 对于具有的MIMO传递函数nu输入和ny输出,订单是一个矩阵的向量。

    nf,nkny——- - - - - -nu矩阵的i j第Th项指定从的传递函数的顺序和延迟j输入输出。

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

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

例如,指定字符向量“sigmoidnet”,创建具有默认设置的非线性估计器对象。使用对象表示代替配置非线性估计器的性质。

InputNL = wavenet;InputNL。NumberOfUnits = 10;

或者,使用带有名称-值对参数的相关输入非线性估计函数。

InputNL = wavenet (“NumberOfUnits”10);

nu输入通道,您可以通过设置为每个输入通道单独指定非线性估计器InputNL到一个nu-by-1非线性估计器数组。

InputNL = [sigmoidnet (“NumberofUnits”5);死区([1,2]))
要为所有输入指定相同的非线性,请指定单个输入非线性估计器。

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

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

指定字符向量将创建具有默认设置的非线性估计器对象。使用对象表示代替配置非线性估计器的性质。

OutputNL = sigmoidnet;OutputNL。NumberOfUnits = 10;

或者,使用带有名称-值对参数的相关输入非线性估计函数。

OutputNL = sigmoidnet (“NumberOfUnits”10);

ny输出通道,您可以通过设置为每个输出通道单独指定非线性估计器OutputNL到一个ny-by-1非线性估计器数组。为所有输出指定相同的非线性,请指定单个输出非线性估计器。

用于指定线性子系统的离散时间线性模型,具体如下:

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

  • 无扰动分量的状态空间模型(中的难点K0

  • 传递函数模型(idtf

通常,您使用oen4sid,或特遣部队

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

  • 先前使用idnlhw指定模型属性。

  • 先前估计使用的模型nlhw,您希望使用新的估计数据集进行更新。

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

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

输出参数

全部折叠

估计的Hammerstein-Wiener模型,返回为idnlhw对象。使用指定的模型阶数和延迟、输入和输出非线性估计器以及估计选项来估计模型。

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

报告字段 描述
状态

模型状态的总结,表明模型是通过构造创建的还是通过估计获得的。

方法

评估使用的命令。

适合

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

描述
FitPercent

归一化均方根误差(NRMSE)衡量模型响应与估计数据吻合的程度,用百分比表示适合= 100 (1-NRMSE)。

LossFcn

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

均方误差

均方误差(MSE)衡量模型响应与估计数据吻合的程度。

消防工程

模型的最终预测误差。

另类投资会议

原始赤池信息准则(AIC)对模型质量的衡量。

AICc

小样本量修正AIC。

保险代理人

标准化的另类投资会议。

BIC

贝叶斯信息准则(BIC)。

参数

模型参数估计值。

OptionsUsed

用于估计的选项集。如果没有配置自定义选项,这是一组默认选项。看到nlhwOptions为更多的信息。

RandState

估计开始时随机数流的状态。空的,[],如果在估计过程中没有使用随机化。有关更多信息,请参见rng

DataUsed

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

描述
的名字

数据集的名称。

类型

数据类型。

长度

数据样本的数量。

Ts

样品时间。

InterSample

输入样本间行为,返回为以下值之一:

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

  • “呸”-一阶保持保持样本间的分段线性输入信号。

  • “提单”—限带行为是指连续时间输入信号在奈奎斯特频率以上的功率为零。

InputOffset

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

OutputOffset

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

终止

用于最小化预测误差的迭代搜索的终止条件,返回为具有以下字段的结构:

描述
WhyStop

终止数值搜索的原因。

迭代

由估计算法执行的搜索迭代次数。

FirstOrderOptimality

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

FcnCount

调用目标函数的次数。

UpdateNorm

梯度搜索向量的范数。当搜索方法为时省略“lsqnonlin”“fmincon”

LastImprovement

最后一次迭代中的标准改进,以百分比表示。当搜索方法为时省略“lsqnonlin”“fmincon”

算法

所使用的算法“lsqnonlin”“fmincon”搜索方法。使用其他搜索方法时省略。

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

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

扩展功能

介绍了R2007a