BlockWerk Documentación
📊

Signal Generator

Sources

El bloque SignalGenerator es una fuente de señal versátil que genera diversas formas de onda periódicas dependientes del tiempo para fines de simulación y ensayo. Puede producir señales sinusoidales, cosinusoidales, cuadradas, diente de sierra y triangulares. Este bloque es fundamental para generar señales de prueba, consignas dinámicas de referencia y perturbaciones periódicas en lazos de control y procesamiento de señales.

El bloque actúa como un generador de funciones virtual, calculando su salida directamente a partir del tiempo actual de simulación y los parámetros especificados.

Simular en BlockWerk

Simulador interactivo en tu navegador — sin instalación, motor WebAssembly.

Simular en BlockWerk →

Modelo Matemático

El generador de señales admite múltiples formas de onda fundamentadas en el ángulo de fase θ\theta y la posición de ciclo normalizada nn:

θ(t)=2πft+ϕn(t)=(θ(t)2π) mod 1(posicioˊn normalizada, 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{(posición normalizada, } 0 \le n < 1 \text{)} \end{aligned}

La señal de salida y(t)y(t) depende del tipo seleccionado en 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}

Donde:

  • y(t)y(t) es la señal de salida en el tiempo tt
  • AA es la amplitud de pico de la señal (amplitude)
  • ff es la frecuencia en Hertz (frequency)
  • ϕ\phi es el desfase angular (phase)
  • offset\text{offset} es el nivel de continua (desplazamiento DC)

Entradas y Salidas

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

Parámetros

Parámetros Label Tipo Por defecto Descripción
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)

Ejemplos de Uso

Prueba de Respuesta en Frecuencia

Inyectar una onda senoidal de 10 Hz en una función de transferencia para examinar ganancia y desfase:

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

Señal PWM

Generar una señal de modulación por ancho de pulsos de 10 Hz con ciclo de trabajo del 30 %:

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

Observaciones y Buenas Prácticas

  • Criterio de Nyquist: Para señales de alta frecuencia, la frecuencia de muestreo de la simulación (fs=1/Δtf_s = 1/\Delta t) debe cumplir ampliamente fs≥10⋅ff_s \ge 10 \cdot f para prevenir distorsión por aliasing.
  • Sin Estado: Se calcula de forma puramente analítica respecto al tiempo tt, sin sobrecarga de memoria de estado.
  • Optimización WASM: Implementado en WebAssembly de alto rendimiento para síntesis rápida en tiempo real.

Bloques Relacionados

  • PulseGenerator: Para trenes de pulsos unipolares
  • Step: Para escalones individuales
  • Constant: Para fuentes continuas fijas
  • BodePlot: Para análisis automatizado del diagrama de Bode