求用MATLAB求解传递函数

2025-03-09 11:08:12
推荐回答(1个)
回答1:

连续传递函数Ds用tf输入最方便,不知道为什么偏要用zpk。
频率预修正的双线性变换法需要指定截止频率,这里取了个2。

>> Ds=zpk([],[-1+sqrt(2)*i -1-sqrt(2)*i],1);
>> Dz1=zpk(c2d(Ds,1,'zoh'));
>> Dz1.Variable='z^-1'

Zero/pole/gain:
0.22856 z^-1 (1+0.4884z^-1)
-----------------------------
(1 - 0.1147z^-1 + 0.1353z^-2)

Sampling time: 1
Overloaded functions or methods (ones with the same name in other directories)
doc ident/c2d
>> Dz2=zpk(c2d(Ds,1,'tustin'));
>> Dz2.Variable='z^-1'

Zero/pole/gain:
0.090909 (1+z^-1)^2
-----------------------------
(1 - 0.1818z^-1 + 0.2727z^-2)

Sampling time: 1
>> Dz3=zpk(c2d(Ds,1,'matched'));
>> Dz3.Variable='z^-1'

Zero/pole/gain:
0.1701 z^-1 (1+z^-1)
-----------------------------
(1 - 0.1147z^-1 + 0.1353z^-2)

Sampling time: 1

>> Dz4=zpk(c2d(Ds,1,'prewarp',2));
>> Dz4.Variable='z^-1'

Zero/pole/gain:
0.13855 (1+z^-1)^2
-----------------------------
(1 + 0.3743z^-1 + 0.2883z^-2)

Sampling time: 1