系统模态分析与频率响应计算的MATLAB实现
立即解锁
发布时间: 2025-08-17 00:06:08 阅读量: 4 订阅数: 14 


MATLAB与ANSYS振动仿真及应用
# 系统模态分析与频率响应计算的MATLAB实现
## 1. 模态相关计算
### 1.1 模态变量计算
在进行模态分析时,需要对一些关键变量进行计算。以下是相关代码:
```matlab
zmode31 = xn*z331;
zmode32 = xn*z332;
z1mode31 = zmode31(1,:);
z2mode31 = zmode31(2,:);
z3mode31 = zmode31(3,:);
z1mode32 = zmode32(1,:);
z2mode32 = zmode32(2,:);
z3mode32 = zmode32(3,:);
```
上述代码中,`zmode31` 和 `zmode32` 通过矩阵 `xn` 与 `z331`、`z332` 相乘得到。随后,将 `zmode31` 和 `zmode32` 的每一行分别提取出来,存储在 `z1mode31`、`z2mode31`、`z3mode31` 和 `z1mode32`、`z2mode32`、`z3mode32` 中。
### 1.2 模态结果绘制
对于模态 2 的结果绘制,有以下几种情况:
- **绘制主位移**:
```matlab
plot(t,real(zp221),'k-',t,real(zp222),'k+-',t,imag(zp221),'k.-',t,imag(zp222),'ko-')
title('principal real and imag disp for mode 2')
legend('real','real','imag','imag')
axis([0 max(t) -1 1])
grid on
disp('execution paused to display figure, "enter" to continue'); pause
```
此代码用于绘制模态 2 的主位移的实部和虚部。通过 `plot` 函数将不同的实部和虚部曲线绘制出来,并使用 `title` 函数添加标题,`legend` 函数添加图例,`axis` 函数设置坐标轴范围,`grid on` 开启网格线。最后,程序暂停等待用户输入。
- **绘制各质量的物理位移**:
```matlab
plot(t,real(z1mode21),'k-',t,real(z1mode22),'k+-',t,imag(z1mode21), 'k.-',t,imag(z1mode22),'ko-')
title('physical real and imag disp for mass 1, mode 2')
legend('real','real','imag','imag')
axis([0 max(t) -0.5 0.5])
grid on
disp('execution paused to display figure, "enter" to continue'); pause
```
这部分代码用于绘制质量 1 在模态 2 下的物理位移的实部和虚部。同样,使用 `plot` 函数绘制曲线,添加标题、图例等信息,并暂停程序。对于质量 2 和质量 3 的绘制代码与之类似,只是将变量名替换为对应的 `z2mode21`、`z2mode22` 和 `z3mode21`、`z3mode22`。
- **绘制总物理位移**:
```matlab
plot(t,real(z1mode21+z1mode22),'k-',t,real(z2mode21+z2mode22), 'k+-',t,real(z3mode21+z3mode22),'k.-')
title('physical disp z1, z2, z3 mode 2')
legend('mass 1','mass 2','mass 3')
axis([0 max(t) -1 1])
grid on
disp('execution paused to display figure, "enter" to continue'); pause
```
该代码绘制了模态 2 下三个质量的总物理位移。将各质量的两个分量相加后绘制曲线,并添加相应的标题和图例。
### 1.3 子图绘制
为了更清晰地展示模态 2 的结果,还可以使用子图进行绘制:
```matlab
subplot(3,2,1)
plot(t,real(zp221),'k-',t,real(zp222),'k+-',t,imag(zp221),'k.-',t,imag(zp222),'ko-')
title('principal disp for mode 2')
legend('real','real','imag','imag')
axis([0 max(t) -1 1])
grid on
subplot(3,2,3)
plot(t,real(z1mode21),'k-',t,real(z1mode22),'k+-',t,imag(z1mode21), 'k.-',t,imag(z1mode22),'ko-')
title('physical real and imag disp for mass 1, mode 2')
legend('real','real','imag','imag')
axis([0 max(t) -0.5 0.5])
grid on
subplot(3,2,4)
plot(t,real(z2mode21),'k-',t,real(z2mode22),'k+-',t,imag(z2mode21), 'k.-',t,imag(z2mode22),'ko-')
title('physical real and imag disp for mass 2, mode 2')
legend('real','real','imag','imag')
axis([0 max(t) -0.5 0.5])
grid on
subplot(3,2,5)
plot(t,real(z3mode21),'k-',t,real(z3mode22),'k+-',t,imag(z3mode21), 'k.-',t,imag(z3mode22),'ko-')
title('physical real and imag disp for mass 3, mode 2')
legend('real','real','imag','imag')
axis([0 max(t) -0.5 0.5])
grid on
subplot(3,2,6)
plot(t,real(z1mode21+z1mode22),'k+-',t,real(z2mode21+z2mode22), 'k.-',t,real(z3mode21+z3mode22),'ko-')
title('physical disp for z1, z2, z3 mode 2')
legend('mass 1','mass 2','mass 3')
axis([0 max(t) -1 1])
grid on
disp('execution paused to display figure, "enter" to continue'); pause
```
这里使用 `subplot` 函数将不同的图形组合在一个窗口中。分别绘制了模态 2 的主位移、各质量的物理位移以及总物理位移。
### 1.4 复平面(Argand)图
对于无阻尼或比例阻尼系统,模态 2 和模态 3 的复平面(Argand)图有特定的绘制方式。在复平面中,每个模态的两个复共轭特征向量并排绘制。特征向量的旋转方向由与 \(e^{j\omega t}\) 或 \(e^{-j\omega t}\) 项相关的箭头表示。对于任意时间 “t”,两个反向旋转的复特征向量的相加结果显示在每个自由度的两个单独特征向量图的中间和下方。相加图展示了两个虚部如何相互抵消,只留下运动的实部。
| 模态 | 自由度 | 位置 | 速度 |
| ---- | ---- | ---- | ---- |
| 2 | 1 | Pos = 1 + 0j | Vel = 0 + 1j |
| 2 | 1 | Pos = 1 + 0j | Vel = 0 - 1j |
| 2 | 2 | Pos = 1 + 0j | Vel = 0 + 1j |
| 2 | 2 | Pos = 0 + 0j | Vel = 0 + 0j |
| 2 | 3 | Pos = -1 + 0j | Vel = 0 - 1j |
| 2 | 3 | Pos = -1 + 0j | Vel = 0 + 1j |
| 3 | 1 | Pos = 1 + 0j | Vel = 0 - 1.732j |
| 3 | 1 | Pos = 1 + 0j | Vel = 0 + 1.732j |
| 3 | 2 | Pos = -2 + 0j | Vel = 0 + 3.464j |
| 3 | 2 | Pos = -2 + 0j | Vel = 0 - 3.464j |
| 3 | 3 | Pos = 1 + 0j | Vel = 0 - 1.732j |
| 3 | 3 | Pos = 1 + 0j | Vel = 0 + 1.732j |
### 1.5 比例阻尼初始条件响应
- **模态 2**:对于 2% 比例阻尼的模态 2,图 10.6 展示了构成模态 2 的两个复特征向量响应的实部和虚部。可以看到两个虚部相位相反相互抵消,而两个实部重叠并相加。图 10.7 - 10.9 显示了三个质量的实部和虚部。质量 2 的运动为零,而质量 1 和质量 3 的运动相位相反,与图 10.1 中模态 2 的形状一致。图 10.10 展示了三个质量随时间的物理位移。模态 2 的复平面(Argand)图向量可以与每个自由度的每个图相匹配。
- **模态 3**:对于 2% 比例阻尼的模态 3,图 10.11 展示了构成模态 2 的两个复特征向量响应的实部和虚部。同样,两个虚部相位相反相互抵消,两个实部重叠并相加。图 10.12 - 10.14 显示了三个质量的实部和虚部。图 10.15 展示了三个质量随时间的物理位移。模态 3 的复平面(Argand)图向量可以与每个自由度的每个图相匹配。
## 2. 模态状态空间设置
### 2.1 代码初始化
```matlab
clf;
clear all;
tdofss_eig;
zeta = input('input zeta, 0.02 = 2% of critical damping (default) ... ');
if (isempty(zeta))
zeta
```
0
0
复制全文
相关推荐










