ZeroPole Block
Transfer function via pole-zero form: H(s) = K·prod(s-zeros)/prod(s-poles)
Open ZeroPole in BlockWerk →# ZeroPole Block Documentation
Overview
The ZeroPole block represents a transfer function using its poles and zeros:
H(s) = K · (s - z₁)(s - z₂)...(s - zₘ) / (s - p₁)(s - p₂)...(s - pₙ)
This form is intuitive for control system design, stability analysis, and frequency response visualization.
Mathematical Model
H(s) = K · (s - z₁)(s - z₂)...(s - zₘ) / (s - p₁)(s - p₂)...(s - pₙ)
where:
- z₁, z₂, ..., zₘ: zeros (roots of numerator)
- p₁, p₂, ..., pₙ: poles (roots of denominator)
- K: static gain
Inputs
- Input: A numeric signal
Outputs
- Output: The filtered/processed signal
Parameters
Zeros
- Description: Comma-separated list of system zeros
- Format Options:
- Real zeros: "1, 2, 3"
- Complex zeros: "1+2j, 1-2j, -3"
- Mixed: "-1, 2+3j"
- Default: "-1"
- Notes: Complex zeros must appear in conjugate pairs for real systems
Poles
- Description: Comma-separated list of system poles
- Format: Same as zeros
- Default: "-1"
- Stability: All poles must have negative real parts for stability
Gain (K)
- Description: Static gain multiplier
- Type: Real number
- Default: 1
- Range: Any real number (positive or negative)
Initial Condition
- Description: Initial output value
- Default: 0
- Type: Real number
Pole-Zero Format Examples
First-Order System
Zeros: (empty or "-inf") Poles: "-1" Gain: 1 Represents: 1/(s+1)
Second-Order with Complex Poles
Zeros: (none) Poles: "-1+2j, -1-2j" Gain: 1 Represents: 1/(s² + 2s + 5)
Lead-Lag Compensator
Zeros: "-1" Poles: "-10" Gain: 10 Represents: 10(s+1)/(s+10)
Examples
Example 1: Simple Low-Pass Filter
Zeros: (empty)
Poles: "-1"
Gain: 1
Represents the transfer function H(s) = 1/(s+1), a first-order low-pass filter with cutoff frequency 1 rad/s.
Example 2: Lead Compensator (Phase Boost)
Zeros: "-1"
Poles: "-5"
Gain: 5
Represents H(s) = 5(s+1)/(s+5), useful for phase margin improvement in classical control design.
Example 3: Complex Conjugate Poles (Underdamped System)
Zeros: (none)
Poles: "-1+1.732j, -1-1.732j"
Gain: 1
This represents an underdamped second-order system with damping ratio ζ ≈ 0.5 and natural frequency ωₙ ≈ 2 rad/s.
Common Use Cases
1. Classical control design: Pole-zero form is standard in Bode/Nyquist/Root Locus plots 2. Filter design: Low-pass, high-pass, band-pass filters 3. Compensator design: Lead, lag, lead-lag compensators 4. Stability analysis: Visualize pole locations relative to imaginary axis 5. Frequency response: Zeros/poles directly determine magnitude and phase response
Stability Criteria
- Continuous-time: System is stable if all poles have negative real parts (left-half plane)
- Marginal stability: Poles on the imaginary axis (jω axis)
- Unstable: Any poles in the right-half plane
Frequency Response Interpretation
At a frequency s = jω:
- Magnitude: |H(jω)| = K · |∏(jω - zᵢ)| / |∏(jω - pⱼ)|
- Each zero contributes a numerator magnitude
- Each pole contributes a denominator magnitude
- Minima occur near poles, maxima near zeros
- Phase: ∠H(jω) = ∠K + Σ∠(jω - zᵢ) - Σ∠(jω - pⱼ)
- Each zero contributes positive phase
- Each pole contributes negative phase
Comparison with Other Blocks
- TransferFunction: Use when you have numerator/denominator coefficients
- ZeroPole: Use when you have explicit zeros and poles
- StateSpace: Use for MIMO systems or when you have state-space realization
Conjugate Pair Assumption
Complex roots in physical (real-coefficient) systems always appear in conjugate pairs. The parser treats each entry independently — if you specify -1+2j, you should also specify -1-2j. Specifying only one complex root will result in complex coefficients in the polynomial, which may produce incorrect or unstable results.
Numerical Integration
Uses forward Euler integration (same as TransferFunction block). The same stability constraints apply: Δt ≤ 1/(5 × |largest pole magnitude|).
Remarks
- Conjugate pairs: Complex poles and zeros must be specified in conjugate pairs for real-coefficient systems
- Stability: All poles must have negative real parts for a stable system; poles on the imaginary axis are marginally stable
- Gain K: Adjusts overall magnitude without affecting phase or pole/zero locations
- Empty zeros: Omitted zeros are treated as no zeros (all-pole system); an empty numerator defaults to gain K only
- High-order systems: Above ~20 poles, numerical issues may arise; consider model reduction or state-space form
See Also
TransferFunction- Numerator/denominator formStateSpace- State-space realizationIntegrator/Derivative- Build custom polesBode(future) - Frequency response visualization