Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

提供用于仿真的信号数据

Simulink® 模型对输入信号数据执行算法并产生输出信号。该模型定义在仿真开始时使用什么输入数据,以及在仿真结束时捕获什么输出。在创建和仿真模型时,您可以:

在创建、调试和测试模型时,您可以使用不同输入信号数据集进行仿真。您可以使用记录的仿真数据作为另一个仿真的输入。

确定模型的信号数据要求

要使用系统生成的信号数据,请使用信源模块,如 Sine Wave 模块。信源模块不需要使用变量或外部数据源。如果无法配置信源模块以满足建模要求,则要提供信号数据。

当您确定信号数据要求时,请确定:

  • 需要为其提供数据的模块(包括子系统和 Model 模块)- 为模块和模型组件设计接口,包括信号的数据类型。

  • 信号的范围特性,如采样时间、维度和数据类型。

  • 每个输入信号的数据存储位置 - 确定信号数据的存储位置:是存储在工作区变量中、MAT 文件中,还是外部数据文件(如 Microsoft® Excel® 电子表格)中。

创建方程变量和常系数的列表,然后从公开发表的来源数据获得系数值,或通过在系统上进行试验来确定系数值。

有关信号数据存储位置的信息,请参阅 可供加载的信号数据存储

可供加载的信号数据存储

您可将要加载到模型中的信号数据存储在以下位置:

  • MATLAB®(基础)工作区或函数工作区

  • 模型工作区

  • 函数工作区

  • 封装工作区

  • 模块

  • MAT 文件

  • 电子表格

MATLAB(基础)工作区是加载信号数据最常用的工作区。

通过 MATLAB 工作区提供信号数据

如果您要执行以下操作,请考虑使用 MATLAB(基础)工作区:

  • 使用少量信号数据进行迭代仿真。

  • 使用在一次仿真期间记录的信号数据作为另一次仿真的输入。

  • 让多个模型使用相同的信号数据。

MATLAB 工作区中创建信号数据

  • 在 MATLAB 命令行或编辑器中,创建信号数据。

  • 使用 xlsread 函数将 Excel 电子表格中的数据读入 MATLAB 工作区中。

  • 使用 csvread 函数将 CSV 电子表格中的数据读入 MATLAB 工作区中。

  • 使用模型回调加载信号数据。

  • 使用以下 Simulink 记录方法之一:

    • 信号日志记录

    • To Workspace 模块

    • Scope 模块

    • Configuration Parameters > Data Import/Export 窗格中的 OutputStatesFinal states 参数。

    • 数据存储

    • 配置为记录仿真数据的 sim 命令

MATLAB 工作区加载信号数据.  要从工作区加载信号数据,请使用以下方法之一:

  • 添加一个 From Workspace 模块。

  • 使用根级输入端口。

    • Configuration Parameters > Data Import/Export > Input 参数中指定工作区变量。

    • 使用 Root Inport Mapper 工具指定 Input 参数的数据。

通过信源模块和 Signal Editor 模块提供信号数据

信源模块(如 Sine Wave 模块)产生的信号可用作其他模块的输入。信源模块不存储信号数据。如果信源模块生成的信号数据能满足您的建模要求,则可使用这些信源模块来构建模型的初始原型。

要定义模型输入方案,您可以使用 Signal Editor 模块。Signal Editor 模块存储方案定义。

要实现以下目的,请考虑使用信源模块:

  • 避免手动创建数据。

  • 减少内存消耗 - 信源模块不存储信号数据。

  • 在模型中用图形表示信号数据的种类。

要实现以下目的,请考虑使用 Signal Editor 模块:

  • 创建和导入测试用方案。

    您可以将方案用于 Simulink 和以下产品:

    • Simulink Test™

    • Simulink Coverage™

    • Simulink Design Verifier™

  • 快速切换方案。

用 MAT 文件提供信号数据

要实现以下目的,请考虑将信号数据存储在 MAT 文件中:

  • 高效加载大量信号数据。

  • 在不同模型中重用相同的信号数据。

  • 降低模型的内存要求。

  • 将不同信号数据集用于同一模型和更新极少的模型。

将信号数据存储在 MAT 文件中.  要创建 MAT 文件来存储要导入的信号数据,您可以使用:

  • To File 模块

  • Signal Editor 用户界面

  • MATLAB 来创建要存储在 MAT 文件中的信号数据

  • Simulink.saveVars 来将仿真信号数据保存到 MAT 文件中,Simulink 会将这些数据存储为工作区变量

从 MAT 文件加载信号数据.  要将信号数据从 MAT 文件加载到模型中,您可以使用 From File 模块。

通过电子表格提供信号数据

要实现以下目的,请考虑使用 Excel 或 CSV 电子表格:

  • 利用已包含必要信号数据的现有电子表格,或可通过简单更新即可包含信号数据的现有电子表格。

  • 高效加载大量信号数据。

  • 降低模型的内存要求。

  • 将不同信号数据集用于同一模型和更新极少的模型。

  • 与未安装 Simulink 的其他人共享信号数据。

将信号数据存储在电子表格中.  使用以下方法之一:

  • 直接在电子表格中创建信号数据。有关电子表格要求,请参阅存储格式

  • 使用 xlswritecsvwrite 函数,将 MATLAB 信号数据导出到 Excel 或 CSV 电子表格。

从电子表格加载信号数据.  使用 From Spreadsheet

From Spreadsheet 模块支持在所有平台上加载 Microsoft Excel。此模块仅支持在 Microsoft Windows® 平台上加载 CSV 电子表格。

From Spreadsheet 模块直接从电子表格中增量加载数据,以尽量减少内存消耗。

加载输入信号数据

您可以使用各种来源的输入信号数据对模型进行仿真。您可以:

  • 使用来自文件(如电子表格)的现有数据。

  • 编写 MATLAB 脚本,为信号数据定义变量。例如,您可以创建支持所有信号加载方法的 Dataset 格式的数据。

  • 使用在以前的仿真中记录的数据。

可以使用几种不同的方法将数据加载到模型中,包括:

  • 根级输入端口 - 从工作区导入信号数据,使用 Input 配置参数将其导入到 InportEnableTrigger 模块的根级输入端口。您可以直接在 Input 参数中指定输入数据。要将多个信号导入到根级输入端口中,请考虑使用 Root Inport Mapping 工具。该工具将根据您导入的信号数据更新 Input 参数,并将其映射到根级输入端口。

  • 信源模块 - 添加一个信源模块(例如 Sine Wave 模块)以生成要输入到另一个模块的信号。

  • From File 模块 - 从 MAT 文件读取数据,将数据输出为信号。

  • From Spreadsheet 模块 - 从 Microsoft Excel 电子表格或 CSV 电子表格读取数据,将数据输出为一个或多个信号。

要确定满足模型输入信号数据要求的方法,请参阅Comparison of Signal Loading Techniques

记录输出信号数据

您可以在仿真过程中将信号值保存到 MATLAB 工作区或 MAT 文件中,以便于在以后进行检索和后期处理。保存仿真数据也称为记录或导出仿真数据。

要确定应该使用哪种方法来记录信号数据,请参阅导出仿真数据

Dataset 格式为各种记录方法所记录的结果提供了一种通用的格式,因此以这种方式保存仿真数据可以简化后期处理。使用 Dataset 格式将数据存储为 MATLAB timeseries 对象,您可以使用 MATLAB 处理这些对象。Simulink 提供了工具,可将以其他格式记录的数据转换为 Dataset 格式。

有关记录输出信号数据的详细信息,请参阅保存仿真的运行时数据

另请参阅

模块

相关主题