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 (订单,InputNL,OutputNL)使用InputNLOutputNL分别作为输入和输出非线性估计量。

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

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

sys= idnlhw (LinModel,InputNL,OutputNL)指定输入和模型输出非线性估计。

sys= idnlhw (LinModel,InputNL,OutputNL,名称,值)指定的附加属性idnlhw使用一个或多个模型结构名称,值对参数。

对象描述

idnlhw表示Hammerstein-Wiener模型。的汉默斯坦 - 维纳结构表示与输入 - 输出非线性特性的线性模型。

使用nlhw命令同时构造idnlhw建立并估计模型参数。

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

idnlhw对象属性,看属性

例子

全部收缩

创建一个Hammersein-Wiener模型NBNF= 2,NK= 1。

米= idnlhw([2 2 1]);

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

米= idnlhw([2 2 1],'sigmoidnet','盲区');

以上等价于:

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

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

米= idnlhw([2 2 1],sigmoidnet(“num”,5),死区([ -  1,2]),'InputName',“伏”,“OutputName”,“时间”);

创建一个维纳模型(无输入非线性)。

m = idnlhw([2 2 1],[],'饱和');

估计模型。

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

构造一个OE结构的输入输出多项式模型。

B = [0.8 1];F = [1 -1.2 0.5];线性模型= idpoly(1,B,1,1,F,'TS',0.1);

使用OE模型作为其直线成分构造的Hammerstein-Wiener模型。

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

输入参数

全部收缩

