主要内容

idnlhw

Hammerstein-Wiener模型

语法

sys = idnlhw(订单)
sys = idnlhw(订单、InputNL OutputNL)
sys = idnlhw(订单、InputNL OutputNL、名称、值)
sys = idnlhw (LinModel)
sys = idnlhw (LinModel InputNL OutputNL)
sys = idnlhw (LinModel InputNL OutputNL,名称,值)

描述

sys= idnlhw (订单使用分段线性函数作为输入和输出非线性估计器,建立具有指定阶数的Hammerstein-Wiener模型。

sys= idnlhw (订单InputNLOutputNL使用InputNLOutputNL分别为输入和输出非线性估计量。

sys= idnlhw (订单InputNLOutputNL名称,值属性的附加属性idnlhw模型结构使用一个或多个名称,值对参数。

sys= idnlhw (LinModel使用线性模型LinModel为输入和输出非线性估计量指定模型阶数和默认分段线性函数。

sys= idnlhw (LinModelInputNLOutputNL指定模型的输入和输出非线性估计量。

sys= idnlhw (LinModelInputNLOutputNL名称,值属性的附加属性idnlhw模型结构使用一个或多个名称,值对参数。

对象描述

idnlhw表示Hammerstein-Wiener模型。的Hammerstein-Wiener结构表示具有输入-输出非线性的线性模型。

使用nlhw命令来构造一个idnlhw对象并估计模型参数。

你也可以用theidnlhw构造函数来创建Hammerstein-Wiener模型,然后使用nlhw

idnlhw对象属性,看属性

例子

全部折叠

用。创建一个Hammersein-Wiener模型nf= 2,nk= 1。

M = idnlhw([2 2 1]);

具有分段线性输入和非线性输出。

M = idnlhw([2 2 1],“sigmoidnet”“死区”);

上述内容相当于:

M = idnlhw([2 2 1],“团体”“死”);

指定的非线性具有默认配置。

M = idnlhw([2 2 1],s)“num”5),死区([1,2]),“InputName”“伏”“OutputName”“时间”);

创建Wiener模型(无输入非线性)。

M = idnlhw([2 2 1],[],“饱和”);

估计模型。

负载iddata1;m = nlhw (z1, m);

建立OE结构的投入产出多项式模型。

B = [0.8 1];F = [1 -1.2 0.5];LinearModel = idpoly (F 1, B, 1, 1,“t”, 0.1);

以OE模型为线性分量构建Hammerstein-Wiener模型。

m1 = idnlhw (LinearModel,“饱和”[],“InputName”“控制”);

输入参数

全部折叠

线性子系统传递函数的阶数和延迟,记为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,或特遣部队

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

使用名称,值参数指定附加的属性idnlhw模型创建期间的模型。例如,m = idnlhw((1 2 3),‘pwlinear’,‘wavenet’,‘InputName’,‘伏’,‘t’,0.1)创建一个idnlhw模型对象与输入非线性估计“pwlinear”,输出非线性估计器“wavenet”,输入名字的样本时间0.1秒。

属性

idnlhw对象属性包括:

nb、nf nk

对线性子系统传递函数的阶数和时延进行建模,其中是0加1的个数,nf是极点数,和nk为输入延迟。

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

B

B线性块的多项式模型结构,指定为单元格数组ny——- - - - - -nu元素,ny输出的数量是和吗nu为输入的个数。一个元素B {i, j}行向量是否表示分子多项式jth输入输出传递函数。元素包含nk前导零,nk是输入延迟的个数。

F

F线性块的多项式模型结构,指定为单元格数组ny——- - - - - -nu元素,ny输出的数量是和吗nu为输入的个数。一个元素F {i, j}行向量是否表示分母多项式jth输入输出传递函数。

InputNonlinearity

输入非线性估计量,指定为:

“pwlinear”pwlinear对象
(默认)
分段线性函数
“sigmoidnet”sigmoidnet对象 乙状结肠网络
“wavenet”wavenet对象 小波网络
“饱和”饱和对象 饱和
“死区”死区对象 死区
“poly1d”poly1d对象 一个- - - - - -
维多项式
“unitgain”[]unitgain对象 单位增益
customnet对象 自定义网络

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

InputNonlinearity = wavenet;InputNonlinearity。NumberOfUnits = 10;

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

InputNonlinearity = wavenet (“NumberOfUnits”10);

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

默认值:“pwlinear”

OutputNonlinearity

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

“pwlinear”pwlinear对象
(默认)
分段线性函数
“sigmoidnet”sigmoidnet对象 乙状结肠网络
“wavenet”wavenet对象 小波网络
“饱和”饱和对象 饱和
“死区”死区对象 死区
“poly1d”poly1d对象 一个- - - - - -
维多项式
“unitgain”[]unitgain对象 单位增益
customnet对象 自定义网络

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

OutputNonlinearity = sigmoidnet;OutputNonlinearity。NumberOfUnits = 10;

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

OutputNonlinearity = sigmoidnet (“NumberOfUnits”10);

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

默认值:“pwlinear”

LinearModel

线性模型在线性块模型结构中,表示为idpoly对象。此属性为只读。

报告

属性估计模型时,包含有关估计选项和结果的信息的摘要报告nlhw命令。使用报告查询模型是如何估计的,包括:

  • 估算方法

  • 估计选项

  • 搜索终止条件

  • 估计数据符合

的内容报告如果模型是通过构造创建的,则不相关。

M = idnlhw([2 2 1]);m.Report.OptionsUsed
ans = []

如果你使用nlhw为了估计模型,字段报告包含关于估计数据、选项和结果的信息。

负载iddata1;M = nlhw(z1,[2 2 1],[],“pwlinear”);m.Report.OptionsUsed
设置nlhw命令的选项:InitialCondition: 'zero' Display: 'off' Regularization: [1x1 struct] SearchMethod: 'auto' SearchOption: [1x1 idoptions.search.]identsolver输出:'noise'高级:[1x1 struct]

报告是只读属性。

有关此属性及其使用方法的更多信息,请参见输出参数nlhw参考页面和评估报告

TimeVariable

输入、输出和可用时内部状态的独立变量,指定为字符向量。

默认值:“t”

NoiseVariance

噪声方差(协方差矩阵)的模型创新e
可赋值是纽约——- - - - - -纽约矩阵。
通常由估计算法自动设置。

Ts

样品时间。Ts为表示采样周期的正标量。的指定的单元表示该值TimeUnit模型的属性。

更改此属性不会离散或重新取样模型。

默认值:1

TimeUnit

单位为时间变量,即样本时间Ts,以及模型中的任何时间延迟,指定为以下值之一:

  • “纳秒”

  • 微秒的

  • 的毫秒

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

更改此属性不会影响其他属性,因此会更改整个系统行为。使用chgTimeUnit(控制系统工具箱)在不改变系统行为的情况下在时间单位之间进行转换。

默认值:“秒”

InputName

输入通道名称,指定为下列之一:

  • 字符向量——例如,对于单输入模型,“控制”

  • 字符向量的单元阵列-用于多输入模型。

或者,使用自动向量展开为多输入模型分配输入名称。例如,如果sys是一个双输入模型,输入:

sys。InputName =“控制”;

输入名称自动展开为{“控制(1)”,“控制”(2)}

当你用iddata对象,数据,软件自动设定InputName数据。InputName

你可以使用速记符号u参考InputName财产。例如,sys.u相当于sys。InputName

输入通道名有几种用途,包括:

  • 在模型显示和图表上识别通道

  • MIMO系统子系统的提取

  • 在连接模型时指定连接点

默认值:''对于所有输入通道

InputUnit

输入通道单位,指定为下列单位之一:

  • 字符向量——例如,对于单输入模型,“秒”

  • 字符向量的单元阵列-用于多输入模型。

使用InputUnit跟踪输入信号单元。InputUnit对系统行为没有影响。

默认值:''对于所有输入通道

InputGroup

输入通道组。的InputGroup属性允许您将MIMO系统的输入通道分配到组中,并按名称引用每个组。将输入组指定为结构。在这个结构中,字段名是组名,字段值是属于每个组的输入通道。例如:

sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3 5];

创建名为控制噪音分别包括输入通道1 2和3 5。然后您可以从控制输入到所有输出,使用:

sys(:,“控制”)

默认值:没有字段的结构体

OutputName

输出通道名称,指定为以下任意一个:

  • 字符向量-用于单输出模型。例如,“测量”

  • 字符向量的单元阵列-用于多输出模型。

或者,使用自动向量展开为多输出模型分配输出名称。例如,如果sys是一个双输出模型,输入:

sys。OutputName =“测量”;

输出名称自动展开为{“测量(1)”,“测量”(2)}

当你用iddata对象,数据,软件自动设定OutputName数据。OutputName

你可以使用速记符号y参考OutputName财产。例如,sys.y相当于sys。OutputName

输出通道名称有几种用途,包括:

  • 在模型显示和图表上识别通道

  • MIMO系统子系统的提取

  • 在连接模型时指定连接点

默认值:''对于所有输出通道

OutputUnit

输出通道单位,指定为下列单位之一:

  • 字符向量-用于单输出模型。例如,“秒”

  • 字符向量的单元阵列-用于多输出模型。

使用OutputUnit跟踪输出信号单元。OutputUnit对系统行为没有影响。

默认值:''对于所有输出通道

OutputGroup

输出通道组。的OutputGroup属性允许您将MIMO系统的输出通道分配到组中,并按名称引用每个组。将输出组指定为结构。在这个结构中,字段名是组名,字段值是属于每个组的输出通道。例如:

sys.OutputGroup.temperature = [1];sys.InputGroup.measurement = [3 5];

创建名为温度测量分别包括输出通道1、3、5。然后可以从所有的输入中提取子系统测量输出使用:

系统(“测量”,:)

默认值:没有字段的结构体

的名字

系统名,指定为字符向量。例如,“system_1”

默认值:''

笔记

希望与系统关联的任何文本,存储为字符串或字符向量单元格数组。该属性存储您提供的任何数据类型。例如,如果sys1sys2是动态系统模型,可以设置它们吗笔记属性如下:

sys1。笔记="sys1有一个字符串。";sys2。笔记=sys2有一个字符向量。;sys1。笔记sys2。笔记
Ans = ' sys1 has a string. ' Ans = 'sys2 has a character vector.'

默认值:(0×1的字符串)

用户数据

您想要与系统关联的任何类型的数据,指定为任何MATLAB®数据类型。

默认值:[]

输出参数

全部折叠

Hammerstein-Wiener模型,返回为idnlhw对象。这个模型是使用指定的模型阶数和延迟、输入和输出非线性估计量以及特性创建的。

更多关于

全部折叠

Hammerstein-Wiener模型结构

这个框图表示了Hammerstein-Wiener模型的结构:

在那里,

  • f是一个转换输入数据的非线性函数吗ut),wt) =fut))

    wt)是一个内部变量,是输入非线性块的输出,与输入非线性块的维数相同ut).

  • B / F是一个变换的线性传递函数吗wt),xt) = (B / Fwt

    xt)是一个内部变量,是线性块的输出,与线性块具有相同的维数yt).

    BF类似于线性输出误差模型中的多项式。有关Output-Error模型的更多信息,请参见什么是多项式模型?

    纽约输出和ν输入时,线性块是一个传递函数矩阵,包含以下项:

    B j F j

    在哪里j1、2、…,纽约1、2、…,怒

  • h是一个非线性函数映射线性块的输出吗xt)输入系统输出yt),yt) =hxt))

