news 2026/6/9 3:24:00

在 GeckoCIRCUITS 上开发新工具模块的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在 GeckoCIRCUITS 上开发新工具模块的方法

简介

最近在使用开源电力电子仿真软件 GeckoCIRCUITS 进行仿真时,我想使用离散时间控制器,但是 GeckoCIRCUITS 中没有这个模块,需要使用工具栏中自带的 JAVA 模块添加算法代码。但是我想把类似这样常用的模块固定在工具栏里,方便使用。于是我找到软件的源代码 (https://github.com/geckocircuits/GeckoCIRCUITS),在工具类中进行了添加和修改。

步骤1:新建一个工具类

在源文件目录中找到 src/main/java/ch/technokrat/gecko/geckocircuits/control 文件夹, 新建 ReglerDPRCONTROL.java, 添加如下代码,内容是定义器件名称、尺寸、IO 名称,关联描述键值、计算函数等。

/* by 01130.hk - online tools website : 01130.hk/zh/chaicp.html */ package ch.technokrat.gecko.geckocircuits.control; import ch.technokrat.gecko.geckocircuits.allg.AbstractComponentTyp; import ch.technokrat.gecko.geckocircuits.control.calculators.AbstractControlCalculatable; import ch.technokrat.gecko.geckocircuits.control.calculators.DPRControlCalculator; import ch.technokrat.gecko.i18n.resources.I18nKeys; import java.awt.Window; public final class ReglerDPRCONTROL extends RegelBlock{ private static final int BLOCK_WIDTH = 5; public static final ControlTypeInfo tinfo = new ControlTypeInfo(ReglerDPRCONTROL.class, "DIGITAL_PR_CTRL", I18nKeys.DIGITAL_PR_CONTROL); public ReglerDPRCONTROL() { super(); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "input")); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "kp")); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "kr")); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "wo")); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "fs")); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "wrc")); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "max")); XIN.add(new TerminalControlInputWithLabel(this, -3, -XIN.size(), "min")); YOUT.add(new TerminalControlOutputWithLabel(this, 3, -YOUT.size(), "output")); } @Override public int getBlockWidth() { return BLOCK_WIDTH * dpix; } @Override public String[] getOutputNames() { return new String[]{"output"}; } @Override public I18nKeys[] getOutputDescription() { return new I18nKeys[]{ }; } @Override public double getXShift() { return 1 / 2.0; } @Override public AbstractControlCalculatable getInternalControlCalculatableForSimulationStart() { return new DPRControlCalculator(); } @Override protected String getCenteredDrawString() { return "DIGITAL\nPR\nCTRL"; } @Override protected final Window openDialogWindow() { return new DialogWindowWithoutInput(this); } }

步骤2:添加工具计算函数

在源文件目录中找到 src/main/java/ch/technokrat/gecko/geckocircuits/control/calculators 文件夹,新建 DPRControlCalculator.java,添加如下代码,内容是定义器件 IO 数量,设计模块算法。

/* by 01130.hk - online tools website : 01130.hk/zh/chaicp.html */ package ch.technokrat.gecko.geckocircuits.control.calculators; public class DPRControlCalculator extends AbstractControlCalculatable{ //variables public DPRControlCalculator() { super(8, 1); } @Override public void berechneYOUT(final double deltaT) { //algorithm } }

步骤3:添加工具字符串键值

在 src/main/java/ch/technokrat/gecko/i18n/resources/I18nKeys.java 中添加工具的描述键值:

DIGITAL_PR_CONTROL("Digital PR controller")

在 src/main/java/ch/technokrat/gecko/geckocircuits/control/ControlTyp.java 中添加它在控制类工具中的键值:

C_DIGITAL_PR_CTRL(92, ReglerDPRCONTROL.tinfo)

步骤4:新建和初始化工具组

在 src/main/java/ch/technokrat/gecko/geckocircuits/circuit/SchematischeEingabeAuswahl2.java 中添加新的工具组,将新建工具的键值放到工具组里:

private AbstractComponentTyp[] _typDSPTOOLS = new AbstractComponentTyp[]{ ControlTyp.C_DIGITAL_PR_CTRL };

在初始化方法中添加新的工具组:

createJPanelForTypes(_typDSPTOOLS, "DSP Tools");

步骤5: 编译和运行

使用命令编译项目:

mvn package assembly:single

将在target 目录下生成 target/gecko-1.0-jar-with-dependencies.jar 文件,运行命令:

java -Xmx3G -Dpolyglot.js.nashorn-compat=true -jar target/gecko-1.0-jar-with-dependencies.jar

打开软件界面后验证,新建的工具已添加成功。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 14:09:05

9个降aigc工具推荐!继续教育学生高效避坑指南

9个降aigc工具推荐!继续教育学生高效避坑指南 AI降重工具,让论文更自然、更安全 在继续教育的学习过程中,论文写作是不可避免的一环。然而,随着人工智能技术的广泛应用,许多学生发现自己的论文出现了明显的“AI痕迹”…

作者头像 李华
网站建设 2026/6/5 9:31:50

Open-AutoGLM移植到Android有多难?资深架构师亲授6步落地法

第一章:Open-AutoGLM在Android端的技术定位Open-AutoGLM 是一款面向移动端的开源自动推理框架,专为在资源受限设备上高效运行大语言模型而设计。其在 Android 平台的技术定位聚焦于本地化推理、低延迟响应与隐私保护,通过模型轻量化、算子优化…

作者头像 李华
网站建设 2026/6/5 0:49:21

Open-AutoGLM下载难?一文解决所有常见问题,限时获取官方资源链接

第一章:智普Open-AutoGLM如何下载 智普AI推出的Open-AutoGLM是一个面向自动化代码生成与自然语言理解任务的开源项目,开发者可通过官方渠道获取源码并本地部署使用。该项目基于GLM大模型架构,支持多种编程语言的智能补全与注释生成。 访问Gi…

作者头像 李华
网站建设 2026/6/5 9:59:24

揭秘Open-AutoGLM浏览器自动化:90%的人都忽略的3个关键步骤

第一章:浏览器操作Open-AutoGLM Open-AutoGLM 是一种基于自然语言驱动的浏览器自动化框架,能够通过语义指令控制浏览器完成复杂交互任务。该工具结合了大语言模型的理解能力与前端操作接口,使用户无需编写传统脚本即可实现网页元素定位、表单…

作者头像 李华
网站建设 2026/6/5 14:44:04

部署Open-AutoGLM总失败?这7个关键坑你避开了吗,99%的人都踩过

第一章:Open-AutoGLM部署失败的常见现象与根源分析在实际部署 Open-AutoGLM 模型过程中,用户常遭遇启动失败、响应超时或推理中断等问题。这些问题不仅影响开发进度,还可能误导后续架构设计。深入分析其背后的技术动因,是确保系统…

作者头像 李华
网站建设 2026/6/5 15:15:32

学工管理系统实用指南:让系统真正服务于学生管理工作

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华