Transfer Functions of Interconnections
Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.
Transfer Functions of Interconnections
Key Ideas
• It is common practice to build complex dynamical system models as interconnections of simpler subsystems, where some inputs of some subsystems are declared equal to some outputs of others.
• For an interconnection of LTI subsystems, its transfer function H(s) can be found by assuming that every signal in the interconnection is a complex multiple of the same complex exponential e^{st}. This leads to a system of linear equations whose solution gives H(s).
• In many cases the process simplifies to a sequence of additions or multiplications of transfer functions, using the rules for series, parallel, and feedback (Black's formula) connections.
• The task of designing stable interconnections is frequently aided by the Routh-Hurwitz criterion, which checks whether all roots of a polynomial have negative real part without computing the roots explicitly.
Series Connection
In a series connection, the output of the first subsystem feeds directly into the input of the second:
The overall transfer function (from u to y) is
To see this: assuming u(t)=Ue^{st}, w(t)=We^{st}, y(t)=Ye^{st} gives W=H_1(s)U and Y=H_2(s)W, so Y=H_2(s)H_1(s)U.
Python example:
import control as ct
s = ct.tf('s')
H1, H2 = 1/s, 1/(s+1)
H = H2*H1 # H = 1/(s^2+s)
Parallel Connection
In a parallel connection, both subsystems share the same input and their outputs are summed:
The overall transfer function is
Python example (continued):
H = H2 + H1 # H = (2s+1)/(s^2+s)
Feedback Connection and Black's Formula
In a feedback connection, a portion of the output is fed back and compared with the reference input:
The subsystem with transfer function P(s) has input e and output y; the subsystem with transfer function K(s) has input y and output w; and e = r - w. Black's formula gives the closed-loop transfer function from r to y:
This is memorized as “forward gain divided by one plus total loop gain.” To prove it: assuming r(t)=Re^{st}, e(t)=Ee^{st}, y(t)=Ye^{st}, w(t)=We^{st}, we get Y=P(s)E, W=K(s)Y, and E=R-W. Solving for Y gives Y = \frac{P(s)}{1+K(s)P(s)}R.
Python example (continued):
G12 = ct.feedback(H1, H2) # H1/(1+H2*H1) = s/(s^2+s+1)
G21 = ct.feedback(H2, H1) # H2/(1+H1*H2) = (s+1)/(s^2+s+1)
Note the result depends on the order of arguments.
A Worked Example: Arm Position Controlled by Torque with Friction
A model familiar in 6.3100 describes the propeller arm: control torque u(t) drives the arm position \theta(t) in the presence of linear friction. Introducing intermediate signals—arm velocity w(t), friction torque v(t) = bw(t), and net torque f(t) = u(t) - v(t)—we can identify four subsystems:
• \dot\theta = w: transfer function H_1(s) = 1/s.
• M\dot w = f: transfer function H_2(s) = M/s.
• v = bw: transfer function H_3(s) = b.
• Summation: f = u - v.
Using Black's formula, the transfer function from u to w is H_{u\to w}(s) = \frac{M/s}{1+bM/s} = \frac{M}{s+bM}. Then the series connection with 1/s gives the overall transfer function from u to \theta:
Routh-Hurwitz Criterion
It is often useful to know whether all roots of a polynomial have negative real parts without computing the roots. The Routh-Hurwitz criterion gives necessary and sufficient conditions for polynomials with positive leading coefficient:
• p(s)=s+p_0 is stable if and only if p_0 > 0.
• p(s)=s^2+p_1 s+p_0 is stable if and only if p_0 > 0 and p_1 > 0.
• p(s)=s^3+p_2 s^2+p_1 s+p_0 is stable if and only if p_0 > 0, p_1 > 0, p_2 > 0, and p_2 p_1 > p_0.
Example: Stabilizing a Double Integrator with PID
The block diagram below describes a PID controller attempting to stabilize the plant P(s) = 1/s^2:
By Black's formula the closed-loop transfer function is
The characteristic polynomial is s^3 + K_d s^2 + K_p s + K_i. By the degree-3 Routh-Hurwitz criterion, stability requires K_i > 0, K_p > 0, K_d > 0, and K_d K_p > K_i.
Beware of Unstable Zero/Pole Cancellations
Consider the feedback loop with K(s) = \frac{s}{s+1} and plant P(s) = 1/s^2. Black's formula gives
whose poles s = -\tfrac{1}{2} \pm j\tfrac{\sqrt{3}}{2} both have negative real parts—so the system looks stable.
However, consider the transfer function from a plant disturbance input d (injected between the controller and the plant) to the output y:
which has a pole at s = 0—the system is actually unstable with respect to disturbances.
What happened? The controller zero at s=0 cancelled the plant pole at s=0 in H_{r\to y}, masking the instability. This is an unstable zero/pole cancellation. It can be proved that cancelling any zero or pole with \operatorname{Re}(s) \ge 0 is guaranteed to produce an unstable closed-loop system—it is an absolute no-no in feedback control design.
Python example:
import control as ct
s = ct.tf('s')
H1 = s/(s+1)
H2 = 1/(s*s)
H = H2*H1 # H = s/(s^3+s^2) -- no cancellation performed
G = ct.feedback(H, 1) # G = s/(s^3+s^2+s) -- instability visible
Python's control module correctly refuses to cancel the zero/pole, so the
instability is visible in G(s).
Questions
Question 1: Stabilizing a Double Integrator with a First-Order Controller
Consider the feedback system with first-order controller K(s) = c\,\dfrac{s+b}{s+a} and plant P(s) = 1/s^2:
By Black's formula the closed-loop characteristic polynomial is q(s) = s^3 + a s^2 + c s + cb. Apply the degree-3 Routh-Hurwitz conditions: cb > 0, c > 0, a > 0, and a \cdot c > cb (i.e., a > b).
Which Routh-Hurwitz condition is the one that requires the strict inequality a > b (rather than just a, b > 0)?
Question 2: Unstable Zero/Pole Cancellation
Consider the standard feedback diagram with plant P(s) = \dfrac{s-1}{s^2} and a desired closed-loop transfer function H_{r\to y}(s) = \dfrac{1}{s+1}.
Solving H = \frac{PK}{1+PK} for K gives K = \frac{H}{(1-H)P}. Substituting:
The open-loop product is K(s)P(s) = \dfrac{s}{s-1}\cdot\dfrac{s-1}{s^2} = \dfrac{1}{s}, where the factor (s-1) cancels. Since \operatorname{Re}(1) > 0, this is an unstable zero/pole cancellation.