Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

To File

将数据写入到文件

  • To File block

库:
Simulink / Sinks
HDL Coder / Sinks

描述

To File 模块将输入信号数据写入 MAT 文件。此模块以增量方式写入到输出文件中,在仿真期间的内存开销极少。如果仿真开始时已经存在输出文件,模块将覆盖该文件。暂停仿真或仿真完成时,文件会自动关闭。如果仿真异常终止,To File 模块将保存它在异常终止时间点之前记录的数据。

To File 模块图标会显示输出文件的名称。

控制保存的数据量

如果使用配置参数 > 数据导入/导出 > 记录间隔参数指定数据记录间隔,则 To File 模块仅记录时间间隔内的数据。例如,如果时间间隔为空 ([]),模块则不会记录任何数据。此模块将记录的数据存储在与模块关联的文件中,而不是存储在您为单一仿真输出参数指定的变量中。

对于变步长求解器,要控制 To File 模块可用的数据量,请使用配置参数 > 数据导入/导出 > 附加参数 > 输出选项参数。例如,要在多次仿真的相同时间点写入数据,请选择 Produce specified output only 选项。

模块参数还控制保存的数据量。请参阅抽取采样时间

暂停仿真

暂停仿真后,不要更改 To File 模块记录的任何文件。例如,不要使用 MATLAB® save 命令保存此类文件。更改文件可能会导致恢复仿真时出现错误。如果要在暂停后更改文件,请复制文件并使用文件副本。

如果通过仿真步进器暂停,To File 模块将捕获暂停时间点之前的仿真数据。当您步退时,To File 数据文件将不再包含上次输出在减少时间之后的任何仿真数据。

限制

当引用模型中包含 To File 模块时,模型必须为单实例模型。模型架构中只能存在此模型的一个实例。有关详细信息,请参阅模型重用

端口

输入

全部展开

要存储在文件中的信号。每个采样都包含时间戳和相关数据值。数据可以是数组格式或 MATLAB timeseries 格式。To File 模块接受 Simulink® 软件支持的任何数据类型的实信号或复信号数据,但字长超过 32 位的定点数据除外。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

参数

全部展开

指定用来存储输出的 MAT 文件的路径名或文件名。在 UNIX® 系统中,路径名称可以用波浪号字符 (~) 开头(该符号表示主文件夹)。如果指定的文件名没有路径信息,Simulink 软件会将文件存储在 MATLAB 工作文件夹中。(要确定工作文件夹,请在 MATLAB 命令行输入 pwd。)如果文件存在,Simulink 软件将覆盖它。

编程用法

模块参数:FileName
类型:字符向量
值:MAT 文件路径或名称
默认值:'untitled.mat'

指定文件中包含的矩阵的名称。

编程用法

模块参数:MatrixName
类型:字符向量
值:字符向量
默认值:'ans'

指定 To File 模块写入数据所使用的数据格式。

数组格式仅用于向量、双精度、非复信号。

对于时间序列格式,To File 模块:

  • 将数据写入到 MATLAB timeseries 对象中。

  • 支持写入多维、实数或复数输出值。

  • 支持写入任何内置数据类型的输出值,包括 Boolean、枚举 (enum) 和字长最多 32 位的定点数据。

  • 对于虚拟和非虚拟总线输入信号,创建与总线架构匹配的 MATLAB 结构体。结构体的每个叶是一个 MATLAB timeseries 对象。

对于数组格式,To File 模块:

  • 将数据写入到包含两行或多行的矩阵中。矩阵形式如下:

    [t1t2tfinalu11u12u1finalun1un2unfinal]

    Simulink 软件在矩阵中为每个数据采样写入一列。列中的第一个元素包含时间戳。列的其余部分包含对应输出值的数据。

  • 支持写入一维、双精度和非复数数据。

From File 模块可使用 To File 模块以任何格式(TimeseriesArray)写入的数据,无需对数据进行任何修改,也没有其他特殊配置。

From Workspace 模块可读取 Array 格式的数据,以及 To File 模块写入的数据的转置数据。要提供所需的格式,请使用 MATLAB 命令从 MAT 文件中加载并转置数据。

下表显示了不同保存格式值对仿真模式的支持情况。

仿真模式时间序列数组
普通支持支持
加速支持支持
快速加速支持支持
软件在环 (SIL) 不支持如果启用 MAT 文件日志记录,则支持。
处理器在环 (PIL)不支持如果 MAT 文件日志记录可用并且已启用,则支持。
外部不支持如果启用 MAT 文件日志记录,则支持。
RSim 目标支持如果启用 MAT 文件日志记录,则支持。

编程用法

模块参数:SaveFormat
类型:字符向量
'Timeseries' | 'Array'
默认值:'Timeseries'

指定抽取因子 n,它在模块每执行 n 次时写入数据。默认值使此模块在每个时间步写入数据。

编程用法

模块参数Decimation
类型:字符向量
值:标量 | 向量
默认值:'1'

指定采集数据点的采样周期和偏移量。使用时间步间隔不是常量的变步长求解器时,此参数很有用。默认值使此模块继承驱动模块的采样时间。请参阅 指定采样时间

编程用法

模块参数SampleTime
类型:字符向量
值:标量 | 向量
默认值:'-1'

模块特性

数据类型

Boolean | bus | double | enumerated | fixed pointa | integer | single

直接馈通

多维信号

可变大小信号

过零检测

a 最高支持 32 位定点数据类型。

提示

  • 当您在包含很多时间步的长时间仿真中记录很多信号时,如果 MATLAB 遇到内存问题,请考虑记录到持久存储。当您记录到持久存储时,Dataset 格式的记录数据将存储在 MAT 文件中。与记录到持久存储相比,为信号连接 To File 模块具有以下缺点:

    • 它是一种逐信号处理方法,每个信号上可能会连接多个 To File 模块,从而使模型变得杂乱无序。

    • 它会为每个 To File 模块创建一个单独的 MAT 文件,而记录到持久存储只使用一个 MAT 文件。

    有关详细信息,请参阅Log Data to Persistent Storage

  • 为了避免实时压缩数据产生的开销,To File 模块将数据写入到未压缩的 7.3 版 MAT 文件中。要压缩 MAT 文件中的数据,请在 MATLAB 中加载并保存该文件。重新保存的文件比 To File 模块创建的原始 MAT 文件小,因为保存命令会压缩 MAT 文件中的数据。

扩展功能

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

版本历史记录

在 R2006a 之前推出