可视化并比较测量和预测的潮汐深度
此示例展示如何比较奥克威湾的测量潮汐深度和预测潮汐深度。预测潮汐深度至关重要:如果您不知道水深,您的船很容易陷入浅海湾的泥浆中。
从 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 步预测响应与测量数据的比较。
另请参阅
函数
thingSpeakRead
|iddata
(System Identification Toolbox) |detrend
(System Identification Toolbox) |ar
(System Identification Toolbox) |compare
(System Identification Toolbox)