我试图生成一条随机道路,用作季度汽车模型的输入。
我使用了本文http://link.springer.com/article/10.1007%2Fs12544-013-0127-8/fulltext.html中描述的过程。
在图2中,绘制了生成的道路,A-B类别的最大高度为15 mm,D-E的最大高度为100 mm。我的问题是,我从他们报道的那些中获得了更高的振幅。
我不确定自己做错了什么,任何指导都会受到赞赏。
道路长度= 250米
空间频带= 0.004 - > 4
我使用了公式(8),文章中的简化版本(9)都给了我相同的结果。
我的matlab代码:
clear all;close all;
% spatial frequency (n0) cycles per meter
Omega0 = 0.1;
% psd ISO (used for formula 8)
Gd_0 = 32 * (10^-6);
% waveviness
w = 2;
% road length
L = 250;
%delta n
N = 1000;
Omega_L = 0.004;
Omega_U = 4;
delta_n = 1/L; % delta_n = (Omega_U - Omega_L)/(N-1);
% spatial frequency band
Omega = Omega_L:delta_n:Omega_U;
%PSD of road
Gd = Gd_0.*(Omega./Omega0).^(-w);
% calculate amplitude using formula(8) in the article
%Amp = sqrt(2*Gd*delta_n);
%calculate amplitude using simplified formula(9) in the article
k = 3;
Amp = sqrt(delta_n) * (2^k) * (10^-3) * (Omega0./Omega);
%random phases
Psi = 2*pi*rand(size(Omega));
% x abicsa from 0 to L
x = 0:0.25:250;
% road sinal
h= zeros(size(x));
for i=1:length(x)
h(i) = sum( Amp.*cos(2*pi*Omega*x(i) + Psi) );
end
plot(x, h*1000 );
xlabel('Distance m');
ylabel('Elevation (mm)');
grid on
答案 0 :(得分:1)
在本文中: Josef Melcer“沿道路结构的车辆运动的数值模拟”,2012年(只是google it)
仅给出了道路高度的最终公式(公式4),并且与Agostinacchio的论文中的公式不同。差异是余弦项中的2 * pi。删除2 * pi项可以产生更大的“更好”振幅(在“Agostinacchio论文”中,“脚本图更适合于情节”的意义更好)。但我不确定这是否是物理和数学上正确的。
你有其他解决方案吗?
答案 1 :(得分:1)
我设法联系文章的作者来检查我的代码,他说这是正确的。似乎'k'的值在文章中是错误的,k = 6实际上是k = 5,k = 5是k = 4等等,这就是振幅高于预期的原因。 当然,公式与文章略有不同,有些使用sin()而不是cos()或角度空间频率(已经包含2 * pi项)而不是空间频率。