主要内容

使用ThingSpeak数据预测潮汐深度

这个例子展示了如何使用存储在ThingSpeak™频道中的数据来预测Ockway湾的潮汐深度。预测潮汐深度是至关重要的:如果你不知道水深,你的船很容易被困在浅海湾的泥里。

读取Ockway湾实时潮汐计的数据

ThingSpeak™频道50289包含关于Ockway湾潮汐深度的数据。数据采集周期为5分钟。航道1场包含潮汐深度数据。读取数据使用thingSpeakRead例如,2016年7月1日。

startDate可以= datetime (“2016年7月1日12:01:00 AM”);endDate = datetime (“2016年7月2日12:02:00 AM”); dateRange=startDate:endDate;数据=thingSpeakRead(50289,“DateRange”dateRange,“字段”1);

为数据拟合一个AR模型

使用iddata函数创建潮汐深度数据的iddata对象。使用去趋势使数据为零均值。由于潮汐深度随时间而变化,使用潮汐基于“增大化现实”技术函数拟合一个离散时间自回归模型到数据。在去趋势之前捕获偏移量,然后拟合一个AR模型来表示系统。

sampleTime = 5;IDdata = IDdata (sampleTime数据,[],“OutputName”,{“潮汐深度”},“TimeUnit”“分钟”)趋势= getTrend(IDdata,0);IDdata =去趋势(IDdata 0);modelOrder = 8;sys = ar (IDdata modelOrder);
IDdata = 288个样本的时域数据集。采样时间:5分钟输出单位(如果指定)潮汐深度

预测潮汐深度

使用预测函数用于预测第二天的潮汐深度。将预测数据的样本数设置为288,因为测量的潮汐深度数据每5分钟更新一次。yf预测的模型是否响应,和yf_sd为输出的标准差。在绘图前对数据进行重趋势分析。

numSamples = 288;(yf, x0, sysf yf_sd x, x_sd] =预测(sys, IDdata numSamples);IDdata = retrend (IDdata、趋势);yf = retrend (yf,趋势);

绘制预测反应图

将测量数据与预测的潮汐数据绘制在一起。并绘制预测模型的不确定性的一个标准差。

图;UpperBound = iddata (yf.OutputData + 1 * yf_sd, [], yf.Ts,“Tstart”、yf。Tstart,“TimeUnit”“分钟”);下界= iddata (yf.Ts yf.OutputData-1 * yf_sd, [],“Tstart”、yf。Tstart,“TimeUnit”“分钟”);情节(IDdata (:,: []),“r”yf (:,: []),“b”);持有情节(UpperBound“k——”下界,“k——”);传奇({“测量”“预测”“1 sd的不确定性”},“位置”“最佳”);包含(“时间”);ylabel (“潮汐深度(英寸));标题(“测量及预测的海浪深度”);

此图显示了测量和预测的系统响应以及一个标准偏差不确定性边界。

另请参阅

功能