Main Content

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

Visualizza i dati direzionali con il grafico della bussola

Questo esempio dimostra i calcoli della matrice in MATLAB e l'uso di un grafico a bussola in un'app MATLAB Visualizations per mostrare la distribuzione direzionale. Nell'esempio, come punto di partenza, utilizzi uno dei modelli di codice forniti dalle app MATLAB Analysis e MATLAB Visualizations in ThingSpeak .

ThingSpeak™ channel 12397 contiene dati meteorologici provenienti da una stazione meteorologica situata sul tetto di un parcheggio nel campus MathWorks a Natick, Massachusetts. Il campo 1 contiene la misura della velocità del vento.

Crea una visualizzazione MATLAB dal codice modello

Per creare una visualizzazione del grafico della bussola di un set di dati da un canale ThingSpeak , è possibile creare uno script MATLAB utilizzando un modello di codice fornito.

Vai alla scheda App e seleziona MATLAB Visualizations. Fare clic su Nuovo, selezionare Visualizza dati direzionali con grafico della bussola e fare clic su Crea.

Visualizza i tuoi dati

ThingSpeak popola il campo Codice MATLAB con il codice modello per leggere i dati e quindi generare il grafico dell'area.

1) Impostare le variabili per comunicare con ThingSpeak. Il canale della stazione meteo è pubblico, quindi non è necessario aggiungere la chiave API di lettura. Se stai leggendo dal tuo canale, puoi modificare questi valori.

readChannelID = 12397;
WindDirFieldID = 1;
WindSpeedFieldID = 2;
readAPIKey = '';

2) Utilizzare thingSpeakRead per leggere 60 punti di dati sulla direzione del vento dal campo 1. Leggere i dati sulla velocità del vento dal campo 2.

windDir = thingSpeakRead(readChannelID,'Fields',WindDirFieldID,'NumPoints',60,...
'ReadKey',readAPIKey);

windSpeed = thingSpeakRead(readChannelID,'Fields',WindSpeedFieldID,'NumPoints',60,...
'ReadKey',readAPIKey);

3) Convertire la direzione del vento da gradi a radianti e spostare la direzione per allinearla al nord. Queste equazioni operano su ciascun elemento dell'array letto da ThingSpeak.

rad = windDir*2*pi/360;
rad = rad+pi/2;

4) Convertire le misurazioni del vento in coordinate cartesiane per coerenza con gli input del grafico compass . Puoi modificare il codice del modello per adattarlo alla tua applicazione. Ad esempio, modifica il codice per cambiare il numero di punti da leggere con thingSpeakRead.

u = cos(rad) .* windSpeed; 
v = sin(rad) .* windSpeed; 
compass(u,v);

5) Premere Salva ed esegui per generare il grafico. Il grafico della bussola viene generato da dati in tempo reale, pertanto la visualizzazione è diversa da questo grafico. Il grafico mostra la distribuzione direzionale e la forza delle recenti misurazioni del vento.

6) Facoltativamente, puoi aggiungere visualizzazioni salvate al tuo canale. In Impostazioni di visualizzazione, utilizza il segno più accanto a Aggiungi/modifica questa visualizzazione a un canale per espandere l'elenco dei canali.

Seleziona la casella di controllo relativa al canale a cui desideri aggiungere la visualizzazione. Per aggiungere visualizzazioni private, seleziona Vista privata. Per condividere l'URL e aggiungere la visualizzazione alla Visualizzazione pubblica, fare clic su Crea un URL pubblico. Per aggiornare le selezioni, fare clic su Salva impostazioni di visualizzazione.

Mostra la media ponderata delle misurazioni del vento

Puoi confrontare più output sullo stesso grafico con MATLAB Visualizations. Ad esempio, puoi aggiungere una freccia che indica la direzione della media ponderata.

1) Calcolare la media ponderata.

aveDir = sum(rad.*windSpeed)/sum(windSpeed);

2) Convertire le direzioni del vento misurate in coordinate cartesiane. Utilizzare hold on per mantenere i dati sullo stesso grafico, quindi generare il grafico. Utilizzare il tipo di riga 'ro-' per distinguere la riga media dalle altre.

w = mean(u); 
z = mean(v); 

% Generate the original plot.
compass(u,v);
hold on
c = compass(w,z,'ro-');
c.LineWidth = 2;

Vedi anche

Funzioni

Esempi correlati

Ulteriori informazioni