Chapter 12: Frequency Response and Resonance

Lesson 5: Time–Frequency Domain Relationships and Trade-offs (Speed vs. Overshoot, etc.)

This lesson formalizes how frequency-response features (bandwidth, resonant peak, phase behavior) constrain and predict time-domain behavior (rise time, settling time, overshoot). We derive core relationships for LTI systems, prove a fundamental time–frequency uncertainty inequality for signals, and then specialize to the canonical second-order prototype to obtain explicit formulas linking damping ratio and natural frequency to both time- and frequency-domain performance indices.

1. Conceptual Overview: Why Time and Frequency Must Trade Off

For an LTI system, the frequency response \( G(j\omega) \): encodes how sinusoidal components are amplified and phase-shifted. Since a transient (e.g., a step response) can be decomposed into many frequency components, constraints in one domain necessarily constrain the other domain:

  • \( \omega_{bw} \): larger bandwidth typically implies faster rise time and smaller dominant time constants.
  • \( M_r \): a larger resonant peak typically implies stronger ringing and higher overshoot for lightly damped dynamics.
  • Increasing damping reduces overshoot and resonance but generally reduces bandwidth (slows the response).
flowchart TD
  A["Design knobs: wn (natural freq), \nzeta (damping)"] --> B["Frequency response"]
  A --> C["Time response"]

  B --> B1["Bandwidth wb: \nlarger -> faster"]
  B --> B2["Resonant peak Mr: \nlarger -> more ringing"]
  B --> B3["Phase slope near crossover: \nrelates to damping"]

  C --> C1["Rise time tr: \nsmaller -> faster"]
  C --> C2["Settling time ts: \nsmaller -> faster"]
  C --> C3["Overshoot Mp: \nsmaller -> less ringing"]

  B2 --> C3
  B1 --> C1
  B1 --> C2
  A --> D["Trade-off: increase wb \noften increases Mr and \nMp unless zeta increased"]
        

In what follows, we make these statements precise via (i) general LTI transform relationships, (ii) a universal uncertainty inequality for signals, and (iii) explicit second-order formulas used throughout control engineering as design approximations.

2. Frequency Response from Impulse Response and Laplace Transform

