[Matlab]使用系统辨识应用程序辨识线性模型

发布于:2025-07-17 ⋅ 阅读:(15) ⋅ 点赞:(0)

简介

目标

利用Matlab工具箱(System Identification App)从单输入/单输出(SISO)数据中估计和验证线性模型,以找到最能描述系统动态的模型。

具体步骤

  1. 将数据数组从 MATLAB 工作区导入应用程序。
  2. 绘制数据。
  3. 对输入和输出信号进行处理,去除偏移量
  4. 估计、验证和比较线性模型
  5. 将模型导出到 MATLAB 工作区。

准备用于系统标识的数据

将数据加载到 MATLAB 工作区

通过在 MATLAB 命令行窗口:dryer2.mat

load dryer2

此命令将数据作为两列向量加载到 MATLAB 工作区中,变量u2是输入数据,y2是输出数据。

打开 System Identification 应用程序

要打开 System Identification 应用程序,请在 MATLAB 命令行窗口中键入以下命令:

systemIdentification

默认会话名称 将显示在标题栏中。Untitled

将数据数组导入 System Identification App

您可以将样本数据文件中的单输入/单输出 (SISO) 数据从 MATLAB 工作区导入到 App 中。dryer2.mat

您必须已将数据加载到 MATLAB 中,如将数据加载到 MATLAB 工作区中所述,并打开系统识别 App,如打开系统识别 App 中所述。

要将数据数组导入 System Identification 应用程序:

  1. 选择 Import data > Time domain data (时域数据)。此作将打开 Import Data (导入数据) 对话框。

  2. 在 Import Data (导入数据) 对话框中,指定以下选项:

    • Input (输入) - Enter 作为 input 变量。u2

    • 输出 — 输入 output 变量。y2

    • 数据名称 – 将默认名称更改为 。此名称在 System Identification 应用程序中的数据中标记 导入作已完成。data

    • 开始时间 — 输入作为开始时间 时间。此值指定时间轴在时间图上的起始值。0

    • 采样时间 — 输入时间 在连续样本之间(以秒为单位)。此值是 实验。0.08

    Import Data (导入数据) 对话框现在类似于下图

  3. 在 数据信息 区域,单击 更多 到 展开对话框并指定以下选项:

输入属性

  • Intersample — 接受默认值 (零阶保持) 以指示输入信号为 数据采集期间样本之间的分段常数。此设置指定 转换结果模型时样本之间输入信号的行为 在离散时间和连续时间表示之间。zoh

  • Period (周期) — 接受默认值 指定非周期性输入。inf

通道名称

  • Input (输入) - 输入 。power

    提示:命名通道有助于识别图中的数据。对于多变量输入和 Output signals,您可以指定各个 Input 和 Output 通道的名称,以逗号分隔。

  • 输出 — 输入 。temperature

变量的物理单位

  • 输入 — 输入功率单位。W

    提示:当您有多个输入和输出时,请输入对应于每个输入和输出的输入和输出单位的逗号分隔列表 渠道。

  • 输出 — 输入温度 单位。^oC

Notes (注释) – 输入有关实验或数据的注释。为 例如,您可以输入 Experiment Name(实验名称)、Date(日期)和 Experimental (实验) 的描述 条件。当您根据这些数据估计模型时,这些模型将继承您的注释。

展开的 Import Data 对话框现在类似于下图。

4.单击 Import 将数据添加到 System Identification 应用程序。 应用程序将显示一个图标来表示数据。

5.单击 Close 关闭 Import Data 对话框。

绘制和处理数据

在本教程的这一部分,您将评估数据并为系统处理数据。您将了解如何:

  • 绘制数据。

  • 通过减去输入的平均值和 输出。

  • 将数据分成两部分,一部分使用模型估计,另一部分用于 模型验证。

您从每个信号中减去平均值的原因是,通常,您构建了 描述偏离物理平衡的响应的线性模型。跟 稳态数据,则可以合理地假设信号的平均电平对应于 这样的平衡。因此,您可以在 0 附近寻找模型,而无需对绝对 以物理单位表示的平衡水平。

您必须已将数据导入 System Identification 应用程序,如将数据数组导入 System Identification 应用程序中所述。

