資源簡介
運(yùn)用MATLAB三角級數(shù)法生成模擬的時(shí)域路面,并與國家標(biāo)準(zhǔn)的八級路面在頻域里進(jìn)行驗(yàn)證。
代碼片段和文件信息
function?standard_gai
%?三角級數(shù)法求路面時(shí)域模型
clear?all;clc;
%??輸入仿真參數(shù)?
in=file_name;?
[roadtypeuaflfudftltudt]=file_parameters(in);
%??確定仿真需要的其它主要參數(shù)?
[ftunfreqnt]=freq_parameters(flfudftltudtua);?
%??8等級路面
Gqf=roadpsd_f(roadtypefu);?
%??生成隨機(jī)數(shù)列
theta=suiji(nfreq);?
%??路面時(shí)域模型
qt=shiyu(dfGqfthetafnfreqtnt);?
%?將三角級數(shù)法所得路面功率譜密度與標(biāo)準(zhǔn)路面進(jìn)行對比
figure
Fs=200;
NFFT=500;
ww=hamming(NFFT);
%三角級數(shù)法所得路面的功率譜密度
[Gfff]=pwelch(qtww[]NFFTFs);
loglog(ffGf‘k:‘fGqf‘k-‘)
xlabel(‘時(shí)間頻率?f/Hz‘);?
ylabel(‘路面功率譜密度Gq(f)‘);?
legend(‘模擬值‘‘理論值‘)
legend?boxoff
box?off
%?路面均方根值的對比
%?理論值的均方根值
i=1:nfreq;?
dGqf(i)=Gqf(i).*df;
rms1=sum(dGqf);?
evp1=sqrt(rms1);
%?模擬值的均方根值
j=1:round(NFFT/2);
dff=2*max(ff)/NFFT;
dGf(j)=Gf(j).*dff;
rms2=sum(dGf);?
evp2=sqrt(rms2);
function?in=file_name?
%?功能:獲得原始數(shù)據(jù)文件的名稱并建立相應(yīng)的通道號?
%?輸出參數(shù):?
%?in??輸入文件通道號?
clear?
infile=input(?‘請輸入原始數(shù)據(jù)文件的名稱(包括后綴):?‘‘s‘);?
in=fopen(infile‘r‘);?
if?in<0?
????disp(‘原始數(shù)據(jù)文件不存在,無法打開‘);?
end?
function?[roadtypeuaflfudftltudt]=file_parameters(unit)?
%?功能:從文件輸入所需參數(shù)?
%?輸入?yún)?shù):?
%?unit?????輸入文件通道號?
%?輸出參數(shù):?
%?roadtype?路面類型?
%?ua???????車速km/h?
%?fl???????時(shí)間頻率的下限Hz?
%?fu???????時(shí)間頻率的上限Hz?
%?df???????時(shí)間頻率的增量Hz?
%?tl???????時(shí)間的下限s?
%?tu???????時(shí)間的上限s
%?dt???????時(shí)間的增量s?
%?在此注意:dt<=1/(2*fu)??nt>=2*fu*T
roadtype=fscanf(unit‘%s‘1);?
ua=fscanf(unit‘%f‘1);?
fl=fscanf(unit‘%f‘1);?
fu=fscanf(unit‘%f‘1);?
df=fscanf(unit‘%f‘1);?
tl=fscanf(unit‘%f‘1);?
tu=fscanf(unit‘%f‘1);?
dt=fscanf(unit‘%f‘1);?
function?[ftunfreqnt]=freq_parameters(flfudftltudtua)?
%??
評論
共有 條評論