Main Content

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

From Workspace

从工作区加载信号数据

  • 库:
  • Simulink / Sources

说明

From Workspace 模块从工作区读取信号数据,并在其输出端将数据作为信号提供。

该模块显示在 Data 参数中指定的表达式。有关如何计算表达式的详细信息,请参阅符号解析

您可以指定如何加载数据,包括采样时间、如何处理缺失数据点的数据,以及是否使用过零检测。有关详细信息,请参阅使用 From Workspace 模块加载数据

注意

Environment Controller 中列出的条件下,当连接到 Sim 端口时,Simulink® Coder™ 软件不会为此模块生成代码。

指定工作区数据

From Workspace 模块对话框中,使用 Data 参数指定要加载的工作区数据。您可以指定 MATLAB® 表达式(例如 MATLAB 工作区中的变量名称),其计算结果为以下选项之一:

  • timeseries 对象

  • timeseries 对象的结构体

  • timetable 对象

  • timetable 对象的结构体

  • 带或不带时间的结构体

  • 二维矩阵

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

注意

当您指定要加载的 timetable 数据时,每个 timetable 对象只能包含一个信号的数据。

使用数据字典

将模型与数据字典链接后,您可以:

  • 将用于完成模型基本设计的设计数据存储在数据字典中的 Design Data 部分。设计数据包括用于设置模块参数值的数值变量和 Simulink.Parameter 对象。

  • 将用于对模型进行仿真和测试的仿真输入数据存储在基础工作区。通常情况下,可将仿真输入数据创建为 MATLAB timeseries 对象。

有关如何存储模型使用的变量、对象和其他数据的详细信息,请参阅确定在何处存储 Simulink 模型的变量和对象

  • 要通过使用 From Workspace 模块来访问设计数据,请将目标变量存储在数据字典的 Design Data 部分,并将模块的 Data 参数设置为变量的名称。

  • 要访问仿真输入数据,请将目标变量存储在基础工作区,并通过调用 evalin 函数来设置 Data 参数:在 evalin 的调用中,将 ws 参数指定为 'base',以使模块在基础工作区而不是数据字典中寻找变量。例如,如果变量的名称是 myTimeseriesObject,则将 Data 设置为 evalin('base','myTimeseriesObject')

端口

输出

全部展开

从工作区数据创建的信号。模块可以生成 Simulink 支持的任何类型的实信号或复信号,包括定点和枚举数据类型。

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

参数

全部展开

Data 参数中,指定要加载的工作区数据。指定 MATLAB 表达式(例如 MATLAB 工作区中的变量名称),其计算结果为以下项之一:

  • timeseries 对象

  • timeseries 对象的结构体

  • timetable 对象

  • timetable 对象的结构体

  • 带或不带时间的结构体

  • 二维矩阵

From Workspace 模块还接受总线对象作为数据类型。要加载总线数据,请使用 timeseriestimetable 对象的结构体。有关详细信息,请参阅Load Bus Data to Root-Level Input Ports

double 类型的实信号可以采用 From Workspace 模块支持的任何数据格式。对于除 double 以外的数据类型的复信号和实信号,请使用除 Array 以外的任意格式。

有关详细信息,请参阅指定工作区数据

注意

当您指定要加载的 timetable 数据时,每个 timetable 对象只能包含一个信号的数据。

编程用法

模块参数:VariableName
类型:字符向量
值:timeseries 对象 | timeseries 对象的结构体 | 结构体 | 二维矩阵
默认值:'simin'

From Workspace 模块加载的工作区数据所需的数据类型。对于非总线类型,要跳过任何数据类型验证,您可以使用 “Inherit: auto”。有关详细信息,请参阅 控制信号数据类型

要加载总线数据,请使用 timeseriestimetable 对象的结构体。有关详细信息,请参阅Load Bus Data to Root-Level Input Ports

编程用法

模块参数: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'

加载的工作区数据的采样率。有关详细信息,请参阅指定采样时间

编程用法

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

当您选择此选项时,模块在不存在对应工作区数据的时间点执行线性插值。否则,当前输出等于存在数据的最近时间的输出。

From Workspace 模块使用两个对应的工作区样本进行插值:

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

  • 对于 Boolean 数据,对两个时间值之间的前半部分时间使用 false,对后半部分时间使用 true

  • 对于除 doubleBoolean 之外的内置数据类型:

    • 将数据向上转换为 double

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

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

不能将线性插值与枚举 (enum) 数据结合使用。

该模块使用最后一个已知数据点的值作为最后一个已知数据点之后出现的时间点的值。

要确定有可用工作区数据的最后一个时间点之后的模块输出,请结合使用以下参数设置:

  • Interpolate data

  • Form output after final data value by

有关详细信息,请参阅 Form output after final data value by 参数。

编程用法

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

如果选择 Enable zero-crossing detection 并且输入数组包含同一时间点的多个条目,则 Simulink 将进行过零检测。例如,假设输入数组具有以下数据。

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

在时间 2 处,存在由于输入信号不连续而产生的一个过零点。有关详细信息,请参阅过零检测

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

编程用法

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

From Workspace 模块使用 Interpolate dataForm output after final data value by 设置来确定工作区数据中最后一个可用样本后的模块输出。

下表列出了基于两个选项的值的模块输出。

Form Output After Final Data Value By 的设置Interpolate Data 的设置最终数据之后的模块输出

Extrapolation

On

根据最终数据值外插

Off

Error

Setting to zero

On

Off

Holding final value

On

工作区中的最终值

Off

Cyclic repetition

On

Error

Off

如果工作区数据的格式为不带时间的结构体,则从工作区重复。否则会出错。

例如,当您启用 Interpolate data 并将 Form output after final data value by 设置为 “Extrapolation” 时,该模块使用工作区数据中的最后两个数据点来外插后续数据点的值。

以如下模型为例。From Workspace 模块读取工作区数据,该数据是 Sine Wave 模块在历时 16 秒的仿真中的输出。Dashboard Scope 模块显示 Sine Wave 模块和 From Workspace 模块在历时 20 秒的仿真中的输出。仿真达到 16 秒后,From Workspace 模块输出与 Sine Wave 模块输出开始发生分歧,因为 From Workspace 模块会线性外插仿真其余部分的值。

编程用法

模块参数:OutputAfterFinalValue
类型:字符向量
值:'Extrapolation' | 'Setting to zero' | 'Holding final value' | 'Cyclic repetition'
默认值:'Extrapolation'

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

[a] 支持通过由 Fixed-Point Designer 创建的 fi 对象实现输入。

扩展功能

在 R2006a 之前推出