要绘制和处理数据:

  1. 选中 Time plot 复选框以打开 Time Plot。如果图 窗口为空,请单击 System Identification (系统标识) 中的 图标 应用程序。data

  2. 顶部轴显示输出数据(温度),底部轴显示输入数据 (幂)。输入和输出数据都具有非零平均值。从输入数据中减去平均输入值,从 output data 的 output data 中。在 System Identification 应用程序中,选择 <--Preprocess > Remove 表示

    此作将向 System Identification 应用程序添加一个具有默认名称的新数据集(后缀 d 表示去趋势),并更新时间图窗口以显示原始 以及去除趋势的数据。去除趋势的数据的平均值为零。datad

  3. 指定要用于估计模型的去除趋势的数据。将数据集拖到 Working Data 矩形上。datad

    或者,右键单击该图标以打开 Data/model Info 對話方塊。datad

    选中 Use as Working Data 复选框。单击 Apply(应用),然后单击 Close(关闭)。此作将添加到 Working Data (工作数据) 矩形。datad
  4. 将数据分成两部分,指定第一部分进行模型估计,并指定 第二部分用于模型验证。
    a,选择 < --预处理 > Select range) 以打开 Select Range 窗口。

    b.在 Select Range (选择范围) 窗口中,创建一个包含前 500 个样本的数据集,在 Samples 字段中,指定 。1 500
    c.在 Data name 字段中,键入名称 。data_est

    d.单击 Insert 将此新数据集添加到系统中 用于模型估计的识别应用程序。
    e.重复此过程以创建第二个数据集,其中包含要使用的数据子集 进行验证。在 Select Range 窗口中,在 Samples 字段中指定最后 500 个样本。在 Data name (数据名称) 字段中键入名称。单击 Insert 以添加新的 数据集添加到 System Identification 应用程序。data_val

    f.单击 Close 关闭 Select Range 窗口。

  5. 在 System Identification 应用程序中,拖放到 Working Data 矩形,然后拖放到 Validation Data 矩形。data_estdata_val

  6. 要获取有关数据集的信息,请右键单击其图标。例如,右键单击以打开 Data/model Info 对话框。data_est

    您还可以在 Data/model Info(数据/模型信息)对话框中更改某些值,包括:

    • 更改 Data name 字段中的数据集名称。

    • 更改 Color 字段中数据图标的颜色。你 使用 RGB 值(红色、绿色和蓝色的相对量)指定颜色。每个值为 介于 和 之间。例如,表示仅存在红色,不存在绿色和蓝色 混入整体颜色中。01[1,0,0]

    • 在日记中查看或编辑对此数据集执行的命令,以及 Notes 区域。此区域包含相当于 processing 您使用 System Identification 应用程序执行。例如,如 Data/model Info: estimate 窗口,数据集是导入的结果 数据,对平均值进行去趋势分析,并选择 数据。data_est

       % Import   data          
       datad = detrend(data,0)  
       data_est = datad([1:500])

      有关这些命令和其他工具箱命令的更多信息,请参阅相应的 参考页。

Data/model Info(数据/模型信息)对话框还显示样本总数、采样时间、 以及 Output 和 Input 声道的名称和单位。此信息不可编辑。

提示

作为替代快捷方式,您可以从 System Identification 应用程序中选择 Preprocess > Quick start 来执行所有数据处理步骤 在本教程中。
 

保存会话

处理数据后,如绘图和处理数据中所述,您可以删除窗口中 不需要估计和验证,并保存您的会话。您可以打开此会话 稍后,并将其用作模型估计和验证的起点,而无需重复这些作 准备步骤。

您必须已将数据处理到 System Identification 应用程序中,如 在 绘图和处理数据 中。

要从会话中删除特定数据集并保存会话,请执行以下作:

  1. 在 System Identification 应用程序中:

    1. 将数据集拖放到废纸篓中。data

    2. 将数据集拖放到废纸篓中。datad

    或者,您可以按 删除 键盘上的键来 将数据集移至 废纸篓.

    注意

    将项目移动到废纸篓不会删除它们。永久 删除项目,选择 选项 > 清空垃圾桶.

    下图显示了将项目移至废纸篓后的 System Identification 应用程序。

  2. 拖放 和 数据集 填充空矩形,如下图所示。data_estdata_val

  3. 选择 File > Save session as“ 以打开 Save Session 对话框,然后浏览到要查找的文件夹 保存会话文件。

  4. 在 File name 字段中,键入会话的名称,然后单击 Save 。这 生成的文件具有扩展名。dryer2_processed_data.sid

