使用MATLAB写代码做下面的题目,描述某线性时不变系统的微分方程为d^2y(t)/dt^2+5dy(t)/d(t)+6y(t)=f(t),初始状态为y(0-)=2,y'(0-)=0,求激励为f(t)=10costu(t)时该系统的自由响应、强迫响应以及全响应。
时间: 2024-01-10 22:02:59 浏览: 80
MATLAB实验报告-运用MATLAB求解和分析线性时不变系统资料.docx
可以使用MATLAB的ode45函数求解该系统的微分方程。下面是完整的MATLAB代码:
```matlab
function [t, y] = system_response()
% 系统响应函数
% 定义系统微分方程
dydt = @(t, y) [y(2); -6*y(1) - 5*y(2) + 10*cos(t)];
% 定义初始状态
y0 = [2; 0];
% 求解微分方程
[t, y] = ode45(dydt, [0, 20], y0);
% 绘制系统自由响应、强迫响应和全响应的图像
figure;
subplot(3, 1, 1);
plot(t, y(:, 1));
title('自由响应');
xlabel('时间');
ylabel('幅值');
subplot(3, 1, 2);
plot(t, 10*cos(t));
title('强迫响应');
xlabel('时间');
ylabel('幅值');
subplot(3, 1, 3);
plot(t, y(:, 1) + 10*cos(t));
title('全响应');
xlabel('时间');
ylabel('幅值');
end
```
在上述代码中,dydt表示系统的微分方程,y0表示初始状态,ode45函数用于求解微分方程,最终绘制了系统的自由响应、强迫响应和全响应的图像。
阅读全文