将数据从 Simulink 模型记录到工作区 您所在的位置:网站首页 workspace怎么设置中文 将数据从 Simulink 模型记录到工作区

将数据从 Simulink 模型记录到工作区

2023-05-23 13:13| 来源: 网络整理| 查看: 265

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

To Workspace

将数据从 Simulink 模型记录到工作区

全页展开

库: Simulink / Sinks DSP System Toolbox / Sinks HDL Coder / Sinks

描述

To Workspace 模块将连接到其输入端口的数据记录到来自 Simulink® 模型的工作区。通常,记录的数据在基础工作区中返回。当您以编程方式在函数中仿真模型时,记录的数据将返回到函数的工作区中。在仿真期间,记录的数据会流式传输到仿真数据检查器。当仿真暂停或停止时,记录的数据会写入工作区。

您可以使用 To Workspace 模块记录信号、总线或总线数组的数据。To Workspace 模块支持记录标量和多维数据,包括可变大小信号的数据。

您可以配置存储 To Workspace 模块所记录数据的变量的名称,还可以指定所记录数据的格式。您还可以通过指定模块或模型参数来控制 To Workspace 模块记录的值。有关详细信息,请参阅Specify Signal Values to Log。

访问记录的数据

仿真结果如何返回到工作区取决于您如何仿真和配置模型。在以下任何情况下,仿真结果都以单个 Simulink.SimulationOutput 对象形式返回:

启用单一仿真输出参数。

默认情况下,创建新模型时,单一仿真输出参数处于启用状态。您可以使用“配置参数”对话框来启用该参数。在建模选项卡上的设置下,点击模型设置。然后,在“配置参数”对话框中,选择数据导入/导出,并选择单一仿真输出。

您可以使用多个仿真窗格运行一组仿真。

您可以使用一个或多个 Simulink.SimulationInput 对象以编程方式对模型进行仿真。

使用 sim、parsim 和 batchsim 函数运行仿真时,您可以使用 SimulationInput 对象配置仿真。

使用 sim 函数语法仿真模型,该语法将结果以单个仿真输出形式返回。

有关详细信息,请参阅 sim。

当仿真结果在单个输出中返回时,对于模型中的每个 To Workspace 模块,SimulationOutput 对象都包含一个对应的变量。要访问 To Workspace 模块记录的数据,请执行以下操作:

使用一个圆点,后跟使用模块的变量名称参数指定的变量名称。默认情况下,模型配置为使用变量名称 out 返回单个仿真输出,To Workspace 模块会将数据保存到名为 simout 的变量中。

toWksData = out.simout;

使用 get 函数和包含所记录数据的变量的名称。

toWksData = get(out,simout);

在模型中,To Workspace 模块指示如何访问工作区中的数据。默认情况下,该模块显示 out.simout。当您执行以下操作时,模块外观会更新:

为模块中的变量名称参数指定不同的值。

为单个仿真输出指定不同的变量名称。

清除单一仿真输出配置参数。

示例Output Simulation Data with Blocks

How To Workspace and To File blocks write data to the workspace and to a file respectively.

打开脚本可变大小信号基本操作

此示例说明可变大小信号是如何生成的。它还说明了可对这些信号应用的一些操作。此示例旨在介绍与可变大小信号相关联的基本操作。

打开模型端口输入

全部展开

Port_1 — 要记录到工作区的数据 标量 | 向量 | 矩阵 | 数组 | 总线

接收数据以记录到工作区的输入端口。To Workspace 模块支持记录任何内置数据类型或用户定义数据类型的实数和复数数据,如总线、枚举和定点数据。

提示

记录定点数据需要 Fixed-Point Designer™ 许可证。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | string | fixed point | enumerated | bus | image 复数支持: 是

参数

全部展开

变量名称 — 用于保存数据的变量的名称 simout (默认) | 字符串 | 字符向量

为包含所记录数据的变量指定名称。默认情况下,To Workspace 模块将记录的数据保存在名为 simout 的变量中。当一个模型包含多个 To Workspace 模块时,每个模块的变量名称参数值必须是唯一的。

有关命名 MATLAB® 变量的信息,请参阅变量名称。

编程用法 模块参数:VariableName 类型:字符串 | 字符向量 值:有效的 MATLAB 变量名称 默认值:'simout' 将数据点限制为最后 — 要记录的采样数 inf (默认) | 标量 | 向量

如果只想保存或分析仿真结束时的数据,请将要记录的采样数指定为大于零的正整数。默认情况下,To Workspace 模块记录整个仿真的数据,并且将数据点限制为最后参数的值为 inf。

