matlab绘制零极点图
时间: 2023-07-20 15:11:29 浏览: 312
要绘制一个系统的零极点图,需要使用MATLAB中的“zplane”函数。这个函数可以用来绘制传递函数的零极点图。下面是一个例子:
假设我们有以下传递函数:
H(z) = (z-1)/(z^2-0.5z+0.25)
我们可以使用以下代码来绘制其零极点图:
```matlab
num = [1 -1];
den = [1 -0.5 0.25];
zplane(num, den);
```
在这个例子中,我们首先将分子和分母多项式的系数存储在变量“num”和“den”中。然后,我们使用“zplane”函数来绘制零极点图。这个函数将自动计算传递函数的零和极点,并将它们绘制在复平面上。
绘制结果将包括一个表示传递函数的零点的“x”号和一个表示极点的“o”号。在这个例子中,我们可以看到传递函数有一个零点在“z=1”的位置,并且有两个极点在“z=0.25±0.5j”的位置。
相关问题
matlab绘制零极点图代码
### 使用 MATLAB 绘制零极点图
为了在 MATLAB 中绘制系统的零极点分布图,可以定义滤波器的分子和分母多项式系数并调用 `polezero` 函数。以下是具体的实现方法:
```matlab
% 定义滤波器的分子和分母多项式系数
b = [1, -0.5];
a = [1, -0.2];
% 绘制零点极点图解
figure;
polezero(b, a);
% 设置标题和轴标签
title('零点极点图解');
xlabel('实部');
ylabel('虚部');
% 显示网格线
grid on;
% 设置 x 和 y 轴的范围
axis([-1.5, 1.5, -1.5, 1.5]);
```
这段代码展示了如何创建一个简单的零极点图,并通过设置图表属性使其更易于阅读[^2]。
对于更加复杂的系统,比如由传递函数描述的情况,也可以利用类似的思路来绘制其零极点图。例如,给定开环传递函数 \( G(s)=\frac{s^2 + 4s + 100}{s^3 + 8s^2 + 12s} \),可以通过以下方式绘制对应的零极点图:
```matlab
num = [1 4 100]; % 开环传递函数的分子多项式
den = [1 8 12 0]; % 开环传递函数的分母多项式
sys = tf(num, den);
pzmap(sys); % 或者使用 pzplot(sys)
% 添加额外配置使图像更清晰
title('传递函数的零极点图');
xlabel('实部');
ylabel('虚部');
grid on;
axis([-10 6 -18 18]);
```
这里采用了 `tf()` 来构建传递函数对象 `sys`,接着使用 `pzmap()` (或 `pzplot()`) 函数完成绘图操作[^5]。
matlab 绘制零极点图
在 MATLAB 中绘制零极点图需要遵循以下步骤:
1. 定义系统的传输函数 H(s) 或状态空间模型;
2. 使用 `zplane` 函数绘制零极点图。
下面是一个例子:
```matlab
% 定义传输函数
num = [1 1];
den = [1 2 1];
H = tf(num, den);
% 绘制零极点图
zplane(num, den);
grid on;
```
在上述代码中,我们首先定义了一个二阶系统的传输函数,然后使用 `zplane` 函数绘制了系统的零极点图。 `zplane` 函数的输入参数为系统的分子和分母多项式系数。
如果你使用的是状态空间模型,可以使用 `eig` 函数获取系统的极点,并使用 `plot` 函数绘制零极点图。例如:
```matlab
% 定义状态空间模型
A = [0 1; -1 -1];
B = [0; 1];
C = [1 0];
D = 0;
sys = ss(A, B, C, D);
% 绘制零极点图
z = tzero(sys);
p = eig(A);
plot(real(z), imag(z), 'o', real(p), imag(p), 'x');
grid on;
```
在上述代码中,我们首先定义了一个二阶系统的状态空间模型,然后使用 `tzero` 函数获取系统的零点,并使用 `eig` 函数获取系统的极点。最后,使用 `plot` 函数将零点和极点在复平面上绘制出来。
阅读全文
相关推荐















