Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

可视化并比较测量和预测的潮汐深度

此示例展示如何比较奥克威湾的测量潮汐深度和预测潮汐深度。预测潮汐深度至关重要:如果您不知道水深,您的船很容易陷入浅海湾的泥浆中。

从 Ockway Bay 实时潮汐计读取数据

ThingSpeak™通道50289 包含有关奥克威湾潮汐深度的数据。数据每 5 分钟收集一次。通道的字段 1 包含潮汐深度数据。使用thingSpeakRead函数从通道50289读取特定日期的数据,示例2016年7月1日。

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 模型对潮位等正弦函数进行建模。它并不是为了替代复杂的潮汐预报技术而设计的。MATLAB Central 上提供了使用测量的潮汐数据预测潮位的 MATLAB® 函数,例如 UTide 函数。

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 步预测响应与测量数据的比较。

另请参阅

函数