Signal Generator
SourcesLe 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.
Modèle Mathématique
Le générateur de signaux supporte plusieurs formes d'ondes reposant sur l'angle de phase et la position normalisée de cycle :
Le signal de sortie dépend de la forme sélectionnée dans signalType :
Où :
- est le signal de sortie au temps
- est l'amplitude crête du signal (
amplitude) - est la fréquence en Hertz (
frequency) - est le déphasage (
phase) - 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) → ControllerRemarques & Bonnes Pratiques
- Critère de Nyquist : Pour des fréquences élevées, la cadence d'échantillonnage de la simulation () doit être suffisamment haute () pour prévenir tout repliement de spectre (aliasing).
- Sans État Interne : Le signal est calculé analytiquement en fonction de , 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