二自由度系统强迫振动matlab,清华大学出版社-图书详情-《振动力学基础与MATLAB应用》...
时间: 2023-06-20 15:07:13 浏览: 126
以下是一个二自由度系统强迫振动的MATLAB代码示例:
```
%定义系统参数
m1 = 1; %质量1
m2 = 2; %质量2
k1 = 3; %弹性系数1
k2 = 4; %弹性系数2
c1 = 0.1; %阻尼系数1
c2 = 0.2; %阻尼系数2
f0 = 1; %外加周期力幅值
w = 2*pi; %外加周期力角频率
T = 2*pi/w; %外加周期力周期
%定义时间范围和时间步长
t_start = 0;
t_end = 10*T;
dt = T/100;
%定义初始状态
x0 = [0;0;0;0]; %x1(0), x2(0), x1'(0), x2'(0)
%定义系统方程
f = @(t,x) [x(3);x(4);(-k1*x(1)-c1*x(3)+k2*(x(2)-x(1))+c2*(x(4)-x(3))+f0*sin(w*t))/m1;(-k2*(x(2)-x(1))-c2*(x(4)-x(3)))/m2+(f0*sin(w*t))/m2];
%求解ODE方程
[t,y] = ode45(f, [t_start:dt:t_end], x0);
%绘制节点1和节点2的位移响应曲线
figure;
plot(t,y(:,1),t,y(:,2));
xlabel('Time (s)');
ylabel('Displacement (m)');
legend('Node 1','Node 2');
%绘制节点1和节点2的速度响应曲线
figure;
plot(t,y(:,3),t,y(:,4));
xlabel('Time (s)');
ylabel('Velocity (m/s)');
legend('Node 1','Node 2');
```
代码中,`f`表示系统方程,使用MATLAB内置的`ode45`函数求解ODE方程,并绘制节点1和节点2的位移响应曲线和速度响应曲线。需要注意的是,本代码仅供参考,具体的二自由度系统参数应根据实际情况进行调整。
阅读全文