Main Content

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

From File

从 MAT 文件加载数据

  • 库:
  • Simulink / Sources

说明

From File 模块将数据从 MAT 文件加载到模型并将数据输出为一个信号。数据为一系列样本。每个样本均包含时间戳和相关联的数据值。数据可以是数组格式或 MATLAB® timeseries 格式。

From File 模块图标显示向模块提供数据的 MAT 文件的名称。

您可以有多个 From File 模块从同一 MAT 文件加载数据。

支持的 MAT 文件版本为 7.0 版或更早版本以及 7.3 版。From File 模块从版本 7.3 文件逐步加载数据。

您可以指定如何加载数据,包括:

  • Sample time

  • 如何处理数据的缺失数据点

  • 是否使用过零检测

有关详细信息,请参阅使用 From File 模块加载数据

端口

输出

全部展开

MAT 文件数据,指定为一系列样本。每个样本均包含时间戳和相关联的数据值。数据可以是数组格式或 MATLAB timeseries 格式。

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

参数

全部展开

包含输入数据的 MAT 文件的路径或文件名。通过以下方式之一来指定路径或文件名:

  • 浏览到包含有效 MAT 文件的文件夹。

    在 UNIX® 系统中,路径名称可以用波浪号字符 (~) 开头(该符号表示主文件夹)。

  • 在文本框中输入文件路径。

默认文件名为 untitled.mat。如果指定不带路径信息的文件名,Simulink® 会加载当前文件夹或 MATLAB 路径中的文件。(若要确定当前文件夹,请在 MATLAB 命令提示符下输入 pwd。)

指定 File name 后,可以使用查看按钮 () 预览来自 MAT 文件的信号。有关详细信息,请参阅Preview Signal Data

依存关系

RSim 目标的代码生成提供与 Simulink 相同的支持;所有其他代码生成目标仅支持具有时间格式的数组中的一维双精度实信号。

要生成用于编译 ERT 或 GRT 目标或使用 SIL 或 PIL 仿真模式的代码,MAT 文件必须包含至少有两行的非空有限实矩阵。

有关使用 From File 模块的 C/C++ 代码生成的详细信息,请参阅Code Generation

编程用法

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

From File 模块输出的数据的数据类型。对于非总线类型,可以使用 “Inherit: auto” 跳过任何数据类型验证。如果指定输出数据类型,则 From File 模块将验证文件中的数据是否与指定的数据类型相匹配。有关详细信息,请参阅 控制信号数据类型

如果将 Output data type 设置为总线对象,则编译模型时该总线对象必须可用。对于总线数据中的每个信号, From File 模块将验证总线数据和总线对象的数据类型、维度和复/实性是否相同。

点击 Show data type assistant 按钮 以显示 Data Type Assistant,帮助您设置数据类型参数。有关详细信息,请参阅使用 Data Type Assistant 指定数据类型

编程用法

模块参数:OutDataTypeStr
类型:字符向量
'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | 'Bus: <object name>' | '<data type expression>'
默认值:'Inherit: auto'

指定采样期间和偏移量。

From File 模块使用以下任一采样时间从 MAT 文件加载数据:

  • 您为 From File 模块指定的采样时间。

  • From File 模块从目标模块(即 From File 模块将数据馈送到的模块)继承的采样时间。

默认采样时间为 0,指定的是一个连续采样时间。以模型的基础(最快)速率加载 MAT 文件。有关详细信息,请参阅指定采样时间

编程用法

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

在 MAT 文件中的初始时间戳之前发生的仿真时间点的外插方法。选择以下外插方法之一。

方法说明
Linear extrapolation

(默认值)

如果 MAT 文件只包含一个样本,则 From File 模块输出相应的数据值。

如果 MAT 文件中包含多个样本,则 From File 模块使用前两个样本进行线性外插:

  • 对于 double 数据,使用前两个样本对值进行线性外插

  • 对于 Boolean 数据,输出第一个数据值

  • 对于除 doubleBoolean 之外的内置数据类型,From File 模块:

    • 将数据向上转换为 double

    • 执行线性外插(如针对 double 数据情形所述)

    • 将外插的数据值向下转换为原始数据类型

不能将 “Linear extrapolation” 选项与枚举 (enum) 数据结合使用。总线中的所有信号使用相同的外插设置。如果总线中有任何信号使用 enum 数据,则您不能使用 “Linear extrapolation” 选项。

Hold first value

使用文件中的第一个数据值

Ground value

使用的值取决于 MAT 文件样本数据值的数据类型:

  • 定点数据类型 - 使用接地值

  • 除定点之外的数值类型 - 使用 0

  • Boolean - 使用 false

  • 枚举数据类型 - 使用默认值

依存关系

要生成用于编译 ERT 或 GRT 目标或使用 SIL 或 PIL 仿真模式的代码,必须将此参数设置为 “Linear extrapolation”。有关使用 From File 模块的 C/C++ 代码生成的详细信息,请参阅Code Generation

编程用法

模块参数:ExtrapolationBeforeFirstDataPoint
类型:字符向量
值:'Linear extrapolation' | 'Hold first value' | 'Ground value'
默认值:'Linear extrapolation'

Simulink 针对在 MAT 文件中的两个时间戳之间的仿真时间点使用的插值法。选择下列插值方法之一。

方法说明
Linear interpolation

(默认值)

