このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
測定潮汐深度および予測潮汐深度の可視化と比較
この例では、オックウェイ湾で測定した潮汐深度と予測される潮汐深度を比較する方法を説明します。潮汐深度を予測することは重要です。水の深さがわからない場合、船は容易に浅い湾の底泥で動けなくなることがあります。
メモ
この例を実行するには、System Identification Toolbox を使用するライセンスの与えられた MathWorks アカウントにログインしていなければなりません。
オックウェイ湾のリアルタイム潮汐ゲージからのデータの読み取り
ThingSpeak™ のチャネル 50289 には、オックウェイ湾の潮汐深度に関するデータが含まれています。データは 5 分ごとに収集されます。チャネルの Field 1 には潮汐深度のデータが含まれています。
関数 thingSpeakRead
を使用して、特定の日 (たとえば、2016 年 7 月 1 日) のデータをチャネル 50289 から読み取ります。
startDate = datetime(2016,07,01,0,0,0); endDate = datetime(2016,07,02,0,0,0); dateRange = startDate:endDate; data = thingSpeakRead(50289,'DateRange',dateRange,'Fields',1);
AR モデルによるデータの近似
関数 iddata
を使用して、潮汐深度データの iddata
オブジェクトを作成します。潮汐データはゼロ平均ではないため、データがゼロ平均になるようにデータのトレンド除去を行います。潮汐深度は時間と共に変化するため、関数 ar
を使用して、離散時間の自己回帰モデルでデータを近似します。
メモ
この例は、AR モデルを使用して潮汐レベルなどの正弦波関数をモデル化する方法を説明するように設計されています。これは、高度な潮汐予測技術の代わりとして設計されているわけではありません。測定された潮汐データを使用して潮汐レベルを予測する MATLAB® 関数、たとえば関数 UTide は、MATLAB Central で利用できます。
sampleTime = 5; IDdata = iddata(data,[],sampleTime,'OutputName',{'Tidal Depth'},'TimeUnit','minutes')
IDdata = Time domain data set with 288 samples. Sample time: 5 minutes Outputs Unit (if specified) Tidal Depth
% Detrend the data to zero mean IDdata = detrend(IDdata,0); modelOrder = 8; % Fit an AR model to represent the system sys = ar(IDdata,modelOrder);
測定潮汐深度および予測潮汐深度の比較
関数 compare
を使用して、予測モデル データと測定データの正確性を比較します。
compare(IDdata,sys,288,'r')
このプロットは、288 ステップ前に予測されたシステムの応答と測定データとの比較を示しています。
参考
関数
thingSpeakRead
|iddata
(System Identification Toolbox) |detrend
(System Identification Toolbox) |ar
(System Identification Toolbox) |compare
(System Identification Toolbox)