1.已知单位负反馈二阶系统的开环传递函数为: 试绘制单位阶跃响应的实验结构图并求取其响应曲线图。2.控制系统的传递函数为: 用SIMULINK建立系统模型,并对系统的阶跃响应进行仿真。3. 某系统框图如图所示,试用SIMULINK进行仿真(输入信号为阶跃信号):
时间: 2024-03-17 18:39:54 浏览: 139
二阶开环传递函数simulink仿真
5星 · 资源好评率100%
1. 单位负反馈二阶系统的开环传递函数为:
```
G(s) = K * w^2 / (s^2 + 2*z*w*s + w^2)
```
其中,K为系统增益,w为系统的自然频率,z为系统的阻尼比。
绘制单位阶跃响应的实验结构图如下:
```
+--------+ +--------+
u(s)--+ G(s) +---------+ 1/(1+G(s)) +--y(s)
+--------+ +--------+
```
其中,u(s)为输入信号,y(s)为输出信号。
根据系统的传递函数,可知:
```
K*w^2
G(s) = -------------
s^2 + 2*z*w*s + w^2
```
将其转化为时域表达式:
```
K*w^2
y(t) = L^-1{ G(s) * U(s) } = --------- * [ 1 - e^(-z*w*t) * cos(w*t*sqrt(1-z^2)) / sqrt(1-z^2) ]
w^2 * sqrt(1-z^2)
```
其中,L^-1表示拉普拉斯逆变换。
由此,我们可以使用MATLAB绘制出单位阶跃响应的曲线图:
```matlab
% 参数定义
K = 1;
w = 1;
z = 0.5;
% 计算单位阶跃响应
t = 0:0.01:10;
y = K*w^2/sqrt(1-z^2)*(1-exp(-z*w*t).*cos(w*t*sqrt(1-z^2))/sqrt(1-z^2));
% 绘图
plot(t, y);
xlabel('Time (s)');
ylabel('Amplitude');
title('Unit Step Response');
```
2. 控制系统的传递函数为:
```
G(s) = 10 / (s^2 + 10*s + 20)
```
使用SIMULINK建立系统模型,并对系统的阶跃响应进行仿真,步骤如下:
1. 打开MATLAB软件,新建一个模型文件。
2. 在模型中添加一个“Step”模块,用于产生阶跃信号。
3. 在模型中添加一个“Transfer Fcn”模块,用于表示系统的传递函数。
4. 将“Step”模块的输出信号与“Transfer Fcn”模块的输入信号相连。
5. 添加一个“Scope”模块,用于显示系统的输出信号。
6. 设置系统的传递函数为“10 / (s^2 + 10*s + 20)”。
7. 运行仿真,观察系统的阶跃响应。
MATLAB代码如下:
```matlab
% 新建模型文件
model = 'step_response';
% 打开模型文件
open_system(model);
% 添加Step模块
add_block('simulink/Sources/Step', [model '/Step']);
set_param([model '/Step'], 'Time', '0', 'Before', '0', 'After', '1', 'SampleTime', '0.01', 'Amplitude', '1');
% 添加Transfer Fcn模块
add_block('simulink/Continuous/Transfer Fcn', [model '/Transfer Fcn']);
set_param([model '/Transfer Fcn'], 'Numerator', '10', 'Denominator', '[1 10 20]');
% 添加Scope模块
add_block('simulink/Sinks/Scope', [model '/Scope']);
set_param([model '/Scope'], 'Position', [400, 200, 600, 400]);
% 连接模块
add_line(model, 'Step/1', 'Transfer Fcn/1');
add_line(model, 'Transfer Fcn/1', 'Scope/1');
% 运行仿真
sim(model);
% 关闭模型文件
close_system(model);
```
3. 某系统框图如下所示,输入信号为阶跃信号:
```
+----+----+
| | |
u(s)--+ G1 | G2 +--y(s)
| | |
+---------+
```
其中,G1和G2分别为一阶系统和二阶系统的传递函数。具体为:
```
G1(s) = 1 / (s+1)
G2(s) = 1 / (s^2 + 2*s + 5)
```
使用SIMULINK进行仿真,步骤如下:
1. 打开MATLAB软件,新建一个模型文件。
2. 在模型中添加一个“Step”模块,用于产生阶跃信号。
3. 在模型中添加一个“Transfer Fcn”模块,用于表示G1的传递函数。
4. 在模型中添加一个“Transfer Fcn”模块,用于表示G2的传递函数。
5. 将“Step”模块的输出信号与“Transfer Fcn”模块的输入信号相连。
6. 将“Transfer Fcn”模块的输出信号与“Transfer Fcn”模块的输入信号相连。
7. 添加一个“Scope”模块,用于显示系统的输出信号。
8. 设置G1的传递函数为“1 / (s+1)”。
9. 设置G2的传递函数为“1 / (s^2 + 2*s + 5)”。
10. 运行仿真,观察系统的阶跃响应。
MATLAB代码如下:
```matlab
% 新建模型文件
model = 'step_response';
% 打开模型文件
open_system(model);
% 添加Step模块
add_block('simulink/Sources/Step', [model '/Step']);
set_param([model '/Step'], 'Time', '0', 'Before', '0', 'After', '1', 'SampleTime', '0.01', 'Amplitude', '1');
% 添加Transfer Fcn模块
add_block('simulink/Continuous/Transfer Fcn', [model '/G1']);
set_param([model '/G1'], 'Numerator', '1', 'Denominator', '[1 1]');
add_block('simulink/Continuous/Transfer Fcn', [model '/G2']);
set_param([model '/G2'], 'Numerator', '1', 'Denominator', '[1 2 5]');
% 添加Scope模块
add_block('simulink/Sinks/Scope', [model '/Scope']);
set_param([model '/Scope'], 'Position', [400, 200, 600, 400]);
% 连接模块
add_line(model, 'Step/1', 'G1/1');
add_line(model, 'G1/1', 'G2/1');
add_line(model, 'G2/1', 'Scope/1');
% 运行仿真
sim(model);
% 关闭模型文件
close_system(model);
```
阅读全文