有关控制在仿真期间记录哪些采样的详细信息,请参阅Specify Signal Values to Log。

编程用法 模块参数:MaxDataPoints 类型:字符串 | 字符向量 值:'inf' | 大于零的正整数 默认值: 'inf' 抽取 — 抽取因子 1 (默认) | 标量

指定抽取因子以降低记录数据的有效采样率。对于抽取因子 n,To Workspace 模块记录每第 n 个采样值。例如,当抽取值指定为 2 时,To Workspace 模块每隔一个数据点记录一个采样。

有关控制在仿真期间记录哪些采样的详细信息,请参阅Specify Signal Values to Log。

编程用法 模块参数:Decimation 类型:字符串 | 字符向量 值:标量 默认值:'1' 保存格式 — 记录到工作区的数据的格式 “时间序列” (默认) | “带时间的结构体” | “结构体” | “数组”

指定记录到工作区的数据的格式。要记录总线或总线数组输入的数据,请使用“时间序列”格式。

保存格式值工作区数据格式仿真工作流支持“时间序列”

非总线输入记录为 timeseries 对象。

总线输入记录为由 timeseries 对象组成的结构体。结构体中字段的层次结构和名称与在定义总线的 Simulink.Bus 对象中指定的层次结构和名称匹配。

总线数组输入记录为由 timeseries 对象组成的结构体数组。

支持:

普通模式仿真

加速模式仿真

快速加速模式仿真

不支持:

外部模式仿真

软件在环 (SIL) 仿真

处理器在环 (PIL) 仿真

Simulink Coder™ 目标的代码生成

“带时间的结构体”

非总线输入记录为包含以下字段的结构体:

time - 由记录输入值的仿真时间点组成的列向量。

signals - 具有采样值的结构体,包含以下字段:

values - 由采样值组成的数组。

dimensions - 采样维度。

label - 模型中信号线的名称。

blockName - To Workspace 模块的名称。

始终支持:

普通模式仿真。

支持,除非 To Workspace 模块位于引用模型中:

加速模式仿真

快速加速模式仿真

外部模式仿真

如果为生成的代码启用 MAT 文件记录 (Simulink Coder),则支持,除非 To Workspace 模块位于引用模型中:

软件在环 (SIL) 仿真

处理器在环 (PIL) 仿真

Simulink Coder 目标的代码生成

“结构体”

非总线输入记录为与“带时间的结构体”格式匹配的结构体,但该结构体的 time 字段为空。

“数组”

非总线输入的采样值保存为 N 维数组,其中 N 比输入维数大一。例如:

标量信号数据记录为列向量。

向量信号数据记录为矩阵。

矩阵信号数据记录为三维数组。

数组中值的结构取决于输入信号数据的维数:

对于标量和向量信号,每个采样值在输出数组中都有一个对应的行。数组的第一个维度与时间对齐,使得 simout(1,:) 返回记录的第一个信号值。

对于矩阵信号,输出数组的第三个维度与时间对齐,使得 simout(:,:,1) 返回记录的第一个信号值。

对于 N 维信号,最后一个维度与时间对齐,使得最后一个维度中的元素数等于从仿真记录的采样数。

输出数组只包含信号值,不包含时间数据。

提示

要将数据记录为基于帧而不是基于采样,请执行以下操作:

配置保存格式参数,以使用“结构体”或“数组”格式记录数据。

将将二维信号另存为参数指定为“二维数组(沿第一个维度串联)”

当您要使用 From Workspace 模块加载记录的数据时,请考虑使用“时间序列”或“带时间的结构体”格式。当使用“数组”格式记录数据时,您需要在加载数据之前将采样时间值合并到数组中。

编程用法 模块参数:SaveFormat 类型:字符串 | 字符向量 值:'Timeseries' | 'Structure with Time' | 'Structure' | 'Array' 默认值:'Timeseries' 将二维信号另存为 — 所记录数据中二维采样值的排列 “三维数组(沿第三个维度串联)” (默认) | “二维数组(沿第一个维度串联)”

指定将二维输入数据记录为三维数组还是二维数组。

记录为三维数组非常适合基于采样的输入数据。采样在第三个维度上串联,这样可以轻松访问二维采样数据。

记录为二维数组非常适合基于帧的输入数据。采样在第一个维度上串联,这实际上从第一个维度删除了帧缓冲。

输入数据维度将二维信号另存为...工作区数据维度M×N“二维数组(沿第一个维度串联)”

K×N 矩阵,其中 K 等于 M 乘以从仿真记录的采样数。

