システム同定ツールボックスでの不規則なサンプリング データのサポートはかなり制限されています。System Identification Toolbox の多くの機能では、定期的にサンプリングされたデータが必要です。このリンクを参照してください。
の使用から、iddata()
入力データと出力データは同時にペアで測定されると思いますが、隣接するサンプル間のタイムスパンは規則的ではありません。
この場合、interp1などの (線形) 補間を使用できます。これにより、推定に多少の誤差が生じる可能性がありますが、シンプルで迅速なアプローチです。定期的な時間ステップで新しい時間グリッドを定義し、それらを補間するだけです。
% create some dummy data
time = rand(20,1); % irregular sampled measurements
input = sin( 2*pi*time); % some input signal
output = cos( 2*pi*time ); % some output signal
% define new time vector and interpolate input and output data
Ts = 0.01; % new sampling time in seconds
newTime = min(time) : Ts : max(time); % new time vector
inputInterp = interp1( time, input, newTime ) % interpolated input data
outputInterp = interp1( time, output, newTime ) % interpolated output data
% lets see what just happend
figure
plot( time,input,'o'), hold on
plot(time,output,'ro');
plot( newTime, inputInterp, 'x')
plot( newTime, outputInterp, 'rx')
legend({'Original Input', 'Original Output', 'Interpolated Input', 'Interpolated Output'})
トリックを行う必要があります。
(元の) サンプリング周波数が関連するダイナミクスの周波数よりも大きい場合、エラーは小さいはずです。クアドロコプターの (剛体) ダイナミクスは 1 Hz のオーダーであるため、通常は 50 または 100 Hz で入力および出力データを測定することで問題ありません (ただし、これはアプリケーションによって異なる場合があります)。