从单输入/单输出(SISO)数据中估计和验证非线性模型,以找到最能代表系统动态的模型。gydF4y2Ba
完成本教程后,您将能够使用gydF4y2Ba系统识别gydF4y2Ba应用:gydF4y2Ba
从MATLAB中导入数据对象gydF4y2Ba®gydF4y2Ba将工作区放入应用程序中。gydF4y2Ba
根据数据估计和验证非线性模型。gydF4y2Ba
绘制并分析非线性的行为。gydF4y2Ba
本教程使用数据文件gydF4y2Batwotankdata.matgydF4y2Ba
,其中包含双油箱系统的SISO时域数据,如下图所示。gydF4y2Ba
槽式系统gydF4y2Ba
在双水箱系统中,水通过管道流入水箱1,排入水箱2,并通过水箱2底部的小孔离开系统。测量的输入gydF4y2Bau (t)gydF4y2Ba给系统的电压是施加给泵的电压,使水进入水箱1(伏)。测量输出gydF4y2Bay (t)gydF4y2Ba是下部水箱中水的高度(单位:米)。gydF4y2Ba
根据伯努利定律(即流经水箱底部小孔的水流与水箱内的水位呈非线性关系),可以预期输入数据和输出数据之间的关系是非线性的。gydF4y2Ba
twotankdata.matgydF4y2Ba
包括3000个样品,样品时间为0.2 s。gydF4y2Ba
您可以对单输出和多输出时域数据估计非线性离散黑盒模型。你可以从两种类型的非线性黑盒模型结构中选择:gydF4y2Ba
非线性ARX模型gydF4y2Ba
Hammerstein-Wiener模型gydF4y2Ba
请注意gydF4y2Ba
您可以仅从输入/输出数据估计Hammerstein-Wiener黑盒模型。这些模型不支持没有输入的时间序列数据。金宝appgydF4y2Ba
有关估计非线性黑盒模型的更多信息,请参见gydF4y2Ba非线性模型辨识gydF4y2Ba.gydF4y2Ba
非线性ARX模型由模型回归器和输出函数组成。输出函数包括作用于模型回归函数的线性和非线性函数,以给出模型输出和该输出的固定偏移量。该方框图表示仿真场景中非线性ARX模型的结构。gydF4y2Ba
该软件计算非线性ARX模型输出gydF4y2BaygydF4y2Ba分两个阶段:gydF4y2Ba
它根据当前和过去的输入值以及过去的输出数据计算回归值。gydF4y2Ba
在最简单的情况下,回归量是延迟的输入和输出,例如gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba1)和gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba3)。这种回归量叫做gydF4y2Ba线性解释变量gydF4y2Ba.函数指定线性回归函数gydF4y2BalinearRegressorgydF4y2Ba
对象。您还可以通过使用线性ARX模型顺序作为输入参数来指定线性回归器。有关更多信息,请参见gydF4y2Ba非线性ARX模型的阶数与时滞gydF4y2Ba.然而,第二种方法将你的回归函数集限制为连续延迟的线性回归函数。创建gydF4y2Ba多项式解释变量gydF4y2Ba,使用gydF4y2BapolynomialRegressorgydF4y2Ba
对象。你也可以指定gydF4y2Ba自定义的解释变量gydF4y2Ba,它们是延迟输入和输出的非线性函数。例如,gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba1)gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba-3)是一个自定义回归器,它将输入和输出实例相乘。属性指定自定义回归器gydF4y2BacustomRegressorgydF4y2Ba
对象。gydF4y2Ba
您可以将任何回归函数作为输入分配给输出函数的线性函数块,非线性函数块,或两者兼有。gydF4y2Ba
它使用输出函数块将回归函数映射到模型输出。输出函数块可以并行地包括线性和非线性块。例如,考虑下面的方程:gydF4y2Ba
在这里,gydF4y2BaxgydF4y2Ba是回归量的向量,和gydF4y2BargydF4y2Ba的均值gydF4y2BaxgydF4y2Ba.gydF4y2Ba 是线性函数块的输出。gydF4y2Ba 表示非线性函数块的输出。gydF4y2Ba问gydF4y2Ba是一个投影矩阵,使计算条件良好。gydF4y2BadgydF4y2Ba是添加到线性和非线性块的组合输出中的标量偏移量。确切的形式gydF4y2BaFgydF4y2Ba(gydF4y2BaxgydF4y2Ba)取决于你选择的输出函数。您可以从gydF4y2Ba可用的映射对象gydF4y2Ba如树划分网络、小波网络、多层神经网络等。您还可以从输出函数中排除线性或非线性函数块。gydF4y2Ba
在估计非线性ARX模型时,该软件计算模型参数值,例如gydF4y2BalgydF4y2Ba,gydF4y2BargydF4y2Ba,gydF4y2BadgydF4y2Ba,gydF4y2Ba问gydF4y2Ba等参数指定gydF4y2BaggydF4y2Ba.gydF4y2Ba
所得到的非线性ARX模型为gydF4y2BaidnlarxgydF4y2Ba
对象,其中存储所有模型数据,包括模型回归器和输出函数的参数。有关这些对象的详细信息,请参见gydF4y2Ba非线性模型结构gydF4y2Ba.gydF4y2Ba
下图代表了Hammerstein-Wiener模型的结构:gydF4y2Ba
在那里,gydF4y2Ba
fgydF4y2Ba转换输入数据的是非线性函数吗gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba),gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BafgydF4y2Ba(gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba))gydF4y2Ba.gydF4y2Ba
wgydF4y2Ba(gydF4y2BatgydF4y2Ba)是一个内部变量,是Input Nonlinearity块的输出,与Input nonlinear块的维数相同gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba).gydF4y2Ba
B / FgydF4y2Ba变换是线性传递函数吗gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba),gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba) = (gydF4y2BaB / FgydF4y2Ba)gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba)gydF4y2Ba.gydF4y2Ba
xgydF4y2Ba(gydF4y2BatgydF4y2Ba),是一个内部变量,是Linear块的输出,与gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba).gydF4y2Ba
BgydF4y2Ba而且gydF4y2BaFgydF4y2Ba类似于线性输出误差模型中的多项式。有关输出错误模型的更多信息,请参见gydF4y2Ba什么是多项式模型?gydF4y2Ba.gydF4y2Ba
为gydF4y2Ba纽约gydF4y2Ba输出和gydF4y2BaνgydF4y2Ba输入,线性块为传递函数矩阵,包含项:gydF4y2Ba
在哪里gydF4y2BajgydF4y2Ba=gydF4y2Ba1、2、…,纽约gydF4y2Ba
而且gydF4y2Ba我gydF4y2Ba=gydF4y2Ba1、2、…,怒gydF4y2Ba
.gydF4y2Ba
hgydF4y2Ba映射线性块输出的是非线性函数吗gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba)输入系统输出gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba),gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BahgydF4y2Ba(gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba))gydF4y2Ba.gydF4y2Ba
因为gydF4y2BafgydF4y2Ba作用于线性块的输入端口,此函数称为gydF4y2Ba输入非线性gydF4y2Ba.同样的,因为gydF4y2BahgydF4y2Ba作用于线性块的输出端口,此函数称为gydF4y2Ba输出非线性gydF4y2Ba.如果您的系统包含多个输入和输出,则必须定义函数gydF4y2BafgydF4y2Ba而且gydF4y2BahgydF4y2Ba对于每个输入和输出信号。您不必在模型结构中同时包含输入和输出非线性。当一个模型只包含输入非线性时gydF4y2BafgydF4y2Ba,叫做agydF4y2Ba汉默斯坦gydF4y2Ba模型。类似地,当模型只包含输出非线性时gydF4y2BahgydF4y2Ba,叫做agydF4y2Ba维纳gydF4y2Ba模型。gydF4y2Ba
该软件计算Hammerstein-Wiener模型输出gydF4y2BaygydF4y2Ba分三个阶段:gydF4y2Ba
计算gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BafgydF4y2Ba(gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba))。gydF4y2Ba
wgydF4y2Ba(gydF4y2BatgydF4y2Ba)是线性传递函数的输入gydF4y2BaB / FgydF4y2Ba.gydF4y2Ba
输入非线性是静态的(gydF4y2Ba无记忆gydF4y2Ba)函数,其中输出的值在给定的时间gydF4y2BatgydF4y2Ba只取决于当时的输入值gydF4y2BatgydF4y2Ba.gydF4y2Ba
您可以将输入非线性配置为sigmoid网络、小波网络、饱和、死区、分段线性函数、一维多项式或自定义网络。您还可以删除输入非线性。gydF4y2Ba
计算线性块的输出gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba)和初始条件:gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba) = (gydF4y2BaB / FgydF4y2Ba)gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba).gydF4y2Ba
可以通过指定分子的阶数来配置线性块gydF4y2BaBgydF4y2Ba和分母gydF4y2BaFgydF4y2Ba.gydF4y2Ba
通过转换线性块的输出计算模型输出gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba)使用非线性函数gydF4y2BahgydF4y2Ba作为gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BahgydF4y2Ba(gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba))。gydF4y2Ba
与输入非线性相似,输出非线性是一个静态函数。您可以用与输入非线性相同的方式配置输出非线性。您还可以删除输出非线性,例如gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba).gydF4y2Ba
得到的模型如下gydF4y2BaidnlhwgydF4y2Ba
存储所有模型数据的对象,包括模型参数和非线性估计器。有关这些对象的详细信息,请参见gydF4y2Ba非线性模型结构gydF4y2Ba.gydF4y2Ba
加载样例数据gydF4y2Batwotankdata.matgydF4y2Ba
在MATLAB命令窗口中输入以下命令:gydF4y2Ba
负载gydF4y2BatwotankdatagydF4y2Ba
该命令将以下两个变量加载到MATLAB工作区浏览器中:gydF4y2Ba
ugydF4y2Ba
为输入数据,为泵向水箱1供水的电压(单位为伏特)。gydF4y2Ba
ygydF4y2Ba
为输出数据,为2号槽的水位,单位为米。gydF4y2Ba
系统标识工具箱™数据对象将数据值和数据属性封装到单个实体中。可以使用“系统标识工具箱”命令方便地将这些数据对象作为单个实体操作。gydF4y2Ba
您必须已经将示例数据加载到MATLAB工作区中,如中所述gydF4y2Ba将数据加载到MATLAB工作区gydF4y2Ba.gydF4y2Ba
使用以下命令创建两个gydF4y2BaiddatagydF4y2Ba
数据对象,gydF4y2Ba泽gydF4y2Ba
而且gydF4y2BazvgydF4y2Ba
,在那里gydF4y2Ba泽gydF4y2Ba
包含模型估计和的数据gydF4y2BazvgydF4y2Ba
包含用于模型验证的数据。gydF4y2BaTsgydF4y2Ba
是采样时间。gydF4y2Ba
Ts = 0.2;gydF4y2Ba%采样时间为0.2秒gydF4y2Baz = iddata(y,u,Ts);gydF4y2Ba用于估计的前1000个样本gydF4y2BaZe = z(1:1000);gydF4y2Ba%用于验证的剩余样品gydF4y2BaZv = z(1001:3000);gydF4y2Ba
控件的属性gydF4y2BaiddatagydF4y2Ba
对象时,使用gydF4y2Ba得到gydF4y2Ba
命令。例如:gydF4y2Ba
(泽)gydF4y2Ba
MATLAB软件返回以下数据属性和值:gydF4y2Ba
域:“时间”名称:" OutputData: [1000x1 double] y: '同OutputData' OutputName: {'y1'} OutputUnit: {"} InputData: [1000x1 double] u: '同InputData' InputName: {'u1'} InputUnit:{"}周期:Inf InterSample: 'zoh' Ts: 0.2000 Tstart: 0.2000 SamplingInstants: [1000x0 double] TimeUnit: 'seconds' ExperimentName: 'Exp1'注释:{}UserData: []gydF4y2Ba
要修改数据属性,请使用点表示法。例如,要分配通道名称和标记绘图轴的单元,请在MATLAB命令窗口中键入以下语法:gydF4y2Ba
%设置时间单位为分钟gydF4y2Ba泽。T我meUnit =“秒”gydF4y2Ba;gydF4y2Ba设置输入通道的名称gydF4y2Ba泽。在putName =“电压”gydF4y2Ba;gydF4y2Ba为输入变量设置单位gydF4y2Ba泽。在putUnit =“V”gydF4y2Ba;gydF4y2Ba设置输出通道名称gydF4y2Ba泽。OutputName =gydF4y2Ba“高度”gydF4y2Ba;gydF4y2Ba设置输出通道单位gydF4y2Ba泽。OutputUnit =gydF4y2Ba“米”gydF4y2Ba;gydF4y2Ba设置验证数据属性gydF4y2Bazv。T我meUnit =“秒”gydF4y2Ba;zv。在putName =“电压”gydF4y2Ba;zv。在putUnit =“V”gydF4y2Ba;zv。OutputName =gydF4y2Ba“高度”gydF4y2Ba;zv。OutputUnit =gydF4y2Ba“米”gydF4y2Ba;gydF4y2Ba
要验证gydF4y2BaInputNamegydF4y2Ba
的属性gydF4y2Ba泽gydF4y2Ba
更改后,输入以下命令:gydF4y2Ba
ze.inputnamegydF4y2Ba
提示gydF4y2Ba
属性名,例如gydF4y2BaInputNamegydF4y2Ba
,不区分大小写。还可以缩写以。开头的属性名gydF4y2Ba输入gydF4y2Ba
或gydF4y2Ba输出gydF4y2Ba
用gydF4y2BaugydF4y2Ba
为gydF4y2Ba输入gydF4y2Ba
而且gydF4y2BaygydF4y2Ba
为gydF4y2Ba输出gydF4y2Ba
属性名。例如,gydF4y2BaOutputUnitgydF4y2Ba
等于gydF4y2BayunitgydF4y2Ba
.gydF4y2Ba
打开gydF4y2Ba系统识别gydF4y2Ba在MATLAB命令窗口中输入以下命令:gydF4y2Ba
systemIdentificationgydF4y2Ba
默认会话名,gydF4y2Ba无标题的gydF4y2Ba
,出现在标题栏中。gydF4y2Ba
您可以将数据对象从MATLAB工作区导入到应用程序中。gydF4y2Ba
您必须已经创建了数据对象,如gydF4y2Ba创建iddata对象gydF4y2Ba,并打开应用程序,如gydF4y2Ba打开系统识别AppgydF4y2Ba.gydF4y2Ba
导入数据对象。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba导入数据gydF4y2Ba>gydF4y2Ba数据对象gydF4y2Ba.gydF4y2Ba
此操作将打开“导入数据”对话框。gydF4y2Ba
输入gydF4y2Ba泽gydF4y2Ba
在gydF4y2Ba对象gydF4y2Ba字段导入估计数据。新闻gydF4y2Ba输入gydF4y2Ba.gydF4y2Ba
该操作将对象信息输入到Import Data字段中。gydF4y2Ba
点击gydF4y2Ba更多的gydF4y2Ba查看有关此数据的其他信息,包括通道名称和单元。gydF4y2Ba
点击gydF4y2Ba进口gydF4y2Ba以添加图标命名gydF4y2Ba泽gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序。gydF4y2Ba
在“导入数据”对话框中,键入gydF4y2BazvgydF4y2Ba
在gydF4y2Ba对象gydF4y2Ba字段导入验证数据。新闻gydF4y2Ba输入gydF4y2Ba.gydF4y2Ba
点击gydF4y2Ba进口gydF4y2Ba以添加图标命名gydF4y2BazvgydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序。gydF4y2Ba
2 .在“导入数据”对话框中,单击gydF4y2Ba关闭gydF4y2Ba.gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2BaApp,拖动验证数据gydF4y2BazvgydF4y2Ba图标。gydF4y2Ba验证数据gydF4y2Ba矩形。估算数据gydF4y2Ba泽gydF4y2Ba控件中已指定gydF4y2Ba工作数据gydF4y2Ba矩形。gydF4y2Ba
或者,右键单击gydF4y2BazvgydF4y2Ba
图标打开数据/模型信息对话框。选择gydF4y2Ba用作验证数据gydF4y2Ba复选框。点击gydF4y2Ba应用gydF4y2Ba然后gydF4y2Ba关闭gydF4y2Ba添加gydF4y2BazvgydF4y2Ba
到gydF4y2Ba验证数据gydF4y2Ba矩形。gydF4y2Ba
的gydF4y2Ba系统识别gydF4y2BaApp现在类似于下图。gydF4y2Ba
在本教程的这一部分中,您将使用默认模型结构和估计选项来估计一个非线性ARX模型。gydF4y2Ba
您必须已经准备好数据,如gydF4y2Ba准备数据gydF4y2Ba.有关非线性ARX模型的更多信息,请参见gydF4y2Ba什么是非线性ARX模型?gydF4y2Ba.gydF4y2Ba
请注意gydF4y2Ba
本教程中的插图代表了一个典型的gydF4y2Ba系统识别gydF4y2Ba应用程序会话。您的结果可能与图像中的结果不完全匹配。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba估计gydF4y2Ba>gydF4y2Ba非线性模型gydF4y2Ba.gydF4y2Ba
此操作将打开gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框。gydF4y2Ba
对话框包含两个选项卡-gydF4y2Ba模型结构gydF4y2Ba而且gydF4y2Ba估计选项gydF4y2Ba.gydF4y2Ba
的gydF4y2Ba模型结构gydF4y2BaTAB包含配置模型结构的参数,比如回归器的选择和输出函数的类型。指定要估计的模型的名称gydF4y2Ba模型名称gydF4y2Ba.默认模型名称为gydF4y2Banlarx1gydF4y2Ba
.gydF4y2Ba
使用gydF4y2Ba解释变量gydF4y2Ba选项卡创建要使用的回归集。默认情况下,应用程序创建一个线性回归集滞后gydF4y2Ba(1 2)gydF4y2Ba
并将回归函数存储为gydF4y2Ba线性回归函数#1gydF4y2Ba
在gydF4y2Ba解释变量集gydF4y2Ba区域。此面板包含一个表,允许您修改延迟以用于每个变量。gydF4y2Ba
配置面板gydF4y2Ba配置:线性回归函数#1gydF4y2Ba包含一个表,其中显示回归集使用的滞后值。你可以修改这些滞后。gydF4y2Ba
回归函数分配表gydF4y2Ba将回归函数分配给输出函数gydF4y2Ba列出回归器名称和输出函数组件的回归器赋值。gydF4y2Ba
表中的回归函数赋值为输出生成一个模型gydF4y2Ba高度gydF4y2Ba
:gydF4y2Ba
高度gydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BafgydF4y2Ba(gydF4y2Ba高度gydF4y2Ba(gydF4y2BatgydF4y2Ba1),gydF4y2Ba高度gydF4y2Ba(gydF4y2BatgydF4y2Ba2),gydF4y2Ba电压gydF4y2Ba(gydF4y2BatgydF4y2Ba1),gydF4y2Ba电压gydF4y2Ba(gydF4y2BatgydF4y2Ba2))gydF4y2Ba
在这里,gydF4y2BafgydF4y2Ba(.)是一个静态非线性函数,它将回归函数映射到输出。选择gydF4y2BafgydF4y2Ba(.)及其关联参数,则使用gydF4y2Ba输出函数gydF4y2Ba选项卡。gydF4y2Ba
中选择回归类型,可以添加更多回归集,如多项式和自定义公式gydF4y2Ba添加类型的回归器gydF4y2Ba.gydF4y2Ba
本例仅使用gydF4y2Ba线性回归函数#1gydF4y2Ba
.gydF4y2Ba
选择gydF4y2Ba输出函数gydF4y2Ba选项卡。gydF4y2Ba
该选项卡显示应用程序选择gydF4y2Ba小波网络gydF4y2Ba作为输出函数的默认类型gydF4y2BafgydF4y2Ba()。该函数使用线性函数、非线性函数(即缩放小波的和)和偏置项来计算输出。该选项卡还显示了一组配置参数。函数使用的小波数被配置为在估计期间自动选择。您可以修改此选择。您还可以修改线性系数的初始值和偏移量。对于第一次估算,保持默认选项。gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlarx1gydF4y2Ba
到模型板的gydF4y2Ba系统识别gydF4y2BaApp,如下图所示。gydF4y2Ba
双击或右键单击模型图标gydF4y2Banlarx1gydF4y2Ba
模型板显示了关于估计模型的信息。顶部区域描述了模型结构和估计结果(使用的数据、拟合百分比和其他质量度量)。底部区域(gydF4y2Ba日记及笔记gydF4y2Ba)显示了MATLAB脚本,您可以使用该脚本在命令行中重现估计结果。gydF4y2Ba
请注意gydF4y2Ba
适合(%)gydF4y2Ba使用具有预测焦点的估计数据集计算。而不是验证数据集。但是,下一步中的模型输出图将拟合与验证数据集进行比较。要查看模型模拟独立验证数据集的响应的效果如何,请使用gydF4y2Ba模型输出gydF4y2Ba绘图,如下步中所讨论的。gydF4y2Ba
在gydF4y2Ba模型视图gydF4y2Ba面积gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba模型输出gydF4y2Ba.此操作使用输入验证数据作为模型的输入来模拟模型,并在输出验证数据之上绘制模拟输出。gydF4y2Ba
的gydF4y2Ba最适合gydF4y2Ba模型输出图的区域显示了模型输出和验证数据输出之间的一致性,使用标准化均方根(NRMSE)拟合优度度量。在400-500的时间跨度内,协议很差。gydF4y2Ba
执行以下步骤以查看非线性ARX模型图上回归函数的非线性形状。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba非线性ARXgydF4y2Ba复选框可查看非线性横截面。gydF4y2Ba
默认情况下,该图显示输出回归量之间的关系gydF4y2Ba高度(t - 1)gydF4y2Ba
而且gydF4y2Ba(2)高度gydF4y2Ba
.下图显示了一个正平面。因此,回归量和输出之间的关系近似于一个线性平面。gydF4y2Ba
在“非线性ARX模型图”窗口中,设置gydF4y2Ba回归量1gydF4y2Ba来gydF4y2Ba电压(t - 1)gydF4y2Ba
.集gydF4y2Ba回归量2gydF4y2Ba来gydF4y2Ba电压(2)gydF4y2Ba
.点击gydF4y2Ba应用gydF4y2Ba.gydF4y2Ba
这些回归量与输出之间的关系是非线性的,如下图所示。gydF4y2Ba
若要旋转非线性曲面,请选择gydF4y2Ba风格gydF4y2Ba>gydF4y2Ba三维旋转gydF4y2Ba并拖动图形到一个新的方向。gydF4y2Ba
若要显示回归因子1的一维横截面,请将回归因子2设置为gydF4y2Ba没有一个gydF4y2Ba
,并单击gydF4y2Ba应用gydF4y2Ba.下图显示了回归器1的非线性幅度,它表示时移电压信号,gydF4y2Ba电压(t - 1)gydF4y2Ba
.gydF4y2Ba
在本教程的这一部分中,您将估计具有特定输入延迟和非线性设置的非线性ARX模型。通常,通过反复试验来选择模型顺序,直到得到与数据精确匹配的模型。gydF4y2Ba
您必须已经使用默认设置估计了非线性ARX模型,如中所述gydF4y2Ba用默认设置估计非线性ARX模型gydF4y2Ba.gydF4y2Ba
在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2Ba选项卡,然后选择gydF4y2Ba解释变量gydF4y2Ba选项卡。gydF4y2Ba
在gydF4y2Ba配置:线性回归函数#1gydF4y2Ba面板,更改gydF4y2Ba电压gydF4y2Ba
可变滞后到gydF4y2Ba[3 - 4]gydF4y2Ba
.这是因为数据表明,在输入和输出之间至少有3个样本滞后。gydF4y2Ba
此操作更新回归器列表以显示gydF4y2Ba电压(条t - 3)gydF4y2Ba
而且gydF4y2Ba电压(第四节)gydF4y2Ba
-项,最小延迟为三个样本。gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlarx2gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序和更新gydF4y2Ba模型输出gydF4y2Ba窗口以包含此模型。双击gydF4y2Banlarx2gydF4y2Ba
app主窗口模型板图标显示估算结果。gydF4y2Ba
该应用程序还更新模型输出图,以显示模型的拟合gydF4y2Banlarx2gydF4y2Ba
到验证数据集gydF4y2BazvgydF4y2Ba
.该图表明,选择正确的输入变量滞后改善了拟合。gydF4y2Ba
在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2Ba选项卡,然后选择gydF4y2Ba解释变量gydF4y2Ba选项卡。gydF4y2Ba
选择gydF4y2Ba输出函数gydF4y2Ba选项卡。gydF4y2Ba
为gydF4y2Ba单位数量gydF4y2Ba中,选择gydF4y2Ba输入gydF4y2Ba并输入gydF4y2Ba6gydF4y2Ba
.通过直接指定小波的数目来控制非线性函数的灵活性gydF4y2Ba小波网络gydF4y2Ba用途。gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlarx3gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba它还会更新gydF4y2Ba模型输出gydF4y2Ba窗口,如下图所示。gydF4y2Ba
你可以估计一个非线性ARX模型,使用更高幂的滞后变量作为回归量。在本例中,您将添加滞后变量的二阶多项式,包括交叉项。gydF4y2Ba
在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框,选择gydF4y2Ba模型结构gydF4y2Ba选项卡,然后选择gydF4y2Ba解释变量gydF4y2Ba选项卡。gydF4y2Ba
扩大gydF4y2Ba添加类型的回归器gydF4y2Ba并选择gydF4y2Ba多项式gydF4y2Ba.gydF4y2Ba
这个动作添加了一个多项式回归集gydF4y2Ba多项式回归函数#1gydF4y2Ba
到回归集的列表。默认情况下,该集合被配置为生成2阶回归量,如配置面板所示。gydF4y2Ba
改变gydF4y2Ba电压gydF4y2Ba
滞后,gydF4y2Ba[3 - 4]gydF4y2Ba
.gydF4y2Ba
选择gydF4y2Ba包括变量的混合gydF4y2Ba包括所有交叉项。除了由。贡献的四个二阶回归量外,这个动作还向模型中添加了十个二阶回归量gydF4y2Ba线性回归1gydF4y2Ba.gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.此操作将添加模型gydF4y2Banlarx4gydF4y2Ba
应用程序更新gydF4y2Ba模型输出gydF4y2Ba绘图,如下图所示。gydF4y2Ba
从图中可以看出,多项式回归量的加入并没有提高模型的泛化能力。也就是说,对于独立的验证数据,该模型并没有在模型输出和测量输出之间提供更好的拟合。这个结果通常是有过拟合的情况,也就是说,当模型包含的回归量比绝对需要的要多。gydF4y2Ba
您可以估计一个非线性ARX模型,该模型只包括作为非线性块输入的回归量的子集。默认情况下,非线性块中使用所有回归器。在本教程的这一部分中,您仅将回归器的子集分配给非线性块。gydF4y2Ba
您必须已经指定了模型结构,如gydF4y2Ba改变非线性ARX模型结构gydF4y2Ba.gydF4y2Ba
在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2Ba选项卡,然后选择gydF4y2Ba解释变量gydF4y2Ba选项卡。gydF4y2Ba
若塌陷,则展开gydF4y2Ba将回归函数分配给输出函数gydF4y2Ba面板。gydF4y2Ba
中所有二阶回归量的选择清除gydF4y2Ba高度:NonlinearFcngydF4y2Ba表的列。此外,清除所有具有交叉项的回归量(即由2项的乘积组成的回归量)的选择下载188bet金宝搏gydF4y2Ba高度:LinearFcngydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlarx5gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba它还会更新gydF4y2Ba模型输出gydF4y2Ba窗口。gydF4y2Ba
该模型具有较好的泛化能力。gydF4y2Ba
您可以通过对模型结构进行系统的变化来估计一系列非线性ARX模型,并将每个新模型建立在先前估计模型的配置之上。在本教程的这一部分中,您将估计一个与现有模型(gydF4y2Banlarx3gydF4y2Ba
),但在输出函数中具有不同的非线性。gydF4y2Ba
在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2Ba选项卡。gydF4y2Ba
选择gydF4y2Banlarx3gydF4y2Ba
从gydF4y2Ba初始模型gydF4y2Ba.属性中显示的属性gydF4y2Ba解释变量gydF4y2Ba而且gydF4y2Ba输出函数gydF4y2Ba选项卡对应的值gydF4y2Banlarx3gydF4y2Ba
.gydF4y2Ba
选择gydF4y2Ba输出函数gydF4y2Ba选项卡。gydF4y2Ba
在表中,更改的选择gydF4y2Ba非线性函数gydF4y2Ba来gydF4y2Ba乙状结肠网络gydF4y2Ba
.这将输出函数设置为sigmoid网络。gydF4y2Ba
在gydF4y2Ba输入单元数gydF4y2Ba,输入gydF4y2Ba6gydF4y2Ba
.gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlarx6gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba它还会更新gydF4y2Ba模型输出gydF4y2Ba绘图,如下图所示。gydF4y2Ba
最好的模型是能准确描述动态的最简单的模型。结果验证了该模型的正确性gydF4y2Banlarx3gydF4y2Ba
是用于此数据的最佳idnlarx模型的候选模型,该模型基于本示例探索的各种模型结构选择。gydF4y2Ba
拖动gydF4y2Banlarx3gydF4y2Ba
图标。gydF4y2Ba到工作空间gydF4y2Ba主箱gydF4y2Ba系统识别gydF4y2Ba应用程序窗口。或者,双击gydF4y2Banlarx3gydF4y2Ba
图标打开其信息板。在那里,点击gydF4y2Ba出口gydF4y2Ba将模型导出到基本工作区。gydF4y2Ba
在本教程的这一部分中,您将使用默认模型结构和估计选项估计非线性Hammerstein-Wiener模型。gydF4y2Ba
您必须已经准备好数据,如gydF4y2Ba准备数据gydF4y2Ba.有关非线性ARX模型的更多信息,请参见gydF4y2Ba什么是Hammerstein-Wiener模型?gydF4y2Ba
请注意gydF4y2Ba
本教程中的插图代表了一个典型的gydF4y2Ba系统识别gydF4y2Ba应用程序会话。您的结果可能与图像中的结果不完全匹配。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba估计gydF4y2Ba>gydF4y2BaHammerstein-Wiener模型gydF4y2Ba打开gydF4y2Ba估计Hammerstein-Wiener模型gydF4y2Ba对话框。对话框包含两个选项卡-gydF4y2Ba模型结构gydF4y2Ba而且gydF4y2Ba估计选项gydF4y2Ba.gydF4y2Ba
检查默认模型结构。的gydF4y2Ba模型结构gydF4y2BaTAB包含三个选项卡,每个选项卡用于模型的每个组件。这些分量分别是输入非线性、线性动态块和输出非线性。gydF4y2Ba
选择gydF4y2Ba输入非线性gydF4y2Ba选项卡。默认的非线性是agydF4y2Ba分段线性gydF4y2Ba带有10个断点的函数。gydF4y2Ba
选择gydF4y2Ba线性分组gydF4y2Ba选项卡。线性传递函数的分子阶为2,这意味着是一个二阶多项式gydF4y2BazgydF4y2Ba-1gydF4y2Ba,分母阶数为3,输入延时为1个样本。gydF4y2Ba
选择gydF4y2Ba输出非线性gydF4y2Ba选项卡。就像gydF4y2Ba输入非线性gydF4y2BaTab,默认的非线性值是agydF4y2Ba分段线性gydF4y2Ba带有10个断点的函数。gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作估计Hammerstein-Wiener模型的参数,以最小化模型输出与测量输出之间的差异(gydF4y2Ba泽。OutputDatagydF4y2Ba
).预估参数为:gydF4y2Ba
分段线性函数的输入和输出的断点位置(x坐标和y坐标)。gydF4y2Ba
组成线性块传递函数的分子和分母多项式系数。gydF4y2Ba
软件添加估计的模型gydF4y2Banlhw1gydF4y2Ba
到模型板的gydF4y2Ba系统识别gydF4y2Ba应用程序。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba模型输出gydF4y2Ba复选框。gydF4y2Ba
此操作使用输入验证数据作为模型的输入来模拟模型,并在输出验证数据之上绘制模拟输出。注意,验证数据设置为gydF4y2BazvgydF4y2Ba
.gydF4y2Ba
的gydF4y2Ba最适合gydF4y2Ba模型输出窗口的区域显示了模型输出和验证数据输出之间的一致性。gydF4y2Ba
该模型gydF4y2Banlhw1gydF4y2Ba
不能很好地验证。适合gydF4y2Bazv。OutputDatagydF4y2Ba
很差。gydF4y2Ba
您可以在Hammerstein-Wiener图上绘制输入/输出非线性和模型的线性传递函数。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2BaHamm-WienergydF4y2Ba查看Hammerstein-Wiener模型图。gydF4y2Ba
图中显示了输入非线性,如下图所示。gydF4y2Ba
单击gydF4y2BaygydF4y2Ba问gydF4y2Ba在Hammerstein-Wiener模型Plot窗口的顶部部分的矩形。gydF4y2Ba
绘图更新以显示输出非线性。gydF4y2Ba
单击gydF4y2Ba线性分组gydF4y2Ba在Hammerstein-Wiener模型Plot窗口的顶部部分的矩形。gydF4y2Ba
绘图更新以显示线性传递函数的阶跃响应。gydF4y2Ba
在gydF4y2Ba选择绘图类型gydF4y2Ba列表中,选择gydF4y2Ba波德gydF4y2Ba
.这个动作显示线性传递函数的波德图。gydF4y2Ba
在本教程的这一部分中,您将估计具有特定模型顺序和非线性设置的Hammerstein-Wiener模型。通常,通过试错来选择模型顺序和延迟,直到得到一个与数据匹配的模型。gydF4y2Ba
您必须已经使用默认设置估计了Hammerstein-Wiener模型,如中所述gydF4y2Ba用默认设置估计Hammerstein-Wiener模型gydF4y2Ba.gydF4y2Ba
在gydF4y2Ba估计Hammerstein-WienergydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2BaTAB,然后是gydF4y2Ba线性分组gydF4y2Ba选项卡。gydF4y2Ba
为gydF4y2Ba电压gydF4y2Ba
输入通道,双击相应的gydF4y2Ba输入延迟(nk)gydF4y2Ba单元格并输入值gydF4y2Ba3.gydF4y2Ba
.gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlhw2gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序和更新gydF4y2Ba模型输出gydF4y2Ba绘图,如下图所示。gydF4y2Ba
的gydF4y2Ba最适合gydF4y2Ba面板的模型输出窗口显示的质量gydF4y2Banlhw2gydF4y2Ba
拟合,这是对模型的改进gydF4y2Banlhw1gydF4y2Ba
.gydF4y2Ba
在示例的这一部分,您将通过更改Hammerstein-Wiener模型的非线性估计器来修改默认的Hammerstein-Wiener模型结构。gydF4y2Ba
提示gydF4y2Ba
如果您知道您的系统包括饱和或死区非线性,您可以在您的模型中指定这些专门的非线性估计器。gydF4y2Ba分段线性gydF4y2Ba
,gydF4y2Ba小波网络gydF4y2Ba
,gydF4y2Ba乙状结肠网络gydF4y2Ba
是一般非线性近似的非线性估计量。gydF4y2Ba
在gydF4y2Ba估计Hammerstein-Wiener模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2BaTAB,然后是gydF4y2Ba输入非线性gydF4y2Ba选项卡。gydF4y2Ba
单击gydF4y2Ba非线性gydF4y2Ba的单元格gydF4y2Ba电压gydF4y2Ba
变量并选择gydF4y2Ba乙状结肠网络gydF4y2Ba
从名单上。gydF4y2Ba
在gydF4y2Ba输入单元数gydF4y2Ba,设置为gydF4y2Ba20.gydF4y2Ba
.gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlhw3gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba它还会更新gydF4y2Ba模型输出gydF4y2Ba窗口,如下图所示。gydF4y2Ba
在gydF4y2Ba估计Hammerstein-Wiener模型gydF4y2Ba对话框中,选择gydF4y2Ba输入非线性gydF4y2Ba选项卡。gydF4y2Ba
为gydF4y2Ba电压gydF4y2Ba
输入,设置gydF4y2Ba非线性gydF4y2Ba来gydF4y2Ba小波网络gydF4y2Ba
.的默认值gydF4y2Ba单位数量gydF4y2Ba是gydF4y2Ba选择自动gydF4y2Ba.gydF4y2Ba
选择gydF4y2Ba输出非线性gydF4y2Ba选项卡。gydF4y2Ba
设置gydF4y2Ba高度gydF4y2Ba
输出gydF4y2Ba非线性gydF4y2Ba来gydF4y2Ba一维多项式gydF4y2Ba
.集gydF4y2Ba多项式次gydF4y2Ba来gydF4y2Ba2gydF4y2Ba
.gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba.gydF4y2Ba
此操作将添加模型gydF4y2Banlhw4gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba它还会更新gydF4y2Ba模型输出gydF4y2Ba窗口,如下图所示。gydF4y2Ba
最好的模型是能准确描述动态的最简单的模型。gydF4y2Ba
在这个例子中,模型gydF4y2Banlhw3gydF4y2Ba
而且gydF4y2Banlhw4gydF4y2Ba
都是很好的候选人。gydF4y2Ba