首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MATLAB Nyquist图-显示单位圆

MATLAB Nyquist图-显示单位圆
EN

Stack Overflow用户
提问于 2014-08-01 06:32:56
回答 1查看 11.1K关注 0票数 1

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

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

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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。因此,请执行以下操作:

代码语言:javascript
运行
复制
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来完成此操作:

代码语言:javascript
运行
复制
axis([-2 2 -1 1]);

实轴限制从-2到2,虚轴限制从-1到1。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25070021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档