声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2312|回复: 5

[综合讨论] 关于用matlab求解随机振动传递函数无穷限积分编程

[复制链接]
发表于 2007-12-12 23:05 | 显示全部楼层 |阅读模式

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

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

x
最近在学习随机振动的知识,在编写一个关于频域分析均方响应的程序,对于传递函数Hn(w)小于w5次时,可以利用常用的积分公式求传递函数的无穷限

积分,但是当w大于6次后,不太了解积分公式,各位高手有没有编过类似的求传递函数无穷限积分的程序?我自己有编了quad,quadl数值积分w小于5的一小程序,

但是结果与利用常用积分公式求解出来结果相差很大,各位前辈有涉及过这方面的知识没?有没有编写这个直接利用数值积分求无穷限积分的程序?敬请指教,谢谢

这是传递函数

这是传递函数

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2007-12-13 09:09 | 显示全部楼层
"我自己有编了quad"

matlab里有自己带的啊,那个不好用吗

[ 本帖最后由 sigma665 于 2007-12-13 10:02 编辑 ]
 楼主| 发表于 2007-12-13 09:38 | 显示全部楼层
很不好用,也有可能是我自设的积分上下限不太正确,你一般把积分的上下限定为多少?

-1e15~1e25?精度总是设置得不太对,与利用积分公式的结果对比相差很大。

[ 本帖最后由 nevers 于 2007-12-13 09:40 编辑 ]
发表于 2007-12-13 10:03 | 显示全部楼层
 楼主| 发表于 2007-12-13 12:22 | 显示全部楼层
znc=0.15;
zn=0.05;
pm=1;
pk=0.2;
w1=2;
pw=0.1
   
% 频域H1(w)传递函数系数
syms w
B10=-w1^2*(pw^2+pm*pk+pk);
B11=-2*w1*(zn*pw+znc*pm+2*znc);
B12=-1;
B13=0;

A0=w1.^4.*((1+pk).*(pw.^2+pm.*pk)-pk.^2.*pm);
A1=2.*w1.^3.*(1+pk).*(zn.*pw+znc.*pm)+2.*w1.^3.*(zn+znc).*(pw.^2+pm.*pk)-4.*pk.*pm.*znc.*w1.^3;
A2=w1^2*((pw^2+pm*pk)+1+pk+4*(zn+znc)*(zn*pw+znc*pm)-4*znc^2*pm);
A3=2.*w1.*(zn.*pw+znc.*pm+zn+znc);
A4=1;

B1=B10+B11.*(w*i)+B12.*(w.*i).^2;
A=A0+A1.*(i.*w)+A2.*(i.*w)^2+A3.*(i.*w)^3+A4.*(i.*w).^4;
hw1=B1./A;
hw1abs=abs(hw1);
hw1abs2=(hw1abs).^2;
r1=inline(hw1abs2);
qhw01=quadl(r1,-1e15,+1e15,1e-6);   %采用自适应LOBATTO方法计算无穷限积分,精值计算方法

分别计算了积分区间由-1e10~1e25的结果,但是结果相差较远,传递函数不收敛导致??

[ 本帖最后由 nevers 于 2007-12-13 12:24 编辑 ]
发表于 2012-4-1 12:23 | 显示全部楼层
不懂。。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 02:33 , Processed in 0.070534 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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