生成时速为200公里的5秒里程曲线,里程约为277.778米,其采用matlab按频域法处理轨道谱,将其还原为时域特性曲线。相关matlab程序如下:
v=294.9120/3.6;
L=409.6; %保证最至少可以采集5秒的数据
l=0.1;
N=L/l; %采样点数
n1=0.01; %空间频率范围n1--nu
nu=3;
no=1/L; %空间频率间隔
Xk=[];
Xm=[];
f=linspace(0.01,3,N/2+1);
a=54.0439;b=0.0357;c=8254.682;d=365.8602;e=5.5139;k=-0.0004;
GxC=(a*f.^2+b)./(c*f.^6+d*f.^4+e*f.^2+k);
k=0:N/2;
fik=randn(1,N)*2*pi; %产生0到2pi的均匀分布的随机序列
pg=GxC(1:N/2+1);
Xk=sqrt((N/2+1)/(2*l)*pg).*exp(j*fik(1:N/2+1)); %调用函数GxC(n)
Xk(1)=sqrt((N/2+1)/(2*l)*pg(1)); Xk(N/2+1)=sqrt((N/2+1)/(2*l)*pg(N/2+1));
Xk=[Xk(1:2049) conj(Xk(2048:-1:2))];
Xm=ifft(Xk); %逆傅立叶变换后得到复数形式随机序列
x=linspace(0,409.6,length(Xm));
t=x/v;
subplot(211);
plot(t,real(Xm));
axis([0,5,-4.5,4.5]) %取实部
xlabel('时间/s');
ylabel('轨道的轨距不平顺/mm');
https://blog.sciencenet.cn/blog-357150-279394.html
上一篇:
通过功率谱密度函数还原出时域函数(公路谱)下一篇:
如何将EXCEL中日期变量转化为MATLAB中的日期变量