MATLAB Nyquist Plot - 显示单位圆

时间:2014-07-31 22:32:56

标签: matlab

我无法知道如何在奈奎斯特图上显示以-1为中心的单位圆。

当我用nyquist(L)作为我的循环函数绘制L(s) = P(s)*C(s)时,它只显示奈奎斯特图本身。使用grid on也不会这样做。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:3)

创建奈奎斯特图后,使用hold on;,这样我们就可以在您的奈奎斯特图上绘制一个MATLAB圆。如果从极坐标中回忆起来,我们可以将圆上的点参数化为:

  • x = r*cos(theta);
  • y = r*sin(theta);

r将是圆的半径,而theta是它相对于原点的角度。 theta的域名位于[0,2*pi]之间。对于单位圆,r = 1。然后我们将角度(theta)替换为0到2*pi。您还需要移动圆圈,使原点位于Re = -1, Im = 0。就这样,这样做:

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

这是一个快速举例。使用L = tf(9, [1 6 9]);来表示我们的开环系统的传递函数,使用上面的代码产生以下图:

enter image description here

请记住,我必须调整轴的极限,以便您可以看到单位圆。我在显示情节后通过以下方式调用axis来完成此操作:

axis([-2 2 -1 1]);

实轴限制范围从-2到2,虚轴限制范围从-1到1.