提示:您可以在启动 System Identification 应用程序时通过键入 在 MATLAB 提示符处执行以下命令:systemIdentification('dryer2_processed_data')
 

使用 Quick Start 估计线性模型

如何使用 Quick Start 估计线性模型

您可以使用 System Identification 应用程序中的 Quick Start 功能来估计线性 模型。Quick Start 可能会生成您决定使用的最终线性模型,或为您提供 替换为配置精确参数化模型的估计所需的信息,例如 时间常数、输入延迟和谐振频率。

您必须已经处理了要估计的数据,如绘制和处理数据中所述。

如果您尚未执行此步骤,请单击此处 完成它。

在 System Identification 应用程序中,选择 Estimate > Quick Start

此作会生成阶跃响应、频率响应和 状态空间和多项式模型。有关这些图的更多信息,请参阅验证 Quick Start 模型

快速入门线性模型的类型

Quick Start 估计了以下四种类型的模型,并将以下内容添加到 具有默认名称的 System Identification 应用程序:

  • imp— 使用 impulseest 算法在一段时间内的阶跃响应。

  • spad— 频率范围内的频率响应 SPA 算法。频率响应是 线性系统脉冲响应的傅里叶变换。

    默认情况下,模型按 128 个频率值进行评估,范围从 0 到 奈奎斯特频率。

  • arxqs— 使用 arx 算法的四阶自回归 (ARX) 模型。

    此模型是参数化的,具有以下结构:

    y)+一个1 (t−1)+...+一个(n一个)=b1(nk)+…+b(nknb+1)+e

    y(t) 表示时间 t 的输出,u(t) 表示时间 t 的输入,n一个是极数,nb是 b 参数的数量(等于 0 加 1),nk是 input 之前的样本数 影响系统的输出(称为 Delay 或 Dead 时间),E(T) 是白噪声干扰。 System Identification Toolbox™ 软件估计参数一个1…一个nb1…bn使用估计数据集中的输入和输出数据。

    arxqsn一个=nb=4, 和nk根据阶跃响应模型 进行估计。imp

  • n4s3— 使用 n4sid 计算的状态空间模型。算法会自动选择模型顺序(在本例中为 3).

    此模型是参数化的,具有以下结构:

    DX系列德语=t)+But)+Ketyt)=Cxt)+Dut)+et

    y(t) 表示时间 t 的输出,u(t) 表示时间 t 的输入,x 是状态向量,e(t) 是白噪声 事端。System Identification Toolbox 产品可估计状态空间矩阵 ABCD 和 K

注意

“快速启动”选项不会创建传递函数模型或过程模型,这些模型 也可以是很好的起始模型类型。

验证 Quick Start 模型

Quick Start 在模型估计期间生成以下图,以帮助您验证 模型质量:

  • 阶跃响应图

  • 频率-响应图

  • 模型-输出图

您必须已经使用 Quick Start 估计了模型才能生成这些图,因为 如何在如何使用 Quick Start 估计线性模型 中介绍。

如果您尚未执行此步骤,请单击此处完成 它。

阶跃响应图。 下面的阶跃响应图显示了不同模型结构之间的一致性,并且 测量数据,这意味着所有这些结构都具有相似的动力学。

提示

如果关闭了绘图窗口,请选中 Transient resp 复选框 以重新打开此窗口。如果绘图为空,请单击系统中的模型图标 Identification App 窗口,用于在图上显示模型。

imp、arxqs 和 n4s3 的阶跃响应

提示

您可以使用阶跃响应图来估计线性系统的死时间。为 例如,前面的阶跃响应图显示系统之前的时间延迟约为 0.25 s 响应输入。此响应延迟或停顿时间为 大约等于大约三个样本,因为此数据集的采样时间为 S。0.08

频率-响应图。 下面的频率响应图显示了不同模型之间的一致性 结构和测量数据,这意味着所有这些结构都具有相似的 动力学。

