简介

本文介绍如何在 MATLAB 中绘制 奈奎斯特图(Nyquist Plot)
最直接的方法是使用 nyquist 命令。

不过,虽然 nyquist 命令功能强大,但它生成的图形不容易自定义格式。MATLAB 默认的图形格式适合分析使用,但如果要插入到 Word、PowerPoint 或网页中,往往不够美观。

因此,本文提供了一种替代方式,虽然需要更多代码行,但使用通用的 plot 命令可以实现完全自定义的图形格式控制。


MATLAB 的 nyquist 命令

基本语法如下:

>> nyquist(LTI_SYS)

其中:

  • LTI_SYS 是一个 LTI(线性时不变)系统对象,可以是传递函数(TF)、状态空间(SS)、零极点增益(ZPK)或频率响应数据(FRD)。

nyquist 命令会自动调用 gcf,在当前图形窗口中绘制奈奎斯特图。如果当前没有图形窗口,则 gcf 会创建一个新的。


自定义频率向量

如果你希望指定绘图所用的频率点,可以使用 logspacelinspace 创建频率向量,例如:

>> freqVec = logspace(-1, 3, 5000);
>> nyquist(LTI_SYS, freqVec * (2*pi))

说明:

  • freqVec 是一个对数均匀分布的向量,范围从 10 1 10^{-1} 10 3 10^3 Hz,共包含 5000 个频率点;

  • pi 是 MATLAB 中表示常数 π \pi 的内置变量,这里用于将频率从 Hz 转换为 rad/s(弧度每秒),因为 nyquist 函数需要的是角频率单位。


nyquist 命令的问题

使用 nyquist 命令的主要问题在于图形格式难以自定义,例如:

  • 标题不能方便地分为多行;

  • 难以设置线宽、字体大小等格式;

  • 坐标轴与图形之间的关系不如普通 plot 图清晰可控。

这是因为 nyquist 命令在底层可能使用了 semilogx 或类似方法,并在图形上叠加了额外的图层或图形补丁。


外部链接

Nyquist 函数官方文档 - MathWorks


最后修改: 2025年04月16日 星期三 10:20