声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1544|回复: 3

[结构振动] 【请教】频响函数估计的结果与理论计算结果不一致

[复制链接]
发表于 2011-5-6 23:02 | 显示全部楼层 |阅读模式

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

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

x
我用Matlab仿真(lsim函数)得到了一组位移响应数据,再用Gxf/Gff得到了系统的频响函数的估计结果,可是与由导纳函数得到的理论结果的虚部正负号刚好相反。
查了几遍也不知道是哪里错了,哪位高人帮忙指点一下!!谢谢!!
Hw.GIF
图中由上至下分别为频响函数的模值、实部、虚部,左侧为估计值,右侧为理论值。
回复
分享到:

使用道具 举报

发表于 2011-5-10 14:24 | 显示全部楼层
我现在也遇到这种情况,用这样的实部和虚部得到的相位差正好反过来(一个是从0开始计,另一个是从180开始计),所以我感觉这是因为频响函数计算时相位的处理方式不同造成的,望高人解答。。。
 楼主| 发表于 2011-5-16 22:33 | 显示全部楼层
本帖最后由 menmen 于 2011-5-16 22:39 编辑

下面是仿真数据构造程序,有什么地方错了吗?为什么用构造的位移响应数据,进行频响函数估计,估计公式为H(w)=Gxf(w)/Gff(w),结果会像上面那样,虚部方向了呢?请高人指点。。。
%系统参数
M1 = 3;  M2 = 1; M3 = 2;
K1 = 600; K2 = 600; K3 = 800; K4 = 1000; K5 = 200; K6 = 800;
C1 = 5; C2 = 3; C3 = 4; C4 = 1; C5 = 2; C6 = 1;
%系统矩阵
zeroMatric = zeros(3,3);
Mmatric = [M1 0 0;0 M2 0;0 0 M3];
Kmatric = [K1+K2+K5 -K2 -K5;-K2 K2+K3+K6 -K3;-K5 -K3 K3+K4+K5];
Cmatric = [C1+C2+C5 -C2 -C5;-C2 C2+C3+C6 -C3;-C5 -C3 C3+C4+C5];
%状态空间模型:参数矩阵
A = [zeroMatric eye(3,3);-Mmatric\Kmatric -Mmatric\Cmatric];
B = [zeroMatric;inv(Mmatric)];
C = [eye(6,6)];
D = [zeros(6,3)];
v0 = [0;0;0;0;0;0];%初始状态
%%%%%%%%%%%%系统输入力%%%%%%%%%%%%%%%%%%%
fs = 2000;%Hz
T = 101;%s %数据时长
t = 0:1/fs:T-1/fs;%s %采用时间
x1Input = [randn(size(t))]';%输入力
x2Input = [randn(size(t))]';
x3Input = [randn(size(t))]';
zeroInput = [zeros(size(t))]';%输入力为零
F = [x1Input ,zeroInput,x3Input];%输入力矩阵
[y,v] = lsim(A,B,C,D,F,t);
 楼主| 发表于 2011-5-26 21:36 | 显示全部楼层
问题已经解决了。是计算互谱时出现了错误,正确的是:H(f)=Gfx/Gff, Gfx=conj(F(f))*X(f).
希望大家不要犯和我一样的错误!

评分

2

查看全部评分

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

本版积分规则

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

GMT+8, 2024-12-27 11:36 , Processed in 0.079790 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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