提示

如果关闭此绘图窗口,请选中 Frequency resp 复选框 以重新打开此窗口。如果绘图为空,请单击系统中的模型图标 Identification App 窗口,用于在图上显示模型。

模型 imp、spad、arxqs 和 n4s3 的频率响应

模型-输出图。 Model Output (模型输出) 窗口显示不同模型结构之间的一致性,并且 验证数据中的测量输出。

提示

如果您关闭了 Model Output (模型输出) 窗口,请选中 Model output (模型输出) 复选框以重新打开此窗口。如果绘图为空,请单击系统中的模型图标 Identification App 窗口,用于在图上显示模型。

模型 imp、arxqs 和 n4s3 的测量输出和模型输出

模型输出图显示模型对验证数据中输入的响应。这 每个模型的拟合值汇总在 Best Fits 区域的 Model Output 窗口。Best Fits (最佳拟合) 列表中的模型排序为 最好在顶部,最差在底部。两条曲线之间的拟合计算方式为 100 表示完美拟合,0 表示拟合不佳(即模型输出具有相同的 拟合到测量输出,作为测量输出的平均值)。

在此示例中,模型的输出与验证数据输出匹配,后者 表示模型似乎捕获了主要的系统动力学,并且线性建模是 足够。

提示

要比较预测模型输出而不是模拟输出,请从 Model Output (模型输出) 窗口中的 Options (选项) 菜单。

估计线性模型

估计准确模型的策略

您在使用 Quick Start 估计线性模型中估计的线性模型表明,线性模型 充分表示系统的动态。

在本教程的这一部分,您可以通过执行 以下任务:

  1. 使用简单的多项式从数据中识别初始模型阶数和延迟 模型结构 (ARX)。

  2. 探索更复杂的模型结构,订单和延迟接近初始 值。

生成的模型是离散时间模型。

估计可能的模型阶数

要识别黑盒模型,您必须指定模型顺序。但是,你怎么知道 为您的 Black-Box 模型指定哪些模型订单?要回答这个问题,您可以 估计一系列订单和延迟的简单多项式 (ARX) 模型,并比较 性能。您可以选择与最佳模型相对应的订单和延迟 fit 作为初始猜测值,以便使用各种模型结构(如 传递函数和状态空间模型。

关于 ARX 模型。 对于单输入/单输出系统 (SISO),ARX 模型结构为:

y)+一个1 (t−1)+...+一个(n一个)=b1(nk)+…+b(nknb+1)+e

y(t) 表示时间 t 的输出,u(t) 表示时间 t 的输入,n一个是极数,nb是 0 加 1 的个数,nk是输入延迟 - 输入影响系统输出之前的样本(称为模型的延迟死时间),e(t) 是 白噪声干扰。

您指定模型阶数n一个,nbnk来估计 ARX 模型。System Identification Toolbox 产品估计参数一个1…一个nb1…bn从数据中。

