I cannot find out how you would show the unit circle centered at -1 on a Nyquist plot.
When I plot
L(s) = P(s)*C(s) being my loop function, it only shows the nyquist plot itself. Using
grid on also doesn't do this.
Can someone help me please?
Once you create your Nyquist plot, use
hold on; so we can draw a circle in MATLAB on top of your Nyquist plot. If you recall from polar co-ordinates, we can parameterize a point on a circle to be the following:
x = r*cos(theta);
y = r*sin(theta);
r would be the radius of your circle while
theta is the angle it makes with respect to the origin.
theta has its domain between
[0,2*pi]. For the unit circle,
r = 1. We would then substitute angles (
theta) between 0 to
2*pi. You also need to shift your circle so that the origin is at
Re = -1, Im = 0. As such, do this:
n = 1000; %// Define number of points on circle theta = linspace(0, 2*pi, n); x = cos(theta); y = sin(theta); nyquist(L); %// Spawn Nyquist plot hold on; plot(x-1, y); %// Unit circle
Here's a quick example for you. Using
L = tf(9, [1 6 9]); to represent our transfer function of the open-loop system, using the above code produces the following plot:
Bear in mind that I had to adjust the limits of the axis so you could see the unit circle. I did this by invoking
axis in the following way after the plot was shown:
axis([-2 2 -1 1]);
The real axis limits span from -2 to 2, and the imaginary axis limits span from -1 to 1.