
Control 2.3
Chapter 2.5–2.6
By the end of this session, you should be able to:
Control systems in ECE often involve mechanics:
To design controllers, we need transfer functions that describe how motion responds to forces/torques.

Tip
We will show that mechanical systems can be modeled just like electrical RLC circuits, enabling us to reuse circuit techniques.
For any linear time-invariant (LTI) system with zero initial conditions:
\[ G(s) = \frac{Y(s)}{U(s)} \]
where
In circuits, examples:
In mechanical systems, we will see examples like:
Three basic translational elements
Variables:



Note
There is also a force–current analogy (node-style), but in this section we mainly use the force–voltage analogy.
Consider the system in Figure 2.15(a):
Goal: Find transfer function \(G(s) = \dfrac{X(s)}{F(s)}\).
Steps:


For motion assumed to the right:
Equation from Newton’s law (sum of forces = \(M\ddot{x}\)):
\[ M\frac{d^{2}x(t)}{dt^{2}}+f_{v}\frac{dx(t)}{dt}+Kx(t)=f(t) \]
Take Laplace transform with zero initial conditions:
\[ M s^{2}X(s)+f_{v}s X(s)+K X(s)=F(s) \]
Factor \(X(s)\):
\[ (M s^{2}+f_{v}s+K)X(s)=F(s) \]
Transfer function:
\[ G(s) = \frac{X(s)}{F(s)}=\frac{1}{Ms^{2}+f_{v}s+K} \]
Block diagram (Figure 2.15(b)):

From Table 2.4, taking Laplace transforms:
Spring: \[ F(s)=K X(s) \Rightarrow Z_M(s) = \frac{F(s)}{X(s)} = K \]
Damper: \[ F(s)=f_{v}s X(s) \Rightarrow Z_M(s) = f_v s \]
Mass: \[ F(s)=M s^{2}X(s) \Rightarrow Z_M(s) = Ms^2 \]
Define mechanical impedance:
\[ Z_{M}(s)=\frac{F(s)}{X(s)} \]
Important
Once each element has \(Z_M(s)\), we can skip writing the differential equation, just like in AC circuit analysis with impedances.
From the FBD, in the \(s\)‑domain each force is of the form
\[ F(s) = Z_M(s) X(s) \]
So in Figure 2.16(b):

We get directly:
\[ [Ms^{2}+f_{v}s+K]X(s) = F(s) \]
This is of the form
\[ [\text{Sum of impedances}] \cdot X(s) = [\text{Sum of applied forces}] \]
similar (but not strictly analogous) to a mesh equation.
Definition:
Consequences:
Analogy with circuits:
Tip
To solve:
Problem:
Find transfer function \(G(s) = \dfrac{X_2(s)}{F(s)}\) for the system in Figure 2.17(a).
DOF:
\(\Rightarrow\) 2 equations of motion needed.


To get forces on \(M_1\):
Figures 2.18(a–c) illustrate this:


Similarly for \(M_2\) using Figures 2.19(a–c).
From the FBDs (Figures 2.18(c), 2.19(c)), we obtain in the Laplace domain:
\[ \big[M_{1}s^{2} + (f_{v_{1}}+f_{v_{3}})s + (K_{1}+K_{2})\big]X_{1}(s) - (f_{v_{3}}s+K_{2})X_{2}(s) = F(s) \]
\[ -(f_{v_{3}}s+K_{2})X_{1}(s) + \big[M_{2}s^{2} + (f_{v_{2}}+f_{v_{3}})s + (K_{2}+K_{3})\big]X_{2}(s) = 0 \]
We can write these in matrix form:
\[ \begin{bmatrix} Z_{11} & Z_{12} \\ Z_{21} & Z_{22} \end{bmatrix} \begin{bmatrix} X_1(s) \\ X_2(s) \end{bmatrix} = \begin{bmatrix} F(s) \\ 0 \end{bmatrix} \]
where
Solve the 2×2 system for \(X_2(s)/F(s)\):
\[ \frac{X_{2}(s)}{F(s)} = G(s) = \frac{(f_{v_{3}}s+K_{2})}{\Delta} \]
where
\[ \Delta=\left|\begin{array}{cc} M_{1}s^{2} + (f_{v_{1}}+f_{v_{3}})s + (K_{1}+K_{2}) & -(f_{v_{3}}s+K_{2})\\ -(f_{v_{3}}s+K_{2}) & M_{2}s^{2} + (f_{v_{2}}+f_{v_{3}})s + (K_{2}+K_{3}) \end{array}\right| \]
This is the determinant of the impedance matrix.
Note
Again, form is identical to a 2‑loop RLC circuit if we replace masses, springs, dampers with inductors, capacitors, resistors via the analogy.

