谐波叠加法模拟路面谱
最近一直在看如何用谐波叠加发法模拟路面谱,然后自己尝试用matlab做了一下,发现结果总是有问题,希望大家探讨一下,谢谢。附件中包含相关1篇相关论文和自己用matlab模拟的过程(包括程序代码)。本来准备多发几篇相关论文上来的,但是文件太大了,后来就选了一篇。 图一为空间路面谱。图二为路面谱PSD。 完整代码如下:
%======================================================%
x=(0:0.1:409.6);%离散路面点
n0=0.1;
Gq_n0=64e-6;
delt_n=0.0024;
thta=2*pi*(rand(1,3/0.0024));
q=0;
for j=1:3/0.0024
n= delt_n *j;
Gq_n=Gq_n0*n0^2/n^2;
Ai=sqrt(2*Gq_n*delt_n);
q= q + Ai*sin( 2*pi*n*x+thta(j) );
end
%plot(x,q); %可画出空间路面谱图
%hold on;
%========================================================%
%求功率谱密度
Fs=10;
Hs=spectrum.welch;
hpsd=psd(Hs,q,'Fs',Fs);
Pw = hpsd.Data;
Fw = hpsd.Frequencies;
h1=loglog(Fw,Pw,'color','blue');
hold on;
%====================================================%
Gq_n0=32e-6;
n=(0.01:0.1:10);
Gq_n=Gq_n0*n0^2./n.^2;
loglog(n,Gq_n,'color','red');
hold on;
Gq_n0=64e-6;
n=(0.01:0.1:10);
Gq_n=Gq_n0*n0^2./n.^2;
loglog(n,Gq_n,'color','green');
hold on;
Gq_n0=128e-6;
n=(0.01:0.01:10);
Gq_n=Gq_n0*n0^2./n.^2;
loglog(n,Gq_n,'color','red');
%=====================================================%
从结果上可以看出,所模拟的路面波在高频段和理论上的是一致的,而在低频段有很大误差。不知是在求功率谱时有问题,还是在其他过程中不对,希望大家探讨一下。谢谢。 我以前也做过,我的理解误差的原因主要在谐波叠加法和matlab的一些函数的计算上面(尤其是PSD函数),不过这样的路面谱用来做仿真可以了 另外,对以下求PSD时的函数不是很清楚:
hpsd=psd(Hs,q,'Fs',Fs);
Pw = hpsd.Data;
Fw = hpsd.Frequencies;
h1=loglog(Fw,Pw,'color','blue');
为什么Pw和Fw的维数是129x1,有办法设置这两个参数吗?
直接用psd(Hs,q,'Fs',Fs);也能画出图形来,但结果与psd(Fw,Pw)不同,还不知道具体原因; 看看
我也在弄 多谢,很有用 有用的东东,谢谢哈! 谢谢了! 有用的东东,谢谢哈! 谢谢分享 学习学习
页:
[1]