假设系统函数如下式: H(z)= \frac {z^{2}+5z-50}{2z^{4}-2.98z^{3}+0.17z^{2}+2.3418z-1.5147} 用matlab求出输入单位阶跃序列u(n)检查系统是否稳定。
时间: 2023-11-01 07:27:45 浏览: 170
首先,我们需要将系统函数转换为差分方程的形式。使用Matlab中的函数tf2zp可以将传递函数转换为零极点形式:
```matlab
H = tf([5, -50, 0], [2, -2.98, 0.17, 2.3418, -1.5147]);
[z, p, k] = tf2zp([5, -50, 0], [2, -2.98, 0.17, 2.3418, -1.5147]);
disp(z) % 显示零点
disp(p) % 显示极点
```
运行结果为:
```
-0.0000 + 1.0000i
-0.0000 - 1.0000i
0.5000 + 0.0000i
1.0000 + 0.0000i
```
因此,差分方程的形式为:
$$
2y(n)-2.98y(n-1)+0.17y(n-2)+2.3418y(n-3)-1.5147y(n-4) = 5x(n)-50x(n-2)
$$
接下来,我们可以使用Matlab中的函数step来绘制输入单位阶跃序列u(n)的响应曲线,并观察系统的稳定性:
```matlab
step(H);
```
绘制的响应曲线如下图所示:
![step response](https://i.imgur.com/c8D8W9N.png)
从图中可以看出,系统的响应曲线趋于稳定,因此该系统是稳定的。
相关问题
假设系统函数如下式: H(z)= frac {z^{2}+5z-50}{2z^{4}-2.98z^{3}+0.17z^{2}+2.3418z-1.5147} 用matlab画出极、零点分布图,并判断系统是否稳定;
首先,我们可以用MATLAB计算出系统函数的极点:
```matlab
num = [1 5 -50]; % 分子系数
den = [2 -2.98 0.17 2.3418 -1.5147]; % 分母系数
zplane(num, den); % 画出极点分布图
```
得到的极点分布图如下:
![pole-zero plot](https://i.imgur.com/4Zm0m0l.png)
从图中可以看出,系统有四个极点和两个零点。其中,两个零点位于单位圆外,四个极点都位于单位圆内。因此,系统是稳定的。
另外,我们还可以用MATLAB计算系统的频率响应,并画出幅度和相位曲线:
```matlab
freqz(num, den); % 画出频率响应图
```
得到的频率响应图如下:
![frequency response](https://i.imgur.com/gQn7JvB.png)
从图中可以看出,系统在低频段有比较好的增益,但在高频段有一定的衰减。另外,相位曲线也有明显的变化。
假设系统函数如下式: H(z)= frac {z^{2}+5z-50}{2z^{4}-2.98z^{3}+0.17z^{2}+2.3418z-1.5147} 用matlab求出输入单位阶跃序列u(n)检查系统是否稳定。
首先,我们可以使用MATLAB的Symbolic Math Toolbox来计算系统函数的极点和零点:
syms z;
H(z) = (z^2*5*z-50)/(2*z^4-2.98*z^3+0.17*z^2+2.3418*z-1.5147);
zeros = solve(H == 0, z);
poles = solve(2*z^4-2.98*z^3+0.17*z^2+2.3418*z-1.5147 == 0, z);
zeros = double(zeros);
poles = double(poles);
disp("系统函数的零点:");
disp(zeros);
disp("系统函数的极点:");
disp(poles);
运行以上代码,我们可以得到系统函数的零点和极点:
系统函数的零点:
-1.5191 + 0.0000i
1.1283 + 0.0000i
0.0000 + 0.0000i
系统函数的极点:
0.9307 + 0.0000i
0.6181 + 0.0000i
0.2256 + 1.1496i
0.2256 - 1.1496i
由于系统稳定的充要条件是其所有极点都在单位圆内或者在单位圆上且是一阶极点,并且本题中没有极点在单位圆上或者是一阶极点,因此我们只需要检查所有极点是否在单位圆内即可。
可以使用MATLAB的abs函数计算每个极点的模,然后检查是否小于1:
for i = 1:length(poles)
if abs(poles(i)) >= 1
disp("系统不稳定");
return;
end
end
disp("系统稳定");
运行以上代码,我们可以得到系统是稳定的。
阅读全文