We have three masses → 3 DOF (\(x_1, x_2, x_3\)).
General patterns (mesh-style):
For \(M_1\):
\[ \big[\text{Sum of impedances connected to } x_1\big]X_{1}(s) - \big[\text{Impedances between } x_1 \text{ and } x_2\big] X_{2}(s) - \big[\text{Impedances between } x_1 \text{ and } x_3\big] X_{3}(s) = \big[\text{Sum of applied forces at } x_1\big] \]
Similar structures hold for \(x_2\) and \(x_3\).
Using impedances (Table 2.4) and the pattern, we get:
For \(M_1\):
\[ [M_{1}s^{2} + (f_{v_{1}}+f_{v_{3}})s + (K_{1}+K_{2})]X_{1}(s) - K_{2}X_{2}(s) - f_{v_{3}}s X_{3}(s) = 0 \]
For \(M_2\):
\[ -K_{2}X_{1}(s) + [M_{2}s^{2} + (f_{v_{2}}+f_{v_{4}})s + K_{2}]X_{2}(s) - f_{v_{4}}sX_{3}(s) = F(s) \]
For \(M_3\):
\[ -f_{v_{3}}s X_{1}(s) - f_{v_{4}}s X_{2}(s) + [M_{3}s^{2}+(f_{v_{3}}+f_{v_{4}})s]X_{3}(s) = 0 \]
These are the equations of motion; we can solve for any \(X_i(s)\) or transfer function we need.

Given system in Figure 2.21:
Task: Find \(G(s) = \dfrac{X_2(s)}{F(s)}\).
Answer provided:
\[ G(s) = \frac{3s + 1}{s(s^3 + 7s^2 + 5s + 1)} \]
Tip
Try to:
Complete solution is available on the book’s website.
We now move from translational to rotational systems.
The procedure is identical, except:
Mechanical elements:
Note
Everything we did for \(x(t)\) and \(f(t)\) now repeats for \(\theta(t)\) and \(T(t)\).
Table 2.5: Rotational analogs
| Component | Torque–angular velocity | Torque–angular displacement |
|---|---|---|
| Spring | \(T(t) = K\displaystyle\int_{0}^{t}\omega(\tau)d\tau\) | \(T(t) = K\theta(t)\) |
| Viscous damper | \(T(t) = D\omega(t)\) | \(T(t) = D\dfrac{d\theta(t)}{dt}\) |
| Inertia | \(T(t) = J\dfrac{d\omega(t)}{dt}\) | \(T(t) = J\dfrac{d^{2}\theta(t)}{dt^{2}}\) |
Units:
Rotational impedance:
\[ Z_M(s) = \frac{T(s)}{\theta(s)} = \begin{cases} K & \text{(spring)} \\ Ds & \text{(damper)} \\ Js^2 & \text{(inertia)} \end{cases} \]
Problem:
Find \(G(s) = \dfrac{\theta_2(s)}{T(s)}\) for the system in Figure 2.22(a).
Modeling approximations:



We again use superposition:
For \(J_1\):

Similarly for \(J_2\), using Figure 2.24.

From the FBDs:
\[ (J_{1}s^{2}+D_{1}s+K)\theta_{1}(s)-K\theta_{2}(s)=T(s) \]
\[ -K\theta_{1}(s)+(J_{2}s^{2}+D_{2}s+K)\theta_{2}(s)=0 \]
Again, matrix form:
\[ \begin{bmatrix} J_{1}s^{2}+D_{1}s+K & -K\\ -K & J_{2}s^{2}+D_{2}s+K \end{bmatrix} \begin{bmatrix} \theta_1(s) \\ \theta_2(s) \end{bmatrix} = \begin{bmatrix} T(s) \\ 0 \end{bmatrix} \]
Solve for \(\theta_2(s)/T(s)\):
\[ \frac{\theta_{2}(s)}{T(s)}=\frac{K}{\Delta} \]
with
\[ \Delta=\left|\begin{array}{cc} J_{1}s^{2}+D_{1}s+K & -K\\ -K & J_{2}s^{2}+D_{2}s+K \end{array}\right| \]
In MATLAB with Symbolic Math Toolbox, the matrix equation can be solved symbolically:
This yields an expression matching
\[ \theta_2(s) = \frac{K}{\Delta} T(s) \]

Angles: \(\theta_1, \theta_2, \theta_3\) → 3 DOF.
The generic pattern (mesh-style):
For \(\theta_1\):
Same idea for \(\theta_2\) and \(\theta_3\).
Applying the pattern:
\[ \begin{aligned} (J_{1}s^{2}+D_{1}s+K)\theta_{1}(s) &- K\theta_{2}(s) &- 0\theta_{3}(s) &= T(s) \\ -K\theta_{1}(s) &+ (J_{2}s^{2}+D_{2}s+K)\theta_{2}(s) &- D_{2}s\theta_{3}(s) &= 0\\ -0\theta_{1}(s) &- D_{2}s\theta_{2}(s) &+ (J_{3}s^{2}+D_{3}s+D_{2}s)\theta_{3}(s) &= 0 \end{aligned} \]
Again, we have a 3×3 linear system in \(\theta_1(s)\), \(\theta_2(s)\), \(\theta_3(s)\).
Note
These equations are ready to be solved for transfer functions like \(\theta_3(s)/T(s)\) or \(\theta_2(s)/T(s)\) using matrix methods.

