BlockWerk Dokumentation
📊

Signal Generator

Sources

Der SignalGenerator-Block ist eine vielseitige Signalquelle, die verschiedene periodische, zeitveränderliche Signalformen für Simulation und Prüfzwecke erzeugt. Er kann Sinus-, Kosinus-, Rechteck-, Sägezahn- und Dreieckssignale bereitstellen. Dieser Block ist essenziell für die Erzeugung dynamischer Testsignale, Führungsgrößen und periodischer Störungen in Regelungssystemen und Signalverarbeitungsanwendungen.

Der Block arbeitet als virtueller Funktionsgenerator und berechnet seinen Ausgangswert direkt anhand der aktuellen Simulationszeit und der konfigurierten Parameter.

In BlockWerk simulieren

Interaktive Sandbox direkt im Browser — keine Installation, WebAssembly-Engine.

In BlockWerk simulieren →

Mathematisches Modell

Der Signalgenerator unterstützt mehrere Signalformen basierend auf dem Phasenwinkel θ\theta und der normierten Zyklusposition nn:

θ(t)=2πft+ϕn(t)=(θ(t)2π) mod 1(normierte Zyklusposition, 0≤n<1)\begin{aligned} \theta(t) &= 2\pi f t + \phi \\ n(t) &= \left( \frac{\theta(t)}{2\pi} \right) \bmod 1 \quad \text{(normierte Zyklusposition, } 0 \le n < 1 \text{)} \end{aligned}

Das Ausgangssignal y(t)y(t) hängt vom gewählten signalType ab:

y(t)=offset+{Asin⁡(θ(t)),SineAcos⁡(θ(t)),CosineA⋅sgn(dutyCycle−n(t)),SquareA(2n(t)−1),SawtoothA(1−4∣n(t)−0.5∣),Triangley(t) = \text{offset} + \begin{cases} A \sin(\theta(t)), & \text{Sine} \\ A \cos(\theta(t)), & \text{Cosine} \\ A \cdot \text{sgn}(\text{dutyCycle} - n(t)), & \text{Square} \\ A (2n(t) - 1), & \text{Sawtooth} \\ A (1 - 4|n(t) - 0.5|), & \text{Triangle} \end{cases}

Wobei:

  • y(t)y(t) das Ausgangssignal zum Zeitpunkt tt ist
  • AA die Signalamplitude ist (amplitude)
  • ff die Frequenz in Hertz ist (frequency)
  • ϕ\phi die Phasenverschiebung ist (phase)
  • offset\text{offset} der Gleichanteil (DC-Offset) ist

Ein- & Ausgänge

Direction ID Label Typ Status
→ In trigger Trigger number Optional
← Out out Signal number Output

Parameter

Parameter Label Typ Standardwert Beschreibung
signalType Signal Type select sine Type of periodic signal to generate
amplitude Amplitude number 1 Peak amplitude of the signal
frequency Frequency number 1 Signal frequency in Hertz
offset Offset number 0 DC offset added to the signal
phase Phase number 0 Initial phase offset in degrees
dutyCycle Duty Cycle number 0.5 Duty cycle for square wave (0-1)

Anwendungsbeispiele

Frequenzgangprüfung

Einspeisung einer 10-Hz-Sinuswelle in eine Übertragungsfunktion zur Analyse von Amplituden- und Phasenverlauf:

SignalGenerator (signalType: "sine", frequency: 10) → TransferFunction → Scope

PWM-Rechtecksignal

Erzeugung eines 10-Hz-Signals mit 30 % Tastverhältnis:

SignalGenerator (signalType: "square", frequency: 10, dutyCycle: 0.3) → Controller

Hinweise & Best Practices

  • Nyquist-Kriterium: Bei hohen Signalfrequenzen muss die Abtastrate der Simulation (fs=1/Δtf_s = 1/\Delta t) deutlich über der Signalfrequenz liegen (fs≥10⋅ff_s \ge 10 \cdot f), um Aliasing und Verzerrungen zu vermeiden.
  • Zustandslos: Die Werte werden rein zeitabhängig aus tt berechnet, wodurch der Block keinerlei Speicher-Overhead besitzt.
  • WASM-Optimierung: Extrem schnelle mathematische Berechnung in WebAssembly.

Verwandte Blöcke

  • PulseGenerator: Für unipolare Impulse und Takte
  • Step: Für sprunghafte Sollwertübergänge
  • Constant: Für feste DC-Werte
  • BodePlot: Zur automatischen Frequenzganganalyse