提供用于仿真的信号数据
Simulink® 模型对输入信号数据执行算法并产生输出信号。该模型定义在仿真开始时使用什么输入数据,以及在仿真结束时捕获什么输出。在创建和仿真模型时,您可以:
在创建、调试和测试模型时,您可以使用不同输入信号数据集进行仿真。您可以使用记录的仿真数据作为另一个仿真的输入。
确定模型的信号数据要求
要使用系统生成的信号数据,请使用信源模块,如 Sine Wave 模块。信源模块不需要使用变量或外部数据源。如果无法配置信源模块以满足建模要求,则要提供信号数据。
当您确定信号数据要求时,请确定:
需要为其提供数据的模块(包括子系统和 Model 模块)- 为模块和模型组件设计接口,包括信号的数据类型。
信号的范围特性,如采样时间、维度和数据类型。
每个输入信号的数据存储位置 - 确定信号数据的存储位置:是存储在工作区变量中、MAT 文件中,还是外部数据文件(如 Microsoft® Excel® 电子表格)中。
创建方程变量和常系数的列表,然后从公开发表的来源数据获得系数值,或通过在系统上进行试验来确定系数值。
有关信号数据存储位置的信息,请参阅 可供加载的信号数据存储。
可供加载的信号数据存储
您可将要加载到模型中的信号数据存储在以下位置:
MATLAB®(基础)工作区或函数工作区
模型工作区
函数工作区
封装工作区
模块
MAT 文件
电子表格
MATLAB(基础)工作区是加载信号数据最常用的工作区。
通过 MATLAB 工作区提供信号数据
如果您要执行以下操作,请考虑使用 MATLAB(基础)工作区:
使用少量信号数据进行迭代仿真。
使用在一次仿真期间记录的信号数据作为另一次仿真的输入。
让多个模型使用相同的信号数据。
在 MATLAB 工作区中创建信号数据
在 MATLAB 命令行或编辑器中,创建信号数据。
使用
xlsread
函数将 Excel 电子表格中的数据读入 MATLAB 工作区中。使用
readmatrix
函数将 CSV 电子表格中的数据读入 MATLAB 工作区中。使用模型回调加载信号数据。
使用以下 Simulink 记录方法之一:
信号记录
To Workspace 模块
Scope 模块
配置参数 > 数据导入/导出窗格中的输出、状态或最终状态参数。
数据存储
配置为记录仿真数据的
sim
命令
从 MATLAB 工作区加载信号数据. 要从工作区加载信号数据,请使用以下方法之一:
添加一个 From Workspace 模块。
使用根级输入端口。
在配置参数 > 数据导入/导出 > 输入参数中指定工作区变量。
使用根输入端口映射器工具指定输入参数的数据。
通过信源模块和信号编辑器模块提供信号数据
信源模块(如 Sine Wave 模块)产生的信号可用作其他模块的输入。信源模块不存储信号数据。如果信源模块生成的信号数据能满足您的建模要求,则可使用这些信源模块来构建模型的初始原型。
要定义模型输入场景,您可以使用 Signal Editor 模块。Signal Editor 模块存储场景定义。
要实现以下目的,请考虑使用信源模块:
避免手动创建数据。
减少内存消耗 - 信源模块不存储信号数据。
在模型中用图形表示信号数据的种类。
要实现以下目的,请考虑使用 Signal Editor 模块:
创建和导入测试用场景。
您可以将场景用于 Simulink 和以下产品:
Simulink Test™
Simulink Coverage™
Simulink Design Verifier™
快速切换场景。
用 MAT 文件提供信号数据
要实现以下目的,请考虑将信号数据存储在 MAT 文件中:
高效加载大量信号数据。
在不同模型中重用相同的信号数据。
降低模型的内存要求。
将不同信号数据集用于同一模型和更新极少的模型。
将信号数据存储在 MAT 文件中. 要创建 MAT 文件来存储要导入的信号数据,您可以使用:
To File 模块
信号编辑器用户界面
MATLAB 来创建要存储在 MAT 文件中的信号数据
从 MAT 文件加载信号数据. 要将信号数据从 MAT 文件加载到模型中,您可以使用 From File 模块。
通过电子表格提供信号数据
要实现以下目的,请考虑使用 Excel 或 CSV 电子表格:
利用已包含必要信号数据的现有电子表格,或可通过简单更新即可包含信号数据的现有电子表格。
高效加载大量信号数据。
降低模型的内存要求。
将不同信号数据集用于同一模型和更新极少的模型。
与未安装 Simulink 的其他人共享信号数据。
将信号数据存储在电子表格中. 使用以下方法之一:
从电子表格加载信号数据. 使用 From Spreadsheet。
From Spreadsheet 模块支持在所有平台上加载 Microsoft Excel。此模块仅支持在 Microsoft Windows® 平台上加载 CSV 电子表格。
From Spreadsheet 模块直接从电子表格中增量加载数据,以减少内存消耗。
加载输入信号数据
您可以使用各种来源的输入信号数据对模型进行仿真。您可以:
使用来自文件(如电子表格)的现有数据。
编写 MATLAB 脚本,为信号数据定义变量。例如,您可以创建支持所有信号加载方法的
Dataset
格式的数据。使用在以前的仿真中记录的数据。
可以使用几种不同的方法将数据加载到模型中,包括:
根级输入端口 - 从工作区导入信号数据,使用输入配置参数将其导入到 Inport、Enable 或 Trigger 模块的根级输入端口。您可以直接在输入参数中指定输入数据。要将多个信号导入到根级输入端口中,请考虑使用根输入端口映射工具。该工具将根据您导入的信号数据更新输入参数,并将其映射到根级输入端口。
信源模块 - 添加一个信源模块(例如 Sine Wave 模块)以生成要输入到另一个模块的信号。
From File 模块 - 从 MAT 文件读取数据,将数据输出为信号。
From Spreadsheet 模块 - 从 Microsoft Excel 电子表格或 CSV 电子表格读取数据,将数据输出为一个或多个信号。
要确定满足模型输入信号数据要求的方法,请参阅Comparison of Signal Loading Techniques。
记录输出信号数据
您可以在仿真过程中将信号值保存到 MATLAB 工作区或 MAT 文件中,以便于在以后进行检索和后期处理。保存仿真数据也称为记录或导出仿真数据。
要确定应该使用哪种方法来记录信号数据,请参阅保存仿真数据。
Dataset
格式为各种记录方法所记录的结果提供了一种通用的格式,因此以这种方式保存仿真数据可以简化后期处理。使用 Dataset
格式将数据存储为 MATLAB timeseries
对象,您可以使用 MATLAB 处理这些对象。Simulink 提供了工具,可将以其他格式记录的数据转换为 Dataset
格式。
有关记录输出信号数据的详细信息,请参阅保存仿真的运行时数据。