news 2026/4/16 19:56:45

在 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/4/16 0:07:03

从Hugging Face下载:专为测试优化的微调模型(如TestLLaMA)

AI驱动的测试新时代 在软件测试领域,2025年见证了AI模型的爆炸式增长,Hugging Face作为全球领先的开源模型库,已成为测试工程师的宝藏库。专为测试优化的微调模型,如TestLLaMA(一个基于LLaMA架构的测试专用变体&#…

作者头像 李华
网站建设 2026/4/16 13:32:54

数据入表避坑指南:从“躺平数字”到“表内资产”的全落地逻辑

“服务器里 20TB 用户日志、50 万条运营记录,怎么财务说不算资产?” 这是很多企业老板面对数据资产化时的困惑 —— 数据越存越多,硬盘快满了,可偏偏迈不过 “入表” 这道坎。其实问题不在数据体量,而在没让数据 “活”…

作者头像 李华
网站建设 2026/4/16 18:29:58

【大模型部署新标杆】:Open-AutoGLM一键部署方案全公开

第一章:Open-AutoGLM部署新范式随着大语言模型在自动化推理与代码生成领域的深入应用,Open-AutoGLM 的部署方式正经历结构性变革。传统单体化部署已难以满足低延迟、高并发的生产需求,取而代之的是基于微服务架构与动态编排的新型部署范式。核…

作者头像 李华
网站建设 2026/4/16 3:17:39

揭秘Open-AutoGLM本地部署全流程:5步实现模型自动化推理

第一章:揭秘Open-AutoGLM本地部署全流程:5步实现模型自动化推理在本地环境中部署 Open-AutoGLM 模型并实现自动化推理,已成为企业与开发者提升 AI 应用响应效率的关键路径。通过合理配置硬件资源与优化服务调用链路,可在无需云依赖…

作者头像 李华
网站建设 2026/4/16 13:07:56

为什么顶尖团队都在抢用phoneagent Open-AutoGLM组合?真相终于揭晓

第一章:顶尖团队为何青睐phoneagent Open-AutoGLM组合在人工智能与自动化深度融合的今天,顶尖技术团队正将目光聚焦于 **phoneagent** 与 **Open-AutoGLM** 的协同架构。这一组合不仅实现了移动端智能体的自主决策闭环,更通过轻量化模型部署与…

作者头像 李华