线性子系统传递函数的阶次和延迟,指定为a(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,但使用用户定义的sigmoid函数替换。

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

InputNL = wavenet;InputNL。NumberOfUnits = 10;

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

InputNL = wavenet (“NumberOfUnits”,10);

nu输入通道,可以分别指定非线性估计用于通过设定每个输入通道InputNLnu×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输出通道,您可以通过设置为每个输出通道分别指定非线性估计器OutputNLny×1阵列非线性估计量。要指定所有输出相同的非线性,指定单个输出非线性估计。

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

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

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

  • 传递函数模型(idtf)

通常,您使用OE,N4SID,或tfest

名称 - 值对参数

的可选逗号分隔对名称,值参数。的名字参数名和是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

名称,值参数指定其他性能idnlhw模型创建过程中的模型。例如,m = idnlhw ((1 2 3),‘pwlinear’,‘wavenet’,‘InputName’,‘伏’,‘t’, 0.1)创建一个idnlhw与输入非线性估算器模型对象“pwlinear”,输出非线性估计'wavenet',输入名称,和的采样时间0.1秒。

属性

idnlhw对象属性包括:

nb、nf nk

线性子系统传递函数的阶数和时滞,其中NB是零加1的数量,NF是极数,以及NK是输入延迟。

为MIMO传递函数nu输入和ny输出,NB,NFNKny-通过-nu矩阵的i j个条目指定从订单和传递函数的延迟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输入通道,可以分别指定非线性估计用于通过设定每个输入通道InputNLnu×1阵列非线性估计量。若要为所有输入指定相同的非线性,请指定单个输入非线性估计器。

默认值:“pwlinear”

OutputNonlinearity

输出非线性估算器,指定为以下情况之一:

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

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

OutputNonlinearity = sigmoidnet;OutputNonlinearity。NumberOfUnits = 10;

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

OutputNonlinearity = sigmoidnet(“NumberOfUnits”,10);

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

默认值:“pwlinear”

线性模型

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

报告

的摘要报告,其中包含关于评估选项和模型评估结果的信息nlhw命令。用报告查询一个模型如何估计,包括:

  • 估算方法

  • 估计选项

  • 搜索终止条件

  • 估计数据符合

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

米= idnlhw([2 2 1]);m.Report.OptionsUsed
ANS = []

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

负载iddata1;m = nlhw(z1,[2 2 1],“pwlinear”);m.Report.OptionsUsed
InitialCondition: '零' 显示:用于nlhw命令选项集 '断开' 正则化:[1x1的结构] SearchMethod: '自动' SearchOption:[1x1的idoptions.search.identsolver] OutputWeight: '噪声' 高级:[1x1的结构]

报告是只读属性。

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

TimeVariable

为输入,输出自变量,和当可用内部状态,指定为字符向量。

默认值:“t”

NoiseVariance

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

Ts

样品时间。Ts是表示采样周期的正标量。该值在由指定为单位表示TIMEUNIT模型的属性。

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

默认值:1

TIMEUNIT

时间变量的单位,采样时间Ts和模型中的任何时间延迟,指定为下列值之一:

  • “纳秒”

  • 微秒的

  • “毫秒”

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

更改此属性对其他性能没有影响,因此改变了整个系统的行为。用chgTimeUnit在时间单位之间转换而不改变系统的行为。

默认值:“秒”

InputName

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

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

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

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

sys.InputName = '控制';

输入名称自动扩展到{ '对照(1)'; '控制(2)'}

当你估算模型使用IDDATA目的,数据,软件会自动设置InputNamedata.InputName

您可以使用速记符号u指代InputName财产。例如,sys.u相当于sys.InputName

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

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

  • 提取MIMO系统的子系统

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

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

InputUnit

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

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

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

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

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

InputGroup

输入通道组。的InputGroup属性可以指定MIMO系统的输入通道进行分组,并通过名称来引用每个组。指定输入的基团的结构。在这种结构中,字段名是组名称和字段值是属于各组的输入通道。例如:

sys.InputGroup。控制=[1 2]; sys.InputGroup.noise = [3 5];

创建输入组,名为控制噪声包括输入信道1,分别为2和3,图5,。然后,您可以从中提取子系统控制输入到使用所有输出:

sys(:,“控制”)

默认值:没有域结构

OutputName

输出通道名称,指定为以下名称之一:

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

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

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

sys.OutputName='测量';

输出名称自动扩展到{ '测量(1)'; '测量(2)'}

当你估算模型使用IDDATA目的,数据,软件会自动设置OutputNamedata.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.Notes =“SYS1有一个字符串。”;sys2.Notes =sys2有一个字符向量;sys1。指出sys2.Notes
"sys1有一个字符串" ."

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

用户数据

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

默认值:[]

输出参数

全部收缩

Hammerstein-Wiener模型idnlhw对象。使用指定的模型命令和延迟,输入和输出的非线性估计,和属性创建这种模式。

更多关于

全部收缩

Hammerstein-Wiener模型结构

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

哪里,

  • f转换输入数据的非线性函数是什么u(t)作为w(t)=f(u(t))

    w(t)为内变量,为输入非线性块的输出,与u(t)。

  • B / F一个线性传递函数能变换吗w(t)作为x(t)= (B / F)w(t)

    x(t)是一个内部变量,是线性块的输出,与y(t)。

    BF与线性输出误差模型中的多项式相似。有关输出错误模型的更多信息,请参见什么是多项式模型?

    纽约输出和NU输入时,线性块是包含项的传递函数矩阵:

    B j , ( ) F j , ( )

    在哪里j=1,2,...,NY=1,2,...,NU

  • h是一个非线性函数映射线性块的输出x(t)到系统输出y(t)作为y(t)=h(x(t))

因为f作用于线性块的输入端口上,该功能被称为输入非线性。同样,由于h作用于线性块的输出端口上,该功能被称为输出非线性。如果系统包含多个输入和输出,则必须定义函数fh每个输入和输出信号。您不必包括输入和模型结构的非线性输出。当一个模型只包含输入非线性f,它叫做a汉默斯坦模型。同样,当模型只包含输出非线性h,它叫做a维纳模型。

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

  1. 计算w(t)=f(u(t))从输入数据。

    w(t)是输入到线性传递函数B / F

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

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

  2. 使用。计算线性块的输出w(t)和初始条件:x(t)= (B / F)w(t)。

    您可以通过指定分子的订单配置线性块B和分母F

  3. 通过变换线性块的输出计算所述模型输出x(t)使用非线性函数h作为y(t)=h(x(t)).

    类似于输入非线性,输出的非线性是一个静态函数。您可以在相同的方式输入非线性配置输出非线性。您还可以删除输出非线性,使得y(t)=x(t)。

导致模型idnlhw存储所有的模型数据,包括模型参数和非线性估计对象。有关这些对象的详细信息,请参阅非线性模型结构

的定义idnlhw状态

一个的Hammerstein-Wiener模型对应于在模型结构中的线性块的状态的状态。线性块包含该模型的所有动态元素。如果线性块不是状态空间结构,所述状态被定义为那些模型的MSS,在那里MSS = IDSS(Model.LinearModel)模型是个idnlhw对象。

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

介绍了R2007a