Lemonergy · Studio block

Sampled variable pulse generator

Generates sampled pulses from connected period and duty inputs while preserving carrier phase.

Implementation ID
native-variable-pulse
Reviewed
2026-10-27

Behavior

phase[k] = fractional_cycles(phase[k−1] + elapsed_time/period[k]). pulse[k] = (phase[k] < duty[k]). The worked example connects this operation to signals in Lemonergy Studio.

Interface

Sampled variable pulse generator interfaceInputs or arguments on the left, observed outputs on the right. Conserving terminals appear below the component. The tables give units and behavior.Sampled variable pulse generatorStudio blockin0in1out0
Original Lemonergy interface view. Lines identify ports; they are not a completed simulation circuit.
Ports and observed outputs
NameDirectionUnitMeaning
in0input1Period; real scalar.
in1input1Duty ratio; real scalar.
out0output1Pulse; bool scalar.

Parameters

Defaults are initial model values. Select values for your own model and operating conditions.

Configuration fields
ParameterUnitDefaultMeaning and limits
Sample period
sampleTimeS
s0.05Exact sample grid period. Elapsed-time integration begins after initialization.
Minimum 1e-06
Initial phase
params[0]
cycles0Elapsed-time phase accumulation preserves phase when period changes.

Equations and rules

  • phase[k] = fractional_cycles(phase[k−1] + elapsed_time/period[k])
  • pulse[k] = (phase[k] < duty[k])

Worked example

Sampled variable pulse generator — worked example

Period = 0.5; Duty ratio = 0.25. Pulse at 0 s = 1.

Open Studio example after release →
Numerical checks for the bundled synthetic example
OutputTime (s)Expected valueUnitAbsolute tolerance
Pulse
out0
0111e-08

Explore the recorded outputs

Sampled variable pulse generator recorded example

Sampled variable pulse generator
Sampled variable pulse generator against timeRecorded synthetic simulation values. Time in seconds; output in —.-0.0800.210.250.50.50.790.751.081—Time (s)
Sampled variable pulse generator: 1 — at 0 s

21 actual recorded samples. Lines are visual guides between samples. Synthetic example, not measured cell data.

Download the recorded samples (JSON) · Open this Studio example after release

Use in a workflow

Sampled variable pulse generator — worked example

Generates sampled pulses from connected period and duty inputs while preserving carrier phase.

  1. Sampled variable pulse generator: phase[k] = fractional_cycles(phase[k−1] + elapsed_time/period[k]). pulse[k] = (phase[k] < duty[k]). The worked example connects this operation to signals in Lemonergy Studio.
    • Use the block reference for settings and connections.
    • Implementation tested locally; public release pending.
Open Studio example after release

Connected concepts

Limits and interpretation

  • Connected period and duty drive sampled elapsed-time phase accumulation without resetting phase. Continuous carrier crossings between samples are not localized.
  • Shapes and element types are explicit. Values must be finite; automatic reshaping and unit conversion are not performed.

Reference basis

This software operation and its numerical conventions are defined by the public contract and worked example; no external research result is claimed.

Implementation sources

This reference follows the public interface and locally verified numerical checks for an upcoming release.

Contract: Lemonergy Studio public contract · Verification record: verification-2026-10-27

  • docs/glossary/native-block-verification.json

This implementation and its workflow uses (JSON) · Knowledge graph (JSON-LD)