已知系统的传递函数模型为: G(S)=2(S+2)/(S+2)/(S+3) (1) 用MATLAB语句和函数将该模型转化为状态空间模型; (2)利用系统的状态空间模型,假设输入为e^-t状态初始条件为[1,2],t=0:0.1: 4,写出在e^-t输入下的状态响应和输出响应的MATLAB程序(利用lsim()函数,并使用subplot函数将仿真曲线作在同一个窗口的不同子图中); (3)编程实现系统在单位阶跃输入下t=0: 0.1: 6秒的输出响应。
时间: 2024-03-27 18:40:31 浏览: 53
简单传递函数 阶跃响应 simulink仿真模型
(1) MATLAB代码:
```
% 系统传递函数模型
num = [2, 4];
den = [1, 5, 6];
% 转化为状态空间模型
[A, B, C, D] = tf2ss(num, den);
```
(2) MATLAB代码:
```
% 系统状态空间模型
A = [-5, -6; 1, 0];
B = [2; 0];
C = [0, 1];
D = 0;
% 输入信号
t = 0:0.1:4;
u = exp(-t);
% 初始状态
x0 = [1; 2];
% 状态响应和输出响应
[y, t, x] = lsim(ss(A, B, C, D), u, t, x0);
% 绘制图像
subplot(2, 1, 1);
plot(t, x(:, 1), t, x(:, 2));
title('State response');
legend('x1', 'x2');
subplot(2, 1, 2);
plot(t, y);
title('Output response');
```
(3) MATLAB代码:
```
% 系统状态空间模型
A = [-5, -6; 1, 0];
B = [2; 0];
C = [0, 1];
D = 0;
% 输入信号
t = 0:0.1:6;
u = ones(size(t));
% 初始状态
x0 = [1; 2];
% 输出响应
y = lsim(ss(A, B, C, D), u, t, x0);
% 绘制图像
plot(t, y);
title('Output response');
```
阅读全文