如何估计模型阶数

  1. 在 System Identification 应用程序中,选择 Estimate > Polynomial Models 以打开 Polynomial Models 对话框。

  2. 从 Structure 列表中,选择 。默认情况下,此选项已选中。ARX: [na nb nk]

  3. 编辑 Orders 字段以尝试极点、零和 delays,其中每个值都在 1 到 10 之间:

    [1:10 1:10 1:10]

  4. 单击 Estimate 打开 ARX Model Structure Selection 窗口。 ,它显示每个模型参数组合的模型性能。

    您可以使用此图来选择最佳拟合模型。

    • 水平轴是参数的总数 —n一个 + nb.

    • 垂直轴称为 Unexplained output 方差 (%) 是输出中未解释的部分 by the model - 数字 的参数。

      预测误差是 验证数据输出与 模型提前一步预测输出。

    • nk是延迟。

    图中以绿色突出显示了三个矩形。 蓝色和红色。每种颜色表示一种最佳拟合标准, 如下:

    • 红色 — 最佳拟合使平方和最小 验证数据输出与模型之间的差异 输出。此矩形表示总体最佳拟合。

    • 绿色 — 最佳拟合可最大程度地降低 Rissanen MDL 标准。

    • 蓝色 — 最佳拟合可最小化 Akaike AIC 标准。

    在本教程中,Unexplained output variance (in %) (未解释的输出方差 (以 %) 为单位) 值 对于从 4 到 20 的组合参数数,该值大致保持不变。这样 恒定性表示模型性能在高阶上没有提高。因此 低阶模型可能同样适合数据。

    注意

    当您使用同一数据集进行估计和验证时,请使用 MDL 和 AIC 标准来选择模型订单。这些标准补偿了导致的过度拟合 使用过多的参数。有关这些标准的更多信息,请参阅 selstruc 参考页面。

  5. 在 ARX Model Structure Selection 窗口中,点击红色条(对应于水平轴),然后点击 Insert。 此选择将15n一个=6,nb=9 和nk=2 进入 Polynomial Models (多项式模型) 对话框,并将 执行估计。

    此作会将模型添加到 System Identification 应用程序 并更新图以包含模型的响应。arx692

    注意

    参数化模型的默认名称包含模型类型和 极点、零和延迟。例如,是具有arx692n一个=6,nb=9,并延迟两个样本。

  6. 在 ARX Model Structure Selection (ARX 模型结构选择) 窗口中,单击与水平轴上的参数对应的第三个条形(最低顺序,仍给出 good fit),然后单击 Insert4

    • 此选择将n一个=2,nb=2 和nk=3(延迟 3 个样本)放入 Polynomial Models 对话框并执行估计。

    • 模型将添加到 System Identification 应用程序中,并且 图将更新以包括其响应和输出。arx223

  7. 单击 Close 关闭 ARX 模型结构选择 窗。

  8. 单击 Close 关闭 Polynomial Models 对话框。

识别传递函数模型

通过估计不同阶次组合的 ARX 模型(如估计可能的模型阶数中所述),您确定了极点、零和 延迟,这为系统地探索不同的模型提供了一个很好的起点。

该系统的总体最佳拟合对应于具有 6 个极点、9 个 0、 以及两个样本的延迟。它还表明,具有n一个= 2(两个极点),nb= 2(一个零),并且nk= 3(输入-输出延迟)也提供了良好的 适合。因此,您应该探索接近这些值的模型阶数。

在本教程的这一部分中,您将估计一个传递函数模型。

关于传递函数模型。 一般的传递函数模型结构为:

Ys)=数量Us) + Es

Ys), U (s) Es) 表示输出的拉普拉斯变换, input 和 error 分别。nums) 和 dens) 代表分子和分母 定义输入和输出之间关系的多项式。根源 分母多项式称为模型极点。的根源 分子多项式称为模型

您必须指定极点和零的数量来估计传递函数模型。这 System Identification Toolbox 产品估计分子和分母多项式以及输入/输出 delayed 来自数据。

传递函数模型结构是快速估计的不错选择,因为它 要求您仅指定 2 个参数即可开始使用:是 极数 和 零的数量。npnz

如何估计传递函数模型

  1. 在系统识别 App 中,选择估计>传递函数模型以打开传递函数对话框。

  2. 在 Estimate Transfer Functions (估计传递函数) 对话框中,指定以下选项:

    • 极点数 - 保留默认值以指定两个极点的二阶函数。2

    • Number of zeros (零的数目) - 保留默认值 。1

    • Continuous-time (连续时间) – 选中此选项。

  3. 单击 Delay 展开输入/输出延迟规范 面积。

    通过估计不同阶次组合的 ARX 模型(如估计可能的模型阶数中所述),您确定了 3 个样本的延迟 ().此延迟转换为 的连续时间延迟 ,等于 0.16 秒。nk = 3(nk-1)*Ts

    将 Delay (延迟) 指定为秒。保持 Fixed (固定) 处于选中状态。0.16

    使用默认的 Estimate Options (估计选项)。默认情况下,App 会为模型分配名称。对话框应如下所示。tf1

  4. 点击 Estimate 以添加调用到 System Identification 应用程序的传递函数模型。您可以查看 传递函数模型的估计与其他 models,在 Model output (模型输出) 窗口中。tf1

    提示

    如果您关闭了 Model Output 窗口,则可以通过在 System Identification 应用程序中选中 Model output 复选框来重新生成它。如果新的 model 未显示在绘图中,请单击 System Identification 应用程序中的 model 图标以 激活模型。

  5. 单击 Close 关闭 Transfer Functions 对话框。

