Blocks
Explore all BlockWerk simulation blocks: mathematical operations, PID controllers, transfer functions, integrators, signal sources, and displays. Free in your browser.
Advanced
The Battery SOC EKF block estimates the state of charge of a battery cell from two signals a battery management system actually has: the current and t
The Kalman Filter block estimates the hidden state of a linear system from a noisy measurement. Each sample it predicts where the state should be from
Execute custom **JavaScript** or **Python** logic inside the simulation loop. Define your own input and output ports β they become live variables in y
Analysis
The Bode Plot block performs a frequency response analysis of a linear system. It generates two simultaneous plots: 1. **Magnitude (dB)** vs Frequenc
The Nyquist Plot block visualizes the frequency response of a system as a polar plot in the complex plane. It plots the real part of the frequency res
Connectivity
BronkhorstMFC is a **source** block (with an optional setpoint sink) that reads live flow, temperature, frequency, and alarm data from a physical Bron
RemoteSensor is a **source** block that streams live inertial and optional sensor data from a paired mobile device into the simulation over a WebRTC p
PhoneController is a **source** block that turns any smartphone into a wireless joystick plus an independent yaw dial. When the block is placed on the
Continuous
Standard second-order system transfer function: ``` G(s) = ΟβΒ² / (sΒ² + 2ΞΆΟβs + ΟβΒ²) ``` This block models damped oscillatory systems commonly found
The Derivative block computes the numerical time derivative (rate of change) of an input signal using backward difference approximation. An optional l
The Integrator block computes the time integral (accumulated sum) of an input signal. It is the inverse operation to the Derivative block and is essen
Lead-lag compensator with transfer function G(s) = (Οβs + 1) / (Οβs + 1). When Οβ > Οβ it acts as a lead compensator (phase advance), when Οβ < Οβ it
The PID Controller block implements a standard Proportional-Integral-Derivative controller for closed-loop feedback control. It combines three control
The **StateSpace** block implements a general state-space linear system described by matrices A, B, C, D: ``` x' = Ax + Bu (state equation) y = C
The Transfer Function block implements linear time-invariant (LTI) systems described in the Laplace domain. It takes a transfer function H(s) = num(s)
The **ZeroPole** block represents a transfer function using its poles and zeros: ``` H(s) = K Β· (s - zβ)(s - zβ)...(s - zβ) / (s - pβ)(s - pβ)...(s -
Discontinuous
Models mechanical backlash (play/speling). The output stays constant until the input moves more than half the deadband width away from the current out
Implements a dead zone (dead band) nonlinearity. The output is zero when the input is within the specified band. Outside the band, the output is the i
Rounds the input signal to the nearest multiple of a specified interval, producing a staircase-like output. Models ADC resolution, digital sensor quan
Limits the rate of change (slew rate) of the output signal. The output follows the input but cannot change faster than the specified rising or falling
A hysteresis switch that toggles between two output values. Turns on when input rises above the switch-on point, and turns off when input falls below
The Saturation block implements a limiter or saturation function that clamps the input signal between specified lower and upper limits. This is essent
Discrete
The `DigitalFilter` block is a highly advanced signal processing tool designed to filter discrete-time signals during a simulation. It supports variou
Discrete-time integrator that accumulates the input signal over time. Equivalent to a running sum scaled by the sample time.
Computes the discrete-time derivative (backward difference) of the input signal. Outputs zero on the first sample.
The Discrete State-Space block implements a discrete-time linear state-space system. At each sample instant it advances the internal state vector usin
Implements a discrete-time transfer function H(z) = B(z)/A(z) using the Direct Form II Transposed structure. Coefficients are specified as space-separ
Sample-and-hold block that samples the input at regular intervals and holds or interpolates the value between samples.
Delays the input signal by exactly one sample period (zβ»ΒΉ operator). This is the fundamental building block for discrete-time systems, digital filters
Dynamics
The Delay block introduces a fixed time delay (transport lag) to the input signal. This models communication delays, sensor latency, processing time,
The Input Shaper removes the swing from a move. A crane that jerks its trolley to a new position sets the hanging load swinging, and the operator wait
The Smith Predictor compensates for dead time β the transport delay between acting on a process and seeing the result, like the hot water that takes s
Layout
The Area block serves as a visual grouping area on the canvas. It allows you to organize blocks logically and apply a background color to visually dis
The Text Note block is a frameless text annotation tool for adding comments, explanations, or labels directly onto the diagram canvas. Like the Area b
Logic
The Comparator block compares an input signal to a threshold and outputs a binary result: 1 (true) if the comparison is satisfied, 0 (false) otherwise
Detects changes in the input signal. Can detect rising edges (input increases), falling edges (input decreases), or any change.
Tests whether the input signal falls within a specified interval. Outputs 1 if inside, 0 if outside.
The **LogicGate** block provides 4 fundamental logic operations in a single configurable block: - **AND** - All inputs must be true (non-zero) - **OR
The Switch block selects between two input signals based on a selector signal. If the selector is non-negative (β₯ 0), it outputs the first input; othe
Math
The 2-D Lookup Table block maps two input values (x, y) to an output value using bilinear interpolation within a predefined grid of data points. It is
The Absolute Value block computes the magnitude (absolute value) of the input signal. The output is always non-negative regardless of input sign. This
The Divide block performs algebraic division of two input signals: the numerator and the denominator. This block includes built-in protection against
The Gain block multiplies its input signal by a constant gain factor (K). This is one of the most fundamental and commonly used blocks in signal proce
The Hill Equation block is the sigmoidal Emax model of pharmacodynamics: it turns a drug concentration at the site of action into the effect that conc
1-D lookup table with linear interpolation. Maps input values to output values using a set of breakpoints and corresponding table data.
Applies a selectable mathematical function to the input signal. Supports exponential, logarithmic, power, remainder, and rounding operations.
Outputs the minimum or maximum of all connected input signals. Useful for signal selection, protection logic, and envelope detection.
The Product block multiplies multiple input signals together, producing their algebraic product as output. This is a fundamental mathematical operatio
The SquareRoot block calculates the n-th root of the input signal. While named SquareRoot for common usage (where n=2), it is a versatile root-calcula
The Subtraction block performs algebraic subtraction of two input signals: output = plus - minus. This provides an explicit and intuitive alternative
The Sum block adds multiple input signals together, producing their algebraic sum as output. This is one of the most fundamental mathematical operatio
The **Trigonometric** block provides 7 trigonometric functions in a single configurable block: - **sin(x)** - Sine - **cos(x)** - Cosine - **tan(x)**
Signal Routing
Copies the input signal to multiple outputs. All outputs receive the same value as the input. Useful for fan-out scenarios where one signal needs to d
Receives a signal wirelessly from a matching Goto block. Use Goto/From pairs to create virtual connections that reduce diagram clutter.
Sends a signal wirelessly to matching From blocks. Use Goto/From pairs to create virtual connections that reduce diagram clutter.
Combines multiple scalar input signals into a single output. The output is the sum of all connected inputs.
Selects one of multiple input signals based on an index value.
Sinks
The **FFT Scope** displays the frequency spectrum of one or more signals using the Fast Fourier Transform (FFT). It is a sink block β it has no output
The Gauge block renders an analog semicircular dial with a rotating needle, showing the instantaneous value of the connected signal relative to a user
The Histogram block accumulates incoming scalar values over the simulation run and renders their frequency distribution as a bar histogram. Values are
The NumericDisplay block provides a digital LCD-style readout for displaying numeric values from your simulation in real-time. It reads the input valu
The ScatterPlot block plots pairs of scalar values as individual points in a two-dimensional plane. At each simulation step, the current values of the
Real-time signal plotting block with configurable update frequency and rendering modes. Displays signals directly in the block diagram for interactive
The XYPlot block plots two real-time scalar signals against each other in a phase-plane view, retaining a configurable number of the most recent sampl
Sources
Outputs the current simulation time as a signal. Essential for creating time-dependent systems, lookup tables, or simply monitoring simulation progres
The Constant block is a fundamental signal source that provides a steady numerical output value throughout the entire simulation. It has no input port
Interactive 2-axis joystick. Drag the knob β also **while the simulation is running** β and both outputs follow immediately. Placing a Joystick (or an
Interactive keyboard source. Click the block to **arm** it, then steer with the arrow keys or WASD β also while the simulation runs. Placing a Keyboar
The Pulse Generator block creates square wave pulse signals with configurable parameters. It generates periodic pulses that alternate between high and
The Ramp block generates a linearly increasing signal that starts at a specified time and increases at a constant rate (slope). This block is commonly
Generates pseudo-random numbers using a deterministic PRNG (xorshift64). Supports uniform and gaussian distributions. Same seed produces identical seq
The SignalGenerator block is a versatile signal source that generates various types of time-varying signals for simulation and testing purposes. It ca
Interactive on-canvas slider source. Drag the handle β also **while the simulation is running** β and the output follows immediately. Placing a Slider
The Step block generates a step function signal that transitions from an initial value to a final value at a specified time. This block is commonly us
Subsystems
The **InPort** (Input Port) block defines an **input interface** for a Subsystem. It receives values from outside the subsystem and makes them availab
The **OutPort** (Output Port) block defines an **output interface** for a Subsystem. It receives values from internal blocks and makes them available
The Subsystem block creates a **hierarchical encapsulation** of blocks, allowing you to group complex control logic into reusable, self-contained unit