文档

使用From文件块加载数据

将信号数据加载到使用从文件布洛克:

  1. 用要加载的信号数据创建一个mat文件。看到为From文件块创建数据

  2. 添加一个从文件块到模型。连接从文件块到块从文件提供输入。

  3. 双击从文件块和指定:

    • 要从中加载数据的文件的路径

    • 的数据格式从文件块输出

    • 数据是如何加载的,包括采样时间,丢失数据点的数据是如何处理的,是否使用过零检测

数据加载

对于版本7.0和更早的MAT-file,从文件块在模拟开始时将完整的、未压缩的数据从文件加载到内存中。对于版本7.3的MAT-file,从文件块在模拟期间增量地从文件加载数据。

对于MAT-file中不包含匹配时间戳的每个仿真时间命中,Simulink万博1manbetx®使用插值或外推法来获得所需的数据。指定插值和外推方法。

在模拟过程中,“从文件”块无法从MAT-file加载数据到文件块正在导出数据到。

样品时间

从文件样品时间参数指定从mat文件加载数据的示例时间。文件中的时间戳必须是单调非递减的。具体操作请参见从文件块文档。

仿真时间命中没有相应的时间数据

如果模拟时间命中没有相应的MAT-file时间戳,则从文件块输出取决于:

  • 模拟时间命中发生在第一个时间戳之前、时间戳范围内还是在最后一个时间戳之后

  • 您选择的插值或外推方法

  • mat文件数据的数据类型

有关插值和外推选项的详细信息,请参阅相关文档从文件块参数:

  • 第一个数据点之前的数据外推

  • 时间范围内的数据插值

  • 最后一个数据点后的数据外推

重复的时间戳

有时mat文件包含重复的时间戳(两个或多个具有相同时间戳的数据值)。在这种情况下从文件相对于mat -文件中的重复时间戳,块动作取决于模拟时间命中发生的时间。

假设mat文件包含以下数据,其中三个数据值的时间戳值为2

时间戳:02 2 23 4数据值:26 4 91 5

下表描述了从文件块的输出。

模拟时间,相对于mat文件中的重复时间戳值 从文件块操作
在重复的时间戳之前

使用第一个重复的时间戳值作为插值的基础。(在本例中,时间戳值为6.)

在重复的时间戳上或之后

使用最后一个重复的时间戳值作为插值的基础。(在本例中,时间戳值为9.)

零交叉检测

过零检测定位时间戳的不连续,而不诉诸于过小的时间步长。默认情况下,从文件块不启用过零检测。

从文件块,过零检测只发生在文件中的时间戳。万博1manbetxSimulink只检查时间戳,而不是数据值。

对于总线信号,Simulink检测万博1manbetx所有叶总线元素的零交叉。

有关更多信息,请参见从文件的块文档使讨论二阶导数过零检测参数。

为From文件块创建数据

不支持NaN值万博1manbetx

不包括NaN值的mat -文件,您加载到从文件块。

保存到文件块的数据

从文件块加载由到文件在没有对数据进行任何修改或任何其他特别规定的情况下阻止。

万博1manbetx支持MAT-File版本

支持的M万博1manbetxAT-file版本有:

  • 版本7.0或更早

  • 版本7.3

对于版本7.0和更早的MAT-file,从文件块在模拟开始时将完整的、未压缩的数据从文件加载到内存中。对于版本7.3的MAT-file,从文件块在模拟期间增量地从文件加载数据。

有关mat文件的更多信息,请参见MAT-File版本(MATLAB)。

转换版本7.0和更早的版本MAT-Files。如果您有一个Version 7.0或更早版本的MAT-file,您想使用从文件块,考虑将文件转换为版本7.3。使用版本7.3 MAT-file,如果你想要从文件块以在模拟期间增量加载数据,或者您想使用MATLAB®timeseries数据。例如,要转换名为my_data_file.mat它包含变量var,在MATLAB命令提示符处输入:

负载(my_data_file.mat)保存(my_data_file。席”、“var”、“-v7.3”)

存储格式

从文件块从mat文件加载数据,该数据必须存储在数组格式或作为MATLABtimeseries对象。

数组的数据。只能对矢量、双精度、非复杂信号数据使用数组格式。

对于Version 7.0 MAT-file,则从文件块加载数组数据,但不是MATLABtimeseries数据。

存储数据的数组格式是一个包含两行或多行的矩阵。MAT-file中的矩阵必须具有以下形式:

t 1 t 2 ... t f n 一个 l u 1 1 u 1 2 ... u 1 f n 一个 l ... u n 1 u n 2 ... u n f n 一个 l

每个列的第一个元素包含一个时间戳。每一列的其余部分包含相应输出值的数据。每个元素都必须是double。元素不能包含,或

MATLABTimeseries数据。将总线数据与从文件块,使用MATLABtimeseries格式。

MATLABtimeseries格式数据可以有:

  • 任何维度和复杂性

  • 任何内置数据类型,包括布尔

  • 一种字长不超过32位的定点数据类型

  • 枚举数据类型

对于使用数组格式存储的数据,From File输出的宽度取决于矩阵中的行数。对于一个包含行,块输出一个长度向量1。

MATLABtimeseries格式支持以下模万博1manbetx拟和代码生成模式:

  • 正常的

  • 加速器

  • 快速的加速器

  • 模型参考加速器

看到从文件块文档的一个例子创建一个MATLAB的mat文件timeseries数据加载从工作空间块。

时间戳

文件中的时间戳必须是单调非递减的。

总线数据

从文件块支持加载非万博1manbetx虚拟总线信号。

数据必须在匹配总线层次结构的MATLAB结构中。结构的每个叶片必须是MATLABtimeseries对象。

结构可以少指定总线信号,但不能多指定总线信号。该结构不能有任何在总线中没有相应信号的元素。

该结构不需要timeseries对象,用于总线层次结构中的每个元素。然而,该结构必须具有timeseries对象中的至少一个信号。对于没有指定数据的信号,则从文件块输出接地值。

MAT-File变量

如果一个MAT-file只包含一个变量,则从文件Block使用该变量。如果MAT-file包含多个变量:

  • 对于版本7.3 MAT-files,从文件块使用按字母顺序排在前面的变量。

  • 对于版本7.0或更早的MAT-files,从文件块使用第一个变量。然而,对于这些版本,变量的排序算法是复杂的。使用一个mat文件,该文件只包含变量和您想要的数据从文件块加载。

另请参阅

相关的话题

这个话题有用吗?