p123456q 发表于 2006-5-28 11:54

[求助]用matlab怎么求解振动方程啊

本帖最后由 VibInfo 于 2016-4-25 15:58 编辑

  对于多自由度系统自由振动固有频率与主振型问题,可求方程组 {A}=p2{A} 的特征值与特征向量。
怎么用matlab来求啊?
谢谢啊!
(我是菜鸟)


  [此贴子已经被dushudushu于2006-5-28 22:43:23编辑过]

dushudushu 发表于 2006-5-28 22:41

本帖最后由 VibInfo 于 2016-4-25 15:58 编辑

=eig(k,j)
x,d分别为振型和频率。

p123456q 发表于 2006-5-29 14:49

回复:(dushudushu)[x,d]=eig(k,j)x,d分别为振型和频...

本帖最后由 VibInfo 于 2016-4-25 15:59 编辑

谢谢啊
我用这个函数算过别人论文上的一个例子,可是结果不一样啊

yejet 发表于 2006-5-31 20:07

回复:(p123456q)[求助]用matlab怎么求解振动方程啊...

本帖最后由 VibInfo 于 2016-4-25 15:59 编辑

能否把例子给一下?

p123456q 发表于 2006-6-1 15:27

回复:(yejet)回复:(p123456q)[求助]用matlab怎么...

本帖最后由 VibInfo 于 2016-4-25 15:59 编辑

  谢谢!!

  这是一篇发表在昆明理工大学学报上的文章中的例子:

  J= 单位:Kg*m2

  K=单位:1.0e6 N*m/rad

  结果:

  F=

  我算得结果是:

  J=

  J =

  30.1000 0 0 0 0

  0 355.3000 0 0 0

  0 0 211.0000 0 0

  0 0 0 398.3000 0

  0 0 0 0 389.3000

  >> K=1E6*

  K =

  39950000 -39950000 0 0 0

  -39950000 53430000 -13480000 0 0

  0 -13480000 22600000 -4560000 -4560000

  0 0 -4560000 4560000 0

  0 0 -4560000 0 4560000

  >> =eig(K,J)

  V =

  0.0269 -0.0006 0.0380 0.0239 -0.1746

  0.0269 -0.0006 0.0374 0.0215 0.0152

  0.0269 -0.0004 0.0162 -0.0613 -0.0007

  0.0269 0.0356 -0.0220 0.0057 0.0000

  0.0269 -0.0356 -0.0233 0.0059 0.0000

  D =

  1.0e+006 *

  -0.0000 0 0 0 0

  0 0.0116 0 0 0

  0 0 0.0198 0 0

  0 0 0 0.1336 0

  0 0 0 0 1.4429

  谢谢指点啊!!!

  p.s.齿条与齿轮传动,怎么求齿条的传动惯量,或者怎么把齿条的转动惯量转化到齿轮上啊?谢谢!!!

p123456q 发表于 2006-6-3 21:50

好心人,高人,来回答一下吧,我自己计算的那个结果,D是不是应该开平方啊?
谢谢!

[ 本帖最后由 xinyuxf 于 2007-6-20 19:34 编辑 ]

dushudushu 发表于 2006-6-4 20:34

本帖最后由 VibInfo 于 2016-4-25 16:00 编辑

  你算的k好象不对吧,k(3,3),k(4,4)好象都不对呀,应该是K =

  39.9500 -39.9500 0 0 0

  -39.9500 53.4300 -13.4800 0 0

  0 -13.4800 18.0400 -4.5600 0

  0 0 -4.5600 9.1200 -4.5600

  0 0 0 -4.5600 4.5600

  你再看看对不对

dushudushu 发表于 2006-6-4 20:49

本帖最后由 VibInfo 于 2016-4-25 16:00 编辑

  

J =


  

30.1000 0 0 0 0
0 355.3000 0 0 0
0 0 211.0000 0 0
0 0 0 398.3000 0
0 0 0 0 398.3000
=eig(K,J)
x =


  

0.0268 -0.0316 0.0159 0.0276 -0.1746
0.0268 -0.0314 0.0155 0.0252 0.0152
0.0268 -0.0237 0.0020 -0.0588 -0.0007
0.0268 0.0086 -0.0408 0.0074 0.0000
0.0268 0.0344 0.0247 -0.0008 -0.0000


  


