Skip to content

Control Calculators API

Package: gecko.core.control.calculators

72 calculator classes implementing the computation logic for GeckoCIRCUITS control blocks. These are GUI-free and suitable for headless simulation.

Base Classes

AbstractControlCalculatable

Base class for all control block calculators. Provides the framework for:

  • Input/output signal management
  • Time step handling
  • State initialization and reset

AbstractSingleInputSingleOutputCalculator

Specialized base for blocks with one input and one output (most common pattern).

AbstractTwoInputsOneOutputCalculator

Base for blocks with two inputs and one output (e.g., Add, Multiply, Compare).

AbstractSignalCalculator

Base for signal generators (sine, square, triangle, etc.).

AbstractPTCalculator

Base for transfer function blocks (PT1, PT2, etc.).


Calculator Categories

Math Operations

Calculator Inputs Output Description
AddCalculator 2+ 1 Sum of inputs
SubtractCalculator 2 1 Difference
MultCalculator 2 1 Product
DivCalculator 2 1 Division
AbsCalculator 1 1 Absolute value
SqrtCalculator 1 1 Square root
PowCalculator 2 1 Power function
ExpCalculator 1 1 Exponential
LogCalculator 1 1 Natural logarithm
MinCalculator 2+ 1 Minimum
MaxCalculator 2+ 1 Maximum
SignumCalculator 1 1 Sign function
ConstantCalculator 0 1 Constant value
GainCalculator 1 1 Multiply by constant

Trigonometric Functions

Calculator Function
SinCalculator sin(x)
CosCalculator cos(x)
TanCalculator tan(x)
ASinCalculator arcsin(x)
ACosCalculator arccos(x)
ATanCalculator arctan(x)

Control System Blocks

Calculator Description
IntegrationCalculator Discrete-time integrator
LimitedIntegrationCalculator Integrator with saturation limits
PICalculator Proportional-integral controller
PIDCalculator Proportional-integral-derivative controller
PT1Calculator First-order low-pass filter
LimiterCalculator Output saturation/clamping
HysteresisCalculator Hysteresis comparator
DelayCalculator Time delay block
SampleHoldCalculator Sample-and-hold
RateLimiterCalculator Slew rate limiter
CounterCalculatable Event counter

Signal Generators

Calculator Waveform
AbstractSignalCalculatorPeriodic Base for periodic signals
SignalCalculatorSine Sine wave
SignalCalculatorSquare Square wave
SignalCalculatorTriangle Triangle wave
SignalCalculatorSawtooth Sawtooth wave

Logic Operations

Calculator Description
AndTwoPortCalculator 2-input AND gate
AndMultiInputCalculator Multi-input AND gate
OrCalculator OR gate
NotCalculator NOT gate (inverter)
XorCalculator XOR gate
EqualCalculatorMultiInput Equality comparator
GreaterThanCalculator Greater-than comparator
LessThanCalculator Less-than comparator

Coordinate Transforms

Calculator Description
ABCDQCalculator ABC to DQ transformation (Park transform)
DQABCDCalculator DQ to ABC inverse transformation

Multiplexing

Calculator Description
MuxCalculator Multiplex multiple signals into one
DemuxCalculator Demultiplex one signal into multiple

Usage Pattern

All calculators follow a common pattern during simulation:

// 1. Initialize
calculator.init(dt);          // Set time step

// 2. Set inputs (each simulation step)
calculator.setInputValue(0, inputSignal);

// 3. Calculate
calculator.bepiRechenRechts(dt);  // Compute output

// 4. Read output
double output = calculator.getOutputValue(0);