主要内容

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

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

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

从 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® 函数使用测量的潮汐数据预测潮汐水位,例如 UTide 函数可在 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 步预测的响应与测量数据的比较情况。

另请参阅

函数