编写matlab程序,完成文件中实验内容2(3)
时间: 2024-11-15 08:32:04 浏览: 0
好的,以下是针对实验内容2(3)的MATLAB程序代码:
```matlab
% 实验内容2(3)
% 单位负反馈系统,开环传递函数为 G(s) = K / ((s + 1)(s + 2))
% 定义开环传递函数
num = [1]; % 分子系数
den = conv([1 1], [1 2]); % 分母系数
% 原始系统的根轨迹
figure;
rlocus(num, den);
title('原始系统的根轨迹');
grid on;
% 修改极点 p = -2 到 -6,并绘制根轨迹
poles = [-3, -4, -5, -6];
for p = poles
% 修改后的分母多项式
new_den = conv([1 1], [1 p]);
% 绘制修改后的根轨迹
figure;
rlocus(num, new_den);
title(['极点 p = ', num2str(p), ' 时的根轨迹']);
grid on;
end
```
### 代码解释
1. **定义开环传递函数**:
- `num` 是分子系数 `[1]`,表示 \( K \)。
- `den` 是分母系数,使用 `conv` 函数将 `(s + 1)` 和 `(s + 2)` 相乘得到 `[1 3 2]`。
2. **绘制原始系统的根轨迹**:
- 使用 `rlocus(num, den)` 绘制原始系统的根轨迹图。
3. **修改极点并绘制根轨迹**:
- 定义新的极点列表 `poles = [-3, -4, -5, -6]`。
- 对每个新极点,修改分母多项式并重新计算根轨迹。
- 使用 `rlocus(num, new_den)` 绘制修改后的根轨迹图,并添加标题和网格。
运行上述代码后,将会生成多个图形窗口,分别显示不同极点下的根轨迹图。你可以通过这些图形观察极点变化对根轨迹的影响。
阅读全文