d =


  

1.0e+006 *


  

-0.0000 0 0 0 0
0 0.0086 0 0 0
0 0 0.0304 0 0
0 0 0 0.1156 0
0 0 0 0 1.4429


  

结果是不是这样的?

p123456q 发表于 2006-6-5 11:42

回复:(dushudushu)J = 30.1000 0 ...

本帖最后由 VibInfo 于 2016-4-25 16:00 编辑

  谢谢!!
这个例子的简图是分支式的,文章中也是这个形式的。所以K没有错。
他给出的答案是1至4阶频率为17.04 22.38 58.18 191.30。(Hz)

不知道错在哪里了?





p123456q 发表于 2006-6-5 13:36

还有一个问题,
=eig(K,J)求出的v,d 满足{v}={v}d,不满足振动方程{v}=d{v},这样求出的v,d就不是所要求的特征值和特征方程。
谁能解释一下?谢谢!

[ 本帖最后由 xinyuxf 于 2007-6-20 19:34 编辑 ]

yejet 发表于 2006-6-7 20:17

回复:(p123456q)还有一个问题,[v,d]=eig(K,J)求出...

本帖最后由 VibInfo 于 2016-4-25 16:00 编辑

  

以下是引用p123456q在2006-6-5 13:36:00的发言:


  

还有一个问题,
=eig(K,J)
求出的v,d 满足{v}={v}d,
不满足振动方程{v}=d{v},这样求出的v,d就不是所要求的特征值和特征方程。




谁能解释一下?谢谢!!!!!!!!!!!!!!!!!!!!!!!!1

这两个方程是一样的?

  [此贴子已经被作者于2006-6-7 20:17:42编辑过]

p123456q 发表于 2006-6-8 17:50

回复:(yejet)回复:(p123456q)还有一个问题,[v,...

本帖最后由 VibInfo 于 2016-4-25 16:00 编辑

d是个矩阵,左乘与右乘结果是不一样的啊

feifeifool 发表于 2006-6-9 09:47

回复:(p123456q)还有一个问题,[v,d]=eig(K,J)求出...

本帖最后由 VibInfo 于 2016-4-25 16:01 编辑

  需要把D开方,不过你这个系统应该是半正定系统,因为第一阶近似为0,尽管小于零。

  下面是程序:

  clc;clear;

  % J= %单位:Kg*m2

  % K=%单位:1.0e6 N*m/rad

  J=;

  K=1E6*;

  =eig(K,J);

  duijiaoyuansu=sort(diag(D));

  af=duijiaoyuansu(find(duijiaoyuansu>=eps));

  af=sqrt(af);

  frequency=af/2/pi;

  运行结果:

  frequency =

  17.1263

  22.4193

  58.1738

  191.1761

  这个结果应该是对的。

feifeifool 发表于 2006-6-9 09:51

本帖最后由 VibInfo 于 2016-4-25 16:01 编辑

  

你的模型是有刚体位移的,不知道什么模型?
用这个命令也行,因为质量阵不可能是奇异阵。
frequency=sqrt(sort(eig(inv(J)*K)))/2/pi;


  [此贴子已经被作者于2006-6-9 10:19:21编辑过]

p123456q 发表于 2006-6-11 16:51

回复:(feifeifool)回复:(p123456q)还有一个问题...

本帖最后由 VibInfo 于 2016-4-25 16:01 编辑

  以下是引用feifeifool在2006-6-9 9:47:16的发言:

  需要把D开方,不过你这个系统应该是半正定系统,因为第一阶近似为0,尽管小于零。

  下面是程序:

  clc;clear;

  % J= %单位:Kg*m2

  % K=%单位:1.0e6 N*m/rad

  J=;

  K=1E6*;

  =eig(K,J);

  duijiaoyuansu=sort(diag(D));

  af=duijiaoyuansu(find(duijiaoyuansu>=eps));

  af=sqrt(af);

  frequency=af/2/pi;

  运行结果:

  frequency =

  17.1263

  22.4193

  58.1738

  191.1761

  这个结果应该是对的。

  我算的结果忘记了除以2pi。谢谢!!
页: [1] 2
查看完整版本: [求助]用matlab怎么求解振动方程啊