Labview Mobile Media Example
Calcolo media mobile Questo VI calcola e visualizza la media mobile, utilizzando un numero preselezionato. Innanzitutto, il VI inizializza due registri a scorrimento. Il registro a scorrimento superiore è inizializzato con un elemento, quindi aggiunge continuamente il valore precedente con il nuovo valore. Questo registro a scorrimento mantiene il totale delle ultime misurazioni x. Dopo aver diviso i risultati della funzione aggiuntivo con il valore preselezionato, il VI calcola il valore di media mobile. Il registro a scorrimento in basso contiene un array con la media dimensione. Questo registro a scorrimento mantiene tutti i valori della misurazione. La funzione di sostituzione sostituisce il nuovo valore dopo ogni ciclo. Questo VI è molto efficiente e veloce perché utilizza la funzione dell'elemento sostituire all'interno del ciclo while, ed inizializza la matrice prima che entri nel circuito. Questo VI è stato creato in LabVIEW 6.1. Bookmark ShareSimple amp media mobile VI Di solito quando si parla di una media mobile, significano Sostituire punto N con la media di M punti circostanti Point N. Supponiamo che io ho 100 punti i cui valori sono 1, 2, 3. 100, e voglio fare un 5 punti di media mobile. La prima cosa da notare è che c'è un La media mobile del terzo punto è la media di 1, 2, 3, 4, 5 3. La media del quarto punto è la media di 2, 3, 4, 5, 6 4. Tuttavia, questo è forse troppo semplice esempio. Come circa la media di una funzione a gradino, 0 da 1 a 10, quindi 20 successivamente. Anche in questo caso, buttare via i punti 1 e 2. La media dei punti 1-5 (per andare in punto 3) 0 (in quanto tutti i punti sono 0). Allo stesso modo con il punto 4, 5, 6,7 e 8. Tuttavia, il punto 9 è la media di 0, 0, 0, 0, 20 4. Come su Point 10 bene, dovrebbe essere la media di 0, 0, 0 , 20, 20 8, ma ti sei ricordato di non sovrascrivere punto 9 Hmm, sembra che abbiamo bisogno di mantenere due copie del Array (che è, in generale, costoso). Ci sono diversi modi per evitare di fare questo. Capite dove il problema si pone nel paragrafo precedente caso contrario, provare a fare questo con carta e penna (o tenta di codifica in LabVIEW). Ill darvi la risposta modo da poter controllare - la media mobile della Funzione passo è -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (dove - sono i valori vuoti alle estremità della matrice, i punti non avete vicini Sufficent). Post scriptum - Non mi sorprenderebbe se ci mancavano una funzione di LabVIEW che fa per voi. Ma se si sta imparando LabVIEW e desidera avere una migliore comprensione di come gli algoritmi di collegare le nel lavoro, non fa mai male a giocare e provare voi stessi. Si potrebbe anche venire con un miglioramento (molti di noi lo hanno fatto.). grazie per sensibilizzare quanto riguarda i punti più fini del metodo della media mobile. Questa dopotutto è uno strumento statistico che consente di vedere ciò che si vuole vedere astrarre i distrattori. Quindi, il metodo è destinato ad avere alcune carenze in alcune situazioni o contesto. Ma credo che la sua perfettamente adatto per la mia registrazione dei dati gdl tipo - il segnale di pressione o la temperatura o la portata - e acquisire a qualcosa come 400 campioni sec e quindi utilizzare un singolo campione media. E il processo è abbastanza lento come il mio codice principale funziona a non più di 20 Hz. Così, quando faccio una media maving 5 del campione, il mio primo campione arriva 5 x 50 ms dopo, poi per ogni 50ms ho un campione valido. Fondamentalmente io sono più interessato alle tendenze e non scorgo valori. In questo c'è poca preoccupazione sui campioni perse o valori canaglia. Naturalmente non avrei il coraggio di usare questo per una funzione a gradino. Sarebbe una cosa crudele. Raghunathan LV2012 per automatizzare banchi di prova idraulica. Messaggio 4 di 15 (1.047 Visualizzazioni) Oggetto: media mobile semplice VI 2016/03/30 23:58 C'è ptbypt media che fa lo stesso. È possibile ispezionare il codice, se si vuole. Un grosso difetto nel codice è il fatto che costantemente aumentare e ridurre un array esistente. Si dovrebbe cercare di trovare una soluzione che funziona sul posto su un array di dimensione fissa. esempi possono sono stati pubblicati sul forum nel corso degli anni (aspetto hee, per esempio). La media non si preoccupa se gli elementi sono fuori uso, in modo da poter sostituire semplicemente l'elemento più vecchio, non importa dove si trova. Siete anche anteponendo il nuovo elemento per l'inizio di un array esistente, che è sempre molto più costoso rispetto aggiungendo alla fine. la dimensione del campione non può cambiare una volta che il VI è in esecuzione. Your registro a scorrimento deve essere inizializzato con un array vuoto, non un array già contenente un singolo elemento che è zero. (Questa zero in più darà medie sbagliate) Il codice dovrebbe essere trasformato in un subVI in modo che possa essere riutilizzato (simile alla versione ptbypt). Il tuo VI non può mai essere fermato, appena interrotta. Buoni suggerimenti per l'ottimizzazione. Il punto su inizializzazione con Zero me mancava. E sì che l'utente non dovrebbe cambiare la dimensione del campione, una volta che inizia a funzionare. Infine farò una SubVI e gestire le cose come l'arresto, ecc .. Per quanto riguarda il punto di prepending che aggiungendo il nuovo valore di array, forse c'è una penalizzazione delle prestazioni, ma date le dimensioni della mia serie sono sicuro che la CPU non si preoccupa anwyay . Ma per me deve essere in questo modo, come io uso i dati definitivi per tracciare una tendenza di un parametro fisico. Grazie per il tuo tempo. Raghunathan LV2012 per automatizzare banchi di prova idraulica. grazie per sensibilizzare quanto riguarda i punti più fini del metodo della media mobile. Questa dopotutto è uno strumento statistico che consente di vedere ciò che si vuole vedere astrarre i distrattori. Quindi, il metodo è destinato ad avere alcune carenze in alcune situazioni o contesto. Ma credo che la sua perfettamente adatto per la mia registrazione dei dati gdl tipo - il segnale di pressione o la temperatura o la portata - e acquisire a qualcosa come 400 campioni sec e quindi utilizzare un singolo campione media. E il processo è abbastanza lento come il mio codice principale funziona a non più di 20 Hz. Così, quando faccio una media maving 5 del campione, il mio primo campione arriva 5 x 50 ms dopo, poi per ogni 50ms ho un campione valido. Aha Quindi non si vuole una media mobile, ma solo una media semplice. Questo è molto più facile. Heres l'idea (che funziona molto meglio con un design ProducerConsumer) - Diciamo che il campionamento a 400Hz, vuole salvare i dati a 400 Hz (cioè salvare tutti i dati su disco), ma desidera visualizzare a 20 Hz (perché si voglio vedere le tendenze, una base di tempo più lungo, ecc). Configurare il sistema AD raccogliere 20 campioni a 400Hz (si noti in grado di raccogliere N canali, allo stesso tempo, dando una matrice 2D di campioni. Come si ottiene i dati (a 20 Hz) dalla AD (rendendo questo il Produttore) , accodare al cONSUMATORE il consumatore inizia scrivendo i dati su disco (sognerei ci vuole molto tempo) Ora avete una matrice 2D -.. in un ciclo for, su una base di canale per canale, la media dei 20 punti. Ora si dispone di un array 1D, con un punto di media da ciascun canale. Vai avanti e tracciarla. si noti che questo schema (a) utilizza tutti i dati, (b) gestisce dati multi-canale con aplomb (e, se dal Medio Oriente dove crescono, è possibile anche gestire i dati con una prugna succosa), e (c) consente di raccogliere i dati dalle apparecchiature dC, salvare i dati su disco mantenendo tutti i punti, e mostra i dati su lo schermo utilizzando tutti i punti, ma anche con una media per migliorare la visuale rapporto segnale-rumore, il tutto senza perdere i dati (Ive ha fatto esattamente questo con 24 canali a 1 KHz, con i dati che vengono presi su un sistema remoto e inviati al PC via TCPIP, così abbiamo anche l'elaborazione TCP nel loop). Benvenuti nel mondo emozionante di acquisizione dati e di elaborazione con LabVIEW. Fidati di me, questo è un sistema meraviglioso per fare questo tipo di lavoro Sulla base del feedback che ho ottenuto il mio VI originale ho affinato il codice Media mobile in un subVI. Ho quindi usato in media un dato simulato 10Channel - solo per mantenere le cose semplici ho fatto in modo all10 Canali avevano dati identici. Si potrebbe quindi si aspettano di ottenere la stessa media mobile per tutti i 10 canali. Sono sorpreso per la varianza piccola ho notato tra i canali - in genere sono vicino ma non esatti. E proprio per spiegare il processo che sto cercando ho anche enclsoed un XLS. Allora da dove viene la variazione arrivano da. il registro a scorrimento non inizializzate all'interno del VI Sub. Raghunathan LV2012 per automatizzare banchi di prova idraulica. Messaggio 9 di 15 (950 Visualizzazioni) Oggetto: Simple Moving Average VI altenbach 2016/04/01 10:25 Il codice fa ancora non ha senso. Dal momento che si sta chiamando quello scalare subVI alla volta, non si ottiene ciò che si vuole, perché il registro a scorrimento rememebers solo le ultime N scalari, non importa quale canale è da. Il tuo codice è ancora molto inefficiente e contorto. (Ad esempio, perché stai ancora utilizzando inserto in una matrice da aggiungere (sia nel nad mani nel sub). (È possibile utilizzare un subVI reenetrant e una più interna parallela per ciclo, ma che sembra troppo complicato troppo) Se si vuole fare un esecuzione media su ogni canale, il subVI ha bisogno di mantenere una matrice 2D nel subVI. Tutto questo è stato fatto prima. Messaggio 10 di 15 (934 Visualizzazioni) modello a media mobile e esponenziale Come primo passo per andare oltre i modelli medi, casuale camminare modelli e modelli di tendenza lineare, i modelli non stagionali e le tendenze possono essere estrapolati utilizzando un modello a media mobile o levigante. l'assunto di base dietro di media e levigante modelli è che la serie temporale è localmente stazionario con una media lentamente variabile. Quindi, prendiamo un (locale) media mobile per stimare il valore corrente della media e quindi utilizzare tale come la previsione per il prossimo futuro. Questo può essere considerato come un compromesso tra il modello media e la random walk-senza-drift-modello. il stessa strategia può essere utilizzato per stimare e estrapolare una tendenza locale. Una media mobile è spesso chiamato una versione quotsmoothedquot della serie originale, perché la media a breve termine ha l'effetto di appianare i dossi nella serie originale. Regolando il grado di lisciatura (la larghezza della media mobile), possiamo sperare di colpire un qualche tipo di equilibrio ottimale tra le prestazioni dei modelli medi e random walk. Il tipo più semplice di modello di media è il. Semplice (equamente ponderate) Media mobile: Le previsioni per il valore di Y al tempo t1 che viene fatta al tempo t è pari alla media semplice dei più recenti osservazioni m: (Qui e altrove mi utilizzerà il simbolo 8220Y-hat8221 di stare per una previsione di serie temporali Y fatta quanto prima prima possibile da un dato modello.) Questa media è centrato periodo t - (m1) 2, il che implica che la stima della media locale tenderà a restare indietro il vero valore della media locale circa (m1) 2 periodi. Così, diciamo l'età media dei dati nella media mobile semplice (m1) 2 rispetto al periodo per il quale è calcolata la previsione: questa è la quantità di tempo per cui previsioni tenderanno a restare indietro ruotando punti nei dati . Ad esempio, se si sta una media degli ultimi 5 valori, le previsioni saranno circa 3 periodi in ritardo nel rispondere a punti di svolta. Si noti che se m1, il modello di media mobile semplice (SMA) è equivalente al modello random walk (senza crescita). Se m è molto grande (paragonabile alla lunghezza del periodo di stima), il modello SMA è equivalente al modello medio. Come con qualsiasi parametro di un modello di previsione, è consuetudine per regolare il valore di k per ottenere la migliore quotfitquot ai dati, cioè i più piccoli errori di previsione in media. Ecco un esempio di una serie che sembra mostrare fluttuazioni casuali intorno a una media lentamente variabile. Innanzitutto, proviamo per adattarsi con un modello casuale, che è equivalente a una media mobile semplice di 1 termine: Il modello random walk risponde molto velocemente alle variazioni della serie, ma così facendo raccoglie gran parte del quotnoisequot nel dati (le fluttuazioni casuali) e il quotsignalquot (media locale). Se invece cerchiamo una semplice media mobile di 5 termini, si ottiene un insieme più agevole dall'aspetto delle previsioni: Il 5-termine mobile semplice rese medie in modo significativo gli errori più piccoli rispetto al modello random walk in questo caso. L'età media dei dati di questa previsione è 3 ((51) 2), in modo che tende a ritardo punti di svolta da circa tre periodi. (Per esempio, una flessione sembra essersi verificato in periodo di 21, ma le previsioni non girare intorno fino a diversi periodi più tardi.) Si noti che le previsioni a lungo termine dal modello SMA sono una retta orizzontale, proprio come nel random walk modello. Pertanto, il modello SMA presuppone che vi sia alcuna tendenza nei dati. Tuttavia, mentre le previsioni del modello random walk sono semplicemente uguale all'ultimo valore osservato, le previsioni del modello di SMA sono pari ad una media ponderata dei valori ultimi. I limiti di confidenza calcolato dai Statgraphics per le previsioni a lungo termine della media mobile semplice non ottengono più ampio con l'aumento della previsione all'orizzonte. Questo ovviamente non è corretto Purtroppo, non vi è alcuna teoria statistica di fondo che ci dice come gli intervalli di confidenza deve ampliare per questo modello. Tuttavia, non è troppo difficile da calcolare le stime empiriche dei limiti di confidenza per le previsioni di più lungo orizzonte. Ad esempio, è possibile impostare un foglio di calcolo in cui il modello SMA sarebbe stato utilizzato per prevedere 2 passi avanti, 3 passi avanti, ecc all'interno del campione di dati storici. È quindi possibile calcolare le deviazioni standard campione degli errori in ogni orizzonte di previsione, e quindi la costruzione di intervalli di confidenza per le previsioni a lungo termine aggiungendo e sottraendo multipli della deviazione standard appropriato. Se cerchiamo una media del 9 termine semplice movimento, otteniamo le previsioni ancora più fluide e più di un effetto ritardo: L'età media è ora 5 punti ((91) 2). Se prendiamo una media mobile 19-termine, l'età media aumenta a 10: Si noti che, in effetti, le previsioni sono ora in ritardo punti di svolta da circa 10 periodi. Quale quantità di smoothing è meglio per questa serie Ecco una tabella che mette a confronto le loro statistiche di errore, anche compreso in media 3-termine: Modello C, la media mobile a 5-termine, i rendimenti il valore più basso di RMSE da un piccolo margine su 3 - term e 9 termine medie, e le loro altre statistiche sono quasi identici. Così, tra i modelli con le statistiche di errore molto simili, possiamo scegliere se avremmo preferito un po 'più di risposta o un po' più scorrevolezza nelle previsioni. (Torna a inizio pagina.) Browns semplice esponenziale (media mobile esponenziale ponderata) Il modello a media mobile semplice di cui sopra ha la proprietà indesiderabile che tratta le ultime osservazioni k ugualmente e completamente ignora tutte le osservazioni che precedono. Intuitivamente, dati passati devono essere attualizzati in modo più graduale - per esempio, il più recente osservazione dovrebbe avere un peso poco più di 2 più recente, e la 2 più recente dovrebbe ottenere un po 'più peso che la 3 più recente, e presto. Il modello semplice di livellamento esponenziale (SES) realizza questo. Diamo 945 denotano una constantquot quotsmoothing (un numero compreso tra 0 e 1). Un modo per scrivere il modello è quello di definire una serie L che rappresenta il livello attuale (cioè il valore medio locale) della serie come stimato dai dati fino ad oggi. Il valore di L al momento t è calcolata in modo ricorsivo dal proprio valore precedente in questo modo: Così, il valore livellato corrente è una interpolazione tra il valore livellato precedente e l'osservazione corrente, dove 945 controlla la vicinanza del valore interpolato al più recente osservazione. Le previsioni per il prossimo periodo è semplicemente il valore livellato corrente: Equivalentemente, possiamo esprimere la prossima previsione direttamente in termini di precedenti previsioni e osservazioni precedenti, in una delle seguenti versioni equivalenti. Nella prima versione, la previsione è una interpolazione tra precedente meteorologiche e precedente osservazione: Nella seconda versione, la prossima previsione è ottenuta regolando la previsione precedente nella direzione dell'errore precedente di una quantità frazionaria 945. è l'errore al tempo t. Nella terza versione, la previsione è di un (cioè scontato) media mobile esponenziale ponderata con fattore di sconto 1- 945: La versione di interpolazione della formula di previsione è il più semplice da usare se si implementa il modello su un foglio di calcolo: si inserisce in un singola cellula e contiene i riferimenti di cella che puntano alla previsione precedente, l'osservazione precedente, e la cella in cui è memorizzato il valore di 945. Si noti che se 945 1, il modello SES è equivalente ad un modello random walk (senza crescita). Se 945 0, il modello SES è equivalente al modello medio, assumendo che il primo valore livellato è impostata uguale alla media. (Torna a inizio pagina). L'età media dei dati nelle previsioni semplice esponenziale-levigante è di 1 945 relativo al periodo per il quale è calcolata la previsione. (Questo non dovrebbe essere ovvio, ma può essere facilmente dimostrare valutando una serie infinita.) Quindi, la semplice previsione media mobile tende a restare indietro punti di svolta da circa 1 945 periodi. Ad esempio, quando 945 0.5 il ritardo è di 2 periodi in cui 945 0.2 il ritardo è di 5 periodi in cui 945 0.1 il ritardo è di 10 periodi, e così via. Per una data età media (cioè quantità di ritardo), il semplice livellamento esponenziale (SES) previsione è un po 'superiore alla previsione media mobile semplice (SMA) perché pone relativamente più peso sulla più recente --i. e osservazione. è leggermente più quotresponsivequot ai cambiamenti che si verificano nel recente passato. Per esempio, un modello di SMA con 9 termini e un modello di SES con 945 0,2 entrambi hanno un'età media di 5 per i dati nelle loro previsioni, ma il modello SES mette più peso sugli ultimi 3 valori di quanto non faccia il modello SMA e al contempo doesn8217t interamente 8220forget8221 sui valori più di 9 periodi vecchi, come mostrato in questo grafico: un altro importante vantaggio del modello SES sul modello SMA è che il modello SES utilizza un parametro smoothing che è continuamente variabile, in modo che possa facilmente ottimizzato utilizzando un algoritmo quotsolverquot per minimizzare l'errore quadratico medio. Il valore ottimale di 945 nel modello SES a questa serie risulta essere 0,2961, come illustrato di seguito: L'età media dei dati in questa previsione è 10.2961 3.4 periodi, che è simile a quella di una media 6 termine mobile semplice. Le previsioni a lungo termine dal modello SES sono una linea retta orizzontale. come nel modello SMA e il modello random walk senza crescita. Si noti tuttavia che gli intervalli di confidenza calcolati da Statgraphics ora divergono in modo ragionevole dall'aspetto, e che sono sostanzialmente più stretto gli intervalli di confidenza per il modello random walk. Il modello di SES presuppone che la serie è un po 'predictablequot quotmore di quanto non faccia il modello random walk. Un modello SES è in realtà un caso particolare di un modello ARIMA. così la teoria statistica dei modelli ARIMA fornisce una solida base per il calcolo intervalli di confidenza per il modello SES. In particolare, un modello SES è un modello ARIMA con una differenza nonseasonal, un MA (1) termine, e nessun termine costante. altrimenti noto come un modello quotARIMA (0,1,1) senza constantquot. Il MA (1) coefficiente nel modello ARIMA corrisponde alla quantità 1- 945 nel modello SES. Ad esempio, se si adatta un modello ARIMA (0,1,1) senza costante alla serie analizzate qui, il MA stimato (1) coefficiente risulta essere 0,7029, che è quasi esattamente un meno 0,2961. È possibile aggiungere l'assunzione di una tendenza non-zero costante lineare per un modello SES. Per fare questo, basta specificare un modello ARIMA con una differenza non stagionale e di un (1) termine MA con una costante, cioè un (0,1,1) modello ARIMA con costante. Le previsioni a lungo termine avranno quindi una tendenza che è uguale alla tendenza medio rilevato nel corso dell'intero periodo di stima. Non si può fare questo in collaborazione con destagionalizzazione, perché le opzioni di destagionalizzazione sono disattivati quando il tipo di modello è impostato su ARIMA. Tuttavia, è possibile aggiungere una costante a lungo termine tendenza esponenziale ad un semplice modello di livellamento esponenziale (con o senza regolazione stagionale) utilizzando l'opzione di regolazione inflazione nella procedura di previsione. Il tasso appropriato quotinflationquot (crescita percentuale) per periodo può essere stimato come il coefficiente di pendenza in un modello trend lineare montato i dati in combinazione con una trasformazione logaritmo naturale, oppure può essere basata su altri, informazione indipendente per quanto riguarda le prospettive di crescita a lungo termine . (Ritorna all'inizio pagina.) Browns lineari (cioè doppie) modelli esponenziale La SMA e modelli di SES per scontato che non vi è alcuna tendenza di alcun tipo nei dati (che di solito è OK, o almeno non troppo male per 1- previsioni passo avanti quando i dati sono relativamente rumoroso), e possono essere modificati per includere un trend lineare costante come indicato sopra. Che dire di tendenze a breve termine Se una serie mostra un tasso variabile di crescita o un andamento ciclico che si distingue chiaramente contro il rumore, e se vi è la necessità di prevedere più di 1 periodo a venire, allora la stima di una tendenza locale potrebbe anche essere un problema. Il semplice modello di livellamento esponenziale può essere generalizzata per ottenere un modello lineare di livellamento esponenziale (LES) che calcola le stime locali sia a livello e di tendenza. Il modello di tendenza tempo-variante più semplice è Browns lineare modello di livellamento esponenziale, che utilizza due diverse serie levigato che sono centrate in diversi punti nel tempo. La formula di previsione si basa su un'estrapolazione di una linea attraverso i due centri. (Una versione più sofisticata di questo modello, Holt8217s, è discusso qui di seguito.) La forma algebrica di Brown8217s lineare modello di livellamento esponenziale, come quello del semplice modello di livellamento esponenziale, può essere espresso in una serie di forme diverse ma equivalenti. La forma quotstandardquot di questo modello è di solito espressa come segue: Sia S denotano la serie singolarmente-levigata ottenuta applicando semplice livellamento esponenziale di serie Y. Cioè, il valore di S al periodo t è dato da: (Ricordiamo che, in semplice livellamento esponenziale, questo sarebbe il tempo per Y al periodo t1) Allora che Squot denotano la serie doppiamente levigata ottenuta applicando semplice livellamento esponenziale (utilizzando lo stesso 945) per serie S:. Infine, le previsioni per Y tk. per qualsiasi kgt1, è data da: Questo produce e 1 0 (vale a dire imbrogliare un po ', e lasciare che la prima previsione uguale l'attuale prima osservazione), ed e 2 Y 2 8211 Y 1. dopo di che le previsioni sono generati usando l'equazione di cui sopra. Questo produce gli stessi valori stimati come la formula basata su S e S se questi ultimi sono stati avviati utilizzando S 1 S 1 Y 1. Questa versione del modello è usato nella pagina successiva che illustra una combinazione di livellamento esponenziale con regolazione stagionale. modello Holt8217s lineare esponenziale Brown8217s LES calcola stime locali di livello e l'andamento lisciando i dati recenti, ma il fatto che lo fa con un singolo parametro smoothing pone un vincolo sui modelli di dati che è in grado di adattarsi: il livello e tendenza non sono autorizzati a variare a tassi indipendenti. modello Holt8217s LES risolve questo problema includendo due costanti di lisciatura, uno per il livello e uno per la tendenza. In ogni momento t, come nel modello Brown8217s, il c'è una stima L t del livello locale e una T t stima della tendenza locale. Qui vengono calcolati ricorsivamente dal valore di Y osservata al tempo t e le stime precedenti del livello e l'andamento di due equazioni che si applicano livellamento esponenziale separatamente. Se il livello stimato e tendenza al tempo t-1 sono L t82091 e T t-1. rispettivamente, la previsione per Y tshy che sarebbe stato fatto al tempo t-1 è uguale a L t-1 T t-1. Quando si osserva il valore effettivo, la stima aggiornata del livello è calcolata in modo ricorsivo interpolando tra Y tshy e le sue previsioni, L t-1 T t-1, con pesi di 945 e 945. 1- La variazione del livello stimato, vale a dire L t 8209 L t82091. può essere interpretato come una misura rumorosa della tendenza al tempo t. La stima aggiornata del trend viene poi calcolata in modo ricorsivo interpolando tra L t 8209 L t82091 e la stima precedente del trend, T t-1. utilizzando pesi di 946 e 1-946: L'interpretazione del trend-smoothing costante 946 è analoga a quella del livello-levigatura costante 945. Modelli con piccoli valori di 946 assume che la tendenza cambia solo molto lentamente nel tempo, mentre i modelli con grande 946 supporre che sta cambiando più rapidamente. Un modello con un grande 946 ritiene che il lontano futuro è molto incerto, perché gli errori in trend-stima diventano molto importanti quando la previsione più di un periodo avanti. (Torna a inizio pagina.) Il livellamento costanti di 945 e 946 può essere stimato nel modo consueto minimizzando la media errore delle previsioni 1-step-ahead quadrato. Quando questo fatto in Statgraphics, le stime risultano essere 945 0,3048 e 946 0.008. Il valore molto piccolo di 946 significa che il modello assume molto poco cambiamento di tendenza da un periodo all'altro, in modo sostanzialmente questo modello sta cercando di stimare un trend di lungo periodo. Per analogia con la nozione di età media dei dati utilizzati nella stima del livello locale della serie, l'età media dei dati che viene utilizzato per stimare la tendenza locale è proporzionale a 1 946, anche se non esattamente uguale ad esso . In questo caso risulta essere 10,006 125. Questo isn8217t un numero molto preciso in quanto la precisione della stima di 946 isn8217t realmente 3 decimali, ma è dello stesso ordine generale di grandezza della dimensione del campione di 100, così questo modello è una media di più di un bel po 'di storia nella stima del trend. La trama meteo seguente mostra che il modello LES stima un leggermente maggiore tendenza locale alla fine della serie rispetto alla tendenza costante stimata nel modello SEStrend. Inoltre, il valore stimato di 945 è quasi identica a quella ottenuta inserendo il modello SES con o senza tendenza, quindi questo è quasi lo stesso modello. Ora, queste sembrano le previsioni ragionevoli per un modello che dovrebbe essere stimare un trend locale Se si 8220eyeball8221 questa trama, sembra che la tendenza locale si è trasformato in basso alla fine della serie Quello che è successo I parametri di questo modello sono stati stimati minimizzando l'errore quadratico delle previsioni 1-step-ahead, non le previsioni a lungo termine, nel qual caso la tendenza doesn8217t fare un sacco di differenza. Se tutti si sta guardando sono errori 1-step-avanti, non si è visto il quadro più ampio delle tendenze sopra (diciamo) 10 o 20 periodi. Al fine di ottenere questo modello più in sintonia con la nostra bulbo oculare estrapolazione dei dati, siamo in grado di regolare manualmente la tendenza-smoothing costante in modo che utilizzi una base più breve per la stima di tendenza. Ad esempio, se si sceglie di impostare 946 0.1, quindi l'età media dei dati utilizzati nella stima la tendenza locale è di 10 periodi, il che significa che ci sono in media il trend negli ultimi 20 periodi che o giù di lì. Here8217s quello che la trama del tempo si presenta come se impostiamo 946 0.1, mantenendo 945 0.3. Questo sembra intuitivamente ragionevole a questa serie, anche se probabilmente è pericoloso estrapolare questa tendenza eventuali più di 10 periodi in futuro. Che dire le statistiche di errore Ecco un confronto modello per i due modelli sopra indicati, nonché tre modelli SES. Il valore ottimale di 945.per modello SES è di circa 0,3, ma risultati simili (con leggermente più o meno reattività, rispettivamente) sono ottenute con 0,5 e 0,2. exp lineare (A) Holts. levigatura con alfa e beta 0,3048 0.008 (B) Holts exp lineare. levigatura con alpha 0.3 e beta 0.1 (C) livellamento esponenziale semplice con alfa 0,5 (D) livellamento esponenziale semplice con alpha 0.3 (E) livellamento esponenziale semplice con alpha 0.2 Le loro statistiche sono quasi identiche, quindi abbiamo davvero can8217t fare la scelta sulla base di errori di previsione 1-step-avanti all'interno del campione di dati. Dobbiamo ripiegare su altre considerazioni. Se crediamo fermamente che ha senso basare la stima attuale tendenza su quanto è successo negli ultimi 20 periodi o giù di lì, siamo in grado di fare un caso per il modello LES con 945 0,3 e 946 0.1. Se vogliamo essere agnostici sul fatto che vi è una tendenza locale, poi uno dei modelli SES potrebbe essere più facile da spiegare e darebbe anche altre previsioni middle-of-the-road per i prossimi 5 o 10 periodi. (Ritorna all'inizio pagina.) Quale tipo di trend-estrapolazione è meglio: L'evidenza empirica orizzontale o lineare suggerisce che, se sono già stati adeguati i dati (se necessario) per l'inflazione, allora può essere imprudente per estrapolare lineare a breve termine tendenze molto lontano nel futuro. Le tendenze evidenti oggi possono rallentare in futuro, dovuta a cause diverse quali obsolescenza dei prodotti, l'aumento della concorrenza, e flessioni cicliche o periodi di ripresa in un settore. Per questo motivo, semplice livellamento esponenziale spesso si comporta meglio out-of-sample che altrimenti potrebbero essere previsto, nonostante la sua quotnaivequot estrapolazione di tendenza orizzontale. modifiche di tendenza smorzato del modello di livellamento esponenziale lineare sono spesso utilizzati in pratica per introdurre una nota di conservatorismo nelle sue proiezioni di tendenza. Il modello LES smorzata-tendenza può essere implementato come un caso particolare di un modello ARIMA, in particolare, un modello (1,1,2) ARIMA. E 'possibile calcolare gli intervalli di confidenza intorno previsioni a lungo termine prodotte da modelli di livellamento esponenziale, considerandoli come casi speciali di modelli ARIMA. (Attenzione: non tutto il software calcola correttamente intervalli di confidenza per questi modelli.) La larghezza degli intervalli di confidenza dipende (i) l'errore RMS del modello, (ii) il tipo di levigatura (semplice o lineare) (iii) il valore (s) della costante di smoothing (s) e (iv) il numero di periodi avanti si prevedono. In generale, gli intervalli distribuite più veloce come 945 diventa più grande nel modello SES e si propagano molto più velocemente quando lineare piuttosto che semplice lisciatura viene utilizzato. Questo argomento è discusso ulteriormente nella sezione modelli ARIMA delle note. (Torna a inizio pagina.) LabVIEW Programmazione speciale Guide Topic Prima LabVIEW TroubleshootingLabVIEW Risoluzione dei problemi Nota speciale sulla libreria vis: A partire dal 2013 il simulatore cRIO è stato aggiunto. Questo ha introdotto due diverse versioni di molti dei WPILib vis, uno per l'esecuzione stand-alone su un PC e un altro per il funzionamento standard sul cRIO robot. La versione corretta del codice della libreria viene caricata in funzione della corrente di destinazione (PC vs cRIO). Un effetto collaterale dispari di questo è che se si elimina una libreria VI su un VI vuoto solo per drill-down per studiare l'interno, allora si avrà probabilmente ottenere la versione PC e youll essere studiare come funziona il simulatore Crio, non come la versione del robot delle opere di codice. Operazioni comuni Robot Ecco alcuni esempi di modi per fare alcune delle funzioni più comuni del robot. Poiché il quadro si diffonde gli elementi necessari su più file questi esempi sono in forma di immagine per ottenere tutti insieme le parti in cui è possibile vedere tutto in una pagina. Ogni esempio include i percorsi di menu a dove si trovano tutte le icone utilizzate all'interno di tale immagine. LabVIEW fornisce anche stand-alone pronto per eseguire esempi dalla finestra introduttiva che includono schemi di cablaggio per il collegamento di dispositivi in modo corretto. Quei progetti di esempio sono grandi per il test se un dispositivo è funzionante e collegato correttamente. Dal momento che sono programmi stand-alone che ci vuole una certa comprensione intermedia del quadro di default per capire come integrare correttamente i concetti nel progetto LabVIEW. JoystickExample (2015) WPI Robotics Biblioteca-DriverStation-joystick di programmazione-Array-Index Array digitale Esempio di ingresso. per esempio. finecorsa (2015) WPI Robotics Biblioteca-IO-DigitalInput analogico Esempio di ingresso (2015) WPI Robotics Biblioteca-IO-AnalogChannel relè Esempio (2015) WPI Robotics Biblioteca-attuatori-Relay WPI Robotics Biblioteca-DriverStation-Joystick Programmazione-confronto di programmazione-Array Array - Index Servo Esempio (2015) WPI Robotics Biblioteca-attuatori-Servo WPI Robotics Biblioteca-DriverStation-joystick Programmazione-confronto di programmazione-Array-Index Array singolo motore Esempio (2015) WPI Robotics Biblioteca-attuatori-MOTORCONTROL WPI Robotics Biblioteca-DriverStation - joystick Programmazione-Array-Index Array pulsante Toggle Azione (2015) WPI Robotics Biblioteca-DriverStation-joystick programmazione strutture di programmazione-confronto di programmazione-cluster, Class, variante di programmazione-Array-Index Array pulsante di controllo del motore Esempio (2015) WPI libreria robotica - Actuators-MOTORCONTROL WPI Robotics Biblioteca-DriverStation-joystick Programmazione-confronto di programmazione-Array-Index Array Vuoi più pulsanti Aggiungi un Seleziona per ogni in questo modo: non voglio avere a tenere premuto il pulsante quindi aggiungere una valutazione nodo da ricordare: Utilizzo una Xbox in cui i trigger sono in realtà letti come un asse: singolo solenoide Esempio (2015) WPI Robotics Biblioteca-attuatori-solenoide WPI Robotics Biblioteca-DriverStation-joystick di programmazione-Array-Index Array doppio solenoide Esempio (2015) WPI Robotics Biblioteca-SERVOMOTORI - solenoide di programmazione-booleana WPI Robotics Biblioteca-DriverStation-joystick di programmazione-Array-Index Array Arcade unità Esempio (2015) WPI Robotics Biblioteca-RobotDrive WPI Robotics Biblioteca-DriverStation-joystick di programmazione-Array-Index Array serbatoio unità Esempio (2015) WPI libreria robotica - RobotDrive WPI Robotics Biblioteca-DriverStation-joystick di programmazione-Array-Index Array holonomic o Mecanum unità Esempio (2015) WPI Robotics Biblioteca-RobotDrive WPI Robotics Biblioteca-DriverStation-joystick di programmazione-Array-Index array può Arcade unità Esempio (2017) WPI Robotics Biblioteca-attuatori-Motor Control-CAN motore-Talon SRX WPI Robotics Biblioteca-DriverStation-joystick di programmazione-Array-Index Array pulsante Start di Timed Azione (2015) - il momento giusto ritardi qui utilizzato come un esempio può essere sostituito con sensori che raccontano positivamente quando il meccanismo è armata o ha finito di girare. WPI Robotics Biblioteca-DriverStation-joystick programmazione strutture di programmazione-confronto di programmazione-Array-Index Array Quali Button è stato spinto (2015) - Utile per decidere quale dei vari pulsanti postazione di guida personalizzato joystick o è stato spinto. Questo agisce in base a quale di una serie di pulsanti è stato spinto. Più basso il tasto numerico vince se molti sono spinti in una sola volta. IO Programmazione-Structures WPI Robotics Biblioteca-DriverStation-Enhanced Programmazione-Array Programming-numerico Programmazione-booleana Programmazione-Array-Ricerca 1D Array pulsante di incremento di potenza (2015) - Questo aumenta o diminuisce la potenza ad un motore ogni volta che è stato premuto uno dei tasti , in modo che incrementa il potere ad un passo ad ogni spinta. Programmazione-strutture di programmazione-confronto di programmazione-Array-Index Array POV (Point of View o Cappello di controllo) (2017) - Il POV o l'interruttore Hat è un interruttore di controllo comune sui controller di gioco. La sua gestito in modo anomalo, perché è un pulsante 360 gradi che manda l'angolo direzionale è premuto (in incrementi di 45 gradi). solenoidi servi sono usati qui solo a titolo di esempio. Programmazione-strutture di programmazione-Array-Index Array WPI Biblioteca-attuatori-Servo WPI Biblioteca-attuatori a solenoide Switch (2015) - ha una leva per la selezione di cablaggio normalmente chiuso o normalmente aperto. Ha una modalità contatore che conta il numero di volte in cui viene attivato l'interruttore. WPI libreria robotica di switch-Sensori-Programmazione-Array-Index Array Interruttore (2015) WPI Robotics Biblioteca-DriverStation-joystick WPI Robotics Biblioteca-IO-DigitalInput programmazione strutture di programmazione di confronto programmazione booleani limite del gas (2015) - Questo esempio funziona SOLO in Teleop. vi perché dipende dal tasso di 50Hz regolare a cui Teleop. vi viene chiamato. Per utilizzare in Attività periodiche, per esempio, si sarebbe chiamato all'interno di un ciclo e un ritardo ciclo sarebbe aggiunto. WPI Robotics Biblioteca-DriverStation-joystick WPI Robotics Biblioteca-attuatori-MOTORCONTROL Programmazione-numerico Programmazione-Array-Index Array Joystick Response Curve (2015) - esempio è una curva di risposta al cubo semplice WPI Robotics Biblioteca-DriverStation-joystick WPI Robotics Biblioteca-SERVOMOTORI - MOTORCONTROL Programmazione-confronto Programmazione-numerico Programmazione-Array-Index Array joystick banda morta (2015) - Come affrontare con un joystick sciatta che pretende molto molto tornare a zero quando viene rilasciato. Il primo esempio ha la stessa banda morta, ma tronca la potenza del motore consegna tra il 0,1 e 1 (o -.1 e -1), in modo che nessun potere .05 mai si presenta. Questo è buono per dispositivi come drivetrains, che suole muovono con meno .3 potere comunque. Dà il joystick un po 'più serie. Nel secondo esempio il joystick viene ignorata all'interno della banda morta (0,1 per -.1 in questo esempio) e al di fuori quella band offre potenza del motore da 0 a 1. WPI Robotics Biblioteca-DriverStation-Joystick WPI di automazione della libreria-attuatori-MOTORCONTROL Programming - Confronto Programmazione-numerico Programmazione-Array-Index Array joystick Max Throttle Limite (2015) - Come affrontare con un treno di azionamento questo è troppo veloce (anche se non puoi attrezzarsi verso il basso). Il primo esempio utilizza l'acceleratore su un joystick Extreme 3D come controllo variabile per limitare il potere di guida max compreso tra 50-100. Una possibile variante potrebbe essere quella di consentire una maggiore potenza all'ingresso rotazione Arcade. Nel secondo esempio, la potenza massima è limitata a un hardcoded 80. WPI Robotics Biblioteca-DriverStation-joystick WPI Robotics Biblioteca-attuatori-MOTORCONTROL Programmazione-confronto Programmazione-numerico Programmazione-Array-Index Array tensione Corretto Serbatoio rigido Esempio (2015) - questo è un modo semplice per rendere i controlli di unità di risposta un po 'più consistente WPI Robotics Biblioteca-RobotDrive WPI Robotics Biblioteca-DriverStation-joystick a 3 posizioni switch (2015) WPI Robotics Biblioteca-IO-DigitalInput Programmazione-confronto di programmazione-numerico digitale 0-9 BCD switch (2015) WPI Robotics Biblioteca-IO-DigitalInput Programmazione-booleana Programmazione-Array scrivere i dati su disco (2015) Programmazione-File IO programmazione-File Costanti IO-scrittura dei file immagine su disco (2015) Programmazione-File IO programmazione-File IO-File Costanti prima visione-Image gestione Tachimetro (2015) - assume un sensore digitale, come ad esempio un sensore di luce retroriflettente, è utilizzato per rilevare un oggetto rotante. Una cautela su Counter - può produrre strapazzate o falsi valori all'avvio, quindi fate attenzione ed esaminare i risultati prima volta che si mette in funzione. WPI Robotics Biblioteca-Sensori-Counter Encoder (2015) consente solo per quattro encoder da campionare a 4x, ma molti a 2X. WPI di automazione della libreria-Sensori-Encoder WPI Robotics Biblioteca-IO-DigitalInput giroscopio (2015) WPI di automazione della libreria-Sensori-Gyro Accelerometro (2015) WPI di automazione della libreria-Sensori-Accelerometro potenziometro (2015) WPI Robotics Biblioteca-sensori - potenziometro sensore ultrasonico - solo per accoppiato emittersensor stile Vex (2015) WPI di automazione della libreria-Sensori-ultrasuoni I2C sensore (2015) WPI Robotics Biblioteca-Communications-I2C Programming-programmazione matrice-numerico-Data Manipulation Programmazione-Array-Index Array Reverse o Swap Qual è il fronte di Robot (2017) Programmazione-strutture di programmazione-booleani Programmazione-numerico di programmazione-Array-indice di matrice contare le cose (2015) WPI Robotics Biblioteca-IO-DigitalInput programmazione strutture di programmazione-confronto di programmazione-booleana media mobile (2015) - Si chiama questo subVI per aggiungere un nuovo valore con ogni chiamata e produce la media su una finestra degli ultimi n campioni. Dite che il numero di valori (n) a media solo con la prima chiamata, da allora in poi, che l'ingresso viene ignorato. Esso permette anche di sapere quando hai raggiunto una serie completa di valori. Questo esempio illustra l'inizializzazione, il sequenziamento di evitare i valori che compromettono come li si usa, la salvaguardia di modificare gli ingressi, che non può essere cambiato, la gestione di array, e la creazione di un indice in bicicletta. LabVIEW ha parecchi filtri incorporati che fanno il lavoro per voi si trova nella Funzioni Pallete sotto Signal Processing-filtri. Programmazione-programmazione matrice-strutture di programmazione-confronto Programmazione-numerico Programmazione-numerico-Conversion Programmazione-booleana Programmazione-sincronizzazione State Machine (2015) - l'idea è che si vuole fare cose diverse in base a un particolare stato il programma sta inseguendo. In questo esempio youd aggiungere un qualche tipo di attività per ogni stato, come ad esempio l'attivazione di solenoidi o motori. Uniti potrebbero cambiare in base al feedback dei sensori, come ad esempio un sensore di palla. WPI Robotics Biblioteca-DriverStation-joystick programmazione strutture di programmazione-confronto di programmazione-Array-Index Array ritardata evento della programmazione-numerico (2015) - questo è per l'uso all'interno iterativo vis, come ad esempio Teleop, e semplicemente potrebbe iniziare un'azione, poi fermarlo n secondi più tardi. Questo tipo di azione può essere eseguita per via VI tempo trascorso. schiavi Questo codice una pentola sul robot per la x - WPI Robotics Biblioteca-DriverStation-joystick programmazione strutture di programmazione-confronto Programmazione-Timing Programmazione-numerico Programmazione-numerico-conversione di programmazione-Array-Index Array P (ID) Esempio (2015) - axis di un joystick tramite retroazione proporzionale. Nessun termine I o D servono. La maggior parte del lavoro qui è solo la parte che mappa la gamma completa di movimento del joystick al sensore potenziometro motore dello sterzo (pot). La parte PID è piuttosto semplice. La parte più difficile è messa a punto del coefficiente di P sperimentando con il robot reale. WPI Robotics Biblioteca-DriverStation-joystick WPI Robotics Biblioteca-IO-AnalogChannel WPI di automazione della libreria-attuatori-MOTORCONTROL PID Programmazione-numerico Programmazione-Array-Index Array Camera Esempio (2015) WPI Robotics Biblioteca-Camera prima visione-Image di gestione di programmazione-Strutture interrupt (2015) l'utilizzo di questo sarà raro, ma questo può essere utilizzato sia con un ingresso digitale o un trigger analogico. WPI di automazione della libreria-Utility-Interrupt WPI Robotica Biblioteca-IO-DigitalInput equazioni (2015) Programmazione-numerici Matematica-elementare-Funzioni trigonometriche speciali funzioni di programmazione-Structures Il nodo formula permette l'inserimento di un buon sottoinsieme di C. non solo permette di scrivere le equazioni, ma loop e codice condizionale pure. Chiamare codice C (2015) per chiamare funzioni C da LabVIEW è possibile creare una libreria sorgente C, quindi chiamare in quella biblioteca utilizzando una funzione di chiamata di libreria. Per il codice semplice utilizzare il nodo formula di cui sopra. Il nodo formula permette l'inserimento di un buon sottoinsieme di C. Non solo ti consente di scrivere le equazioni, ma loop e codice condizionale pure. Programmazione autonoma autonoma Independent. vi può essere più attività in parallelo. Ad esempio, le seguenti due campioni possono coesistere tranquillamente nella stessa vi. Due sequenze indipendenti che operano allo stesso tempo, una guida il robot mentre l'altra lampeggia un indicatore di stato solenoide. Questo caso è abbastanza semplice, tuttavia, illustra che molto più complicato tasking indipendente parallelo come questo è possibile. Forse un robot giocoleria durante la navigazione un labirinto. Piatto Sequence - Probabilmente il metodo più semplice di programmare una sequenza fissa di mosse autonome. Tutto all'interno di una cornice deve completare prima che il fotogramma successivo avrà inizio. Ha l'aspetto di pellicola cinematografica. Questo esempio presuppone alcun abilitata motore sicure sono sono state disattivate: Get Microsoft Excel Viewer Get Microsoft PowerPoint Viewer Scarica WinZip Copyright copia 2005-2017 Hauppauge Robotics. Tutti i diritti riservati. A proposito di questo sito.
Comments
Post a Comment