One Response to “谐波叠加法模拟路面谱”
游客 2008-10-20 19:48:15??Says:
完整代码如下:%======================================================%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);%=====================================================%从结果上可以看出,所模拟的路面波在高频段和理论上的是一致的,而在低频段有很大误差。不知是在求功率谱时有问题,还是在其他过程中不对,希望大家探讨一下。谢谢。
游客 2010-4-26 23:10:31??Says:
我以前也做过,我的理解误差的原因主要在谐波叠加法和matlab的一些函数的计算上面(尤其是PSD函数),不过这样的路面谱用来做仿真可以了
游客 2009-1-9 2:19:56??Says:
另外,对以下求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)不同,还不知道具体原因;