我不知道如何在奈奎斯特图上显示以-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
复制相似问题