信号加载方法概述
Simulink® 提供了几种向模型中导入信号数据的方法。这些信号数据加载方法都使用模块直观地表示信号数据源。
有关使用哪种方法能够满足具体建模要求的详细信息,请参阅Comparison of Techniques。
信源模块
您可以添加一个信源模块(例如 Sine Wave 模块)以生成要输入到另一个模块的信号。要指定如何生成信号,请使用“模块参数”对话框。例如,在 Sine Wave 的“模块参数”对话框中,您可以指定要使用的 sim
函数以及基于时间或基于采样的数据。
信源模块的输出数据类型各不相同。例如,Sine Wave 模块输出双精度实数向量。
有关使用信源模块的示例,请参阅Open Models。
推荐用途
当生成的信号数据满足建模要求时,在模型中建立初始原型
避免手动创建数据。
减少内存消耗。信源模块不存储信号数据。
使模型中的信号数据直观明了。
限制
信源模块基于预定义的算法生成信号。要使用外部源的实际数据或者要测试模型而不修改模型,请使用不同的信号加载方法。
根级输入端口
您可以使用以下模块之一从工作区中导入信号数据并将其应用于根级输入端口:
根级输入端口从 MATLAB®(基础)、模型或封装工作区加载外部输入。这些模块基于配置参数 > 数据导入/导出 > 输入参数或 sim
命令参量的值从工作区中导入数据。有关示例,请参阅Load Data to Represent Variable-Step Input from Model Hierarchy。
要将多个信号导入到根级输入端口中,请考虑使用根输入端口映射器工具。此工具将根据您导入的信号数据更新输入配置参数,并将其映射到根级输入端口。有关示例,请参阅使用根输入端口映射器工具映射数据。
推荐用途
根级输入端口可用于执行以下任务:
将许多信号导入多个模块
使用工作区中的信号将您的模型作为引用模型在更大的环境中进行测试,而无需修改模型
在通过导入信号数据来满足大多数建模要求并保持模型灵活性方面,根级输入端口映射是一种便捷的方法。根级输入端口映射:
显示信号数据供您检查,无需将所有信号数据加载到 MATLAB 内存中
提供节省内存的信号查看方式
要求
要确保 Simulink 变量求解器在您在导入的数据中指定的时间执行,请将配置参数 >
数据导入/导出 > 附加参数 >
输出选项参数设置为生成额外输出。
限制
您不能使用输入端口在外部模式下导入总线。要在快速加速模式下导入总线数据,请使用
Dataset
格式。根输入端口映射器工具支持的映射模式取决于信号的数据类型。有关详细信息,请参阅Choose a Base Workspace and MAT-File Format。
From File 模块
From File 模块从 MAT 文件中读取数据,并将数据输出为信号。
有关详细信息,请参阅使用 From File 模块加载数据。
推荐用途
考虑使用 From File 模块加载:
大量数据。对于 7.3 版的 MAT 文件,From File 模块在仿真期间以增量方式从 MAT 文件中加载数据。
提示
要将 7.0 版文件转换为 7.3 版(例如,包含变量
var
的my_data_file.mat
),请在 MATLAB 命令行中输入:load('my_data_file.mat') save('my_data_file.mat', 'var', '-v7.3')
导出到 To File 模块的数据。From File 模块可读取 To File 模块写入的数据,无需对数据进行任何修改,也不需要其他特殊条件。
与模型文件分离的 MAT 文件中存储的数据。
限制
对于 7.0 版或更早版本的 MAT 文件,From File 模块只读取数组格式的数据。
7.3 版和 7.0 版或更早版本的 MAT 文件以不同的方式处理多个变量。
From File 模块支持为存储为
timeseries
对象结构体的非虚拟总线加载输入数据。对于数组数据,From File 模块只能读取双精度型信号数据。
涉及编译 ERT 或 GRT 目标或者使用 SIL 或 PIL 仿真模式的代码生成有一些特殊的注意事项。请参阅代码生成。
From Spreadsheet 模块
From Spreadsheet 模块可从 Microsoft® Excel® 电子表格(所有平台)或 CSV 电子表格(仅限安装了 Microsoft Office 的 Microsoft Windows® 平台)读取数据,并将数据输出为一个或多个信号。
推荐用途
使用 From Spreadsheet 模块加载:
大型 Microsoft Excel 或 CSV 电子表格。From Spreadsheet 模块在仿真期间以增量方式从电子表格中读取数据,而不是将数据加载到 Simulink 内存。
您要修改的电子表格。From Spreadsheet 模块自动处理对工作表值的更改,因为它直接从电子表格中加载数据。
限制
不能导入总线数据。
From Spreadsheet 文件对电子表格数据有要求。请使用Supported Microsoft Excel File Formats中介绍的格式组织 Excel 电子表格数据。
Linux® 和 Mac 平台不支持使用 From Spreadsheet 模块从 CSV 电子表格中导入数据。
From Workspace 模块
From Workspace 模块从工作区读取信号数据并将数据输出为一个信号。在“模块参数”对话框中,在数据参数中输入指定工作区数据的 MATLAB 表达式。
有关如何使用 From Workspace 模块的示例,请参阅使用 From Workspace 模块加载数据。
推荐用途
From Workspace 模块可用于加载:
少量信号数据以执行本地临时测试
来自 MATLAB(基础)、模型、封装或函数工作区的数据
可变大小信号
使用 To Workspace 模块以 MATLAB
timeseries
格式保存的数据,无需手动更改数据在以前的仿真中由 To Workspace 模块以时间序列或带时间的结构体格式保存的、供将来仿真使用的数据
限制
您指定的数据表达式的计算结果必须为以下数据类型之一:
timeseries
或timetable
对象timeseries
或timetable
对象的结构体带或不带时间的结构体
二维矩阵
信号编辑器模块
使用 Signal Editor 模块,您可以创建可互换的场景以在模型中使用。
有关如何使用 Signal Editor 模块的示例,请参阅:
推荐用途
使用 Signal Editor 模块创建和加载在测试中使用的场景。
以下产品的工作流中集成了 Signal Editor 模块:
Simulink Test™
Simulink Coverage™
Simulink Design Verifier™
限制
函数调用
总线数组
在快速加速模式下使用总线
timetable
对象接地信号
Signal Editor 模块支持动态字符串。它不支持具有最大长度的字符串。此外,Signal Editor 模块中的字符串无法输出:
非标量 MATLAB 字符串。
包含缺失值的字符串数据。
包含非 ASCII 字符的字符串数据。