Plots & Analysis
Housekeeping
close all; clear; clc; s = tf('s');
Black's Formula:
Recall that according to Black's Formula, the simplified form of a feedback control loop takes the form of:
Ouput
Input
System TF
Open-Loop TF
Feedback TF
Controller TF
Plant TF
Assuming a unity feedback plant, a simple proportional controller with gain K, and a plant given by:
This formula simplifies to:
From this we can observe that the open-loop poles and closed-loop poles are one and the same. The closed-loop poles however are influenced by both the open-loop pole locations as well as the open-loop (or closed-loop) zero positions
Example 1 (Bipolar System):
Consider a simple plant with a single pole and a single zero given by:
Using our formula from before, we can derive the closed-loop system to be:
As noted, we observe that the closed-loop zero is the same as our open-loop zero .
The closed-loop pole however will be governed by the equation:
From this we can see that as the gain increases, the location of the closed-loop pole will become governed increasingly by the open-loop (or closed-loop) zero’s location and will indeed approach the zero’s location asymptotically. This is another effect of having a zero in the RHP. If such a zero is resent in P (s) then there will exist a gain K such that the closed-loop pole will cross over into the RHP on its way towards the zero.
For example: given a system with a pole at s = −2 and a zero at s = −1
f = figure();
f.Position = [0 0 800 500];
z = -1;
p = -2;
G = (s-z)/(s-p);
rlocus(G); hold on;
area([-100 0],[+100 +100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([-100 0],[-100 -100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([0 +100],[+100 +100], 'FaceColor','red', 'FaceAlpha', 0.1); hold on;
area([0 +100],[-100 -100], 'FaceColor','red', 'FaceAlpha', 0.1); hold oFF;
Example 2 (Strictly Proper System A):
Consider a simple plant with a single zero and a two poles given by:
Using our formula from before, we can derive the closed-loop system to be:
As noted, we observe that the closed-loop zero is the same as our open-loop zero s = −z.
The closed-loop pole however will be governed by the equation (via quadratic formuala):
From this we can see that as the gain increases, the quadratic term will be dominated by the term and combined with the ± will drive the poles further from each other. Another effect of the increasing dominance of the term is that the system will first increase until at which point any complex poles will become strictly real. For example: given a system with a poles at and a zero at
From the root locus we can observe that one pole will asymptotically approach the zero, while the other will venture off to ∞.
f = figure();
f.Position = [0 0 800 500];
z = -1;
p1 = -2;
p2 = -3;
G = (s-z)/((s-p1)*(s-p2));
rlocus(G); hold on;
area([-100 0],[+100 +100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([-100 0],[-100 -100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([0 +100],[+100 +100], 'FaceColor','red', 'FaceAlpha', 0.1); hold on;
area([0 +100],[-100 -100], 'FaceColor','red', 'FaceAlpha', 0.1); hold oFF;
Example 3 (Strictly Proper System B):
For another example with a single zero and a pair of complex conjugate poles rather than purely real ones, consider a system with with a poles at and a zero at .
From the root locus we can observe that one pole will will asymptotically approach the zero, while the other will still venture off to ∞∞, but with both pole[s] frequency components settling on zero. It is interesting to see that each pole first approaches the real axis wherein one will approach the pole and the other will move towards infinity.
f = figure();
f.Position = [0 0 800 500];
z = -1;
p1 = -2+3j;
p2 = -2-3j;
G = (s-z)/((s-p1)*(s-p2));
rlocus(G); hold on;
area([-100 0],[+100 +100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([-100 0],[-100 -100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([0 +100],[+100 +100], 'FaceColor','red', 'FaceAlpha', 0.1); hold on;
area([0 +100],[-100 -100], 'FaceColor','red', 'FaceAlpha', 0.1); hold oFF;
Example 4 (Zero in RHP):
For another example, we demonstrate the effect of having a pole in the right-half-plane. As the gain increases, a number of poles equal to the number of zeros in the RHP will cross over into the RHP, limiting the amount of gain available to a control system before the system becomes unstable.
f = figure();
f.Position = [0 0 800 500];
z = 1;
p1 = -2+3j;
p2 = -2-3j;
G = (s-z)/((s-p1)*(s-p2));
rlocus(G); hold on;
area([-100 0],[+100 +100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([-100 0],[-100 -100], 'FaceColor','green', 'FaceAlpha', 0.1); hold on;
area([0 +100],[+100 +100], 'FaceColor','red', 'FaceAlpha', 0.1); hold on;
area([0 +100],[-100 -100], 'FaceColor','red', 'FaceAlpha', 0.1); hold oFF;