声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2275|回复: 6

[非线性振动] 求解固有频率问题

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

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

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

x
请教:
        我在运用matlab求解系统自由振动固有频率时,遇到以下问题,不知是何原因,敬请高手指点:
        对于微分方程:Jx''+Kx=0
        用matlab命令eig(inv(J)*K)求得振型c1,c2,c3...和固有频率w1,w2,w3,...;
        理论上验算e1=det(K-J*(w1)^2),e2=det(K-J*(w2)^2),...,结果应该是e1=e2=e3=...=0
        但是我返回验算后,结果是e1,e2,e3,..都不是零,求解错在什么地方呢?敬请高手指点,谢谢!!
回复
分享到:

使用道具 举报

发表于 2006-11-9 10:07 | 显示全部楼层
请给出具体的算例,
让大家一起看看,谢谢。

猜测:

eig(inv(J)*K)求得振型c1,c2,c3...和特征值w1,w2,w3,...;

eig求出来的特征值是omiga^2,(omiga位固有频率)

试试det(K-J*(w1))看看。

探讨。

评分

1

查看全部评分

发表于 2007-3-3 15:17 | 显示全部楼层

结果是正确的

不是零就对了.
随着你的矩阵K-J*(w1)^2)阶数的增加,该行列式值变化非常剧烈.穿过零点只是在小数点很多位以后.
比如你用EIG命令取得的固有频率为小数点后三位,继续增加到后8-9位,经过精确的逼近以后才有可能将行列式值逼近到1以下.这样就逐渐趋近于零了

评分

1

查看全部评分

发表于 2007-3-7 10:56 | 显示全部楼层
这个指示计算精度的问题,除非你计算出来的特征值和特征向量都是精度数,如整数之类的。!

评分

1

查看全部评分

发表于 2007-3-16 01:28 | 显示全部楼层
请教21172485  和assist:

这也许是一个类似的问题:

我刚算了一个悬臂梁的FRF(前10阶),无阻尼的FRF和有部分/全部阻尼材料覆盖的的FRF对比。其中的关键就是求出系统的固有频率(复数值)和振型 模态。在求系统的固有频率(n个,先求belta_n*L, 在用 belta_n=omega_n*sqrt(density*Area/EI))时,其实就是求函数的根(n个), 不过这个函数是用行列式表示而已。 我发现一个问题,我是用“把假设的根带入行列式",如果他是一个根的话,又足够精确(到小数点后12位), 行列式的值应该为0。对前1~2阶求解,确实如此, 但对高阶,我明明知道这个解就是对的,也很精确(到小数点后12位)(对比书上的结果),把他带入行列式,结果不是0!而是很大的值(complex number)!!而且这个误差基本来源与虚部。如果是无阻尼处理的梁,系统的固有频率值应该为实数,虚部应该为0,计算出来的行列式值是复数 (我设的模态振型表达为exp(belta*t),但实部为0而虚部很大(对高阶)!,这是为什么那?也是精度问题吗?
发表于 2007-3-16 20:28 | 显示全部楼层
对,还是精度问题.但是既然你用的是复模态,那么还是把实部分离出去的好,因为固有频率是特征值的虚部
这样只要虚部构成的行列式值为零就可以,不用同时算实部和虚部
我算过的经验是,固有频率每提高一阶,小数点至少要后移动2-3位
所以12位是不够的,但是最后肯定会算到非常接近零

[ 本帖最后由 21172485 于 2007-3-16 20:30 编辑 ]
发表于 2007-3-21 12:37 | 显示全部楼层
的确,eig(inv(J)*K)求出来的特征值是w^2
固你在验算的时候,代入的应该是w1,w2,w3,而不是它们的平方

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-5 16:48 , Processed in 0.087762 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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