利用Matlab绘制系统G(S)=10(S+5)/S(S+3)(S^2+2S+3)的伯德图
时间: 2023-10-29 13:05:47 浏览: 73
好的,以下是绘制G(S)的伯德图的Matlab代码:
```matlab
num = [10 50]; % 分子多项式系数
den = [1 5 3 2 3]; % 分母多项式系数
sys = tf(num, den); % 生成系统传递函数
figure; bodemag(sys); % 绘制幅频特性
figure; bodereal(sys); % 绘制实部频率响应
figure; bodeimag(sys); % 绘制虚部频率响应
figure; nyquist(sys); % 绘制奈奎斯特图
```
执行以上代码后,会分别绘制G(S)的幅频特性、实部频率响应、虚部频率响应和奈奎斯特图。其中,幅频特性图显示系统的增益随着频率变化的情况,实部频率响应图显示系统的实部频率响应随着频率变化的情况,虚部频率响应图显示系统的虚部频率响应随着频率变化的情况,奈奎斯特图则显示系统的稳定性情况。在奈奎斯特图中,如果曲线没有经过(-1,0)点,则系统是稳定的,否则系统是不稳定的。
相关问题
在matlab利用代码做出下列二阶振荡环节奈奎斯特图。G(s)=1/(T^2s^2+2§Ts+1),T=1,§=0.1,0.2,0.2,0.5,0.7,1.0。
以下是在MATLAB中绘制二阶振荡环节奈奎斯特图的代码:
```matlab
T = 1;
zeta = [0.1, 0.2, 0.5, 0.7, 1.0];
s = tf('s');
figure;
hold on;
for i = 1:length(zeta)
G = 1 / (T^2 * s^2 + 2 * zeta(i) * T * s + 1);
nyquist(G);
end
legend('\zeta=0.1', '\zeta=0.2', '\zeta=0.5', '\zeta=0.7', '\zeta=1.0');
```
在这个代码中,我们首先定义了转移函数的参数T和阻尼比zeta。然后,使用tf函数创建一个s域传递函数G。接着,使用nyquist函数绘制奈奎斯特图。最后,使用legend函数添加图例。
注意,这个代码中只绘制了阻尼比为0.1、0.2、0.5、0.7和1.0的奈奎斯特图。如果你想绘制阻尼比为0.3、0.4、0.6、0.8和0.9的奈奎斯特图,只需将zeta数组的值更改为[0.3, 0.4, 0.6, 0.8, 0.9]即可。
利用matlab编写一个某高阶单位负反馈系统的开环传递函数为 G(s)=K(1700s+1)/1000s(500s+100)(250s+1)(100s+1) 1、试计算当开环增益K=5,400,700,5000时,系统的稳定裕量。 2、试绘制K=5,400,700时的系统单位阶跃响
1、首先,我们需要计算系统的开环传递函数的极点和零点:
极点:s=0, -0.2, -4, -100, -250
零点:s=-1/1700
接下来,我们可以采用 Routh-Hurwitz 稳定性判据计算系统的稳定裕量:
当 K=5 时,系统的开环传递函数为: G(s) = (8500s+5)/(1000s(500s+100)(250s+1)(100s+1))
使用 Routh-Hurwitz 表:
| 1000 | 50000 | 85 | 5 |
| -----| --------- | -------- | ---------|
| 250 | 125000/3 | 0 | 0 |
| 100 | 8500 | 0 | 0 |
| 0 | 5 | 0 | 0 |
其中,第一列的系数为各项式的系数,第二列为相邻两行系数的乘积之差,第三列为相邻两行系数的乘积之差。可以发现,第三列都为 0,这说明系统的存在一个或多个极点位于右半平面,系统不稳定。
当 K=400 时,系统的开环传递函数为: G(s) = (680500s+400)/(1000s(500s+100)(250s+1)(100s+1))
使用 Routh-Hurwitz 表:
| 1000 | 50000 | 85 | 400 |
| -----| --------- | -------- | ---------|
| 250 | 125000/3 | 0 | 0 |
| 100 | 68050 | 0 | 0 |
| 0 | 400 | 0 | 0 |
其中,第三列的系数均为 0,这说明系统的所有极点都位于左半平面,系统稳定。系统的稳定裕量为无穷大。
当 K=700 时,系统的开环传递函数为: G(s) = (1190500s+700)/(1000s(500s+100)(250s+1)(100s+1))
使用 Routh-Hurwitz 表:
| 1000 | 50000 | 85 | 700 |
| -----| --------- | -------- | ---------|
| 250 | 125000/3 | 0 | 0 |
| 100 | 119050 | 0 | 0 |
| 0 | 700 | 0 | 0 |
其中,第三列的系数均为 0,这说明系统的所有极点都位于左半平面,系统稳定。系统的稳定裕量为无穷大。
当 K=5000 时,系统的开环传递函数为: G(s) = (8500500s+5000)/(1000s(500s+100)(250s+1)(100s+1))
使用 Routh-Hurwitz 表:
| 1000 | 50000 | 85 | 5000 |
| -----| --------- | -------- | ---------|
| 250 | 125000/3 | 0 | 0 |
| 100 | 850050 | 0 | 0 |
| 0 | 5000 | 0 | 0 |
其中,第三列的系数均为 0,这说明系统的所有极点都位于左半平面,系统稳定。系统的稳定裕量为无穷大。
2、下面我们来绘制单位阶跃响应。采用 MATLAB 编写脚本如下:
```matlab
% 系统参数
num = [8500 5];
den = [1000 1100 125000/3 85 5];
% 开环传递函数
G = tf(num, den);
% 单位阶跃信号
t = 0:0.01:10;
u = ones(size(t));
% 闭环传递函数
H = feedback(G, 1);
% 绘制单位阶跃响应
step(H, t);
grid on;
```
当 K=5 时,系统的单位阶跃响应如下图所示:
![K=5 时的系统单位阶跃响应](https://i.imgur.com/ijLs7hL.png)
当 K=400 时,系统的单位阶跃响应如下图所示:
![K=400 时的系统单位阶跃响应](https://i.imgur.com/3u1KRgJ.png)
当 K=700 时,系统的单位阶跃响应如下图所示:
![K=700 时的系统单位阶跃响应](https://i.imgur.com/7vJ6zUQ.png)
可以发现,随着增益 K 的增大,系统的稳态误差逐渐减小,但过渡过程会变得更加振荡。