利用系统识别应用程序识别非线性黑箱模型gydF4y2Ba
简介gydF4y2Ba
目标gydF4y2Ba
从单输入/单输出(SISO)数据中估计和验证非线性模型,以找到最能代表系统动态的模型。gydF4y2Ba
方法完成本教程之后,您将能够完成以下任务gydF4y2Ba系统识别gydF4y2Ba应用:gydF4y2Ba
从MATLAB中导入数据对象gydF4y2Ba®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
非线性黑箱模型的类型gydF4y2Ba
对于单输出和多输出时域数据,您可以估计非线性离散时间黑盒模型。你可以从两种类型的非线性,黑箱模型结构中选择:gydF4y2Ba
非线性ARX模型gydF4y2Ba
Hammerstein-Wiener模型gydF4y2Ba
请注意gydF4y2Ba
您可以仅从输入/输出数据估计Hammerstein-Wiener黑箱模型。这些模型不支持没有输入的时间序列数据。万博1manbetxgydF4y2Ba
有关估计非线性黑箱模型的更多信息,请参见gydF4y2Ba非线性模型辨识gydF4y2Ba。gydF4y2Ba
什么是非线性ARX模型?gydF4y2Ba
非线性ARX模型由模型回归器和输出函数组成。输出函数包含一个或多个gydF4y2Ba映射对象gydF4y2Ba,每个模型输出一个。每个映射对象可以包括一个线性函数和一个非线性函数,它们作用于模型回归器,以提供模型输出和该输出的固定偏移量。此框图表示了仿真场景中单输出非线性ARX模型的结构。gydF4y2Ba
该软件计算非线性ARX模型输出gydF4y2BaygydF4y2Ba分为两个阶段:gydF4y2Ba
它从当前和过去的输入值以及过去的输出数据计算回归值。gydF4y2Ba
在最简单的情况下,回归量是延迟的输入和输出,例如gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba1)和gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba3)。这类回归量被称为gydF4y2Ba线性解释变量gydF4y2Ba。方法指定线性回归量gydF4y2Ba
linearRegressorgydF4y2Ba
对象。您还可以通过使用线性ARX模型顺序作为输入参数来指定线性回归量。有关更多信息,请参见gydF4y2Ba非线性ARX模型的阶数与时滞gydF4y2Ba。然而,第二种方法将您的回归量集限制为具有连续延迟的线性回归量。创建gydF4y2Ba多项式解释变量gydF4y2Ba,使用gydF4y2BapolynomialRegressorgydF4y2Ba
对象。创建gydF4y2Ba周期性的解释变量gydF4y2Ba如果包含延迟输入和输出变量的正弦和余弦函数,则使用gydF4y2BaperiodicRegressorgydF4y2Ba
对象。您还可以指定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
这个框图代表了Hammerstein-Wiener模型的结构:gydF4y2Ba
在那里,gydF4y2Ba
fgydF4y2Ba转换输入数据的是非线性函数吗gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba),gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BafgydF4y2Ba(gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba))gydF4y2Ba。gydF4y2Ba
wgydF4y2Ba(gydF4y2BatgydF4y2Ba)是一个内部变量,是输入非线性块的输出,与gydF4y2BaugydF4y2Ba(gydF4y2BatgydF4y2Ba).gydF4y2Ba
B / FgydF4y2Ba是变换的线性传递函数吗gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba),gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba) = (gydF4y2BaB / FgydF4y2Ba)gydF4y2BawgydF4y2Ba(gydF4y2BatgydF4y2Ba)gydF4y2Ba。gydF4y2Ba
xgydF4y2Ba(gydF4y2BatgydF4y2Ba)是一个内部变量,是线性块的输出,与gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba).gydF4y2Ba
BgydF4y2Ba而且gydF4y2BaFgydF4y2Ba与线性输出误差模型中的多项式相似。有关输出-错误模型的更多信息,请参见gydF4y2Ba什么是多项式模型?gydF4y2Ba。gydF4y2Ba
为gydF4y2Ba纽约gydF4y2Ba输出和gydF4y2BaνgydF4y2Ba输入,线性块是一个传递函数矩阵,包含:gydF4y2Ba
在哪里gydF4y2BajgydF4y2Ba=gydF4y2Ba
1、2、…,纽约gydF4y2Ba
而且gydF4y2Ba我gydF4y2Ba=gydF4y2Ba1、2、…,怒gydF4y2Ba
。gydF4y2BahgydF4y2Ba是映射线性块的输出的非线性函数吗gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba)到系统输出gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba),gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba) =gydF4y2BahgydF4y2Ba(gydF4y2BaxgydF4y2Ba(gydF4y2BatgydF4y2Ba))gydF4y2Ba。gydF4y2Ba
因为gydF4y2BafgydF4y2Ba作用于线性块的输入端口,这个函数称为gydF4y2Ba输入非线性gydF4y2Ba。同样的,因为gydF4y2BahgydF4y2Ba作用于线性块的输出端口,这个函数称为gydF4y2Ba输出非线性gydF4y2Ba。如果您的系统包含多个输入和输出,则必须定义函数gydF4y2BafgydF4y2Ba而且gydF4y2BahgydF4y2Ba对于每个输入和输出信号。您不必在模型结构中同时包含输入和输出非线性。当一个模型只包含输入非线性时gydF4y2BafgydF4y2Ba,它被称为gydF4y2Ba汉默斯坦gydF4y2Ba模型。同样,当模型只包含输出非线性时gydF4y2BahgydF4y2Ba,它被称为gydF4y2Ba维纳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
准备数据gydF4y2Ba
将数据加载到gydF4y2BaMATLABgydF4y2Ba工作空间gydF4y2Ba
加载样例数据gydF4y2Batwotankdata.matgydF4y2Ba
在MATLAB命令窗口中输入以下命令:gydF4y2Ba
负载gydF4y2BatwotankdatagydF4y2Ba
这个命令将以下两个变量加载到MATLAB工作区浏览器中:gydF4y2Ba
ugydF4y2Ba
为输入数据,为将水输入到水箱1的泵的电压(单位为伏特)。gydF4y2BaygydF4y2Ba
为输出数据,为2号槽的水位高度,单位为米。gydF4y2Ba
创建iddata对象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
域:'Time'名称:" OutputData: [1000x1 double] y: 'Same as OutputData' OutputName: {'y1'} OutputUnit: {"} InputData: [1000x1 double] u: 'Same as 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系统识别gydF4y2Ba在MATLAB命令窗口中输入以下命令:gydF4y2Ba
systemIdentificationgydF4y2Ba
默认的会话名,gydF4y2Ba无标题的gydF4y2Ba
,出现在标题栏中。gydF4y2Ba
导入数据对象到系统识别应用程序gydF4y2Ba
您可以将数据对象从MATLAB工作区导入到应用程序中。gydF4y2Ba
您必须已经创建了数据对象,如中所述gydF4y2Ba创建iddata对象gydF4y2Ba,并打开应用程序,如gydF4y2Ba启动系统识别应用程序gydF4y2Ba。gydF4y2Ba
导入数据对象。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba导入数据gydF4y2Ba>gydF4y2Ba数据对象gydF4y2Ba。gydF4y2Ba
此操作将打开Import Data对话框。gydF4y2Ba
输入gydF4y2Ba
泽gydF4y2Ba
在gydF4y2Ba对象gydF4y2Ba字段导入估计数据。新闻gydF4y2Ba输入gydF4y2Ba。gydF4y2Ba该操作将对象信息输入到Import Data字段中。gydF4y2Ba
点击gydF4y2Ba更多的gydF4y2Ba查看有关此数据的其他信息,包括通道名称和单元。gydF4y2Ba
点击gydF4y2Ba进口gydF4y2Ba添加已命名的图标gydF4y2Ba
泽gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序。gydF4y2Ba在“导入数据”对话框中,键入gydF4y2Ba
zvgydF4y2Ba
在gydF4y2Ba对象gydF4y2Ba字段导入验证数据。新闻gydF4y2Ba输入gydF4y2Ba。gydF4y2Ba点击gydF4y2Ba进口gydF4y2Ba添加已命名的图标gydF4y2Ba
zvgydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序。gydF4y2Ba在“导入数据”对话框中,单击gydF4y2Ba关闭gydF4y2Ba。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2BaApp,拖动验证数据gydF4y2BazvgydF4y2Ba的图标gydF4y2Ba验证数据gydF4y2Ba矩形。估算数据gydF4y2Ba泽gydF4y2Ba中已指定的图标gydF4y2Ba工作数据gydF4y2Ba矩形。gydF4y2Ba
或者,右键单击gydF4y2Ba
zvgydF4y2Ba
图标以打开数据/模型信息对话框。选择gydF4y2Ba用作验证数据gydF4y2Ba复选框。点击gydF4y2Ba应用gydF4y2Ba然后gydF4y2Ba关闭gydF4y2Ba添加gydF4y2BazvgydF4y2Ba
到gydF4y2Ba验证数据gydF4y2Ba矩形。gydF4y2Ba的gydF4y2Ba系统识别gydF4y2BaApp现在类似于下图。gydF4y2Ba
估计非线性ARX模型gydF4y2Ba
用默认设置估计非线性ARX模型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。默认的模型名称为gydF4y2Ba
nlarx1gydF4y2Ba
。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
此操作将添加模型gydF4y2Ba
nlarx1gydF4y2Ba
到模型板的gydF4y2Ba系统识别gydF4y2BaApp,如下图所示。gydF4y2Ba双击或右键单击模型图标gydF4y2Ba
nlarx1gydF4y2Ba
模型板显示了关于估计模型的信息。顶部区域描述模型结构和估计结果(使用的数据、百分比适合度和其他质量度量)。底部区域(gydF4y2Ba日记及笔记gydF4y2Ba)显示了MATLAB脚本,您可以使用该脚本在命令行中再现估计结果。gydF4y2Ba请注意gydF4y2Ba
适合(%)gydF4y2Ba使用具有预测焦点的估计数据集计算。而不是验证数据集。然而,下一步的模型输出图将比较适合度与验证数据集。要了解模型模拟独立验证数据集的响应有多好,请使用gydF4y2Ba模型输出gydF4y2Ba绘图,如下面步骤所述。gydF4y2Ba
在gydF4y2Ba模型视图gydF4y2Ba面积gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba模型输出gydF4y2Ba。该操作使用输入验证数据作为模型的输入来模拟模型,并在输出验证数据之上绘制模拟输出。gydF4y2Ba
的gydF4y2Ba最适合gydF4y2Ba模型输出图的区域显示了模型输出和验证数据输出之间的一致性,使用归一化均方根(NRMSE)的拟合优度度量。协议在400-500的时间跨度上很差。gydF4y2Ba
绘制非线性ARX模型的非线性截面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用默认设置估计非线性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
此操作将添加模型gydF4y2Ba
nlarx2gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序,并更新gydF4y2Ba模型输出gydF4y2Ba窗口来包含此模型。双击gydF4y2Banlarx2gydF4y2Ba
app主窗口模型板中的图标显示估算结果。gydF4y2Ba该应用程序还更新模型输出图,以显示模型的拟合gydF4y2Ba
nlarx2gydF4y2Ba
到验证数据集gydF4y2BazvgydF4y2Ba
。图显示,选择正确的输入变量滞后提高了拟合。gydF4y2Ba在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2Ba选项卡,然后选择gydF4y2Ba解释变量gydF4y2Ba选项卡。gydF4y2Ba
选择gydF4y2Ba输出函数gydF4y2Ba选项卡。gydF4y2Ba
为gydF4y2Ba单元数gydF4y2Ba中,选择gydF4y2Ba输入gydF4y2Ba并输入gydF4y2Ba
6gydF4y2Ba
。通过直接指定小波的数量来控制非线性函数的灵活性gydF4y2Ba小波网络gydF4y2Ba用途。gydF4y2Ba点击gydF4y2Ba估计gydF4y2Ba。gydF4y2Ba
此操作将添加模型gydF4y2Ba
nlarx3gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Baapp。它也会更新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包括所有交叉项。该操作向模型添加了10个二阶回归器,此外还有由gydF4y2Ba线性回归因子#1gydF4y2Ba。gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba。此操作将添加模型gydF4y2Ba
nlarx4gydF4y2Ba
到应用程序。应用程序更新gydF4y2Ba模型输出gydF4y2Ba图,如图所示。gydF4y2Ba图中显示,多项式回归量的加入并没有提高模型的泛化能力。也就是说,对于独立的验证数据,模型不能提供模型输出和测量输出之间更好的拟合。这个结果通常是在过拟合的情况下,也就是说,当模型包含比绝对需要的更多的回归量时。gydF4y2Ba
选择非线性块中回归量的子集gydF4y2Ba
您可以估计一个非线性ARX模型,它只包含作为非线性块输入的回归器的子集。默认情况下,在非线性块中使用所有回归器。在本教程的这一部分中,您只将回归器的一个子集分配给非线性块。gydF4y2Ba
您必须已经指定了模型结构,如中所述gydF4y2Ba改变非线性ARX模型结构gydF4y2Ba。gydF4y2Ba
在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2Ba选项卡,然后选择gydF4y2Ba解释变量gydF4y2Ba选项卡。gydF4y2Ba
如果塌陷,则展开gydF4y2Ba给输出函数赋回归量gydF4y2Ba面板。gydF4y2Ba
对象中所有二阶回归器的清除选择gydF4y2Ba高度:NonlinearFcngydF4y2Ba表的列。此外,清除所有具有交叉项(即由两个项的乘积组成的回归量)的回归量的选择s manbetx 845gydF4y2Ba高度:LinearFcngydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba。gydF4y2Ba
此操作将添加模型gydF4y2Ba
nlarx5gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Baapp。它也会更新gydF4y2Ba模型输出gydF4y2Ba窗口。gydF4y2Ba
该模型具有较好的泛化能力。gydF4y2Ba
指定先前估计的模型具有不同的输出函数非线性gydF4y2Ba
您可以通过对模型结构进行系统更改,并将每个新模型建立在先前估计的模型的配置基础上,来估计一系列非线性ARX模型。在本部分的教程中,您将估算一个与现有模型(gydF4y2Banlarx3gydF4y2Ba
),但在输出函数中具有不同的非线性。gydF4y2Ba
在gydF4y2Ba估计非线性ARX模型gydF4y2Ba对话框中,选择gydF4y2Ba模型结构gydF4y2Ba选项卡。gydF4y2Ba
选择gydF4y2Ba
nlarx3gydF4y2Ba
从gydF4y2Ba初始模型gydF4y2Ba。控件中显示的属性gydF4y2Ba解释变量gydF4y2Ba而且gydF4y2Ba输出函数gydF4y2Ba选项卡对应的值gydF4y2Banlarx3gydF4y2Ba
。gydF4y2Ba选择gydF4y2Ba输出函数gydF4y2Ba选项卡。gydF4y2Ba
在表中,更改的选择gydF4y2Ba非线性函数gydF4y2Ba来gydF4y2Ba
乙状结肠网络gydF4y2Ba
。这将输出函数设置为sigmoid网络。gydF4y2Ba-
在gydF4y2Ba输入单元数gydF4y2Ba,输入gydF4y2Ba
6gydF4y2Ba
。gydF4y2Ba点击gydF4y2Ba估计gydF4y2Ba。gydF4y2Ba
此操作将添加模型gydF4y2Ba
nlarx6gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Baapp。它也会更新gydF4y2Ba模型输出gydF4y2Ba图,如图所示。gydF4y2Ba
选择最佳模型gydF4y2Ba
最好的模型是能够准确描述动态的最简单的模型。结果表明该模型可行gydF4y2Banlarx3gydF4y2Ba
是该数据的最佳idnlarx模型的候选模型,这是基于本示例探索的各种模型结构选择的。gydF4y2Ba
导出最佳模型到基础工作区gydF4y2Ba
拖动gydF4y2Banlarx3gydF4y2Ba
的图标gydF4y2Ba到工作空间gydF4y2Ba主箱gydF4y2Ba系统识别gydF4y2Ba应用程序窗口。或者,双击gydF4y2Banlarx3gydF4y2Ba
图标以打开其信息板。从那里,点击gydF4y2Ba出口gydF4y2Ba将模型导出到基本工作区。gydF4y2Ba
估计Hammerstein-Wiener模型gydF4y2Ba
使用默认设置估计Hammerstein-Wiener模型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,这意味着是一个二阶多项式gydF4y2BazgydF4y2Ba1gydF4y2Ba,分母阶数为3,输入延迟为1个样本。gydF4y2Ba
选择gydF4y2Ba输出非线性gydF4y2Ba选项卡。就像gydF4y2Ba输入非线性gydF4y2Ba选项卡,默认的非线性是agydF4y2Ba分段线性gydF4y2Ba具有10个断点的函数。gydF4y2Ba
点击gydF4y2Ba估计gydF4y2Ba。gydF4y2Ba
这个动作估计Hammerstein-Wiener模型的参数,以最小化模型输出和测量输出之间的差异(gydF4y2Ba
泽。OutputDatagydF4y2Ba
).估计的参数为:gydF4y2Ba输入和输出分段线性函数的断点位置(x和y坐标)。gydF4y2Ba
构成线性块传递函数的分子和分母多项式系数。gydF4y2Ba
该软件添加估计模型gydF4y2Ba
nlhw1gydF4y2Ba
到模型板的gydF4y2Ba系统识别gydF4y2Ba应用程序。gydF4y2Ba在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2Ba模型输出gydF4y2Ba复选框。gydF4y2Ba
该操作使用输入验证数据作为模型的输入来模拟模型,并在输出验证数据之上绘制模拟输出。注意,验证数据被设置为gydF4y2Ba
zvgydF4y2Ba
。gydF4y2Ba的gydF4y2Ba最适合gydF4y2Ba模型输出窗口的区域显示了模型输出和验证数据输出之间的一致性。gydF4y2Ba
该模型gydF4y2Ba
nlhw1gydF4y2Ba
不能很好地验证。适合gydF4y2Bazv。OutputDatagydF4y2Ba
很差。gydF4y2Ba
绘制非线性和线性传递函数gydF4y2Ba
您可以在Hammerstein-Wiener图上绘制输入/输出非线性和模型的线性传递函数。gydF4y2Ba
在gydF4y2Ba系统识别gydF4y2Ba应用程序,选择gydF4y2BaHamm-WienergydF4y2Ba查看Hammerstein-Wiener模型图。gydF4y2Ba
图中显示了输入的非线性,如下图所示。gydF4y2Ba
单击gydF4y2BaygydF4y2Ba问gydF4y2Ba在Hammerstein-Wiener模型图窗口的顶部。gydF4y2Ba
图更新显示输出非线性。gydF4y2Ba
单击gydF4y2Ba线性分组gydF4y2Ba在Hammerstein-Wiener模型图窗口的顶部。gydF4y2Ba
图更新显示线性传递函数的阶跃响应。gydF4y2Ba
在gydF4y2Ba选择地块类型gydF4y2Ba列表中,选择gydF4y2Ba
波德gydF4y2Ba
。这个动作显示了线性传递函数的波德图。gydF4y2Ba
更改Hammerstein-Wiener模型输入延迟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
此操作将添加模型gydF4y2Ba
nlhw2gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Ba应用程序,并更新gydF4y2Ba模型输出gydF4y2Ba图,如图所示。gydF4y2Ba的gydF4y2Ba最适合gydF4y2Ba面板的模型输出窗口显示的质量gydF4y2Ba
nlhw2gydF4y2Ba
适合,这是一个改进的模型gydF4y2Banlhw1gydF4y2Ba
。gydF4y2Ba
Hammerstein-Wiener模型中的变化非线性估计gydF4y2Ba
在示例的这一部分中,您将通过更改其非线性估计量来修改默认的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,设置为gydF4y2Ba
20.gydF4y2Ba
。gydF4y2Ba点击gydF4y2Ba估计gydF4y2Ba。gydF4y2Ba
此操作将添加模型gydF4y2Ba
nlhw3gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Baapp。它也会更新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
此操作将添加模型gydF4y2Ba
nlhw4gydF4y2Ba
到gydF4y2Ba系统识别gydF4y2Baapp。它也会更新gydF4y2Ba模型输出gydF4y2Ba窗口,如下图所示。gydF4y2Ba
选择最佳模型gydF4y2Ba
最好的模型是能够准确描述动态的最简单的模型。gydF4y2Ba
在本例中,模型gydF4y2Banlhw3gydF4y2Ba
而且gydF4y2Banlhw4gydF4y2Ba
都是很好的候选人。gydF4y2Ba