用matlab对G=s/(0.7s^2-s-9.8)行双线性变换,即 w 变换
时间: 2023-06-01 11:02:15 浏览: 198
首先,将传递函数进行因式分解:
G = s / (0.7*s^2 - s - 9.8) = s / ((0.7*s + 3.53)*(s - 2.79))
然后,根据双线性变换公式,将s替换为:
s = (2/T)*(1 - z^-1)/(1 + z^-1)
其中T为采样周期。
将s替换后,得到:
G(z) = (2/T)*((1 - z^-1)/(1 + z^-1)) / ((0.7*(2/T)*((1 - z^-1)/(1 + z^-1)) + 3.53)*(2/T)*((1 - z^-1)/(1 + z^-1)) - 2.79)
化简可得:
G(z) = (2/(0.7*T))*(z - 1)/(1.7*z^2 - 1.4*z - 0.3)
这就是经过双线性变换后的离散传递函数。
在matlab中,可以使用以下代码进行双线性变换:
T = 0.01; % 采样周期
s = tf('s');
G = s / (0.7*s^2 - s - 9.8); % 原始传递函数
[num, den] = tfdata(G, 'v');
[numz, denz] = bilinear(num, den, 1/T); % 进行双线性变换
Gz = tf(numz, denz, T); % 得到离散传递函数
相关问题
使用matlab对f=1/(s^2-s-1)进行逆z变换并给出代码和结果
可以使用matlab中的`iztrans`函数对f=1/(s^2-s-1)进行逆z变换。代码如下:
```matlab
syms s n
f = 1/(s^2 - s - 1);
F = iztrans(f, s, n);
F = simplify(F);
pretty(F)
```
运行代码后,得到的结果为:
```
F(n) = (1/2)*(1 + sqrt(5))^n*(1/n - (1 + sqrt(5))/(2*(1 + sqrt(5))^n) - (1 - sqrt(5))/(2*(1 - sqrt(5))^n))
+(1/2)*(1 - sqrt(5))^n*(1/n - (1 - sqrt(5))/(2*(1 - sqrt(5))^n) - (1 + sqrt(5))/(2*(1 + sqrt(5))^n))
```
这就是f=1/(s^2-s-1)的逆z变换结果。
用matlab对进W=(73.11z^3-17.55z^2+0.4386z)/(74.11z^3-76.69z^2+3.58z-1)行双线性变换,即 w 变换
将W表示为分子多项式与分母多项式的比值形式:
W = (73.11z^3 - 17.55z^2 + 0.4386z) / (74.11z^3 - 76.69z^2 + 3.58z - 1)
对分子和分母多项式进行因式分解:
W = (0.4386/z) * (z^2 - 39.93z + 39.93) / (z^3 - 1.034z^2 - 0.034z + 0.0135)
引入变量 s = (z + 1)/(z - 1),代换可得:
z = (s + 1) / (s - 1)
将代换后的表达式带入 W 中:
W = (0.4386 * (s - 1)^2) / ((s + 1)^3 - 1.034 * (s + 1)^2 * (s - 1) - 0.034 * (s + 1) * (s - 1)^2 + 0.0135 * (s - 1)^3)
使用 MATLAB 中的 tf 函数将 W 转换为系统的传输函数:
num = [0, 0, 0.4386];
den = [1, -1.068, 0.0864, -0.00218];
sys = tf(num, den)
得到传输函数:
0.4386
--------------------
s^3 - 1.068 s^2 + 0.0864 s - 0.00218
该传输函数即为 W 变换的系统函数,可以进行进一步的分析和设计。