System Identification Toolbox を使用したノイズがある周波数応答モデルの推定
Simulink® モデルを開き、線形化するモデルの部分を指定します。
load_system('magball'); io(1) = linio('magball/Desired Height',1); io(2) = linio('magball/Magnetic Ball Plant',1,'output');
定常状態の操作点を計算して、モデルを線形化します。
op = findop('magball',operspec('magball'),... findopOptions('DisplayReport','off')); sys = linearize('magball',io,op);
チャープ信号を作成し、それを使用して周波数応答を推定します。
in = frest.Chirp('FreqRange',[1 1000],... 'Ts',0.001,... 'NumSamples',1e4); [~,simout] = frestimate('magball',io,op,in);
System Identification Toolbox™ ソフトウェアを使用して、5 次の状態空間モデルを推定します。解析的な線形化の結果と状態空間モデルを比較します。
input = generateTimeseries(in); output = simout{1}.Data; data = iddata(output,input.Data(:),in.Ts); sys_id = n4sid(detrend(data),5,'cov','none'); bodemag(sys,ss(sys_id('measured')),'r') legend('Linear model obtained using LINEARIZE',... 'State-space model using System Identification Toolbox',... 'Location','SouthWest')