主要内容gydF4y2Ba

识别非线性ARX模型gydF4y2Ba

非线性ARX模型将线性ARX模型推广到非线性情况。有关非线性ARX模型结构的信息,请参见gydF4y2Ba什么是非线性ARX模型?gydF4y2Ba

你可以估计非线性ARX模型gydF4y2Ba系统识别gydF4y2Ba应用程序或在命令行中使用gydF4y2BanlarxgydF4y2Ba命令。要估计一个非线性ARX模型,首先要准备估计数据。然后配置模型结构和估计算法,然后执行估计。估计之后,您可以验证估计的模型,如gydF4y2Ba验证非线性ARX模型gydF4y2Ba.gydF4y2Ba

准备识别数据gydF4y2Ba

您可以使用统一采样的时域输入输出数据或时间序列数据(无输入)来估计非线性ARX模型。数据可以有零个或多个输入通道和一个或多个输出通道。不能使用频域数据进行估计。gydF4y2Ba

要为模型估计准备数据,请将数据导入MATLABgydF4y2Ba®gydF4y2Ba工作空间,并做gydF4y2Ba一个gydF4y2Ba以下的:gydF4y2Ba

  • 在系统识别应用程序gydF4y2Ba—导入数据到应用中,具体操作请参见gydF4y2Ba表示数据gydF4y2Ba.gydF4y2Ba

  • 在命令行gydF4y2Ba-将您的数据表示为gydF4y2BaiddatagydF4y2Ba对象。gydF4y2Ba

导入数据后,您可以通过插值缺失值、过滤以强调特定频率范围或使用不同的采样时间重新采样来分析数据质量和预处理数据。有关更多信息,请参见gydF4y2Ba系统标识的数据准备方法gydF4y2Ba.对于大多数应用程序,在非线性建模之前不需要从数据中删除偏移量和线性趋势。然而,数据去趋势在某些情况下是有用的,例如在对一个工作点的输入和输出变化之间的关系建模之前。gydF4y2Ba

在准备估计数据之后,您可以配置模型结构、损失函数和估计算法,然后使用估计数据估计模型。gydF4y2Ba

配置非线性ARX模型结构gydF4y2Ba

非线性ARX模型由一组回归量组成,这些回归量可以是线性、多项式和自定义回归量的任意组合,输出函数通常包含非线性和线性分量,以及静态偏移量。方框图表示gydF4y2Ba一个非线性ARX模型的结构gydF4y2Ba在模拟场景中。gydF4y2Ba