Let an LTI system have impulse response \( h(t) \): (assume causality: \( h(t)=0 \) for \( t < 0 \):). For input \( u(t) \): the output is convolution \( y(t):

\[ y(t) = (h * u)(t) = \int_{0}^{\infty} h(\tau)\,u(t-\tau)\,d\tau. \]

Consider a complex exponential input \( u(t)=e^{j\omega t} \): (used as an algebraic device). Substitute into convolution:

\[ y(t) = \int_{0}^{\infty} h(\tau)\,e^{j\omega(t-\tau)}\,d\tau = e^{j\omega t}\int_{0}^{\infty} h(\tau)\,e^{-j\omega \tau}\,d\tau. \]

This motivates the definition of the frequency response: \( G(j\omega):

\[ G(j\omega) \triangleq \int_{0}^{\infty} h(t)\,e^{-j\omega t}\,dt, \quad \Rightarrow \quad y(t)=G(j\omega)\,e^{j\omega t}. \]

If the Laplace transform exists, the transfer function is \( G(s)=\int_{0}^{\infty} h(t)\,e^{-st}\,dt \): and the frequency response is the restriction \( G(j\omega)=G(s)\vert_{s=j\omega} \) when that substitution is valid (e.g., stable proper LTI).

Key consequence: broad frequency content in \( h(t) \): (fast impulse response) implies large bandwidth, which tends to produce fast step responses; narrow frequency content implies slower dynamics.

3. Time–Frequency Concentration and an Uncertainty Inequality

Beyond LTI systems, there is a universal statement for energy signals: you cannot simultaneously localize a signal arbitrarily well in time and in frequency. This is the mathematical backbone of “fast transients require wide frequency content.”

Let \( x(t) \in L^2(\mathbb{R}) \): with Fourier transform \( X(\omega) \): defined by

\[ X(\omega) = \int_{-\infty}^{\infty} x(t)\,e^{-j\omega t}\,dt, \qquad x(t) = \frac{1}{2\pi}\int_{-\infty}^{\infty} X(\omega)\,e^{j\omega t}\,d\omega. \]

Define signal energy and the time/frequency “centers”: \( E \): , \( t_0 \): , \( \omega_0 \):

\[ E = \int_{-\infty}^{\infty} |x(t)|^2\,dt, \quad t_0 = \frac{1}{E}\int_{-\infty}^{\infty} t\,|x(t)|^2\,dt, \quad \omega_0 = \frac{1}{2\pi E}\int_{-\infty}^{\infty} \omega\,|X(\omega)|^2\,d\omega. \]

Define the spreads (standard deviations) in time and frequency: \( \Delta t \): and \( \Delta \omega \):

\[ (\Delta t)^2 = \frac{1}{E}\int_{-\infty}^{\infty} (t-t_0)^2\,|x(t)|^2\,dt, \qquad (\Delta \omega)^2 = \frac{1}{2\pi E}\int_{-\infty}^{\infty} (\omega-\omega_0)^2\,|X(\omega)|^2\,d\omega. \]

Theorem (time–frequency uncertainty):

\[ \Delta t\,\Delta \omega \ge \frac{1}{2}. \]

Proof (sketch with full mathematical steps):

Without loss of generality, shift the signal so that \( t_0=0 \) and modulate so that \( \omega_0=0 \) (these operations do not change \( \Delta t \) and \( \Delta\omega \)). Consider the functions \( f(t)=t\,x(t) \): and \( g(t)=\frac{d}{dt}x(t) \):. By Cauchy–Schwarz:

\[ \left(\int_{-\infty}^{\infty} |f(t)|^2 dt\right)\left(\int_{-\infty}^{\infty} |g(t)|^2 dt\right) \ge \left|\int_{-\infty}^{\infty} f(t)\,\overline{g(t)}\,dt\right|^2. \]

The left factor is \( \int t^2|x(t)|^2 dt = E(\Delta t)^2 \). For the second factor, Parseval’s identity and the differentiation property give:

\[ \int_{-\infty}^{\infty}\left|\frac{d}{dt}x(t)\right|^2 dt = \frac{1}{2\pi}\int_{-\infty}^{\infty} \omega^2 |X(\omega)|^2 d\omega = E(\Delta \omega)^2. \]

Now evaluate the cross term by integration by parts (assuming sufficient decay so boundary terms vanish):

\[ \int_{-\infty}^{\infty} t\,x(t)\,\overline{x'(t)}\,dt = \left[t\,x(t)\,\overline{x(t)}\right]_{-\infty}^{\infty} - \int_{-\infty}^{\infty} \left(x(t)\,\overline{x(t)} + t\,x'(t)\,\overline{x(t)}\right)\,dt. \]

The boundary term is zero by decay, and the remaining expression implies

\[ \int_{-\infty}^{\infty} t\,x(t)\,\overline{x'(t)}\,dt = -\int_{-\infty}^{\infty} |x(t)|^2 dt - \int_{-\infty}^{\infty} t\,x'(t)\,\overline{x(t)}\,dt. \]

Taking complex conjugates shows the real part satisfies:

\[ 2\,\Re\left\{\int_{-\infty}^{\infty} t\,x(t)\,\overline{x'(t)}\,dt\right\} = -E. \]

Hence \( \left|\int t\,x(t)\,\overline{x'(t)}\,dt\right| \ge \frac{E}{2} \). Substituting into Cauchy–Schwarz yields

\[ \big(E(\Delta t)^2\big)\big(E(\Delta\omega)^2\big) \ge \left(\frac{E}{2}\right)^2 \quad \Rightarrow \quad \Delta t\,\Delta\omega \ge \frac{1}{2}. \]

Interpretation: making \( \Delta t \) small (fast, localized transient) forces \( \Delta\omega \) large (broad spectral content), which in LTI systems manifests as higher bandwidth and/or stronger high-frequency gain.

4. Second-Order Prototype: Exact Time–Frequency Relationships

The canonical closed-loop (or normalized plant) second-order low-pass model is:

\[ G(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2}, \qquad 0 < \zeta, \quad \omega_n > 0. \]

Define the damped natural frequency \( \omega_d \):

\[ \omega_d = \omega_n\sqrt{1-\zeta^2}, \qquad 0 < \zeta < 1. \]

4.1 Step response and overshoot

For a unit-step input and \( 0 < \zeta < 1 \): the step response can be written as

\[ y(t) = 1 - \frac{1}{\sqrt{1-\zeta^2}}\,e^{-\zeta\omega_n t}\, \sin\!\big(\omega_d t + \phi\big), \qquad \phi = \arctan\!\left(\frac{\sqrt{1-\zeta^2}}{\zeta}\right). \]

The first peak occurs at \( t_p \):

\[ t_p = \frac{\pi}{\omega_d} = \frac{\pi}{\omega_n\sqrt{1-\zeta^2}}. \]

Proposition (percent overshoot):

\[ M_p = 100\,\exp\!\left(\frac{-\zeta\pi}{\sqrt{1-\zeta^2}}\right)\%. \]

Proof: evaluate \( y(t) \) at \( t=t_p \). Using \( \sin(\omega_d t_p + \phi)=\sin(\pi+\phi)=-\sin(\phi) \) and \( \sin(\phi)=\sqrt{1-\zeta^2} \) for the chosen \( \phi \), we get:

\[ y(t_p)=1+\exp\!\left(\frac{-\zeta\pi}{\sqrt{1-\zeta^2}}\right), \quad \Rightarrow \quad M_p = 100\big(y(t_p)-1\big). \]

A common settling-time approximation (2% band) follows from the envelope \( e^{-\zeta\omega_n t} \):

\[ t_s \approx \frac{4}{\zeta\omega_n} \quad \text{(2% criterion)}. \]

4.2 Frequency response, resonance peak, and resonance frequency

Evaluate at \( s=j\omega \):

\[ G(j\omega) = \frac{\omega_n^2}{\omega_n^2-\omega^2 + j(2\zeta\omega_n\omega)}. \]

Hence the magnitude squared is

\[ |G(j\omega)|^2 = \frac{\omega_n^4}{(\omega_n^2-\omega^2)^2 + (2\zeta\omega_n\omega)^2}. \]

Normalize by letting \( x = \omega/\omega_n \):

\[ |G(j\omega)|^2 = \frac{1}{(1-x^2)^2 + (2\zeta x)^2}. \]

The resonant peak \( M_r \): occurs at the \( \omega \) maximizing \( |G(j\omega)| \). This is equivalent to minimizing the denominator \( D(x)=(1-x^2)^2 + (2\zeta x)^2 \):. Differentiate:

\[ \frac{dD}{dx} = 2(1-x^2)(-2x) + 8\zeta^2 x = 4x\big(x^2 - 1 + 2\zeta^2\big). \]

The nonzero critical point satisfies \( x^2 = 1-2\zeta^2 \): which requires \( \zeta < 1/\sqrt{2} \):. Therefore:

\[ \omega_r = \omega_n\sqrt{1-2\zeta^2}, \qquad \text{valid when } \zeta < \frac{1}{\sqrt{2}}. \]

Substitute \( x^2=1-2\zeta^2 \) into the denominator: \( 1-x^2=2\zeta^2 \) and \( x=\sqrt{1-2\zeta^2} \), yielding

\[ D(x)= (2\zeta^2)^2 + (2\zeta)^2(1-2\zeta^2) = 4\zeta^2(1-\zeta^2). \]

Thus the resonant peak is:

\[ M_r = \max_\omega |G(j\omega)| = \frac{1}{2\zeta\sqrt{1-\zeta^2}}, \qquad \zeta < \frac{1}{\sqrt{2}}. \]

Direct linkage: both \( M_p \) and \( M_r \) are monotone decreasing in \( \zeta \) over the underdamped range, so a frequency-domain resonance constraint imposes a time-domain overshoot constraint, and conversely.

5. Bandwidth as a Predictor of Speed

Define the (magnitude) bandwidth \( \omega_{bw} \): as the smallest frequency at which the magnitude falls to \( 1/\sqrt{2} \) of the DC gain. Since \( G(0)=1 \) for the canonical model, the -3 dB condition is:

\[ |G(j\omega_{bw})|^2 = \frac{1}{2}. \]

Using the normalized expression with \( x=\omega/\omega_n \):

\[ \frac{1}{(1-x^2)^2 + (2\zeta x)^2} = \frac{1}{2} \quad \Longleftrightarrow \quad (1-x^2)^2 + (2\zeta x)^2 = 2. \]

Expand and write it as a quadratic in \( x^2 \):

\[ (1 - 2x^2 + x^4) + 4\zeta^2 x^2 - 2 = 0 \quad \Longleftrightarrow \quad x^4 + (4\zeta^2 - 2)x^2 - 1 = 0. \]

Let \( u=x^2 \):. Then:

\[ u^2 + (4\zeta^2 - 2)u - 1 = 0 \quad \Rightarrow \quad u = 1 - 2\zeta^2 + \sqrt{4\zeta^4 - 4\zeta^2 + 2}, \]

taking the positive root. Therefore the -3 dB bandwidth is

\[ \omega_{bw} = \omega_n\sqrt{1 - 2\zeta^2 + \sqrt{4\zeta^4 - 4\zeta^2 + 2}}. \]

Speed linkage: for moderate damping, \( \omega_{bw} \) scales with \( \omega_n \), while time metrics scale roughly as \( 1/(\zeta\omega_n) \). This yields an intrinsic trade-off: increasing \( \omega_n \) tends to increase bandwidth (faster), while increasing \( \zeta \) tends to reduce overshoot and resonance (safer) but can reduce bandwidth.

6. Putting It Together: Speed–Overshoot–Resonance Trade-offs

For the second-order prototype, the core metrics are explicit functions of \( \zeta \) and \( \omega_n \):

\[ M_p(\zeta) = 100\exp\!\left(\frac{-\zeta\pi}{\sqrt{1-\zeta^2}}\right), \quad M_r(\zeta) = \frac{1}{2\zeta\sqrt{1-\zeta^2}}, \]

\[ t_s \approx \frac{4}{\zeta\omega_n}, \quad \omega_{bw} = \omega_n\sqrt{1 - 2\zeta^2 + \sqrt{4\zeta^4 - 4\zeta^2 + 2}}. \]

Design implication A (overshoot constraint fixes damping): given a maximum overshoot \( M_p^\star \), solve for \( \zeta \):

\[ \frac{M_p^\star}{100} = \exp\!\left(\frac{-\zeta\pi}{\sqrt{1-\zeta^2}}\right) \quad \Rightarrow \quad \zeta = \frac{-\ln\!\left(M_p^\star/100\right)}{\sqrt{\pi^2 + \ln^2\!\left(M_p^\star/100\right)}}. \]

Design implication B (speed constraint fixes natural frequency): if a settling-time target \( t_s^\star \) is given, choose

\[ \omega_n \approx \frac{4}{\zeta t_s^\star}. \]

Alternatively, if a bandwidth target \( \omega_{bw}^\star \) is given, use the bandwidth formula to solve for \( \omega_n \):

\[ \omega_n = \frac{\omega_{bw}^\star}{\sqrt{1 - 2\zeta^2 + \sqrt{4\zeta^4 - 4\zeta^2 + 2}}}. \]

Qualitative trade-off (one sentence, fully rigorous): for fixed \( \zeta \), increasing \( \omega_n \) increases \( \omega_{bw} \) and decreases \( t_s \); for fixed \( \omega_n \), increasing \( \zeta \) decreases \( M_p \) and \( M_r \) but can decrease \( \omega_{bw} \), limiting achievable speed without overshoot.

7. Computational Labs: Measuring the Trade-offs in Code

The following implementations compute step-response metrics and frequency-response metrics for the second-order prototype and sweep \( \zeta \) to reveal the speed–overshoot–resonance coupling.


7.1 Python (SciPy)

File: Chapter12_Lesson5.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Chapter 12 - Lesson 5: Time–Frequency Domain Relationships and Trade-offs
# File: Chapter12_Lesson5.py

import numpy as np
from scipy import signal

def second_order_tf(zeta: float, wn: float) -> signal.TransferFunction:
    num = [wn**2]
    den = [1.0, 2.0 * zeta * wn, wn**2]
    return signal.TransferFunction(num, den)

def step_metrics(t: np.ndarray, y: np.ndarray, tol: float = 0.02):
    y_final = float(y[-1])
    y_peak = float(np.max(y))
    Mp = 0.0 if y_final == 0.0 else max(0.0, (y_peak - y_final) / abs(y_final)) * 100.0

    y10, y90 = 0.1 * y_final, 0.9 * y_final

    def first_cross(level: float):
        idx = np.where(y >= level)[0]
        return float(t[idx[0]]) if len(idx) else float("nan")

    tr = first_cross(y90) - first_cross(y10)

    band_low, band_high = (1.0 - tol) * y_final, (1.0 + tol) * y_final
    outside = np.where((y < band_low) | (y > band_high))[0]
    ts = float(t[outside[-1]]) if len(outside) else 0.0

    return {"y_final": y_final, "Mp_percent": float(Mp), "tr": float(tr), "ts": float(ts)}

def frequency_metrics(sys: signal.TransferFunction, w: np.ndarray):
    w, H = signal.freqresp(sys, w=w)
    mag = np.abs(H)

    Mr = float(np.max(mag))
    wr = float(w[int(np.argmax(mag))])

    dc = float(mag[0])
    target = dc / np.sqrt(2.0)
    idx = np.where(mag <= target)[0]
    wb = float(w[idx[0]]) if len(idx) else float("nan")

    return {"Mr": Mr, "wr": wr, "wb": wb}

def demo_single(zeta=0.3, wn=10.0):
    sys = second_order_tf(float(zeta), float(wn))
    t = np.linspace(0, 3.0, 4000)
    t, y = signal.step(sys, T=t)
    tm = step_metrics(t, y)
    w = np.logspace(-2, 3, 2000) * wn
    fm = frequency_metrics(sys, w)
    return tm, fm

if __name__ == "__main__":
    zeta, wn = 0.35, 12.0
    tm, fm = demo_single(zeta=zeta, wn=wn)

    print("=== Single system ===")
    print(f"zeta={zeta:.3f}, wn={wn:.3f} rad/s")
    print(f"Overshoot Mp = {tm['Mp_percent']:.2f}%")
    print(f"Rise time tr = {tm['tr']:.4f} s (10%->90%)")
    print(f"Settling time ts = {tm['ts']:.4f} s (2%)")
    print(f"Resonant peak Mr = {fm['Mr']:.4f}")
    print(f"Bandwidth wb = {fm['wb']:.4f} rad/s")

7.2 C++ (from-scratch frequency sweep)

File: Chapter12_Lesson5.cpp

/*
Chapter 12 - Lesson 5: Time–Frequency Domain Relationships and Trade-offs
File: Chapter12_Lesson5.cpp
*/

#include <iostream>
#include <vector>
#include <complex>
#include <cmath>
#include <iomanip>
#include <limits>

static inline double sqr(double x){ return x*x; }

struct FreqMetrics { double Mr, wr, wb; };

std::complex<double> G_jw(double w, double zeta, double wn){
    std::complex<double> jw(0.0, w);
    std::complex<double> den = jw*jw + 2.0*zeta*wn*jw + sqr(wn);
    return sqr(wn) / den;
}

FreqMetrics frequency_metrics(double zeta, double wn){
    const int N = 6000;
    double wmin = 1e-2 * wn, wmax = 1e+3 * wn;

    double Mr = 0.0, wr = wmin;
    double dc = std::abs(G_jw(wmin, zeta, wn));
    double target = dc / std::sqrt(2.0);

    double wb = std::numeric_limits<double>::quiet_NaN();
    bool found_bw = false;

    for(int i=0;i<N;i++){
        double a = static_cast<double>(i)/(N-1);
        double w = wmin * std::pow(wmax/wmin, a);
        double mag = std::abs(G_jw(w, zeta, wn));

        if(mag > Mr){ Mr = mag; wr = w; }
        if(!found_bw && mag <= target){ wb = w; found_bw = true; }
    }
    return {Mr, wr, wb};
}

int main(){
    double zeta = 0.35, wn = 12.0;
    auto fm = frequency_metrics(zeta, wn);

    std::cout << std::fixed << std::setprecision(6);
    std::cout << "Mr=" << fm.Mr << ", wr=" << fm.wr << ", wb=" << fm.wb << "\\n";
    return 0;
}

7.3 Java (self-contained Complex arithmetic)

File: Chapter12_Lesson5.java

/*
Chapter 12 - Lesson 5: Time–Frequency Domain Relationships and Trade-offs
File: Chapter12_Lesson5.java
*/

import java.util.*;

public class Chapter12_Lesson5 {
    static class Complex {
        final double re, im;
        Complex(double re, double im){ this.re = re; this.im = im; }
        Complex add(Complex b){ return new Complex(this.re + b.re, this.im + b.im); }
        Complex mul(Complex b){ return new Complex(this.re*b.re - this.im*b.im, this.re*b.im + this.im*b.re); }
        Complex div(Complex b){
            double d = b.re*b.re + b.im*b.im;
            return new Complex((this.re*b.re + this.im*b.im)/d, (this.im*b.re - this.re*b.im)/d);
        }
        double abs(){ return Math.hypot(re, im); }
    }

    static Complex G_jw(double w, double zeta, double wn){
        Complex jw = new Complex(0.0, w);
        Complex jw2 = jw.mul(jw);
        Complex term = new Complex(0.0, 2.0*zeta*wn*w);
        Complex den = jw2.add(term).add(new Complex(wn*wn, 0.0));
        return new Complex(wn*wn, 0.0).div(den);
    }

    public static void main(String[] args){
        double zeta = 0.35, wn = 12.0;
        double wmin = 1e-2*wn, wmax = 1e3*wn;
        int N = 6000;

        double Mr = 0.0, wr = wmin;
        double dc = G_jw(wmin, zeta, wn).abs();
        double target = dc / Math.sqrt(2.0);
        double wb = Double.NaN;
        boolean found = false;

        for(int i=0;i<N;i++){
            double a = (double)i/(N-1);
            double w = wmin * Math.pow(wmax/wmin, a);
            double mag = G_jw(w, zeta, wn).abs();
            if(mag > Mr){ Mr = mag; wr = w; }
            if(!found && mag <= target){ wb = w; found = true; }
        }

        System.out.printf(Locale.US, "Mr=%.6f, wr=%.6f, wb=%.6f%n", Mr, wr, wb);
    }
}

7.4 MATLAB / Simulink

File: Chapter12_Lesson5.m

% Chapter 12 - Lesson 5: Time–Frequency Domain Relationships and Trade-offs
% File: Chapter12_Lesson5.m

clear; clc;

zeta = 0.35;
wn   = 12; % rad/s

s = tf('s');
G = wn^2/(s^2 + 2*zeta*wn*s + wn^2);

info = stepinfo(G);
Mp = info.Overshoot;
tr = info.RiseTime;
ts = info.SettlingTime;

[mag,~,w] = bode(G);
mag = squeeze(mag); w = squeeze(w);
Mr = max(mag);
wr = w(find(mag == Mr, 1, 'first'));
wb = bandwidth(G);

fprintf('Mp=%.2f%%, tr=%.6fs, ts=%.6fs\\n', Mp, tr, ts);
fprintf('Mr=%.6f, wr=%.6f rad/s, wb=%.6f rad/s\\n', Mr, wr, wb);

% Optional scripted Simulink build:
try
  mdl = 'Chapter12_Lesson5_Simulink';
  if bdIsLoaded(mdl); close_system(mdl,0); end
  new_system(mdl); open_system(mdl);

  add_block('simulink/Sources/Step', [mdl '/Step'], 'Position',[50 80 80 110]);
  add_block('simulink/Continuous/Transfer Fcn', [mdl '/G(s)'], 'Position',[150 75 260 115]);
  add_block('simulink/Sinks/Scope', [mdl '/Scope'], 'Position',[320 75 350 115]);

  set_param([mdl '/G(s)'], 'Numerator', mat2str([wn^2]), 'Denominator', mat2str([1 2*zeta*wn wn^2]));
  add_line(mdl, 'Step/1', 'G(s)/1');
  add_line(mdl, 'G(s)/1', 'Scope/1');
  set_param(mdl, 'StopTime', '3');
  sim(mdl);
catch ME
  fprintf('Simulink skipped: %s\\n', ME.message);
end

7.5 Wolfram Mathematica

File: Chapter12_Lesson5.nb

(* Chapter 12 - Lesson 5: Time–Frequency Domain Relationships and Trade-offs *)
(* File: Chapter12_Lesson5.nb *)

Needs["ControlSystems`"];
zeta = 0.35; wn = 12;
s = Unique["s"];
G = TransferFunctionModel[{wn^2},{1, 2 zeta wn, wn^2}, s];

resp = StepResponse[G, {0, 3}][[1]];
t = resp[[1]]; y = resp[[2]];
Print["Overshoot Mp (%) = ", 100 Max[0, (Max[y] - y[[-1]])/y[[-1]]]];

wz = LogSpace[-2, 3, 2000]*wn;
mag = Abs[FrequencyResponse[G, I*#]]& /@ wz;
Mr = Max[mag];
wr = wz[[First@Ordering[mag, -1]]];

bw = Module[{dc = mag[[1]], idx},
  idx = FirstPosition[mag, _?(# <= dc/Sqrt[2] &)];
  If[idx === Missing["NotFound"], Indeterminate, wz[[idx[[1]]]]]
];

Print["Mr = ", Mr];
Print["wr (rad/s) = ", wr];
Print["wb (rad/s) = ", bw];

7.6 Design Workflow (specs to parameters)

flowchart TD
  S["Given specs: Mp_max, ts_max OR wb_min"] --> Z["Solve zeta from Mp_max"]
  Z --> WN1["If ts_max: choose wn ~ 4/(zeta*ts_max)"]
  Z --> WN2["If wb_min: choose wn from wb formula"]
  WN1 --> V["Verify: compute Mr, wb, tr, ts via formulas or simulation"]
  WN2 --> V
  V --> OK{"All constraints satisfied?"}
  OK -->|yes| DONE["Finalize second-order design point \n(zeta, wn)"]
  OK -->|no| ADJ["Adjust: increase zeta to reduce \nMp/Mr OR increase wn to speed up"]
  ADJ --> V
        

8. Problems and Solutions

Problem 1 (Derive resonance frequency): For \( G(s)=\frac{\omega_n^2}{s^2+2\zeta\omega_n s+\omega_n^2} \), show that if \( \zeta < 1/\sqrt{2} \), the magnitude \( |G(j\omega)| \) is maximized at \( \omega_r=\omega_n\sqrt{1-2\zeta^2} \).

Solution: Using \( x=\omega/\omega_n \), \( |G(j\omega)|^2 = 1/\big((1-x^2)^2+(2\zeta x)^2\big) \). Maximize \( |G|^2 \) by minimizing \( D(x)=(1-x^2)^2+(2\zeta x)^2 \). Differentiate:

\[ \frac{dD}{dx} = 4x\big(x^2 - 1 + 2\zeta^2\big). \]

Nonzero critical point satisfies \( x^2=1-2\zeta^2 \), which requires \( \zeta < 1/\sqrt{2} \). Thus \( \omega_r=\omega_n x \).

Problem 2 (Resonant peak formula): Show that for \( \zeta < 1/\sqrt{2} \), \( M_r = 1/(2\zeta\sqrt{1-\zeta^2}) \).

Solution: At \( x^2=1-2\zeta^2 \), \( 1-x^2=2\zeta^2 \) and \( D(x)= (2\zeta^2)^2 + (2\zeta)^2(1-2\zeta^2)=4\zeta^2(1-\zeta^2) \). Hence

\[ M_r = \frac{1}{\sqrt{D(x)}} = \frac{1}{2\zeta\sqrt{1-\zeta^2}}. \]

Problem 3 (Overshoot–damping inversion): Given an overshoot limit \( M_p^\star \), derive \( \zeta = \frac{-\ln(M_p^\star/100)}{\sqrt{\pi^2 + \ln^2(M_p^\star/100)}} \).

Solution: From \( M_p/100=\exp\!\left(\frac{-\zeta\pi}{\sqrt{1-\zeta^2}}\right) \), take logs and solve:

\[ \ln\!\left(\frac{M_p^\star}{100}\right) = \frac{-\zeta\pi}{\sqrt{1-\zeta^2}} \quad \Rightarrow \quad \ln^2\!\left(\frac{M_p^\star}{100}\right) = \frac{\zeta^2\pi^2}{1-\zeta^2}. \]

Rearranging gives \( \zeta^2 = \frac{\ln^2(M_p^\star/100)}{\pi^2 + \ln^2(M_p^\star/100)} \), and since \( \zeta > 0 \), take the positive root with the minus sign in the numerator to ensure positivity.

Problem 4 (-3 dB bandwidth derivation): Starting from \( |G(j\omega_{bw})|^2 = 1/2 \), derive \( \omega_{bw} = \omega_n\sqrt{1 - 2\zeta^2 + \sqrt{4\zeta^4 - 4\zeta^2 + 2}} \).

Solution: With \( x=\omega/\omega_n \), the condition is \( (1-x^2)^2 + (2\zeta x)^2 = 2 \), which expands to \( x^4 + (4\zeta^2 - 2)x^2 - 1 = 0 \). Let \( u=x^2 \) and solve the quadratic:

\[ u = \frac{-(4\zeta^2-2) + \sqrt{(4\zeta^2-2)^2 + 4}}{2} = 1 - 2\zeta^2 + \sqrt{4\zeta^4 - 4\zeta^2 + 2}, \]

and \( \omega_{bw}=\omega_n\sqrt{u} \).

Problem 5 (Feasibility check): Suppose you require \( M_p \le 10\% \) and \( t_s \le 0.8\,\text{s} \) (2% criterion) for a second-order prototype. Compute a feasible \( (\zeta,\omega_n) \) and report the implied \( \omega_{bw} \).

Solution: First compute \( \zeta \) from \( M_p^\star=10 \):

\[ \zeta = \frac{-\ln(0.10)}{\sqrt{\pi^2 + \ln^2(0.10)}}. \]

Then choose \( \omega_n \approx 4/(\zeta t_s^\star) \) with \( t_s^\star=0.8 \). Finally compute \( \omega_{bw} \) from the bandwidth formula in Section 5. (The provided code files perform this evaluation numerically.)

9. Summary

We established rigorous bridges between time and frequency viewpoints: (i) frequency response is the transform of the impulse response and predicts sinusoidal steady state; (ii) a universal uncertainty inequality proves that fast time localization requires broad frequency spread; (iii) for the canonical second-order system we derived closed-form relations connecting damping and natural frequency to overshoot, settling time, resonance peak, resonance frequency, and -3 dB bandwidth. These results operationalize the central control-engineering trade-off: increasing speed (bandwidth) tends to increase resonance and overshoot unless damping is increased, which in turn can reduce bandwidth.

10. References

  1. Gabor, D. (1946). Theory of communication. Journal of the Institution of Electrical Engineers (Part III: Radio and Communication Engineering), 93(26), 429–457.
  2. Heisenberg, W. (1927). Über den anschaulichen Inhalt der quantentheoretischen Kinematik und Mechanik. Zeitschrift für Physik, 43, 172–198.
  3. Bode, H.W. (1940). Relations between attenuation and phase in feedback amplifier design. Bell System Technical Journal, 19, 421–454.
  4. Fano, R.M. (1950). Theoretical limitations on the broadband matching of arbitrary impedances. Journal of the Franklin Institute, 249(1), 57–83.
  5. Shannon, C.E. (1949). Communication in the presence of noise. Proceedings of the IRE, 37(1), 10–21.
  6. Parseval, M.A. (1806). Mémoire sur les séries et sur l’intégration complète des équations aux différences partielles linéaires. Mémoires présentés à l’Institut des Sciences, Lettres et Arts, 1, 638–648.
  7. Wiener, N. (1949). Extrapolation, interpolation, and smoothing of stationary time series. Wiley / MIT-related theoretical foundations (journal-era results summarized).