声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2363|回复: 11

[结构振动] 请问关于特征系统实现算法

[复制链接]
发表于 2006-4-21 22:33 | 显示全部楼层 |阅读模式

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

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

x
我在模态分析使用特征系统实现算法时,得到的特征
值是实际的2倍,我百思不得其解,这是怎么回事?
请高手不惜指教

[ 本帖最后由 xinyuxf 于 2007-5-16 09:16 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-4-22 08:50 | 显示全部楼层

回复:(wwhbluesun)请问关于特征系统实现算法

请把问题说清楚,比如你用的什么软件算的,模型什么样的等等
发表于 2006-4-22 14:53 | 显示全部楼层
本帖最后由 VibInfo 于 2016-4-22 15:03 编辑

  

算法是你自己编的吗?
我自己编过环境激励下的特征系统实现算法。平时精度很高,抗噪能力极其差。
通常情况下,频率的精度很高,大概会在百分之零点几。阻尼精度20%以内
但20%噪声情况下,频率也许能保持5%以内,但阻尼就很离谱了。
 楼主| 发表于 2006-4-24 21:40 | 显示全部楼层

频率除以2后的精度很好,振型未看

是的

我自己编用Matlab,一五自由度系统
这有关系吗?请高手不惜指教
 楼主| 发表于 2006-4-24 21:54 | 显示全部楼层

回复:(aspen)回复:(wwhbluesun)请问关于特征系统...

本帖最后由 VibInfo 于 2016-4-22 15:03 编辑

  希望你能帮帮我

  function [Lam,Psi] = ERA(h,Ni,pr,pc,Fs)

  % h 脉冲响应函数(由连续系统仿真得到) , Ni 激励点数

  % h 排列方式:

  % |1,...,No|1,...,No| ... |1,...,No|

  % 1, 2, ... Ni

  %

  % pr 行数(\alpha); pc列数(\beta); Fs 采样频率

  [row, col] = size(h);

  No = col/Ni;

  H0 = zeros(No*pr,Ni*pc); H1 = H0;

  for kc = 1 : pc

  for kr = 1:pr

  H0( (kr-1)*No+1 : kr*No ,(kc-1)*Ni+1 : kc*Ni ) = reshape( h(kr+kc-1,:),No,Ni );

  H1( (kr-1)*No+1 : kr*No ,(kc-1)*Ni+1 : kc*Ni ) = reshape( h(kr+kc+1,:),No,Ni );

  end

  end

  [U,S,V] = svd(H0,0);

  dS = diag(S); r = find(dS > 1e-10); dS = dS(r);

  %[ro,co] = size(S); ldS = length(dS);

  %Ss = [diag(dS.^(-0.5)), zeros(ldS,co-ldS); zeros(ro-ldS,co)];

  Ss = diag(dS.^(-0.5));

  U = U(:,r); V = V(:,r);

  A1 = Ss * U' * H1 * V * Ss;

  [V,D] = eig(A1,'nobalance');

  D = diag(D);

  Lam = log(D) * Fs ; % /2 ?????
发表于 2006-4-24 22:26 | 显示全部楼层
本帖最后由 VibInfo 于 2016-4-22 15:04 编辑

  你的代码是前边错了,可能是H0,H1 求错了。

  我把下边的代码加入我的程序:

  [U,S,V] = svd(H0,0);

  dS = diag(S); r = find(dS > 1e-10); dS = dS(r);

  %[ro,co] = size(S); ldS = length(dS);

  %Ss = [diag(dS.^(-0.5)), zeros(ldS,co-ldS); zeros(ro-ldS,co)];

  Ss = diag(dS.^(-0.5));

  U = U(:,r); V = V(:,r);

  A1 = Ss * U' * H1 * V * Ss;

  [V,D] = eig(A1,'nobalance');

  D = diag(D);

  Lam = log(D) *Fs

  w=abs(Lam)/2/pi(这一行是本人加的)

  得到的角频率值没错,不存在2倍关系

  证明你的错误发生在前边
 楼主| 发表于 2006-4-25 11:47 | 显示全部楼层

回复:(lxinghan)你的代码是前边错了,可能是H0,...

本帖最后由 VibInfo 于 2016-4-22 15:04 编辑

  我写的H0,H1是按书本上的,我知道Matlab有
一个函数就是生成Hankle矩阵,我倒没有仔细
研究,我再试试吧!
发表于 2007-5-15 21:15 | 显示全部楼层

ERA我的一点体会

现成的hankel 矩阵用在元素为数上还容易,我也好久没能直接用成。
最后不得不用高维数组构造的,不过效果不好。
学姐,学长哪天悟明白啦,一定指导下小弟啊。
发表于 2007-5-15 21:20 | 显示全部楼层

ERA中出现了许多虚假模态

我自编的ERA中出现了许多虚假模态,搞不懂怎么剔除啊。学长们救小弟 :handshake
发表于 2007-6-3 16:19 | 显示全部楼层
首先你要确定系统矩阵的阶次是多少?那样就不会有虚假模态了
发表于 2009-6-6 10:16 | 显示全部楼层
出现虚假模态很可能是系统定阶过大造成的,可以用稳定图确定系统阶次
发表于 2009-6-6 22:30 | 显示全部楼层
对于有阻尼的N个自由度系统求特征值会得到2N个特征值,他们是互为共轭的特征值,实际得到得特征值是除去负的特征值。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 20:40 , Processed in 0.052108 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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