Chapter 9: Time Domain Specifications
- Page ID
- 123778
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\dsum}{\displaystyle\sum\limits} \)
\( \newcommand{\dint}{\displaystyle\int\limits} \)
\( \newcommand{\dlim}{\displaystyle\lim\limits} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)Time-Domain Specifications and Response Characterization
Control engineers often describe system behavior using time-domain performance metrics. These metrics provide insight into how a system responds to changes in input, particularly in reference tracking scenarios. When designing control systems, especially those modeled as second-order systems, these specifications become critical performance targets.
Let's consider a generic 2nd order plant transfer function that can describe a number of systems, such as a spring-mass-damper system or torsional pendulum:
$$
H(s) = \frac{\sigma^2 + \omega^2}{(s + \sigma)^2 + \omega^2} = \frac{\omega_n^2}{s^2 + 2\zeta \omega_n s + \omega_n^2}
\]
Here, \( \omega_n \) is the undamped natural frequency and \( \zeta \) is the damping ratio.
Classification of system response based on \( \zeta \):
- \( \zeta > 1 \): overdamped – no oscillations, slow response
- \( \zeta = 1 \): critically damped – fastest non-oscillatory response
- \( 0 < \zeta < 1 \): underdamped – oscillatory, most common in mechanical systems
- \( \zeta = 0 \): undamped – pure sinusoidal oscillations
We are working with this general second-order transfer function:
$$
H(s) = \frac{\sigma^2 + \omega^2}{(s + \sigma)^2 + \omega^2}
\]
The poles of this system are:
$$
s = -\sigma \pm j\omega
\]
Alternatively, using the form:
$$
H(s) = \frac{\omega_n^2}{s^2 + 2\zeta \omega_n s + \omega_n^2}
\]
Solving the denominator gives:
$$
s = -\zeta \omega_n \pm j\omega_n \sqrt{1 - \zeta^2}
\]
Let us define:
- \( \sigma = \zeta \omega_n \) (real part)
- \( \omega = \omega_n \sqrt{1 - \zeta^2} \) (imaginary part = damped natural frequency)
So the poles are located at:
$$
s = -\sigma \pm j\omega
\]
Geometric Interpretation in the s-Plane
- The poles form a complex conjugate pair, symmetric about the real axis
- These poles lie on a semicircle of radius \( \omega_n \) centered at the origin
- A right triangle can be formed with:
- Opposite side: \( \omega = \omega_n \sqrt{1 - \zeta^2} \)
- Adjacent side: \( \sigma = \zeta \omega_n \)
- Hypotenuse: \( \omega_n \)
The angle between the pole vector and the imaginary axis is:
$$
\theta = \sin^{-1}(\zeta)
\]
We also use the identities:
\( \sigma = \zeta \omega_n \)
\( \omega = \omega_n \sqrt{1 - \zeta^2} \)
Standard Time-Domain Performance Metrics
We define several critical time-domain performance metrics to control the shape of the system output:
- Rise Time \( t_r \): Time for the output to rise from 10% to 90% of the steady-state value.
Approximate expression:
$$
t_r \approx \frac{1.8}{\omega_n}
\]
- Peak Time \( t_p \): Time at which the output reaches its first maximum:
$$
t_p = \frac{\pi}{\omega}
\]
- Maximum Overshoot \( M_p \): Percent by which output exceeds steady-state:
$$
M_p = e^{\left(-\frac{\pi \zeta}{\sqrt{1 - \zeta^2}}\right)} \times 100\%
\]
- Settling Time \( t_s \): Time for output to stay within 1% of the final value:
$$
t_s \approx \frac{4.6}{\zeta \omega_n}
\]
Worked Example: Step Input Response
Let’s examine a step input:
\( u(t) = 1 \)
We know:
$$
P(s) = \frac{Y(s)}{U(s)}
\]
and
$$
U(s) = \frac{1}{s}
\]
We can compute the output \( Y(s) \), then use the inverse Laplace transform to get the time-domain output \( y(t) \).
Let’s choose:
- \( \omega_n = 10 \, \text{rad/s} \)
- \( \zeta = 0.5 \)
We find very strong agreement between both the analytical solution and fundamental time-domain metric definitions. This can also be verified using Mathematica or other simulation tools.
It is important to recognize that some discrepancies between numerical results and metric approximations may occur. Many of these equations are empirical or derived from numerical fits. When designing control systems, we must remain aware of these approximations.
Meeting Control Specifications
In practice, specifications originate from user requirements, safety, or physical limits. For example, a temperature control system for a room might specify:
- Overshoot must be less than 10%
- Peak time must be less than 0.5 s
- Settling time must be less than 2 s
So the designer imposes:
$$
M_p < 10\%, \quad t_p < 0.5 \, \text{s}, \quad t_s < 2 \, \text{s}
\]
The control objective becomes designing a controller that moves the system poles to meet these specifications.
Spring-Mass-Damper Response System
Let’s consider a design example using a mass-spring-damper system:
- Mass: \( m = 2 \, \text{kg} \)
- Spring constant: \( k = 200 \, \text{N/m} \)
- Damping coefficient: \( c = 8 \, \text{Ns/m} \)
We want to check if the system meets the following design metrics:
- Rise time \( t_r < 0.8 \, \text{s} \)
- Maximum overshoot \( M_p < 15\% \)
- Settling time \( t_s < 10.1 \, \text{s} \)
We calculate the actual system values:
$$
t_p \approx 0.32 \, \text{s} \\
M_p \approx 52\% \\
t_r \approx 0.18 \, \text{s} \\
t_s \approx 2.3 \, \text{s}
\]
Conclusion:
The system fails the overshoot requirement badly. With 52% overshoot, the system might exceed design tolerances, potentially causing damage or instability. This is unacceptable.
So how can we tune the system to reduce overshoot while maintaining the other requirements?
Let’s take a more fundamental approach — by analyzing pole location in the \( s \)-domain and how it relates to our time-domain metrics.
Relating Time-Domain Specs to the s-Plane
We know from earlier that:
- Settling time relates to the real part of the pole:
$$
t_s = \frac{4.6}{\sigma}
\]
- Rise time relates to the natural frequency:
$$
t_r = \frac{1.8}{\omega_n}
\]
- Overshoot relates to damping ratio \( \zeta \), which controls the angle \( \theta \) between the pole and the negative real axis:
$$
\theta = \cos^{-1}(\zeta)
\]
We can now construct a shaded region in the left-half of the s-plane that satisfies all of our time-domain design criteria.
This figure shows the leftmost vertical boundary determined from the settling time bound. Any poles to the left of this line will meet the settling time requirement.
This figure adds a circular arc centered at the origin representing a constant natural frequency \( \omega_n \). This corresponds to the rise time requirement.
This final figure overlays a sloped line indicating a fixed damping ratio \( \zeta \), or equivalently, an angle \( \theta \). This corresponds to the overshoot requirement.
Design Check for the Mass-Spring-Damper System
We are working with:
- \( m = 2 \)
- \( c = 8 \)
- \( k = 200 \)
We compute:
$$
\omega_n = \sqrt{\frac{k}{m}} = \sqrt{100} = 10 \\
\zeta = \frac{c}{2\sqrt{km}} = \frac{8}{2 \cdot 20} = 0.2
\]
This damping ratio is too low — it violates the overshoot constraint.
Thus, the poles fall outside the shaded "safe" region. Overshoot will be too high.
Now, let’s fix that by adjusting damping.
Adjusting Damping Coefficient \(c\) to Meet Pole Placement Specifications
Consider the standard second-order transfer function for a spring-mass-damper system:
$$
H(s) = \frac{1}{m s^2 + c s + k}
\]
This system has the form:
$$
H(s) = \frac{1}{m \left(s^2 + \frac{c}{m} s + \frac{k}{m} \right)}
= \frac{1}{m \left(s^2 + 2\zeta \omega_n s + \omega_n^2 \right)}
\]
where:
$$
\omega_n = \sqrt{\frac{k}{m}}, \quad
\zeta = \frac{c}{2 \sqrt{km}}
\]
Suppose we are given design specifications that include:
- Maximum overshoot less than 15% \( \Rightarrow \zeta > 0.516 \)
- Rise time \(t_r < 0.8\,\text{s}\)
- Settling time \(t_s < 10.1\,\text{s}\)
Given our original parameters:
$$
m = 2, \quad c = 8, \quad k = 200
\]
We find:
$$
\omega_n = \sqrt{\frac{200}{2}} = \sqrt{100} = 10, \quad
\zeta = \frac{8}{2 \cdot \sqrt{200 \cdot 2}} = \frac{8}{2 \cdot 20} = 0.2
\]
This damping ratio is insufficient (\(0.2 < 0.47\)) and results in excessive overshoot.
To meet the overshoot spec, we must increase \(c\) so that \(\zeta > 0.47\).
Solving for the new required damping coefficient:
$$
\zeta_{\text{min}} = \frac{c_{\text{new}}}{2 \sqrt{k m}}
\quad \Rightarrow \quad
c_{\text{new}} = 2 \zeta_{\text{min}} \sqrt{k m}
\]
Substitute in values:
$$
c_{\text{new}} = 2 \cdot 0.47 \cdot \sqrt{200 \cdot 2}
= 2 \cdot 0.47 \cdot 20 = 18.8
\]
Therefore, to move the poles into the desired region, we must increase the damping coefficient from 8 to:
$$
\boxed{c = 18.8}
\]
This ensures \(\zeta = 0.47\), satisfying the overshoot specification, and places the poles within the allowable region of the \(s\)-plane.
This should make sense conceptually because we increased the damping coefficient to damp out the overshoot so our conceptual understanding matches our numerical understanding!!


