用matlab 绘制一阶系统中前向通路传递函数分别为G(s)=1/s G(s)=3/s G(s)=5/s G(s)=1/5s 反馈通路传递函数为H(s)=1的单位阶跃响应曲线
时间: 2024-10-25 13:03:49 浏览: 40
在MATLAB中绘制一阶系统中前向通路(Forward Path)和反馈通路(Feedback Path)的单位阶跃响应曲线,通常需要通过仿真信号流图或者直接编写控制系统模型的代码来完成。首先,我们先分别创建四个一阶系统的传递函数:
```matlab
% 创建前向通道传递函数
G1 = tf(1, 's'); % G(s) = 1/s
G2 = tf(3, 's'); % G(s) = 3/s
G3 = tf(5, 's'); % G(s) = 5/s
G4 = tf(1, [1 5]); % G(s) = 1/(5s)
% 创建反馈通路传递函数
H = tf(1); % H(s) = 1 (单位增益)
```
然后我们可以结合这些传递函数来构建闭环系统,并对它们施加单位阶跃输入(`u = unitstep(t)`):
```matlab
% 创建闭环系统
sys = feedback(G1 * u, H);
sys_clb2 = feedback(G2 * u, H);
sys_clb3 = feedback(G3 * u, H);
sys_clb4 = feedback(G4 * u, H);
% 设置时间范围
t = 0:0.01:10;
% 进行仿真
y1 = step(sys, t);
y2 = step(sys_clb2, t);
y3 = step(sys_clb3, t);
y4 = step(sys_clb4, t);
```
最后,可以使用MATLAB的`plot`函数将各个系统的响应画在同一张图上:
```matlab
figure;
plot(t, y1, '-r', 'LineWidth', 2, 'DisplayName', 'G(s) = 1/s');
hold on;
plot(t, y2, '-g', 'LineWidth', 2, 'DisplayName', 'G(s) = 3/s');
plot(t, y3, '-b', 'LineWidth', 2, 'DisplayName', 'G(s) = 5/s');
plot(t, y4, '-k', 'LineWidth', 2, 'DisplayName', 'G(s) = 1/(5s)');
xlabel('Time (s)');
ylabel('Response');
title('Unit Step Response for Different First Order Systems');
legend('Location', 'best');
grid on;
```
这样就得到了一阶系统在四种情况下的单位阶跃响应曲线。
阅读全文