# Syslab Block
使用 Syslab 实现新算法。
局限性
函数库使用
Syslab Block 组件暂不支持 TyPlot、TyImages、TyGeographics 等绘图相关的函数库,不支持 TyDeepLearning 深度学习函数库。
# 说明
Syslab Block 用于调用 Syslab 中创建的自定义算法来扩展 Sysplorer 的功能,包含三个组件:
| 自定义组件类型 | 描述 |
|---|---|
| SyslabGlobalConfig | 进行 Julia 全局声明,可以导入包及全局变量声明 |
| SyslabFunction | 使用 Syslab 中的自定义 Julia 函数 |
| SyslabObject | 使用 Syslab 中的自定义 Julia 对象进行动态系统建模和处理流式数据 |
# 基础
# 开始使用 Syslab Block
您需要执行以下操作:
- 在 Syslab 中启动 Sysplorer。
- 加载 SyslabWorkspace 模型库。
- 如有需要,拖拽创建 SyslabGlobalConfig、SyslabFunction 或 SyslabObject 组件。
- 配置 Syslab Block 组件。
- 完成其余部分模型的建模。
- 在 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 模型,移除未使用的 SyslabFunction 和 SyslabObject 模型。
# 端口配置
Syslab Block 端口支持设置多个输入和输出端口,如果您需要配置 SyslabFunction 和 SyslabObject 组件的端口信息,右击组件在上下文菜单中选择设置 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 文件,然后可以进行仿真。