2026a

# Syslab Block


使用 Syslab 实现新算法。

局限性

函数库使用

Syslab Block 组件暂不支持 TyPlot、TyImages、TyGeographics 等绘图相关的函数库,不支持 TyDeepLearning 深度学习函数库。

# 说明

Syslab Block 用于调用 Syslab 中创建的自定义算法来扩展 Sysplorer 的功能,包含三个组件:

自定义组件类型 描述
SyslabGlobalConfig 进行 Julia 全局声明,可以导入包及全局变量声明
SyslabFunction 使用 Syslab 中的自定义 Julia 函数
SyslabObject 使用 Syslab 中的自定义 Julia 对象进行动态系统建模和处理流式数据

# 基础

# 开始使用 Syslab Block

您需要执行以下操作:

  1. 在 Syslab 中启动 Sysplorer。
  2. 加载 SyslabWorkspace 模型库。
  3. 如有需要,拖拽创建 SyslabGlobalConfigSyslabFunctionSyslabObject 组件。
  4. 配置 Syslab Block 组件。
  5. 完成其余部分模型的建模。
  6. 在 Sysplorer 中仿真模型。

# 调试信息

此部分说明如何在 Sysplorer 中得到 Syslab Block 的调试信息。

您可以在 Julia 文件中使用宏指令@info来打印需要调试的信息。仿真结束后,Sysplorer 输出栏中将生成名为julia.log日志文件链接,单击即可查看对应的调试信息。

此部分为打印调试信息的示例:

function stepImpl(self, u)
	@info "$(now()) step simulation input parameter u = $u"
	y, self.State = filter1(self.pCoefficients', 1, u, self.State)
	return y
end #stepImpl
Info: 2023-05-11T20:37:42.820 step simulation input parameter u = 0.537667

# 删除 Syslab Block

当您通过快捷键 Del 或右击菜单删除选中的 Syslab Block 组件时,仅能删除实例化后的对象,但在用户模型中的类仍然存在。

因此,还需要在空白图形窗口中右击,弹出上下文菜单,移除未使用的 Syslab Block 模型,移除未使用的 SyslabFunctionSyslabObject 模型。

# 端口配置

Syslab Block 端口支持设置多个输入和输出端口,如果您需要配置 SyslabFunctionSyslabObject 组件的端口信息,右击组件在上下文菜单中选择设置 Syslab 对象端口…,弹出设置 Syslab 函数端口对话框

# 输入

您可在输入端口设置对话框中指定端口范围、类型、维度、初值和参数说明的信息。

在范围信息中,您可以选择端口的类型,包含以下两种类型:

范围信息:Input | Parameter

提示

当选择的端口类型为 Parameter 时,您需要指定参数对应数据类型的初始值和参数说明(选填)。

对于组件输入端口数量和端口名称SyslabObject 组件由 Julia 对象文件中的函数stepImpl输入参数决定;SyslabFunction 组件由 Julia 文件中的主函数的输入参数决定。

数据类型支持以下四种格式:

数据类型:Real | Integer | Boolean | Complex

注意

端口数据类型需与 Julia 函数计算结果对应。

维度信息中您需要指明端口的数据维度,比如您可以采用以下方式进行指定:

  • 维度字段空缺:表示标量端口
  • 维度字段 [2] :表示长度为 2 的向量端口
  • 维度字段 [2,3] :表示 2×3 的矩阵端口
  • 维度字段 [2,2,3] :表示 2×2×3 的三维数组端口

# 输出

同输入端口,输出端口的数据类型支持以下四种格式:

数据类型:Real | Integer | Boolean | Complex

对于组件输出端口数量和端口名称SyslabObject 组件由 Julia 对象文件中的函数stepImpl返回值语句决定;SyslabFunction 组件由 Julia 文件中的主函数的返回值语句决定。

维度信息您可以采用以下方式进行指定:

  • 维度字段空缺:表示标量端口
  • 维度字段 [2] :表示长度为 2 的向量端口
  • 维度字段 [2,3] :表示 2×3 的矩阵端口
  • 维度字段 [2,2,3] :表示 2×2×3 的三维数组端口

# 注意事项

# 支持的语言版本

名称 支持的版本号
Julia 语言 1.9
Modelica 标准库 4.0, 3.2.3

# 仿真设置

您在使用 Syslab Block 进行仿真前,需要取消存储事件时刻的变量值选项,避免对 Syslab Block 仿真结果产生影响。

请您切换到仿真标签页,单击仿真设置图标,弹出仿真设置对话框,输出切换至输出标签页,在输出变量选择栏中取消勾选存储事件时刻的变量值,单击确定生效。

您在使用 Syslab Block 进行仿真时,需要保证编译平台为 64 位。

# 特别说明

在 Syslab 已安装的情况下,独立启动 Sysplorer,SyslabBlock 组件支持以下功能:

组件类型 新建 编辑 仿真
SyslabGlobalConfig 支持 支持 支持
SyslabFunction 支持 支持 支持
SyslabObject 不支持 不支持 支持

对于 SyslabObject 组件,需要选择已经编辑好的 jl 文件,然后可以进行仿真。