线性和非线性灰盒建模
如果您了解系统的物理原理,并且能够使用包含未知参数的常微分方程 (ODE) 或差分方程来描述该系统,那么就可以使用 System Identification Toolbox™ 命令进行线性和非线性灰盒建模。灰盒模型 ODE 明确指定模型的数学结构,包括参数之间的耦合。当您了解变量之间的关系、模型行为的约束或表示系统动态特性的显式方程时,灰盒建模是很有用的。
您可以分别使用 idgrey 和 idnlgrey 对象来表示线性和非线性灰盒模型。
该工具箱同时支持连续时域和离散时域的线性及非线性模型。不过,由于大多数物理定律都是以连续时间形式表示的,因此与离散时间模型相比,通常更容易基于物理机理构建连续时间模型。
除了动态投入产出模型外,您还可以创建没有输入的时间序列模型,以及没有状态的静态模型。
如果难以用已知的物理定律来描述您的系统,您可以采用黑盒建模方法。有关详细信息,请参阅线性模型辨识和非线性模型辨识。
您还可以使用 idss 模型进行结构化模型估计,通过其 Structure 属性来固定或解锁特定参数。然而,您无法使用这种方法来估计任意结构(任意参数化)。有关结构矩阵的信息,请参阅Estimate State-Space Models with Structured Parameterization。
选择 idgrey 或 idnlgrey 模型对象
灰盒模型要求您在文件中指定常微分方程 (ODE) 模型的结构。您可以使用此文件来创建 idgrey 或 idnlgrey 模型对象。您可以同时使用 idgrey 和 idnlgrey 对象来对线性系统进行建模。不过,您只能使用 idnlgrey 模型对象来表示非线性动态特性。
idgrey 对象要求您编写一个函数,以状态空间形式描述线性动态特性,使得该文件能够返回作为您所设参数函数的状态空间矩阵。有关详细信息,请参阅Estimate Linear Grey-Box Models。
idnlgrey 对象要求您编写一个函数或 MEX 文件,将动态特性描述为一组一阶微分方程,使得该文件能够返回作为时间、输入、状态和参数值函数的输出和状态导数。有关详细信息,请参阅Estimate Nonlinear Grey-Box Models。
下表对比了 idgrey 和 idnlgrey 模型对象。
idgrey 与 idnlgrey 对象的比较
| 设置与操作 | 由 idgrey 提供支持? | 由 idnlgrey 提供支持? |
|---|---|---|
| 为参数值设置边界。 | 是 | 是 |
| 分别处理初始状态。 | 是 | 是 |
| 执行线性分析 | 是 例如,使用 | 否 |
| 遵守稳定性约束条件。 | 是 使用 | 否 注意 如果已知参数边界,则可以使用这些边界来确保 |
| 估计一个扰动模型。 | 是 在状态空间方程中,扰动模型由 | 否 |
| 优化用于仿真或预测的估计结果。 | 是 将 | 否 由于 |
由灰盒模型支持的数据
对于具有以下特征的数据,您可以对其进行连续时或离散时的灰盒模型估计:
时域或频域数据,包括无输入的时间序列数据。
注意
非线性灰盒模型仅支持时域数据。
单输出或多输出数据
您必须先将数据导入到 MATLAB® 工作区中。您必须将数据表示为 iddata 或 idfrd 对象。有关为辨识准备数据的更多信息,请参阅数据准备。