Passen Sie ein Autoregressionsmodell an die Gezeitentiefendaten an
Dieses Beispiel zeigt, wie Sie ein Autoregressionsmodell (AR) für Daten in Ihrem ThingSpeak ™-Kanal anpassen und die Regressionsparameter zusammen mit ihren Unsicherheiten berechnen. Autoregressionsmodelle werden verwendet, um einen zeitabhängigen Prozess in der Natur darzustellen.
Lesen Sie Daten vom Echtzeit-Gezeitenmesser der Ockway Bay
ThingSpeak Kanal 50289 enthält Daten zur Gezeitentiefe in der Ockway Bay. Die Daten werden alle 5 Minuten erfasst. Feld 1 des Kanals enthält Daten zur Gezeitentiefe.
% Read the data using the |thingSpeakRead| function from channel 50289 on a particular day, for example, July 01, 2016.
startDate = datetime('July 1, 2016 12:01:00 AM'); endDate = datetime('July 2, 2016 12:01:00 AM'); dateRange = startDate:endDate; [data,timestamps] = thingSpeakRead(50289,'DateRange',dateRange,'Fields',1);
Passen Sie ein AR-Modell an die Daten an
Verwenden Sie die Funktion iddata, um ein IDData-Objekt der Gezeitentiefendaten zu erstellen. Verwenden Sie detrend, um sicherzustellen, dass die Daten einen Mittelwert von Null haben.
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
Modell an Daten anpassen
Da die Gezeitentiefe mit der Zeit variiert, verwenden Sie die Funktion ar, um ein zeitdiskretes autoregressives Modell an die Daten anzupassen.
modelOrder = 8; sys = ar(IDdata,modelOrder)
sys =
Discrete-time AR model: A(z)y(t) = e(t)
A(z) = 1 - 1.154 z^-1 - 0.1668 z^-2 + 0.2144 z^-3 + 0.2974 z^-4
- 0.4227 z^-5 + 0.1509 z^-6 - 0.1612 z^-7 + 0.2491 z^-8
Sample time: 5 minutes
Parameterization:
Polynomial orders: na=8
Number of free coefficients: 8
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using AR ('fb/now') on time domain data "IDdata".
Fit to estimation data: 98.5%
FPE: 0.04741, MSE: 0.04485
Parameter anzeigen
Verwenden Sie die Funktion getpvec, um die geschätzten Parameter zusammen mit ihren Unsicherheiten anzuzeigen.
[Parameters,Uncertainties] = getpvec(sys)
Parameters =
-1.1543
-0.1668
0.2144
0.2974
-0.4227
0.1509
-0.1612
0.2491
Uncertainties =
0.0580
0.0918
0.0932
0.0918
0.0921
0.0970
0.0962
0.0647
Die Ausgabe zeigt die geschätzten AR-Modellparameter und den Standardabweichungswert der geschätzten Parameter.
Parameter in ThingSpeak schreiben
Verwenden Sie die Funktion thingSpeakWrite, um das Wertearray mit einem Wert pro Feld in ThingSpeak zu schreiben. Transponieren Sie die Daten auf 8 x 1. Ändern Sie channelID und writeAPIKey, um Daten an Ihren Kanal zu senden.
channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; response = thingSpeakWrite(channelID,'Values',Parameters','WriteKey',writeAPIKey)
response =
struct with fields:
Field1: '-1.154266029802091'
Field2: '-0.1668388400729965'
Field3: '0.2143807521019717'
Field4: '0.2973816840220466'
Field5: '-0.4226981725238166'
Field6: '0.1509427726183032'
Field7: '-0.1612303290788889'
Field8: '0.2490548535561231'
Latitude: []
Longitude: []
ChannelID: 17504
Created: 10-Jan-2019 15:10:41
LastEntryID: 20736
Altitude: []
Siehe auch
Funktionen
thingSpeakRead|iddata(System Identification Toolbox) |detrend(System Identification Toolbox) |ar(System Identification Toolbox) |getpvec(System Identification Toolbox)