用matlab画零极点图
时间: 2023-09-16 20:15:34 浏览: 449
以下是一个简单的例子,演示如何在MATLAB中绘制零极点图:
假设有一个二阶传递函数:
$$H(s)=\frac{s+1}{s^2+2s+2}$$
可以将其表示为零极点形式:
$$H(s)=\frac{(s+1)}{(s+1+j)(s+1-j)}$$
其中,$j=\sqrt{-1}$。
为了在MATLAB中绘制零极点图,需要使用函数zplane。以下是一个代码示例:
```matlab
% 定义传递函数
num = [1 1];
den = [1 2 2];
H = tf(num, den);
% 计算零极点
[z, p, k] = zpkdata(H);
% 绘制零极点图
figure;
zplane(z, p);
title('Pole-Zero Plot');
```
运行上述代码,可以得到如下的零极点图:
![pole-zero plot](https://i.imgur.com/0zHdNHf.png)
其中,圆圈表示极点,叉号表示零点。可以看到,此传递函数有两个共轭复极点(红色圆圈),一个零点(蓝色叉号)。
相关问题
matlab绘制零极点图
在MATLAB中,可以使用`zplane`函数绘制零极点图。该函数的调用格式如下:
```
zplane(z, p, k)
```
其中,`z`和`p`分别代表传递函数的零点和极点,`k`是传递函数的增益。这些参数可以用`tf2zp`函数从传递函数中提取出来。
例如,假设有一个传递函数`H(s) = (s+1)/(s^2+2s+5)`,可以使用以下代码绘制其零极点图:
```matlab
num = [1 1];
den = [1 2 5];
[z, p, k] = tf2zp(num, den);
zplane(z, p, k);
```
运行代码后,将会弹出一个零极点图窗口,显示传递函数的极点和零点位置。
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` 函数将零点和极点在复平面上绘制出来。
阅读全文