3.已知系统的微分方程如下,利用Matlab求系统冲激响应和阶跃响应的数值解,并绘出其时域波形图。 (1)y"( t)+3y'(t)+2y( t)= x( t)
时间: 2023-07-30 18:08:05 浏览: 416
首先,将微分方程转化为状态空间模型:
$$
\begin{cases}
\dot{x}_1(t) = x_2(t) \\
\dot{x}_2(t) = -2x_1(t) - 3x_2(t) + u(t) \\
y(t) = x_1(t)
\end{cases}
$$
其中,$x_1(t)$ 表示 $y(t)$ 的一阶导数,$x_2(t)$ 表示 $y(t)$ 的二阶导数,$u(t)$ 表示输入信号。
然后,使用 Matlab 中的 `ode45` 函数求解系统的冲激响应和阶跃响应的数值解,并绘制其时域波形图。
冲激响应的代码如下:
```matlab
% 系统参数
A = [0, 1; -2, -3];
B = [0; 1];
C = [1, 0];
D = 0;
% 初始状态
x0 = [0; 0];
% 冲激信号
t = 0:0.01:10;
u = zeros(size(t));
u(1) = 1;
% 求解系统的冲激响应
sys = ss(A, B, C, D);
[y_imp, t_imp, x_imp] = lsim(sys, u, t, x0);
% 绘制冲激响应的时域波形图
plot(t_imp, y_imp);
title('Impulse Response');
xlabel('Time (s)');
ylabel('Output');
```
阶跃响应的代码如下:
```matlab
% 系统参数
A = [0, 1; -2, -3];
B = [0; 1];
C = [1, 0];
D = 0;
% 初始状态
x0 = [0; 0];
% 阶跃信号
t = 0:0.01:10;
u = ones(size(t));
% 求解系统的阶跃响应
sys = ss(A, B, C, D);
[y_step, t_step, x_step] = lsim(sys, u, t, x0);
% 绘制阶跃响应的时域波形图
plot(t_step, y_step);
title('Step Response');
xlabel('Time (s)');
ylabel('Output');
```
执行以上两个程序,即可得到系统的冲激响应和阶跃响应的时域波形图。
阅读全文