Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 
Rispondere

reinizializzare un arrey e fare un a media

Risolto!
Vai alla soluzione
Highlighted

reinizializzare un arrey e fare un a media

Buonasera, devo acquisire e comandare delle misure di pressione in tempo reale e ho pensato ad un array su labview. Vorrei sapere se esiste un array che mi permetta di fare una media ogni n valori e mandarla in uscita.

Per comprenderci meglio dovrei fare una media mobile degli n-valori di pressione in modo da stabilizzare il controllo di una valvola di riduzione delle pressioni visto che il segnale del misuratore di pressione oscilla eccessivamente. 

grazie e spero di essere stato chiaro.

 

 

0 Kudos
Messaggio 1 di 9
136Visualizzazioni

Rif.: reinizializzare un arrey e fare un a media

La funzione Mean Point By Point, che trovi nella palette Signal Processing -> Point By Point -> Prob & Stat, risolve tutti i tuoi problemi senza dover creare un array. Restituisce la media su un numero fisso di campioni.

Se però hai bisogno di elaborazioni più raffinate, per esempio variare il numero di campioni in base al valore, allora devi implementare un buffer circolare, col quale potrai fare tutto ciò che vuoi (con un po' di lavoro).

Paolo
-------------------
LV 7.1, 2011, 2017
0 Kudos
Messaggio 2 di 9
106Visualizzazioni

Rif.: reinizializzare un arrey e fare un a media

Ciao, ti ringrazio per avermi risposto.

Ho provato la mean ptbypt  ad esempio se imposto sample lenght 5 il VI dovrebbe darmi la media ogni 5 valori in ingresso, giusto?

Nello schema allegato però non funziona, mi restituisce lo stesso numero che il generatore di numeri casuali mi fornisce. Perchè?

Grazie ancoraaa

 

 

0 Kudos
Messaggio 3 di 9
92Visualizzazioni

Rif.: reinizializzare un arrey e fare un a media

Se passi sempre true all'input di Reset, il vi ogni volta ricomincia dall'inizio.

Devi resettare, una sola volta, per sbarazzarti dei dati vecchi quando passi da una sessione di misura ad un'altra.

Paolo
-------------------
LV 7.1, 2011, 2017
0 Kudos
Messaggio 4 di 9
82Visualizzazioni

Rif.: reinizializzare un arrey e fare un a media

Perdona la mia inesperienza, ma se metto come sample lenght=2 e i valori di input sono 1 ogni secondo dovrebbe restituirmi 1 valore mediato ogni due secondi (se ho capito bene) e questo lavoro lo dovrebbe fare in continuo così da mandare a comando la media.

ps Ho corretto il true con un boolean, l' ho inizializzato con true e poi sono passato a false mai da sempre lo stesso problema e cioè mi da i valori del random number. 

ripeto scusa la mia inesperienza e ti ringrazio tantissimo.

0 Kudos
Messaggio 5 di 9
74Visualizzazioni

Rif.: reinizializzare un arrey e fare un a media

Restituisce, ogni secondo, il valore mediato sugli ultimi due secondi.

Dal momento in cui passi false in poi, comincia a mediare, prima ovviamente no.

Manda il vi oppure un'immagine se hai LabVIEW 2018 (con LV2017 non lo potrei aprire).

Paolo
-------------------
LV 7.1, 2011, 2017
0 Kudos
Messaggio 6 di 9
67Visualizzazioni

Rif.: reinizializzare un arrey e fare un a media

Quindi ogni secondo avrei la media degli ultimi due e automaticamente al primo secondo avrei lo stesso numero del random number ovviamente.

TI ho allegato immagine e VI (ho il 2017 purtroppo);

Quando eseguo a rallentatore, in uscita (Numeric 2 sul VI), leggo sempre lo stesso numero del random number.

perchè?

 

 

0 Kudos
Messaggio 7 di 9
60Visualizzazioni
Soluzione
Accettato da autore argomento Fabrisalsh
02-13-2019 06:01 AM

Rif.: reinizializzare un arrey e fare un a media

Se mandi un true nel Conditional Terminal, il loop termina subito e così il vi. Siccome hai usato Run Continuously, però, il vi viene continuamente riavviato. Questo vuol dire che ad ogni iterazione si riparte da zero; il risultato è quello che vedi, ed è equivalente a resettare ogni volta.

Ti consiglio di non usare mai Run Continuously, genera più danni che altro. Crea invece un pulsante per terminare il loop  (rimuovi la costante booleana e il suo filo, poi fai right-click sull'input del Conditional Terminal e seleziona Create Control). Usa il bottone Run per avviare il vi.

 

Paolo
-------------------
LV 7.1, 2011, 2017
0 Kudos
Messaggio 8 di 9
57Visualizzazioni

Rif.: reinizializzare un arrey e fare un a media

Ora si che funziona! graziee

Lo implemento nel mio PID e ti faccio sapere, intanto ti ringrazio..mi hai risolto un problemoneSmiley FeliceSmiley Felice

0 Kudos
Messaggio 9 di 9
52Visualizzazioni