了解更多信息。 要了解有关识别传递函数模型的更多信息,请参阅传递函数模型

标识状态空间模型

通过估计不同阶次组合的 ARX 模型(如估计可能的模型阶数中所述),您确定了极点、零和 延迟,这为系统地探索不同的模型提供了一个很好的起点。

该系统的总体最佳拟合对应于具有 6 个极点、9 个 0、 以及两个样本的延迟。它还表明,具有n一个=2(两个极点),nb=2(一个 0),并且nk=3(输入-输出延迟)也提供了良好的 适合。因此,您应该探索接近这些值的模型阶数。

在本教程的这一部分,您将估计一个状态空间模型。

关于状态空间模型。 一般的状态空间模型结构(创新形式)为:

DX系列德语=t)+But)+Ketyt)=Cxt)+Dut)+et

y(t) 表示时间 t 的输出,u(t) 表示时间 t 的输入,x(t) 是时间 t 的状态向量,e(t) 是白噪声干扰。

您必须指定一个整数作为模型阶数(状态向量的维度),以 估计状态空间模型。System Identification Toolbox 产品根据数据估计状态空间矩阵 ABCD 和 K

状态空间模型结构是快速估计的不错选择,因为它需要 仅指定状态数 (等于极数)。您可以 (可选)还可以指定 Delays 和 Feedthrough 行为。

如何估计状态空间模型

  1. 在 System Identification 应用程序中,选择 Estimate > State Space Models (估计状态空间模型) 以打开 State Space Models (状态空间模型) 对话框。

  2. 在 Model 的 Specify value 字段中 结构 (Structure) 选项卡中,指定模型顺序。键入以创建 六阶状态空间模型。6

    此选择基于最佳拟合 ARX 模型有 6 个极点这一事实。

    提示

    尽管本教程估计的是六阶状态空间模型,但您可能希望 探索低阶模型是否充分代表了系统动态。

    对话框应如下所示:

  3. 选择 Estimate Options 选项卡以显示其他 选项。

  4. 将 Estimation Focus 更改为以优化用于输出仿真的模型。Simulation

    State Space Models (状态空间模型) 对话框如下所示 数字。

  5. 单击 Estimate 以添加调用到 System Identification 应用程序的状态空间模型。ss1

    您可以查看状态空间模型的估计输出,并与 其他模型的估计值,在 Model output (模型输出) 窗口中。

    提示

    如果您关闭了 Model Output 窗口,则可以通过在 System Identification 应用程序中选中 Model output 复选框来重新生成它。如果新的 model 未显示在绘图中,请单击 System Identification 应用程序中的 model 图标以 激活模型。

  6. 单击 Close 关闭 State Space Models 对话框。

了解更多信息。 要了解有关识别状态空间模型的更多信息,请参阅状态空间模型

识别 ARMAX 模型

通过估计不同阶次组合的 ARX 模型(如估计可能的模型阶数中所述),您确定了极点、零和 延迟,这为系统地探索不同的模型提供了一个很好的起点。

该系统的总体最佳拟合对应于具有 6 个极点、9 个 0、 以及两个样本的延迟。它还表明,具有n一个=2(两个极点),nb=2(一个 0),并且nk=3 也提供了很好的拟合。因此,您应该 探索接近这些值的模型顺序。

在本教程的这一部分,您将估计 ARMAX 输入-输出多项式 型。

关于 ARMAX 模型。 对于单输入/单输出系统 (SISO),ARMAX 多项式模型结构 是:

y)+一个1 (t−1)+...+一个(n一个)=b1(nk)+…+b(nknb+1)+         e)+c1et−1)+...+c数控(nc)

y(t) 表示时间 t 的输出,u(t) 表示时间 t 的输入,n一个是动态模型的极点数,nb是 0 加 1 的个数,nc是干扰的极点数 型nk是 input 影响系统的输出(称为 delay 或 dead time of the model 的 time),e(t) 是白噪声 事端。

注意

ARMAX 模型比 ARX 模型更灵活,因为 ARMAX 结构包含 一个额外的多项式,用于对加性扰动进行建模。

