可用的非线性模型
概述
System Identification Toolbox™ 软件提供了四种非线性模型结构:
该工具箱将非线性 ARX 模型和哈默斯坦-维纳模型统称为“非线性黑盒”模型。您可以通过多种方式配置这些模型,利用小波网络、树形划分、分段线性函数、多项式、饱和和死区等非线性函数来模拟各种行为。
非线性灰盒模型可帮助您估计非线性微分方程的系数。
神经状态空间模型允许您利用神经网络,对定义系统非线性状态空间实现的函数进行估计。
非线性 ARX 模型
非线性 ARX 模型将线性 ARX 模型扩展到非线性情况,其结构如下:
y(t) = f(y(t - 1), ..., y(t - na), u(t - nk), ..., u(t -nk -nb + 1))
其中,函数 f 依赖于有限数量的先前输入 u 和输出 y。na 表示用于预测当前输出的过去输出项的数量,nb 表示用于预测当前输出的过去输入项的数量。nk 是从输入到输出的延迟,以采样数表示。
使用该模型来表示线性模型的非线性扩展。借助这种结构,您可以利用结合了线性与非线性组件的输出函数(例如小波网络和 sigmoid 网络)来建模复杂的非线性行为。通常,非线性 ARX 模型作为黑盒结构来使用。非线性 ARX 模型的输出函数是一种灵活的映射函数,其参数不必具有物理意义。
System Identification Toolbox 软件使用 idnlarx 对象来表示非线性 ARX 模型。有关估计的更多信息,请参阅非线性 ARX 模型。
哈默斯坦-维纳模型
哈默斯坦-维纳模型使用一个或两个静态非线性模块与一个线性模块串联来描述动态系统。线性模块是一个离散传递函数,代表了模型的动态组件。
您可以使用哈默斯坦-维纳结构来捕获影响线性系统输入和输出的传感器和作动器中的物理非线性效应,例如死区和饱和度。或者,将哈默斯坦-维纳结构作为黑盒结构来使用,这些结构并不体现对系统过程的物理层面的理解。
System Identification Toolbox 软件使用 idnlhw 对象来表示哈默斯坦-维纳模型。有关估计的更多信息,请参阅哈默斯坦-维纳模型。
非线性灰盒模型
非线性状态空间模型的表示形式如下:
其中 F 和 H 可以采用任何参数化形式。一个高阶非线性常微分方程可以表示为一组一阶方程。您可以使用 idnlgrey 对象,根据对系统的物理理解来指定此类模型的结构。此类模型的参数通常具有物理意义。使用该模型来表示含有未知参数的非线性常微分方程。
有关非线性状态空间模型估计的更多信息,请参阅灰盒模型估计。
神经状态空间模型
神经状态空间模型是一种非线性状态空间模型,因此具有如下表示形式:
其中,F 和 H 是通过神经网络实现的。
要根据试验数据辨识一个系统,首先需要使用 idNeuralStateSpace 创建一个具有给定状态数、输入数和输出数的神经状态空间对象。接下来,使用 createMLPNetwork 构建神经网络,以对状态函数和输出函数进行逼近。然后,要训练这些网络,请使用 nlssest,并将时域试验数据、神经状态空间对象以及训练选项作为参量提供。
培训结束后,您可以通过将生成的状态空间系统与实际数据进行仿真验证,然后利用它生成部署代码或设计控制系统。例如,为了简化 Nonlinear MPC (Model Predictive Control Toolbox) 的设计,可使用 generateMATLABFunction 生成状态转移函数和雅可比矩阵函数。
有关神经状态空间对象的更多信息和示例,请参阅 idNeuralStateSpace 和 nlssest