假设有一个转子系统,它需要考虑刚度阻尼质量,如何用matlab求它的固有频率和主振型,以及用matlab根据所得数据绘制它的振型图
时间: 2024-05-05 10:22:10 浏览: 18
要用Matlab求解转子系统的固有频率和主振型,可以采用以下步骤:
1. 建立转子系统的状态空间模型,并将其表示为矩阵形式;
2. 通过对矩阵进行特征值分解,求得系统的固有频率和主振型;
3. 根据所得数据,绘制出转子系统的振型图。
以下是具体的实现方法:
1. 建立状态空间模型
状态空间模型由一组状态变量和一组输入变量组成,可以描述系统的动态行为。在转子系统中,状态变量一般为转子的位移和速度,输入变量为转子上施加的力。将状态和输入变量表示为向量形式,可以得到转子系统的状态空间模型:
```
x' = Ax + Bu
y = Cx + Du
```
其中,x为状态变量向量,u为输入变量向量,y为输出变量向量。A、B、C和D分别为系统的状态矩阵、输入矩阵、输出矩阵和直接转移矩阵。
对于转子系统,状态变量可以表示为位移和速度,因此状态向量为:
```
x = [u, v]'
```
输入向量为施加在转子上的力,可以表示为:
```
u = [F]'
```
输出变量为转子的位移,因此输出向量为:
```
y = [u]'
```
根据转子的刚度、阻尼和质量等参数,可以得到状态矩阵、输入矩阵、输出矩阵和直接转移矩阵:
```
M = [m 0; 0 m] % 质量矩阵
K = [k1+k2 -k2; -k2 k2] % 刚度矩阵
C = [c1+c2 -c2; -c2 c2] % 阻尼矩阵
A = [0 1; -inv(M)*K -inv(M)*C] % 状态矩阵
B = [0; inv(M)] % 输入矩阵
C = [1 0] % 输出矩阵
D = 0 % 直接转移矩阵
```
2. 求解固有频率和主振型
通过对状态矩阵进行特征值分解,可以得到系统的固有频率和主振型。在Matlab中,可以用`eig`函数求解:
```
[V, D] = eig(A)
```
其中,`V`为特征向量矩阵,`D`为特征值矩阵。特征向量表示主振型,特征值表示固有频率。由于转子系统是一个二阶系统,因此有两个特征值和两个特征向量。取特征值中的实部作为固有频率,取特征向量矩阵的第一列作为主振型。
```
omega = sqrt(real(diag(D))) % 固有频率
phi = V(:,1) % 主振型
```
3. 绘制振型图
根据所得数据,可以用Matlab绘制出转子系统的振型图。由于主振型是一个向量,需要将其表示为位移和速度的形式。根据状态向量和主振型的定义,可以得到位移和速度的表达式:
```
u = phi(1)*sin(omega*t)
v = phi(2)*sin(omega*t)
```
其中,`t`为时间变量。将位移和速度代入转子系统的状态空间模型中,可以得到输出变量的表达式:
```
y = C*[u; v]
```
将时间变量从0到一定时间进行离散化,并将输出变量的值存储在一个数组中,可以绘制出转子系统的振型图:
```
t = linspace(0, 10, 1000) % 时间向量
y = zeros(size(t)) % 输出变量数组
for i = 1:length(t)
u = phi(1)*sin(omega*t(i))
v = phi(2)*sin(omega*t(i))
y(i) = C*[u; v]
end
plot(t, y)
xlabel('Time (s)')
ylabel('Displacement')
title('Rotor System Vibration')
```
以上就是用Matlab求解转子系统的固有频率和主振型,并绘制振型图的方法。