因为f作用于线性块的输入端口,此函数称为输入非线性.同样的,因为h作用于线性块的输出端口,此函数称为输出非线性.如果您的系统包含多个输入和输出,则必须定义函数fh对于每个输入和输出信号。您不必在模型结构中同时包含输入和输出非线性。当模型只包含输入非线性时f,它被称为a汉默斯坦模型。类似地,当模型只包含输出非线性时h,它被称为a维纳模型。

该软件计算Hammerstein-Wiener模型的输出y在三个阶段:

  1. 计算wt) =fut))从输入数据。

    wt)为线性传递函数的输入B / F

    输入非线性为静态(无记忆)函数,其中输出值为给定时间t只取决于当时的输入值t

    你可以配置输入非线性为一个sigmoid网络,小波网络,饱和,死区,分段线性函数,一维多项式,或自定义网络。你也可以去掉输入非线性。

  2. 使用,计算线性块的输出wt)和初始条件:xt) = (B / Fwt).

    你可以通过指定分子的顺序来配置线性块B和分母F

  3. 通过变换线性块的输出来计算模型输出xt),使用非线性函数h作为yt) =hxt)).

    与输入非线性相似,输出非线性也是一个静态函数。你可以用与输入非线性相同的方式配置输出非线性。您还可以删除输出非线性,如yt) =xt).

生成的模型idnlhw对象,存储所有模型数据,包括模型参数和非线性估计器。有关这些对象的更多信息,请参见非线性模型结构

的定义idnlhw

Hammerstein-Wiener模型的状态对应于模型结构中线性块的状态。线性块包含模型的所有动态元素。如果线性块不是状态空间结构,则将状态定义为模型的状态海量存储系统(Mss)中,在那里海量存储系统(Mss)中= ids (Model.LinearModel)模型idnlhw对象。

Hammerstein-Wiener模型的模拟、预测和线性化需要状态。指定初始状态:

介绍了R2007a