連續傳遞函數離散化

s變換到z變換:
command:c2d
作用:離散化;
其中離散化的方法又有很多:前向差分;後向差分;tustin;零極點匹配;脈衝響應;階躍響應;
下面先說一說各種離散方式的特點:

  • 前向差分:方法是用一階前向差分近似替代微分,用矩形面積之和近似替代數值積分;特點是近似關係簡單,穩態增益不變,但穩定性可能會改變,且一般不用此種方法。
  • 後向差分:和前向差分很相似,不過是用一階後向差分來代替;特點:近似關係簡單,穩態增益不變,穩定性不變,一對一映射關係(無頻率混疊),但高頻段畸變嚴重,採樣頻率越大,頻率特性越好。
  • 雙線性(Tustin)變換:方法是用梯形面積取代數值積分;特點和後向差分類似。但線性範圍比後向差分要大。
  • 零極點匹配法:映射關係爲z變換,穩定性不變,頻率混疊,沒有畸變。
  • 脈衝響應不變法和階躍響應不變法(零階保持器法):多對一變換,頻率混疊;穩態增益改變(工程意義不大,不用於控制器設計)
    以上理論部分均來自於華中科技大學林樺老師數字控制系統理論與設計課件。

下面是matlab中的內容:
matlab的c2d命令提供了五種離散的方法:

  • zoh 零階保持器法,默認的就是這個。
  • foh 一階保持器法
  • tustin 雙線性變換法
  • impulse 脈衝響應法
  • matched 零極點匹配法
    控制器設計的時候多采用tustin,後向差分,零極點配置等。濾波器設計常用脈衝響應不變法;
    使用方式是:
sysd = c2d(sys,Ts,method)

如果不寫method的話,默認是zoh。Ts是採樣頻率。
c2d命令的栗子:
在這裏插入圖片描述
command:

H = tf([1 -1],[1 4 5],'InputDelay', 0.3);
Hd = c2d(H,0.1,'tustin');

輸出是:
在這裏插入圖片描述
其他的類似。

z到s的變換:
command使用方式是:

sysc = d2c(sysd,method) 

默認方式是zoh;
舉個栗子:
在這裏插入圖片描述
command:

H = tf([1 -1],[1 1 0.3],0.1);
Hc = d2c(H)

輸出:
在這裏插入圖片描述
以上都來自matlab中的help,只做記錄用,供自己學習。

上面比較詳細的記錄了利用matlab裏的command轉換的,下面記錄一下直接用替換的,可以手寫筆算,也可以用matlab裏的符號運算,主要是用subs的函數形式。但是得提前知道一些常見的離散化的s到z的轉換表達式。
eg:

syms wr w0 Kp Kr s Ts z    % 定義符號變量
G1 =2*Kr*wi*s/(s^2+2*wi*s+w0^2)         %R控制
G2 = subs(G1,s,2*(z-1)/Ts/(z+1))    %離散化  tustin變換
G3 = collect(G2,z)  % 將表達式G2中的以z爲變量合併相同次冪;

轉換出來就是
在這裏插入圖片描述
和之前師兄發的一致。
在這裏插入圖片描述
下面是幾個常用的變換的一些轉換公式。
1.雙線性變換,即tustin變換;
在這裏插入圖片描述
在這裏插入圖片描述
2.後向差分;
在這裏插入圖片描述
在這裏插入圖片描述
其他的就不一一列舉了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章