我无法知道如何在奈奎斯特图上显示以-1为中心的单位圆。
当我用nyquist(L)
作为我的循环函数绘制L(s) = P(s)*C(s)
时,它只显示奈奎斯特图本身。使用grid on
也不会这样做。
有人能帮助我吗?
答案 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]);
来表示我们的开环系统的传递函数,使用上面的代码产生以下图:
请记住,我必须调整轴的极限,以便您可以看到单位圆。我在显示情节后通过以下方式调用axis
来完成此操作:
axis([-2 2 -1 1]);
实轴限制范围从-2到2,虚轴限制范围从-1到1.