利用MATLAB編程或者Simulink工具來繪製伯德圖和奈奎斯特圖

   本文主要介紹如何利用MATLAB編程或者Simulink工具繪製伯德圖和奈奎斯特圖

一、用程序繪製伯德圖和奈奎斯特圖

  1、conv()函數的介紹
   conv()函數可用於計算兩個向量卷積,簡單理解其實就是可以用來計算多項式乘法。我們用conv()函數可以很方便的對傳遞環數的分子或者分母進行計算, 舉個例子比如系統的傳遞函數如下(本文以此傳遞函數介紹如何繪製圖像):

6s+1s2+3s+5\frac{6}{(s+1)(s^2+3s+5)}

   我們可以利用conv()函數對其分母進行計算,分別把多項式的係數,按照升冪(或降冪)排列的方式構成向量,可以賦值給一個變量,作爲conv()函數的參數,也可以直接作爲conv()函數的參數,有一點需要注意,要麼都按照升冪的方式,要麼都按照降冪的方式進行排列,此處以降冪的方式介紹,代碼如下:
den_1=conv([1 1],[1  3  5])
   運行結果如下:
den_1 =

     1     4     8     5
   這樣我們就得到了分母多項式按照降冪排列的係數
  2、利用nyquist()函數繪製奈奎斯特圖
   我們可以把以上的到的分子(有增益的話乘以增益K)和分母多項式的係數作爲nyquist()函數的參數,此時繪製的奈奎斯特圖是w從負無窮到正無窮範圍的完整的奈奎斯特圖,當然我們可以用第三個參數來規定w的範圍。代碼如下:
k=6;
num_1=k*[1];
den_1=conv([1 1],[1  3  5]);
nyquist(num_1,den_1)        %沒有輸出變量時繪製奈奎斯特曲線
    繪製的圖像如下(完整的圖像):

在這裏插入圖片描述

    採用如下方法可以簡單地繪製w從0到正無窮時的圖像:
k=6;
num_1=k*[1];
den_1=conv([1 1],[1  3  5]);
[re,im]=nyquist(num_1,den_1) %有輸出變量時獲取實部和虛部的值
plot(re,im);
    繪製的圖像如下:

在這裏插入圖片描述

    爲了便於觀察和分析,我們可以加上網格線,畫出實軸和虛軸,代碼如下:
k=6;
num_1=k*[1];
den_1=conv([1 1],[1  3  5]);
nyquist(num_1,den_1)        %沒有輸出變量時繪製奈奎斯特曲線
hold  on
plot([-1  1.5],[0 0],'k')
plot([0 0],[-1 1],'k')
grid on  %打開網格線,便於觀察和分析
    繪製的圖像如下:

在這裏插入圖片描述

  3、利用bode()函數繪製伯德圖
    同樣把傳遞函數的分子分母多項式係數作爲bode函數的前兩個參數,把w的範圍作爲第三個參數,可以使用logspace()函數來規定w的範圍如logspace(-2,3, 200)規定w從10負2次方到10的3次方,即0.01~1000,取200個點繪製,有一點需要注意,我們用matlab繪製的伯德圖是精確的曲線,不是漸近曲線,代碼如下:
k=6;
num_1=k*[1];
den_1=conv([1 1],[1  3  5]);
w=logspace(-2,3,200);
bode(num_1,den_1,w)        %繪製伯德曲線
hold  on
grid on  %打開網格線,便於觀察和分析

    繪製的圖像如下:

在這裏插入圖片描述

二、利用Simulink工具繪製伯德圖和奈奎斯特圖

   同樣以如下傳遞函數爲例:

6s+1s2+3s+5\frac{6}{(s+1)(s^2+3s+5)}

  1、Simulink仿真模型的搭建
   對於Simulink模塊不熟悉的可以參考博文:PID控制器—MATLAB/Simulink仿真以及性能比較與分析 的第一部分,搭建的模型如下(本文的例子比較簡單,就是一個傳遞函數,對於一個系統而言,就會複雜很多,所以呢個人感覺用Simulink工具來繪製要簡單的多):

在這裏插入圖片描述

  2、利用Simulink自帶的Linear Analysis Tool繪製伯德圖和奈奎斯特圖,因matlab版本的不同Linear Analysis Tool所在的位置可能也不同,我用的matlab 2019b,位置如下:
   在Simulink界面點擊Apps如圖所示

在這裏插入圖片描述

   點擊如圖所示的工具,就打開Linear Analysis Tool工具了

在這裏插入圖片描述

   我們選擇Anaysis I/Os如下圖所示

在這裏插入圖片描述
在這裏插入圖片描述

   然後點擊如下圖所示的工具就可以很簡單的繪製伯德圖和奈奎斯特圖了

在這裏插入圖片描述

   繪製的伯德圖如下:

在這裏插入圖片描述

   繪製的奈奎斯特圖如下:

在這裏插入圖片描述

   我們用Simulink工具繪製的伯德圖和奈奎斯特圖和上文用程序繪製的伯德圖和奈奎斯特圖是相同的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章