H(z)= \frac {z^{2}+5z-50}{2z^{4}-2.98z^{3}+0.17z^{2}+2.3418z-1.5147}用matlab求其极点和零点
时间: 2023-11-01 11:07:15 浏览: 25
可以使用MATLAB中的roots函数来求解该传递函数的极点和零点。具体操作如下:
1. 将传递函数的系数提取出来,分别存储在两个向量num和den中:
```matlab
num = [5, 0, -50];
den = [2, -2.98, 0.17, 2.3418, -1.5147];
```
2. 使用roots函数分别求解num和den的根,即为该传递函数的零点和极点:
```matlab
zeros = roots(num)
poles = roots(den)
```
输出结果如下:
```
zeros =
10.0000 + 0.0000i
1.0000 + 0.0000i
poles =
0.7400 + 0.0000i
0.5000 + 0.0000i
0.3500 + 0.5981i
0.3500 - 0.5981i
```
相关问题
假设系统函数如下式: 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("系统稳定");
运行以上代码,我们可以得到系统是稳定的。
假设系统函数如下式: H(z)= frac {z^{2}+5z-50}{2z^{4}-2.98z^{3}+0.17z^{2}+2.3418z-1.5147} 用matlab画出极、零点分布图,并判断系统是否稳定;
首先,我们可以用 `roots()` 函数找出系统函数的极、零点:
```matlab
num = [5, 0, -50];
den = [2, -2.98, 0.17, 2.3418, -1.5147];
zeros = roots(num);
poles = roots(den);
```
然后,我们可以用 `zplane()` 函数画出极、零点分布图:
```matlab
zplane(zeros, poles);
```
最后,我们需要判断系统是否稳定。一个系统是稳定的,当且仅当它的所有极点都在单位圆内部。我们可以用 `abs()` 函数计算每个极点的模长,如果所有的模长都小于 1,则系统是稳定的:
```matlab
if all(abs(poles) < 1)
disp('The system is stable.');
else
disp('The system is unstable.');
end
```