From File 模块使用两个对应的 MAT 文件样本进行插值:

  • 对于 double 数据,使用两个对应样本进行线性插值

  • 对于 Boolean 数据,对样本的前半部分使用 false,后半部分使用 true

  • 对于除 doubleBoolean 之外的内置数据类型,From File 模块:

    • 将数据向上转换为 double

    • 执行线性内插,如针对 double 数据情形所述

    • 将插入的值向下转换为原始数据类型

Zero order hold

使用两个样本中第一个样本的数据

限制

不能将 “Linear interpolation” 选项与枚举 (enum) 数据结合使用。总线中的所有信号使用相同的内插设置。如果总线中有任何信号使用 enum 数据,则您不能使用 “Linear interpolation” 选项。

依存关系

要生成用于编译 ERT 或 GRT 目标或使用 SIL 或 PIL 仿真模式的代码,必须将此参数设置为 “Linear interpolation”。有关使用 From File 模块的 C/C++ 代码生成的详细信息,请参阅Code Generation

编程用法

模块参数:InterpolationWithinTimeRange
类型:字符向量
值:'Linear interpolation' | 'Zero order hold'
默认值:'Linear interpolation'

针对在 MAT 文件中最后一个时间戳之后发生的仿真时间点使用的外插方法。选择下列外插方法之一。

方法说明
Linear extrapolation

(默认值)

如果 MAT 文件只包含一个样本,则 From File 模块输出相应的数据值。

如果 MAT 文件中包含多个样本,则 From File 模块使用最后两个样本的数据值进行线性外插:

  • 对于 double 数据,使用最后两个样本对值进行外插。

  • 对于 Boolean 数据,输出第一个数据值。

  • 对于除 double 或 Boolean 之外的内置数据类型:

    • 将数据向上转换为 double

    • 执行线性外插,如 double 数据所述

    • 将外插的值向下转换为原始数据类型

Hold last value

使用文件中的最后一个数据值

Ground value

使用的值取决于 MAT 文件样本数据值的数据类型:

  • 定点数据类型 - 使用接地值

  • 除定点之外的数值类型 - 使用 0

  • Boolean - 使用 false

  • 枚举数据类型 - 使用默认值

限制

不能将 “Linear extrapolation” 选项与枚举 (enum) 数据结合使用。总线中的所有信号使用相同的外插设置。如果总线中有任何信号使用 enum 数据,则您不能使用 “Linear extrapolation” 选项。

依存关系

要生成用于编译 ERT 或 GRT 目标或使用 SIL 或 PIL 仿真模式的代码,必须将此参数设置为 “Linear extrapolation”。有关使用 From File 模块的 C/C++ 代码生成的详细信息,请参阅Code Generation

编程用法

模块参数:ExtrapolationAfterLastDataPoint
类型:字符向量
值:'Linear extrapolation' | 'Hold last value' | 'Ground value'
默认值:'Linear extrapolation'

启用过零检测。

仅当 Sample time 参数设置为 0(连续)时,过零检测 参数才适用。

Simulink 使用一种称为过零检测的技术来定位时间戳中的不连续性,无需采用过小的时间步。“过零”代表了不连续性。

对于 From File 模块,过零检测只能在文件中时间戳所标记的时间点进行。Simulink 仅检查时间戳,不检查数据值。

对于总线信号,Simulink 将跨所有叶节点总线元素进行过零检测。

如果输入数组包含重复的时间戳(多个条目具有相同的时间戳),Simulink 将在这些时间戳处进行过零检测。例如,假设输入数组具有以下数据。

time:     0 1 2 2 3
signal:   2 3 4 5 6

在时间 2 处,存在由于输入信号不连续而产生的一个过零点。

对于非重复时间戳,过零检测取决于以下参数的设置:

  • Data extrapolation before first data point

  • Data interpolation within time range

  • Data extrapolation after last data point

From File 模块根据时间戳确定何时发生过零。

时间戳设置

第一个

Data extrapolation before first data point 设置为 “Ground value”。

第一个和最后一个之间

Data interpolation within time range 设置为 “Zero-order hold”。

最后一个

满足以下一项或两项设置:

  • Data extrapolation after last data point 设置为 “Ground value”。

  • Data interpolation within time range 设置为 “Zero-order hold”。

下图显示了当 From File 模块具有以下设置时针对其所访问数据的过零检测:

  • Data extrapolation before first data point - “Linear extrapolation

  • Data interpolation within time range(用于内部点)- “Zero order hold

  • Data extrapolation after last data point - “Linear extrapolation

下图是针对 From File 模块所访问的数据的过零检测的另一种表示。该模块具有以下时间戳(点)设置:

  • Data extrapolation before first data point - “Hold first value

  • Data interpolation within time range - “Zero order hold

  • Data extrapolation after last data point - “Hold last value

依存关系

要生成用于编译 ERT 或 GRT 目标或使用 SIL 或 PIL 仿真模式的代码,请清除此复选框。有关使用 From File 模块的 C/C++ 代码生成的详细信息,请参阅Code Generation

编程用法

模块参数ZeroCross
类型:字符向量
'off' | 'on'
默认值'on'

模块特性

数据类型

Boolean | bus | double | enumerated | fixed point[a] | integer | single

直接馈通

多维信号

可变大小信号

过零检测

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

扩展功能

在 R2006a 之前推出