2026a

# To Workspace


将数据写入 Syslab 工作区。

# 说明

To Workspace 将输入端口的数据写入 Syslab 工作区。

To Workspace 共分为 4 种,分别为

  • ToWorkspace_Scale:用于输出标量数据
  • ToWorkspace_Vector:用于输出一维数组
  • ToWorkspace_Matrix:用于输出二维数组
  • ToWorkspace_3D_Array:用于输出三维数组,更高维度请参见 多维数组

# 端口

# 输入

dataInput
标量 | 向量 | 矩阵

将数据写入到 Syslab 工作区的输入端口。

接口类型:RealInput

# 参数

varName - Syslab工作区变量名
String

生成到 Syslab 工作区中的变量名,参见 输出变量

默认值:"x"

sampleTime - 采样时间
Real

指定 To Workspace 组件的采样时间。

默认为 -1,表示使用模型求解的输出步长。

row_dims - 变量行数
Integer

只针对 ToWorkspace_VectorToWorkspace_MatrixToWorkspaceTimeTable 模型有效。

写入 Syslab 工作区的变量维度大小,参见示例 SyslabWorkspace.Test.Test_ToWorkspace_Matrix

默认值:1

col_dims - 变量列数
Integer

只针对 ToWorkspace_Matrix 模型有效。

写入 Syslab 工作区的变量维度大小,参见示例 SyslabWorkspace.Test.Test_ToWorkspace_Matrix

默认值:1

dims - 变量维度大小
Integer

只针对 ToWorkspace_3D_Array 模型有效,为长度为3的一维数组。

写入 Syslab 工作区的变量维度大小。

默认值:{2, 2, 2}

# 输出数据到 Syslab 工作区

要使用 To Workspace 向 Syslab 工作区写入数据,需要执行下列操作:

  1. 打开 Syslab ,启动 REPL;
  2. 在 Syslab 中启动 Sysplorer ,并加载 SyslabWorkspace 模型库;
  3. 在 Sysplorer 中,选取 To Workspace 组件并添加到模型;
  4. 对 To Workspace 组件设置参数,包括:
    • varName:指定Syslab工作区中变量 out 的分量名称;
    • sampleTime:采样时间;
    • row_dimscol_dimsdims:变量维度参数(如果需要)。
  5. 模型构建完成后,就可以开始仿真运行;
  6. 在仿真暂停或停止时,系统会将仿真结果写入到 Syslab 工作区。

# 输出变量

To Workspace 向工作区写入数据时,会自动生成一个名为 out 的命名元组变量。 其中,该变量包含一个名为tout的时间序列。 同时,模型中每一个 To Workspace 组件都会在 out 中生成一个由 varName 指定名称的分量。

# 采样时间

通过设置 sampleTime 可以控制 To Workspace 组件记录数据的周期。 对于每一个 To Workspace 组件,采样时间可以单独设置。

提示

一般而言,对于定步长算法,推荐使用缺省或将采样时间设为仿真输出步长的倍数。

# 多维数组

To Workspace 支持将多维数组写入 Syslab 工作区。

对于一个 N 维的数组,将生成一个类型为 Array{Float64,N+1}的分量。其中,第 N+1 维长度为输出的采样点个数,前 N 个维度为一个仿真时间点 To Workspace 获取到的输入数据。

模型库中提供了对于三维数组的模型 ToWorkspace_3D_Array ,可以在此模型基础上稍作修改即可实现更高维数组的输出。

假设,需要实现一个将5维数组写入 Syslab 工作区的模型。

首先,复制 ToWorkspace_3D_ArrayToWorkspace_5D_Array,作为本次修改的基础。

其次,使用文本视图编辑该模型,一共需要修改三处:

  • 在模型第 6 行,声明了 dims 参数,将参数声明更改为:
parameter Integer dims[5] = {2, 2, 2, 2, 2};
  • 在模型的第 7 行,声明了模型的输入,将声明更改为:
Modelica.Blocks.Interfaces.RealInput dataInput[dims[1], dims[2], dims[3], dims[4], dims[5]];
  • 在模型的第 20 行,声明了写入工作区变量的函数输入参数,将声明更改为:
input Real value[dims[1], dims[2], dims[3], dims[4], dims[5]];

上述修改完毕后,就可以得到一个用于将 5 维数组写入 Syslab 工作区的 To Workspace 组件。

# 模型示例

  • PID 控制器SyslabWorkspace.Examples.Demo_ToWorkspace_PID_Controller

  • 滤波器SyslabWorkspace.Examples.Demo_ToWorkspace_Filter

  • 耦合离合器: SyslabWorkspace.Examples.Demo_CoupledClutches