1. 程式人生 > >matlab中傳遞函式的離散化

matlab中傳遞函式的離散化

matlab中,傳遞函式離散化,特別是轉化為差分方程,可以使用c2d實現,係數直接轉化是不可以的。c2d的具體用法,可以參照matlab幫助,下面舉一例

% transfor function
sys = tf([1 -1], [1 4 5]);

% discretize
ts = 0.1; % 取樣週期
dsys = c2d(sys, ts, 'z'); % 轉化為差分方程

% extract
[num, den] = tfdata(dsys,'v'); % 提取差分方程係數

結果為:

>> dsys
 
Transfer function:
0.07736 z - 0.08557
----------------------
z^2 - 1.629 z + 0.6703
 
Sampling time: 0.1

>> num

num =

                   0   0.077359465661809  -0.085567271047414

>> den

den =

   1.000000000000000  -1.629281019107614   0.670320046035640