我不知道如何在奈奎斯特图上显示以-1为中心的单位圆。
当我使用L(s) = P(s)*C(s)
作为循环函数绘制nyquist(L)
时,它只显示奈奎斯特图本身。使用grid on
也不能做到这一点。
有人能帮帮我吗?
发布于 2014-08-01 11:35:04
一旦你创建了你的奈奎斯特图,使用hold on;
,我们就可以在你的奈奎斯特图上画一个圆。如果您还记得极坐标,我们可以将圆上的点参数化为以下形式:
x = r*cos(theta);
y = r*sin(theta);
r
是圆的半径,而theta
是圆相对于原点的角度。theta
在[0,2*pi]
之间有自己的域。对于单位圆,r = 1
。然后,我们将替换0到2*pi
之间的角度(theta
)。您还需要移动您的圆,以便原点位于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。
https://stackoverflow.com/questions/25070021
复制相似问题