Main Content

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

ThingSpeakデータを使用して潮汐深を予測する

この例では、 ThingSpeak™チャネルに保存されているデータを使用して、オックウェイ湾の潮汐深さを予測する方法を示します。潮汐深度を予測することは重要です。水の深さがわからない場合、船は容易に浅い湾の底泥で動けなくなることがあります。

オックウェイ湾のリアルタイム潮汐ゲージからのデータの読み取り

ThingSpeak™チャネル50289 には、オックウェイ湾の潮汐深に関するデータが含まれています。データは 5 分ごとに収集されます。チャネルの Field 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);

AR モデルによるデータの近似

iddata関数を使用して、潮汐深さデータの iddata オブジェクトを作成します。データにdetrendを使用して、データをゼロ平均にします。潮汐深さは時間とともに変化するため、関数arを使用して、離散時間自己回帰モデルをデータに適合させます。トレンドを除去する前にオフセットを取得し、システムを表す AR モデルを適合させます。

sampleTime = 5;
IDdata = iddata(data,[],sampleTime,'OutputName',{'Tidal Depth'},'TimeUnit','minutes')
trend = getTrend(IDdata,0);
IDdata = detrend(IDdata,0);
modelOrder = 8;
sys = ar(IDdata,modelOrder);
IDdata =

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

潮汐深度の予測

forecast関数を使用して、翌日の潮汐深さを予測します。測定された潮汐深度のデータが 5 分ごとに更新されるため、予測データのサンプル数を 288 に設定します。yfは予測モデル応答、 yf_sdは出力の標準偏差です。プロットする前にデータをリトレンドします。

numSamples = 288;
[yf,x0,sysf,yf_sd,x,x_sd] = forecast(sys,IDdata,numSamples);
IDdata = retrend(IDdata,trend);
yf = retrend(yf,trend);

予測された応答のプロット

予測された潮汐データと共に測定データをプロットします。また、予測モデルの不確実性の 1 標準偏差もプロットします。

figure;
UpperBound = iddata(yf.OutputData+1*yf_sd,[],yf.Ts,'Tstart',yf.Tstart,'TimeUnit','minutes');
LowerBound = iddata(yf.OutputData-1*yf_sd,[],yf.Ts,'Tstart',yf.Tstart,'TimeUnit','minutes');
plot(IDdata(:,:,[]),'r',yf(:,:,[]),'b');
hold on
plot(UpperBound,'k--',LowerBound,'k--');
legend({'measured','forecasted','1 sd uncertainty'},'Location','best');
xlabel('Time');
ylabel('Tidal depth (inches)');
title('Measured and Forecasted Tidal Wave Depths');

このプロットは、測定された応答および予測システムの応答を、標準偏差 1 の不確かさの範囲と共に示しています。

参考

関数

  • | (System Identification Toolbox) | (System Identification Toolbox) | (System Identification Toolbox) | (System Identification Toolbox) | (System Identification Toolbox) | (System Identification Toolbox)