跳转到内容

MATLAB 编程/尼科尔斯图

来自维基教科书,开放的书籍,开放的世界

本文介绍了在 MATLAB 中创建尼科尔斯图。简而言之,使用 Nichols 命令。但是,Nichols 命令有几个选项,并且 Nichols 命令生成的图不容易重新格式化。大多数 MATLAB 图的默认格式对于分析来说很好,但对于放到 Word 和 PowerPoint 文档甚至本网站来说就不理想了。因此,本文介绍了一种需要更多代码行但提供通用 plot 命令的完整格式灵活性的替代方法。

MATLAB 的 Nichols 命令

[编辑 | 编辑源代码]

基本的 Nichols 命令如下

 >> nichols(LTI_SYS)

其中

  • LTI_SYS 是一个 LTI 对象 - TFSSZPKFRD

Nichols 命令将自动调用 gcf,它将尼科尔斯图放在当前的 图形 上。如果不存在图形,则 gcf 将创建一个图形。

如果你想指定绘制 LTI_SYS 的频率点,请使用 logspacelinspace 创建一个频率向量,如下所示

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

其中

  • freqVec 是一个包含 5000 个频率的向量,以 Hz 为单位,在对数刻度上从 10-1 到 103 均匀分布
  • pi 是一个等于 的 MATLAB 常量,在本例中,它用于将 freqVec 转换为 rad/sec,因为它被传递给 Nichols 命令

nichols 命令的问题

[编辑 | 编辑源代码]

nichols 命令的主要问题是图的重新格式化。nichols 命令似乎使用了一个普通的 semilogx 图,然后将补丁或类似的东西应用于图形。这会导致在尝试创建多行标题、重新格式化线宽或字体大小等时出现奇怪的行为。轴与图形的正常关系并不完全存在。

[编辑 | 编辑源代码]

ControlTheoryPro.com 上有关尼科尔斯图的更多信息

华夏公益教科书