資源簡(jiǎn)介
ARMA模型預(yù)測(cè)及其對(duì)參數(shù)的識(shí)別完整有效程序程序??梢砸淮芜M(jìn)行參數(shù)識(shí)別
代碼片段和文件信息
clear
clc
format?long
fni=?input(‘ARMA輸入文件名‘);
fid=?fopen(fni‘r‘);
mn=?fscanf(fid‘%d‘1);?%模態(tài)階數(shù)
%定義輸入實(shí)測(cè)數(shù)據(jù)類型
ig=?fscanf(fid‘%d‘1);%ig=1時(shí)域數(shù)據(jù)如沖擊響應(yīng)、自耦振動(dòng)、互相關(guān)函數(shù)、隨機(jī)減量法處理結(jié)果
???????????????????????%ig=2頻域數(shù)據(jù)如頻響函數(shù)實(shí)部虛部數(shù)據(jù)
f=?fscanf(fid‘%f‘1);?%ig=1時(shí)f為采樣頻率;ig=2時(shí)f為采樣間df
fno=?fscanf(fid‘%s‘1);?%輸出數(shù)據(jù)文件名
b=?fscanf(fid‘%f‘[iginf]);%實(shí)測(cè)時(shí)域或頻域數(shù)據(jù)
status=?fclose(fid);
%建立ARMA模型的階數(shù)(為模態(tài)階數(shù)的2倍)
nm=?2*mn;
%組織識(shí)別計(jì)算所用的時(shí)域數(shù)據(jù)及參數(shù)
if?ig==1?%實(shí)測(cè)時(shí)域數(shù)據(jù)
????%取采樣頻率
????sf=?f;
????%取時(shí)域數(shù)據(jù)長(zhǎng)度的1/2
????n=?fix(length(b)/2);
????%將輸入時(shí)域數(shù)據(jù)賦值給列向量h
????h=?b(1?1:2*n)‘;
????%計(jì)算時(shí)間間隔
????df=?1/sf;
????%建立離散時(shí)間向量
????t=?0:?dt:?(2*n-1)?*dt;
else???????%實(shí)測(cè)頻域數(shù)據(jù)
????%取頻率間隔
????df=?f;
????%取實(shí)測(cè)頻響函數(shù)的長(zhǎng)度
????n=?length(b(1:));
????%建立離散頻率向量
????f=?0:?df:?(n-1)?*df;
????%建立對(duì)應(yīng)正負(fù)頻率的實(shí)測(cè)頻響函數(shù)向量
????H=?b(1:)‘+b(2:)‘*i;
????H(n+1)?=?real(H(n));
????H(n+2:?2*n)?=?conj(?H(n:-1:2)?);
????%頻響函數(shù)經(jīng)IFFT并取實(shí)部變換成脈沖響應(yīng)函數(shù)
????h=?real(ifft(H));
????%建立離散時(shí)間向量
????t=?linspace(01/df2*n);
????%計(jì)算時(shí)間間隔
????dt=?t(2)?-t(1);
end
%時(shí)間序列響應(yīng)擬合的ARMA參數(shù)建模
%A和B分別為ARMA模型傳遞函數(shù)的分子和分母系數(shù)向量
[A?B]?=prony(hnmnm);
%多項(xiàng)式求根(零點(diǎn))
V=?roots(B);
%計(jì)算自振頻率
F1=?abs(log(V))?/(2*pi*dt);
%計(jì)算阻尼比
D1=?sqrt(1./?(?(?(imag?(log?(V))./real?(
評(píng)論
共有 條評(píng)論