用matlab写一段二自由度传统动力吸振器的共振振幅曲线的代码
时间: 2024-05-15 20:19:42 浏览: 91
机械动力学实验报告 单自由度系统的受迫振动.docx
以下是用matlab编写的二自由度传统动力吸振器的共振振幅曲线的代码:
```matlab
% 二自由度传统动力吸振器的共振振幅曲线
clear all; % 清空工作区
clc; % 清空命令窗口
% 定义系统参数
m1 = 1; % 主振子质量
m2 = 1; % 副振子质量
k1 = 4; % 主振子刚度
k2 = 1; % 副振子刚度
c1 = 0.2; % 主振子阻尼
c2 = 0.1; % 副振子阻尼
w = 0:0.1:10; % 频率范围
% 计算传递函数
s = tf('s');
G11 = 1/(m1*s^2+c1*s+k1); % 主振子传递函数
G22 = 1/(m2*s^2+c2*s+k2); % 副振子传递函数
G12 = -1/(m1*s^2+c1*s+k1)*k2/(m2*s^2+c2*s+k2); % 主振子对副振子的耦合传递函数
G21 = -1/(m2*s^2+c2*s+k2)*k1/(m1*s^2+c1*s+k1); % 副振子对主振子的耦合传递函数
G = [G11 G12; G21 G22]; % 系统传递函数
% 计算共振振幅曲线
mag = zeros(length(w),1);
for i = 1:length(w)
mag(i) = abs(evalfr(G,1i*w(i))); % 计算幅值
end
% 绘制共振振幅曲线
figure;
plot(w,mag);
xlabel('频率(rad/s)');
ylabel('振幅');
title('二自由度传统动力吸振器的共振振幅曲线');
```
运行以上代码,即可得到二自由度传统动力吸振器的共振振幅曲线图。
阅读全文