メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

測定された潮位と予測された潮位を可視化して比較する

この例では、オックウェイ湾での測定された潮深と予測された潮深を比較する方法を示します。潮の深さを予測することは非常に重要です。水深を把握していないと、ボートは浅い湾の泥にはまり込んでしまう可能性があります。

オックウェイベイリアルタイム潮位計のデータを読み取る

ThingSpeak ™チャネル50289 には、オックウェイ湾の潮汐深度に関するデータが含まれています。データは5分ごとに収集されます。チャネルのフィールド 1 には潮汐深度データが含まれています。thingSpeakRead 関数を使用して、特定の日 (たとえば、2016 年 7 月 1 日) のチャネル50289 からデータを読み取ります。

startDate = datetime('July 1, 2016 12:01:00 AM');
endDate = datetime('July 2, 2016 12:02:00 AM');
dateRange = startDate:endDate;
data = thingSpeakRead(50289,'DateRange',dateRange,'Fields',1);

データオブジェクトを作成し、データのトレンドを除去する

iddata 関数を使用して、潮汐深度データの iddata オブジェクトを作成します。潮汐データは平均がゼロではないので、detrend を使用してデータの平均をゼロにします。

注: この例は、AR モデルを使用して潮位などの正弦関数をモデル化する方法を示すために設計されています。これは、高度な潮汐予測技術の代替として設計されたものではありません。UTide 機能など、測定された潮汐データを使用して潮位を予測する MATLAB ® 機能は、MATLAB Central でも利用できます。

sampleTime = 5;
IDdata = iddata(data,[],sampleTime,'OutputName',{'Tidal Depth'},'TimeUnit','minutes')
IDdata = detrend(IDdata,0);
IDdata =

Time domain data set with 288 samples.
Sample time: 5 minutes                 
                                       
Outputs           Unit (if specified)  
   Tidal Depth                         
                                       

データにARモデルを適合させる

潮の深さは時間とともに変化するため、ar 関数を使用して離散時間自己回帰モデルをデータに適合させます。

modelOrder = 8;
sys = ar(IDdata,modelOrder);

測定された潮位と予測された潮位を比較する

compare 関数を使用して、予測モデル データの精度と測定データの精度を比較します。

compare(IDdata,sys,287,'r')

このプロットは、システムの 287 ステップ先の予測応答と測定データの比較を示しています。

参考

関数