简介

本文介绍如何在 MATLAB 中绘制 尼科尔斯图(Nichols Plot)
最快捷的方法是使用 nichols 命令。
不过,nichols 命令虽然方便,但它生成的图形不容易进行重新排版。MATLAB 默认的图形格式适合分析使用,但并不适合直接插入 Word、PowerPoint 或网页。

因此,本文介绍一种替代方法,虽然需要写更多代码,但可以完全自定义图形格式,借助通用的 plot 命令实现更灵活的可视化。


MATLAB 的 nichols 命令

基本用法如下:

>> nichols(LTI_SYS)

其中:

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

nichols 命令会自动调用 gcf,将图像绘制到当前的 figure;如果没有打开的图形窗口,gcf 会新建一个。


自定义频率向量

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

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

说明:

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

  • pi 是 MATLAB 中表示 π 的常量,用于将频率从 Hz 转换为 rad/s。


nichols 命令的问题

nichols 命令的主要问题在于图形难以重新排版。例如:

  • 无法方便地设置多行标题;

  • 修改线宽、字体大小等格式时会遇到限制;

  • 图形内部结构(例如坐标轴与图形的关系)不像普通 plot 图那么清晰。

这是因为 nichols 底层似乎基于 semilogx 绘图,并叠加了额外的图层或补丁。


外部链接


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