不会不怕 发表于 2012-4-17 10:28

通过状态方程求固有频率、振型遇到的问题

本帖最后由 不会不怕 于 2012-4-17 10:28 编辑

M=diag();
K=[2*Ks,0,-Ks,0,-Ks,0;...
   0,2*Ks*(lb^2),Ks*lb,0,-Ks*lb,0;...
   -Ks,Ks*lb,Ks+2*Kp,0,0,0;...
   0,0,0,2*Kp*(lf^2),0,0;...
   -Ks,-Ks*lb,0,0,Ks+2*Kp,0;...
   0,0,0,0,0,2*Kp*(lf^2)];
C=[2*Cs,0,-Cs,0,-Cs,0;...
   0,2*Cs*(lb^2),Cs*lb,0,-Cs*lb,0;...
   -Cs,Cs*lb,Cs+2*Cp,0,0,0;...
   0,0,0,2*Cp*(lf^2),0,0;...
   -Cs,-Cs*lb,0,0,Cs+2*Cp,0;...
   0,0,0,0,0,2*Cp*(lf^2)];
B=eye(size(M));
F=zeros(size(M));
E=inv(M);
G=-E*K;
H=-E*C;
A=;
% 3. 求矩阵的特征值与特征向量
=eig(A);% 矩阵A的特征值(D)与特征向量(V)
% 4. 计算相应参数abs(imag(D(i,i)))
for i=1:size(A)
    omega_n(i)=sqrt(real(D(i,i))^2+imag(D(i,i))^2*i);
    omega_d(i)=abs(imag(D(i,i)));
    sigama(i)=sqrt(1-(omega_d(i)/(omega_n(i))^2))
end
这个程序求出的固有频率不正确,不知道哪里出现了问题,请各位指导,谢谢

yyxt007 发表于 2012-4-17 10:57

回复 1 # 不会不怕 的帖子

A=;B=;
=eig(-B,A)
看看这些能不能解决你的问题。

不会不怕 发表于 2012-4-18 09:51

回复 2 # yyxt007 的帖子

这样的结果还是不正确,谢谢,其实我觉得是不是状态方程后通过特征向量求固有频率的公式就不对了呢,一直没找到方法

yyxt007 发表于 2012-4-18 09:59

回复 3 # 不会不怕 的帖子

你所说的不正确,指的是什么?

不会不怕 发表于 2012-4-18 10:24

回复 4 # yyxt007 的帖子

23.5254        23.5254        4.0759        4.0759        20.9088        20.9088        34.9359        34.9359        6.6887        6.6887        34.9359        34.9359
这是matlab运行出来的有阻尼固有频率,与结构实际频率不符,实际频率在10hz左右

yyxt007 发表于 2012-4-18 10:33

回复 5 # 不会不怕 的帖子

最好把频率重新排列;
计算结果与实际频率不符,是程序的问题还是算法不对?
实际结构的频率,是测量得到的?
对于一般结构,计算频率是不需考虑阻尼的。
我用过我提到的代码,计算结果没有问题。

不会不怕 发表于 2012-4-18 15:00

回复 6 # yyxt007 的帖子

是简化的车辆振动模型,将矩阵方程式,改写成状态方程之后计算的,与车辆实际频率不符。可能您的代码我运算错了

kyu16866 发表于 2012-11-5 00:08

如果不用状态方程方法,固有频率应该是eig(inv(M)*K),我说的这样算出来的特征值肯定是系统的固有频率的。可以再振动力学上,多自由度固有频率中提到。至于状态方程方法算出来的特征值可能不是固有频率

kyu16866 发表于 2012-11-5 00:09

我已在找,怎么用状态方程求固有频率,求特征值是找到了,不知道是不是等价的

kyu16866 发表于 2012-11-7 12:48

问题在与两种方法算出来系统的特征值明显不一样,状态空间是eig()。(其中B=eye(size(M));
F=zeros(size(M));
E=inv(M);
G=-E*K;
H=-E*C;
A=;),
而振动 多自由度分析是eig(inv(M)*K)。当然,一般这个不考虑阻尼,
两钟方法结果以那个为准??

ChaChing 发表于 2012-11-7 23:31

太久没玩这有些生疏了
MX"+KX=0
x1=X, x2=X' => x1'=X'=x2 & x2'=X"=-inv(M)*K*x1 => aa=clc; clear;
M=; K=; eig(inv(M)*K)
aa=; eig(aa)别忘记前面是在求w^2

happy 发表于 2012-11-30 09:33

这类问题建议从模型本身开始入手,首先要确定模型本身是否正确,否则一切都是空谈

ME! 发表于 2012-12-9 19:31

请问非对角阵系数的方程怎么求响应,因为列微分方程时就不止一个二阶导数的未知数了,
还有就是怎么用状态方程解

happy 发表于 2012-12-11 10:21

ME! 发表于 2012-12-9 19:31 static/image/common/back.gif
请问非对角阵系数的方程怎么求响应,因为列微分方程时就不止一个二阶导数的未知数了,
还有就是怎么用状态 ...

1. 对你的表述不是很理解,最好能给出数学模型来
2. 你的第二个问题就是将常见的高阶微分方程组,转换到状态空间中,变成一阶状态空间方程,然后求解,具体的变换方法论坛很多帖子都有,可以搜索一下

ME! 发表于 2012-12-11 10:33

mx''+kx=f(t),m为非对角阵,可以列出n个微分方程,例如m(1,1)x''+m(1,4)x''+k(1,1)x+k(1,1)x=f(t)
我看见matlab里面可以用ode23解微分方程,但是我的微分方程,我不知道怎么代换才可以变换成matlab能解的形式
页: [1] 2
查看完整版本: 通过状态方程求固有频率、振型遇到的问题