配置一个非线性ARX模型的结构:gydF4y2Ba

  1. 配置模型回归器。gydF4y2Ba

    根据您对要建模的物理系统的了解,选择线性、多项式和客户回归量。gydF4y2Ba

    1. 指定gydF4y2Ba线性解释变量gydF4y2Ba在gydF4y2Ba一个gydF4y2Ba以下几种方式:gydF4y2Ba

    2. 指定gydF4y2Ba多项式解释变量gydF4y2Ba而且gydF4y2Ba自定义的解释变量gydF4y2Ba.多项式回归量是由延迟输入和输出变量组成的多项式。自定义回归函数是过去输入和输出的任意函数,例如乘积、幂以及输入和输出变量的其他MATLAB表达式。下载188bet金宝搏指定多项式和自定义回归器,以补充或代替线性回归器,以便在建模数据时具有更大的灵活性。有关更多信息,请参见gydF4y2BapolynomialRegressorgydF4y2Ba而且gydF4y2BacustomRegressorgydF4y2Ba.gydF4y2Ba

    3. 将回归函数分配为输出函数块的线性和非线性组件的输入。任何回归量都可以分配给这两个分量中的一个或两个。限制输入非线性分量的回归量的数量可以帮助降低模型的复杂性,并保持良好的估计条件。gydF4y2Ba

      为每个组件选择回归量可能需要多次试验。你可以检查gydF4y2Ba非线性ARX图gydF4y2Ba帮助您深入了解哪些回归量对模型输出的影响最大。理解输出中回归量的相对重要性可以帮助您决定如何分配回归量。gydF4y2Ba

  2. 配置输出功能块。gydF4y2Ba

    指定并配置输出功能gydF4y2BaFgydF4y2Ba(gydF4y2BaxgydF4y2Ba).gydF4y2Ba

    FgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba =gydF4y2Ba lgydF4y2Ba TgydF4y2Ba (gydF4y2Ba xgydF4y2Ba −gydF4y2Ba rgydF4y2Ba )gydF4y2Ba +gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 问gydF4y2Ba (gydF4y2Ba xgydF4y2Ba −gydF4y2Ba rgydF4y2Ba )gydF4y2Ba )gydF4y2Ba +gydF4y2Ba dgydF4y2Ba

    在这里,gydF4y2BaxgydF4y2Ba是回归量的向量,和gydF4y2BargydF4y2Ba回归量的均值是多少gydF4y2BaxgydF4y2Ba.gydF4y2Ba FgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba =gydF4y2Ba lgydF4y2Ba TgydF4y2Ba (gydF4y2Ba xgydF4y2Ba −gydF4y2Ba rgydF4y2Ba )gydF4y2Ba +gydF4y2Ba ygydF4y2Ba 0gydF4y2Ba 是线性函数块的输出。gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 问gydF4y2Ba (gydF4y2Ba xgydF4y2Ba −gydF4y2Ba rgydF4y2Ba )gydF4y2Ba )gydF4y2Ba +gydF4y2Ba ygydF4y2Ba 0gydF4y2Ba 表示非线性函数块的输出。gydF4y2Ba问gydF4y2Ba是一个投影矩阵,使计算条件良好。gydF4y2BadgydF4y2Ba是添加到线性和非线性块的组合输出中的标量偏移量。确切的形式gydF4y2BaFgydF4y2Ba(gydF4y2BaxgydF4y2Ba)取决于你选择的输出函数。您可以从gydF4y2Ba可用的非线性估计器gydF4y2Ba如树划分网络、小波网络、多层神经网络等。您还可以从输出函数中排除线性或非线性函数块。gydF4y2Ba

    您还可以执行以下任务:gydF4y2Ba

    1. 从输出函数中排除非线性函数,使gydF4y2BaFgydF4y2Ba(gydF4y2BaxgydF4y2Ba) =gydF4y2Ba FgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba =gydF4y2Ba lgydF4y2Ba TgydF4y2Ba (gydF4y2Ba xgydF4y2Ba −gydF4y2Ba rgydF4y2Ba )gydF4y2Ba +gydF4y2Ba ygydF4y2Ba 0gydF4y2Ba .gydF4y2Ba

    2. 从输出函数中排除线性函数,使gydF4y2BaFgydF4y2Ba(gydF4y2BaxgydF4y2Ba) =gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 问gydF4y2Ba (gydF4y2Ba xgydF4y2Ba −gydF4y2Ba rgydF4y2Ba )gydF4y2Ba )gydF4y2Ba +gydF4y2Ba ygydF4y2Ba 0gydF4y2Ba .gydF4y2Ba

      请注意gydF4y2Ba

      你不能将线性函数从树分区和神经网络中排除。gydF4y2Ba

有关如何在命令行和应用程序中配置模型结构的信息,请参见gydF4y2Ba在命令行估计非线性ARX模型gydF4y2Ba而且gydF4y2Ba估计非线性ARX模型在应用程序gydF4y2Ba.gydF4y2Ba

为非线性ARX模型指定估计选项gydF4y2Ba

为了配置模型估计,指定要最小化的损失函数,并选择估计算法和其他估计选项来进行最小化。gydF4y2Ba

配置Loss命令功能gydF4y2Ba

损失函数或代价函数是模型输出与测量输出之间误差的函数。有关损失函数的详细信息,请参见gydF4y2Ba损失函数和模型质量度量gydF4y2Ba.gydF4y2Ba

在命令行中,使用gydF4y2BanlarxgydF4y2Ba选项设置,gydF4y2BanlarxOptionsgydF4y2Ba来配置损失函数。您可以指定以下选项:gydF4y2Ba

  • 焦点gydF4y2Ba—参数估计时,模拟或预测误差是否最小化。默认情况下,软件将一步预测误差最小化,对应于agydF4y2Ba焦点gydF4y2Ba的价值gydF4y2Ba“预测”gydF4y2Ba.如果您想要一个为再现模拟行为而优化的模型,请指定gydF4y2Ba焦点gydF4y2Ba作为gydF4y2Ba“模拟”gydF4y2Ba.模拟误差的最小化需要可微非线性函数,并且需要比提前一步最小化预测误差更多的时间。因此,您不能使用gydF4y2BaidTreePartitiongydF4y2Ba而且gydF4y2BaidFeedforwardNetworkgydF4y2Ba非线性时,最小化模拟误差,因为这些非线性估计器是不可微的。gydF4y2Ba

  • OutputWeightgydF4y2Ba-指定多输出估计中误差的权重。gydF4y2Ba

  • 正则化gydF4y2Ba-修改损失函数,以增加对估计参数方差的惩罚。有关更多信息,请参见gydF4y2Ba模型参数的正则化估计gydF4y2Ba.gydF4y2Ba

指定估计算法gydF4y2Ba