Problem: For the system in Figure 2.26, find:
\[ G(s) = \frac{\theta_2(s)}{T(s)} \]
Answer:
\[ G(s) = \frac{1}{2s^{2} + s + 1} \]
Tip
Check yourself:
Where do these models show up?
In each case, the controller design relies on an accurate transfer function.

Translational elements:
Rotational elements:
Mechanical impedance \(Z_M(s)=\dfrac{F(s)}{X(s)}\) or \(\dfrac{T(s)}{\theta(s)}\) allows circuit-like analysis.
Degrees of freedom (DOF) = number of independent motions = number of equations of motion.
Equations of motion for multi-DOF systems resemble mesh equations:
Transfer functions are obtained by solving the Laplace-domain linear system for output over input.
Translational:
Rotational:
General transfer function pattern (1‑DOF):
For practice before the next class:
Addendum Interactive Deck
This addendum lets you experiment with the ideas from Sections 2.5–2.6 directly in the browser.
You will:
Tips:
Use this interactive Python cell to compute the transfer function
\[ G(s) = \frac{X(s)}{F(s)} = \frac{1}{Ms^2 + f_v s + K} \]
for user‑chosen parameters.
Try:
fv_val = 0.0 to see the undamped transfer function.fv_val and observe how the denominator changes.The poles of \(G(s)\) are the roots of \(Ms^2 + f_v s + K = 0\).
Use this block to compute the poles for your chosen parameters.
Questions to think about:
Use the sliders to adjust \(M\), \(f_v\), and \(K\). A step response of the mass–spring–damper system will update automatically.
Try:
fv_tr = 0 and see the oscillatory behavior.fv_tr and observe the motion become more damped.K_tr to see how the stiffness changes the oscillation frequency.Mechanical impedances in the \(s=j\omega\) domain:
Use sliders to vary \(M\), \(f_v\), and \(K\), and see how the magnitude of each changes over frequency.
Observe:
Consider the 2‑DOF system from Example 2.17. We focus on the diagonal terms of the impedance matrix:
Use sliders to choose parameters and see how the coefficients of \(s^2\), \(s\), and constant terms change.
viewof M1_2dof = Inputs.range([0.5, 5], {step: 0.5, label: "M1 (kg)", value: 1})
viewof M2_2dof = Inputs.range([0.5, 5], {step: 0.5, label: "M2 (kg)", value: 2})
viewof fv1_2dof = Inputs.range([0, 10], {step: 0.5, label: "f_v1 (N·s/m)", value: 1})
viewof fv2_2dof = Inputs.range([0, 10], {step: 0.5, label: "f_v2 (N·s/m)", value: 1})
viewof fv3_2dof = Inputs.range([0, 10], {step: 0.5, label: "f_v3 (N·s/m)", value: 2})
viewof K1_2dof = Inputs.range([0, 20], {step: 1, label: "K1 (N/m)", value: 2})
viewof K2_2dof = Inputs.range([0, 20], {step: 1, label: "K2 (N/m)", value: 5})
viewof K3_2dof = Inputs.range([0, 20], {step: 1, label: "K3 (N/m)", value: 3})Use this to see the mesh-like pattern:
Now switch to rotational systems. For a 1‑DOF rotational system (spring–damper–inertia):
\[ G(s) = \frac{\theta(s)}{T(s)} = \frac{1}{Js^2 + D s + K} \]
Experiment with this interactive block.
Compare this form with the translational case. They are structurally identical, just with different physical units.
For Example 2.19, the equations are:
\[ (J_{1}s^{2}+D_{1}s+K)\theta_{1}(s)-K\theta_{2}(s)=T(s) \]
\[ -K\theta_{1}(s)+(J_{2}s^{2}+D_{2}s+K)\theta_{2}(s)=0 \]
Use sliders to explore the impedance matrix and its determinant \(\Delta\).
viewof J1_rot = Inputs.range([0.1, 5], {step: 0.1, label: "J1 (kg·m²)", value: 0.5})
viewof J2_rot = Inputs.range([0.1, 5], {step: 0.1, label: "J2 (kg·m²)", value: 1.0})
viewof D1_rot = Inputs.range([0, 5], {step: 0.2, label: "D1 (N·m·s/rad)", value: 0.5})
viewof D2_rot = Inputs.range([0, 5], {step: 0.2, label: "D2 (N·m·s/rad)", value: 0.5})
viewof K_rot = Inputs.range([0.5, 20], {step: 0.5, label: "K (N·m/rad)", value: 5})Reflect:
Use sliders to adjust \(J\), \(D\), and \(K\) and see the step response in angle \(\theta(t)\).
Explore:
Use this cell to print both transfer functions side-by-side for your chosen parameters.
Notice the pattern:
Use this empty template to quickly prototype your own 2‑DOF translational system equations in Python.
Next challenge (outside this block):
Using these interactive blocks, you have:
Use this deck as a sandbox: modify code, change parameters, and relate every change you see back to the underlying physics + Laplace-domain algebra.