您必须指定模型阶数才能估计 ARMAX 模型。System Identification Toolbox 产品估计模型参数一个1…一个n,b1…bnc1…cn从数据中。

如何估计 ARMAX 模型

  1. 在 System Identification 应用程序中,选择 Estimate > Polynomial Models 以打开 Polynomial Models 对话框。

  2. 从 Structure 列表中,选择以估计 ARMAX 模型。ARMAX: [na nb nc nk]

  3. 在 Orders 字段中,将订单 nanbnc 和 nk 设置为 以下值:

    [2 2 2 2]

    应用程序将名称分配给 模型 ,默认情况下,可见 在 Name 字段中。amx2222

  4. 单击 Estimate 将 ARMAX 模型添加到系统中 识别应用程序。

  5. 使用更高的 Orders 重复步骤 3 和 4 。这些阶次产生的模型也几乎同样适合数据 作为高阶 ARX 模型 。3 3 2 2arx692

    提示

    如果您关闭了 Model Output 窗口,则可以通过在 System Identification 应用程序中选中 Model output 复选框来重新生成它。如果新的 model 未显示在绘图中,请单击 System Identification 应用程序中的 model 图标以 激活模型。

  6. 单击 Close 关闭 Polynomial Models 对话框。

了解更多信息。 要了解有关识别输入-输出多项式模型(如 ARMAX)的更多信息,请参阅输入-输出多项式模型

选择最佳模型

您可以比较模型以选择性能最佳的模型。

您必须已经估计了模型,如估计线性模型中所述。

如果您尚未执行此步骤,请单击此处 完成它。

模型摘要。 下图显示了 System Identification 应用程序,其中包括所有 估计线性模型中的估计模型。

检查模型输出。 检查模型输出图,了解模型输出与测得结果的匹配程度 output 来验证数据集。一个好的模型是最能描述 dynamics 并成功模拟或预测不同输入的输出。模型是 在模型输出图的 Best Fits 区域中按名称列出。请注意, 其中一个更简单的模型 产生了与 highest-order 模型 .amx3322arx692

提示

如果您关闭了 Model Output 窗口,则可以通过在 System Identification 应用程序中选中 Model output 复选框来重新生成它。如果新的 model 未显示在绘图中,请单击 System Identification 应用程序中的 model 图标以 激活模型。

要使用其他数据集验证您的模型,您可以拖放此数据集 拖动到 System Identification 应用程序的 Validation Data 矩形中。如果 将验证数据转换为频域,模型输出 图将更新以显示 频域中的模型比较。

要更仔细地查看这些模型与数据的拟合程度,请放大图的一部分 单击并拖动感兴趣区域周围的矩形,如下所示 数字。

释放鼠标会放大此区域,并显示所有模型的输出都匹配 验证数据。

查看模型参数

查看模型参数值

您可以查看每个估计模型的数值参数值。

您必须已经估计了模型,如估计线性模型中所述。

如果您尚未执行此步骤,请单击此处 完成它。

要查看模型的参数值 ,请右键单击 model 图标。Data/model Info(数据/模型信息)对话框打开。amx3322

Data/model Info(数据/模型信息)对话框的不可编辑区域列出了参数值 对应于您的系统的以下差分方程:

yt)−1.502yt−1)+0.7193yt−2)−0.1179yt−3)= 0.003956ut−2)+0.06245ut−3)+0.02673ut−4)+et)−0.5626et−1)+0.2355et−2)

注意

u(t-2) 的系数与零没有显著差异。 这种缺乏差异解释了为什么两者的值会延迟并给出良好的结果。23

参数值以以下格式显示:

Az)=1+一个1−1+…+一个Bz)=b1nk+…+b−NB−NK+1Cz)=1+c1−1+…+c数控nc

参数显示在 ARMAX 模型结构中,如下所示:

Aqyt)=Bqut)+Cqet

对应于这个一般的差分方程:

y)+一个1 (t−1)+...+一个(n一个)=b1(nk)+…+b(nknb+1)+         e)+c1et−1)+...+c数控(nc)

y(t) 表示时间 t 的输出,u(t) 表示时间 t 的输入,n一个是动态模型的极点数,nb是 0 加 1 的个数,nc是干扰的极点数 型nk是输入之前的样本数 影响系统的输出(称为 Delay 或 Dead time of the model 的 time),e(t) 是白噪声 事端。