例如,记录 2×4 矩阵输入的十个采样会创建一个 20×4 矩阵。

“三维数组(沿第一个维度串联)”

M×N×K 数组,其中 K 等于从仿真记录的采样数。

例如,记录 2×4 矩阵输入的十个采样会创建一个 2×4×10 数组。

依存关系

要启用此参数,请将保存格式设置为“数组”或“结构体”。

编程用法 模块参数:Save2DSignal 类型:字符串 | 字符向量 值:'2-D array (concatenate along first dimension)' | '3-D array (concatenate along third dimension)' 默认值:'3-D array (concatenate along third dimension)' 将定点数据记录为 fi 对象 — 记录的定点数据的数据类型 on (默认) | off

指定如何记录定点输入数据。默认情况下,To Workspace 模块将定点数据记录为 fi (Fixed-Point Designer) 对象。如果清除此参数,To Workspace 模块会将定点输入数据记录为 double。

当您执行以下操作时,To Workspace 模块始终将定点数据记录为 fi 对象:

在快速加速模式下仿真模型。

将保存格式参数指定为“时间序列”。

使用 To Workspace 模块记录定点数据需要 Fixed-Point Designer 许可证。

编程用法 模块参数:FixptAsFi 类型:字符串 | 字符向量 值:'off' | 'on' 默认值:'off' 采样时间 — 采样间隔和可选时间偏移量 -1 (默认) | 标量

指定模块在仿真期间记录输入值的时间。默认情况下,采样时间为继承 (-1)。对于连续采样时间,将值指定为 0。要使用离散采样时间,请将采样时间参数指定为标量。有关详细信息,请参阅指定采样时间。

编程用法 模块参数:SampleTime 类型:字符串 | 字符向量 值:标量 默认值:'-1' 模块特性

数据类型

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

直接馈通

多维信号

可变大小信号

过零检测

提示

您可以将使用 To Workspace 模块记录的数据转换为“数据集”格式。如果您使用其他记录方法,例如使用“数据集”格式的信号记录,转换数据可以使后处理更容易。有关详细信息,请参阅Convert timeseries object to Dataset object。

当您调用用于仿真模型的函数时,仿真中记录的数据将返回到函数工作区。要将从通过函数进行的仿真记录的数据返回到基础工作区,请使用 assignin 函数。例如,以下名为 myfunc 的函数对模型 myModel 进行仿真,该模型包括一个 To Workspace 模块,该模块将数据记录到变量 simout 中,并将 To Workspace 模块记录的数据发送到基础工作区。

function myfunc out = sim("myModel"); toWksData = get(out,"simout"); assignin("base","toWksData",toWksData); end 扩展功能C/C++ 代码生成 使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

不建议用于生产代码。

要生成将 To Workspace 模块的输入记录到 MAT 文件的代码,请启用 MAT 文件记录参数。有关详细信息,请参阅 MAT 文件记录 (Simulink Coder)。

引用模型中的模块或使用“时间序列”格式记录数据的模块不支持代码生成。有关详细信息,请参阅保存格式。

HDL 代码生成 使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 Verilog 代码和 VHDL 代码。

此模块可用于生成 HDL 代码的子系统中的仿真可见性,但不包括在硬件实现中。

PLC 代码生成 使用 Simulink® PLC Coder™ 生成结构化文本代码。定点转换 使用 Fixed-Point Designer™ 设计和仿真定点系统。 版本历史记录在 R2006a 之前推出

全部展开

R2022a: 将数据记录到仿真数据检查器和工作区

数据会自动记录到仿真数据检查器和工作区中。仿真数据检查器会自动保留每个仿真的结果。由于使用 To Workspace 模块记录的数据会流式传输到仿真数据检查器,这些数据也会保留。

在以前的版本中,使用 To Workspace 模块记录的数据仅记录到工作区,并且每次仿真时都会被覆盖,除非您更改了记录变量名称或手动保存了结果。

在大多数情况下,您不需要对代码进行任何更改。记录大量数据或运行许多仿真会产生大量数据,导致磁盘空间被填满。要了解如何控制仿真数据检查器中保留的数据量,请参阅Limit the Size of Logged Data。

R2022a: 使用内置数据类型记录 int64 和 uint64 数据

使用内置数据类型记录 int64 和 uint64 数据。

在以前的版本中,如果有 Fixed-Point Designer 许可证,则 To Workspace 模块会将 int64 和 uint64 数据记录为 fi 对象,如果没有许可证,则记录为 double。

另请参阅

From Workspace | Record | To File | From File

主题导出仿真数据Specify Signal Values to LogConvert timeseries object to Dataset object


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有