为了估计一个非线性ARX模型,该软件使用迭代搜索算法来最小化模拟或预测模型输出与测量输出之间的误差。在命令行中,使用gydF4y2BanlarxOptionsgydF4y2Ba指定搜索算法和其他估计选项。您可以指定的一些选项有:gydF4y2Ba

  • SearchMethodgydF4y2Ba-最小化预测或模拟误差的搜索方法,如Gauss-Newton和Levenberg-Marquardt线搜索,以及信任区域-反射牛顿方法。gydF4y2Ba

  • SearchOptionsgydF4y2Ba—搜索算法选项集,各字段依赖于的值gydF4y2BaSearchMethodgydF4y2Ba,例如:gydF4y2Ba

    • MaxIterationsgydF4y2Ba-最大迭代次数。gydF4y2Ba

    • 宽容gydF4y2Ba—当参数值的期望改进小于指定值时,终止迭代搜索的条件。gydF4y2Ba

要查看可用评估选项的完整列表,请参见gydF4y2BanlarxOptionsgydF4y2Ba.有关如何在应用程序中指定这些估计选项的详细信息,请参见gydF4y2Ba估计非线性ARX模型在应用程序gydF4y2Ba.gydF4y2Ba

对估计数据进行预处理并配置模型结构和估计选项之后,可以在gydF4y2Ba系统识别gydF4y2BaApp,或使用gydF4y2BanlarxgydF4y2Ba在命令行。得到的模型是gydF4y2BaidnlarxgydF4y2Ba对象,该对象存储所有模型数据,包括模型回归量和非线性估计器的参数。有关这些模型对象的详细信息,请参见gydF4y2Ba非线性模型结构gydF4y2Ba.中描述的方法验证估计模型gydF4y2Ba验证非线性ARX模型gydF4y2Ba.gydF4y2Ba

使用线性模型初始化非线性ARX估计gydF4y2Ba

在命令行,您可以使用ARX结构多项式模型(gydF4y2BaidpolygydF4y2Ba只有gydF4y2Ba一个gydF4y2Ba而且gydF4y2BaBgydF4y2Ba作为活动多项式)的非线性ARX估计。有关何时使用线性模型的更多信息,请参见gydF4y2Ba何时拟合非线性模型gydF4y2Ba.gydF4y2Ba

类型创建线性ARX模型gydF4y2BaarxgydF4y2Ba命令。在构建或估计非线性ARX模型时,可以提供线性模型。例如,使用以下语法使用估计数据和线性ARX模型来估计非线性ARX模型gydF4y2BaLinARXModelgydF4y2Ba.gydF4y2Ba

m = nlarx(数据,LinARXModel)gydF4y2Ba

在这里gydF4y2Ba米gydF4y2Ba是一个gydF4y2BaidnlarxgydF4y2Ba对象,gydF4y2Ba数据gydF4y2Ba是一个时域gydF4y2BaiddatagydF4y2Ba对象。该软件使用线性模型初始化非线性ARX估计:gydF4y2Ba

  • 将线性ARX模型阶数和延迟作为非线性ARX模型阶数的初始值(gydF4y2BanagydF4y2Ba而且gydF4y2Ba注gydF4y2Ba的属性gydF4y2BaidnlarxgydF4y2Ba对象)和延迟(gydF4y2BankgydF4y2Ba属性)。该软件使用这些顺序和延迟来计算线性回归gydF4y2Ba非线性ARX模型结构gydF4y2Ba.gydF4y2Ba

  • 使用gydF4y2Ba一个gydF4y2Ba而且gydF4y2BaBgydF4y2Ba计算非线性估计量线性函数的线性模型多项式(gydF4y2BaLinearCoefgydF4y2Ba非线性估计器对象的参数),除非非线性估计器是神经网络。gydF4y2Ba

在估计过程中,估计算法使用这些值来调整非线性模型以适应数据。gydF4y2Ba

请注意gydF4y2Ba

当您使用相同的数据进行估计时,使用线性ARX模型初始化的非线性ARX模型比线性ARX模型本身更适合测量输出。gydF4y2Ba

默认情况下,非线性估计器是小波网络(gydF4y2BaidWaveletNetworkgydF4y2Ba对象)。您还可以指定不同的输入和输出非线性估计器。例如,您可以指定一个sigmoid网络非线性估计器。gydF4y2Ba

m = nlarx(数据,LinARXModel,gydF4y2Ba“idSigmoidNetwork”gydF4y2Ba)gydF4y2Ba

有关示例,请参见gydF4y2Ba用线性ARX模型初始化估计非线性ARX模型gydF4y2Ba.gydF4y2Ba

另请参阅gydF4y2Ba

功能gydF4y2Ba

应用程序gydF4y2Ba

相关的话题gydF4y2Ba