什么是非线性 ARX 模型?
非线性 ARX 模型将线性 ARX 模型扩展到了非线性情况。这些模型的结构使您能够利用灵活的非线性函数(如小波网络和 sigmoid 网络)来建模复杂的非线性行为。有关何时拟合非线性模型的信息,请参阅 About Identified Nonlinear Models。
非线性 ARX 模型扩展了线性 ARX 结构
一个线性 SISO ARX 模型 具有以下结构:
其中,u、y 和 e 分别表示输入、输出和噪声。该结构意味着,当前输出 y(t) 被预测为过去输出值以及当前和过去输入值的加权和。na 表示用于预测当前输出的过去输出项的数量,nb 表示用于预测当前输出的过去输入项的数量。为简化表示,将输入延迟 nk 设为零。将该方程改写为乘积形式,得:
其中 是滞后输入和输出变量,称为自变量。系数向量 [–a1, ... ,bnb] 表示应用于这些自变量的权重。因此,线性 ARX 模型将当前输出 yp 预测为其自变量的加权和。
非线性 ARX 模型的结构提供了以下额外的灵活性:
与代表线性映射的自变量加权和不同,非线性 ARX 模型具有更灵活的非线性映射函数 F。
F 的输入是模型自变量。在指定非线性 ARX 模型结构时,您可以从若干可用的非线性函数中选择一个。例如,F 可以表示对自变量与其均值之间距离进行运算的小波的加权和。有关详细信息,请参阅非线性 ARX 模型可用的映射函数。
非线性 ARX 回归项既可以是滞后输入-输出变量,也可以是滞后输入和输出变量的更复杂的非线性表达式。例如此类非线性回归变量的示例包括 y(t-1)2、u(t-1)*y(t-2)、abs(u(t-1)) 以及 max(u(t-1)*y(t-3),-10)。
非线性 ARX 模型的结构
一个非线性 ARX 模型由模型自变量和输出函数组成。输出函数包含一个或多个映射对象,每个模型输出对应一个。每个映射对象可以包含一个线性函数和一个非线性函数,它们作用于模型的自变量以生成模型输出,并为该输出提供一个固定的偏移量。该模块图展示了仿真场景中单输出非线性 ARX 模型的结构。

该软件分两个阶段计算非线性 ARX 模型的输出 y:
它根据当前和过去的输入值以及过去的输出数据来计算自变量的值。
在最简单的情况下,自变量是延迟的输入和输出,例如 u(t –1) 和 y(t –3)。这类回归变量被称为线性回归变量。您可以使用
linearRegressor对象指定线性自变量。您还可以通过将线性 ARX 模型阶数作为参量来指定线性自回归变量。有关详细信息,请参阅非线性 ARX 模型的阶数与延迟。然而,这种第二种方法将您的回归变量集限制为具有连续滞后项的线性回归变量。要创建多项式回归变量,请使用polynomialRegressor对象。要创建包含延迟输入和输出变量正弦与余弦函数的周期性回归变量,请使用periodicRegressor对象。您还可以指定自定义回归变量,这些变量是延迟输入和延迟输出的非线性函数。例如,u(t –1)y(t –3) 是一个自定义回归因子,它将输入和输出的实例相乘。使用customRegressor对象指定自定义自变量。您可以将任意自变量作为输入,分配给输出函数的线性模块、非线性模块,或两者兼有。
它使用一个输出函数模块将自变量映射到模型输出。输出功能模块可以包含多个映射模块,每个映射模块中并行包含线性、非线性和偏移模块。例如,考虑以下方程:
这里,x 是自变量的向量,r 是 x 的均值。 是线性函数模块的输出。 表示非线性函数模块的输出。Q 是一个投影矩阵,用于确保计算具有良好的条件数。d 是一个标量偏移量,用于加到线性与非线性模块的合并输出上。F(x) 的确切形式取决于您选择的输出函数。您可以从可用的映射对象中进行选择,例如树分区网络、小波网络和多层神经网络。您还可以将线性或非线性模块从输出函数中排除。
在估计非线性 ARX 模型时,软件会计算模型参数值,例如 L、r、d、Q 以及其他指定 g 的参数。
生成的非线性 ARX 模型是 idnlarx 对象,其中存储了所有模型数据,包括模型自变量和输出函数的参数。有关这些对象的详细信息,请参阅Nonlinear Model Structures。
通常,非线性 ARX 模型作为黑盒结构来使用。非线性 ARX 模型中的非线性函数是一种灵活的非线性估计量,其参数不必具有物理意义。您可以在 System Identification App 中,或通过命令行使用 nlarx 命令来估计非线性 ARX 模型。您可以使用均匀采样的时域输入-输出数据或时间序列数据(无输入)来估计非线性 ARX 模型。您的数据可以有一个或多个输入和输出通道。不能使用频域数据进行估计。
非线性 ARX 模型的阶数与延迟
您可以利用非线性 ARX 模型的阶数和延迟来定义该模型的线性自变量。这些指令和延迟的定义如下:
na - 用于预测当前输出的历史输出项的数量。
nb - 用于预测当前输出的过去输入项的数量。
nk - 从输入到输出的延迟,以采样数为单位。
na、nb 和 nk 的含义与线性 ARX 模型参数的含义类似。对于 SISO 数据,阶数以标量形式指定;对于 MIMO 数据,则以 ny×nu 矩阵形式指定,其中 ny 和 nu 分别表示输出数和输入数。如果您不确定应为“阶数”和“延迟”采用哪些值,可以按照Preliminary Step – Estimating Model Orders and Input Delays中的说明进行估计。该估计值基于线性 ARX 模型,仅提供初步参考。对于线性 ARX 模型而言的最佳阶数,可能并非非线性 ARX 模型的最佳阶数。
System Identification Toolbox™ 软件根据模型阶数和延迟来计算线性回归因子。例如,假设您为一个输入为 u、输出为 y 的 SISO 模型指定了 na = 2、nb = 3 和 nk = 5。该工具箱计算了线性回归因子 y(t-2)、y(t-1)、u(t-5)、u(t-6) 以及 u(t-7)。
与其使用 ARX 模型阶数来指定自变量延迟,您也可以直接指定自变量,以捕捉更复杂的行为。当您直接指定线性自变量时,可以包含非连续的滞后项。您还可以指定多项式回归变量和自定义回归变量。有关详细信息,请参阅Estimate Nonlinear ARX Models in the App和Estimate Nonlinear ARX Models at the Command Line。