声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5153|回复: 19

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

[复制链接]
发表于 2006-5-28 11:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

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

回复
分享到:

使用道具 举报

发表于 2006-5-28 22:41 | 显示全部楼层
本帖最后由 VibInfo 于 2016-4-25 15:58 编辑

[x,d]=eig(k,j)
x,d分别为振型和频率。
 楼主| 发表于 2006-5-29 14:49 | 显示全部楼层

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

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

谢谢啊
我用这个函数算过别人论文上的一个例子,可是结果不一样啊[em06][em11]
发表于 2006-5-31 20:07 | 显示全部楼层

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

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

能否把例子给一下?
 楼主| 发表于 2006-6-1 15:27 | 显示全部楼层

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

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

  谢谢!!

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

  J=[30.1 355.3 211.0 398.3 398.3] 单位:Kg*m2

  K=[39.95 13.48 4.56 4.56]单位:1.0e6 N*m/rad

  结果:

  F=[17.04 22.38 58.18 191.30]

  我算得结果是:

  J=[30.1 0 0 0 0;0 355.3 0 0 0;0 0 211.0 0 0;0 0 0 398.3 0;0 0 0 0 389.3]

  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*[39.95 -39.95 0 0 0;-39.95 53.43 -13.48 0 0;0 -13.48 22.6 -4.56 -4.56;0 0 -4.56 4.56 0;0 0 -4.56 0 4.56]

  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

  >> [V,D]=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.齿条与齿轮传动,怎么求齿条的传动惯量,或者怎么把齿条的转动惯量转化到齿轮上啊?谢谢!!!
 楼主| 发表于 2006-6-3 21:50 | 显示全部楼层
好心人,高人,来回答一下吧,我自己计算的那个结果,D是不是应该开平方啊?
谢谢!

[ 本帖最后由 xinyuxf 于 2007-6-20 19:34 编辑 ]
发表于 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

  你再看看对不对
发表于 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
[x,d]=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


  

结果是不是这样的?
 楼主| 发表于 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)

不知道错在哪里了?




[em06]
 楼主| 发表于 2006-6-5 13:36 | 显示全部楼层
还有一个问题,
[v,d]=eig(K,J)求出的v,d 满足[K]{v}=[A]{v}d,不满足振动方程[K]{v}=d[A]{v},这样求出的v,d就不是所要求的特征值和特征方程。
谁能解释一下?谢谢!

[ 本帖最后由 xinyuxf 于 2007-6-20 19:34 编辑 ]
发表于 2006-6-7 20:17 | 显示全部楼层

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

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

  

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


  

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


[em06][em06][em06][em06]

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

这两个方程是一样的?

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

 楼主| 发表于 2006-6-8 17:50 | 显示全部楼层

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

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

d是个矩阵,左乘与右乘结果是不一样的啊
发表于 2006-6-9 09:47 | 显示全部楼层

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

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

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

  下面是程序:

  clc;clear;

  % J=[30.1 355.3 211.0 398.3 398.3] %单位:Kg*m2

  % K=[39.95 13.48 4.56 4.56]%单位:1.0e6 N*m/rad

  J=[30.1 0 0 0 0;0 355.3 0 0 0;0 0 211.0 0 0;0 0 0 398.3 0;0 0 0 0 389.3];

  K=1E6*[39.95 -39.95 0 0 0;-39.95 53.43 -13.48 0 0;0 -13.48 22.6 -4.56 -4.56;0 0 -4.56 4.56 0;0 0 -4.56 0 4.56];

  [V,D]=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

  这个结果应该是对的。
发表于 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编辑过]

 楼主| 发表于 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=[30.1 355.3 211.0 398.3 398.3] %单位:Kg*m2

  % K=[39.95 13.48 4.56 4.56]%单位:1.0e6 N*m/rad

  J=[30.1 0 0 0 0;0 355.3 0 0 0;0 0 211.0 0 0;0 0 0 398.3 0;0 0 0 0 389.3];

  K=1E6*[39.95 -39.95 0 0 0;-39.95 53.43 -13.48 0 0;0 -13.48 22.6 -4.56 -4.56;0 0 -4.56 4.56 0;0 0 -4.56 0 4.56];

  [V,D]=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。谢谢!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 07:32 , Processed in 0.062939 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表