BlockWerk Documentation
📊

Signal Generator

Sources

Le bloc SignalGenerator est une source de signaux polyvalente capable de générer diverses formes d'ondes périodiques dépendantes du temps pour la simulation et les essais. Il peut produire des ondes sinusoïdales, cosinusoïdales, rectangulaires, en dents de scie et triangulaires. Ce bloc est essentiel pour synthétiser des signaux de test, des consignes dynamiques et des perturbations harmoniques dans les systèmes d'asservissement et de traitement du signal.

Le bloc fonctionne comme un générateur de fonctions virtuel et calcule sa sortie directement à partir du temps de simulation courant et des paramètres configurés.

Simuler dans BlockWerk

Bac à sable interactif directement dans votre navigateur — aucune installation, moteur WebAssembly.

Simuler dans BlockWerk →

Modèle Mathématique

Le générateur de signaux supporte plusieurs formes d'ondes reposant sur l'angle de phase θ\theta et la position normalisée de cycle nn :

θ(t)=2πft+ϕn(t)=(θ(t)2π) mod 1(position normaliseˊe, 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{(position normalisée, } 0 \le n < 1 \text{)} \end{aligned}

Le signal de sortie y(t)y(t) dépend de la forme sélectionnée dans signalType :

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}

Où :

  • y(t)y(t) est le signal de sortie au temps tt
  • AA est l'amplitude crête du signal (amplitude)
  • ff est la fréquence en Hertz (frequency)
  • ϕ\phi est le déphasage (phase)
  • offset\text{offset} est la composante continue (décalage DC)

Entrées & Sorties

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

Paramètres

Paramètres Label Type Défaut Description
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)

Exemples d'Utilisation

Test de Réponse Fréquentielle

Injecter une onde sinusoïdale de 10 Hz dans une fonction de transfert pour observer le gain et le déphasage :

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

Signal PWM

Générer un signal de modulation de largeur d'impulsion à 10 Hz avec un rapport cyclique de 30 % :

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

Remarques & Bonnes Pratiques

  • Critère de Nyquist : Pour des fréquences élevées, la cadence d'échantillonnage de la simulation (fs=1/Δtf_s = 1/\Delta t) doit être suffisamment haute (fs≥10⋅ff_s \ge 10 \cdot f) pour prévenir tout repliement de spectre (aliasing).
  • Sans État Interne : Le signal est calculé analytiquement en fonction de tt, garantissant un coût mémoire nul.
  • Optimisation WASM : Implémentation Rust hautement optimisée pour l'exécution en temps réel.

Composants Associés

  • PulseGenerator : Pour les impulsions unipolaires et trains d'impulsions
  • Step : Pour un échelon unique
  • Constant : Pour une référence constante statique
  • BodePlot : Pour une analyse fréquentielle automatisée