查看参数不确定性

您可以查看估计模型的参数不确定性。

您必须已经估计了模型,如估计线性模型中所述。

如果您尚未执行此步骤,请单击此处完成 它。要查看模型的参数值 ,请右键单击模型 系统识别应用程序中的图标。Data/model Info(数据/模型信息)对话框打开。amx3322

要查看参数不确定性,请单击 Present in the Data/model Info (信息) 对话框中,然后在 MATLAB 提示符处查看模型信息。

amx3322 =                                                                     
Discrete-time ARMAX model:  A(z)y(t) = B(z)u(t) + C(z)e(t)                    
                                                                              
  A(z) = 1 - 1.502 (+/- 0.05982) z^-1 + 0.7193 (+/- 0.0883) z^-2             
                                   - 0.1179 (+/- 0.03462) z^-3                
                                                                              
                                                                              
  B(z) = 0.003956 (+/- 0.001551) z^-2 + 0.06245 (+/- 0.002372) z^-3           
                                 + 0.02673 (+/- 0.005651) z^-4                
                                                                              
                                                                              
  C(z) = 1 - 0.5626 (+/- 0.07322) z^-1 + 0.2355 (+/- 0.05294) z^-2            
                                                                              
Name: amx3322                                                                 
Sample time: 0.08 seconds                                                     
                                                                              
Parameterization:                                                             
   Polynomial orders:   na=3   nb=3   nc=2   nk=2                             
   Number of free coefficients: 8                                             
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
                                                                              
Status:                                                                       
Termination condition: Near (local) minimum, (norm(g) < tol).                 
Number of iterations: 5, Number of function evaluations: 11                   
                                                                              
Estimated using POLYEST on time domain data "data_est".                       
Fit to estimation data: 95.3% (prediction focus)                              
FPE: 0.001596, MSE: 0.001546                                                   
More information in model's "Report" property. 

模型参数的 1 标准差不确定性位于 每个参数值。

将模型导出到 MATLAB 工作区

您在 System Identification 应用程序中创建的模型不会自动在 MATLAB 工作区。要使模型可用于其他工具箱、Simulink 和 System Identification Toolbox 命令,您必须将模型从 System Identification 应用程序导出到 MATLAB 工作区。例如,如果模型是需要控制器的被控对象,则 可以将模型从 MATLAB 工作区导入到 Control System Toolbox™ 产品中。®

您必须已经估计了模型,如估计线性模型中所述。

如果您尚未执行此步骤,请单击此处完成 它。

要导出模型,请将其拖动到 System Identification 应用程序中的工作区矩形。或者,单击 Data/model Info 对话框中的 Export。amx3322

模型将显示在 MATLAB 工作区面板中。

注意

此模型是 idpoly 模型对象。

将模型置于 MATLAB 工作区后,您可以对模型执行其他作。例如,如果你有 安装了 Control System Toolbox 产品,则可以将模型转换为状态空间对象 用:

ss_model=ss(amx3322)

将模型导出到线性系统分析器

如果您安装了 Control System Toolbox 产品,则会显示 To Linear System Analyzer 矩形 显示在 System Identification 应用程序中。

线性系统分析器是一个图形用户界面,用于查看和作 线性模型的响应图。它显示以下绘图:

  • 阶跃响应和脉冲响应

  • Bode、Nyquist 和 Nichols

  • 频率响应奇异值

  • 极点/零点

  • 对一般输入信号的响应

  • 从给定的初始状态开始的非受迫响应(仅适用于状态空间模型)

要在 Linear System Analyzer 中绘制模型,请将模型图标拖放到 System Identification 应用程序中的 To Linear System Analyzer 矩形中。 或者,点击 Data/model 中的 Show in Linear System Analyzer “信息”对话框。

有关在 Linear System Analyzer 中使用绘图的更多信息,请参阅Linear System Analyzer 概述 (Control System Toolbox)。

原文链接:使用 System Identification App 识别线性模型 - MATLAB &Simulink 公司

此文仅供个人学习


网站公告

今日签到

点亮在社区的每一天
去签到