跳轉到內容

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 上有關尼科爾斯圖的更多資訊

華夏公益教科書