跳到主要内容

简单 Octave 控制元件

案例介绍

本篇文档通过三个典型算例,展示在 EMTLab 平台上使用自定义 Octave 控制元件的方法:

  • 案例 1: 每时步触发的简单分段函数控制元件,用于实现可调斜率与分段点的分段函数。
  • 案例 2: 固定频率触发且带有全局变量的阶梯爬坡信号发生器,通过 Trigger 参数指定触发频率。
  • 案例 3: 外部触发的三相瞬时功率计算元件,支持多维输入(电压、电流)和多维输出(有功 P、无功 Q)。

使用方法说明

  1. 触发方式
  • 每时步触发:每个仿真步均调用 Octave 代码(默认方式)。
  • 固定频率触发:通过新增参数 Trigger 指定触发频率(Hz),仅在该频率上触发执行。
  • 外部触发:将 Trigger 参数类型设为虚拟引脚,上升沿触发时调用。
  1. 实时性限制
    每次触发需调用 Octave 解释器执行脚本,若触发频率高或代码逻辑复杂,会降低仿真速度,影响仿真效率,建议在性能关键场景下考虑拓扑模块封装或降低触发频率。

算例介绍

本案例的 Octave 控制元件为可调斜率和分段点的分段函数。

调用 Octave 分段函数
调用 Octave 分段函数

案例中分段函数的输入引脚连接一个时间输入元件,在其输出引脚连接一个输出通道观测输出结果。

参数

参数名键名类型 [单位]描述
斜率1k1实数第一段函数斜率
斜率2k2实数第二段函数斜率
分段点横坐标a实数分段点横坐标
分段点纵坐标b实数分段点纵坐标

引脚

引脚名键名类型维度描述
inputinput输入1 × 1输入
outputoutput输出1 × 1输出

核心代码

简单分段函数
if input < args.a
output = args.k1 * input + args.b - args.k1 * args.a;
else
output = args.k2 * input + args.b - args.k2 * args.a;
end

算例仿真测试

仿真结果如下,可以看出分段函数曲线的拐点位于 (2, 2),两段斜率分别为 1 和 6,曲线的分段点和斜率与设置参数一致。

Octave 分段函数输出结果
Octave 分段函数输出结果

算例文件下载链接

案例 1 算例文件下载:model_admin_Octave_Test_Case1.zip
案例 2 算例文件下载:model_admin_Octave_Test_Case2.zip
案例 3 算例文件下载:model_admin_Octave_Test_Case3.zip

附:修改及调试日志

  • 20250715 编写案例文档