in data 09-25-2013 11:32 AM
Buonasera,
mi scuso per il titolo del post ma non mi viene in mente nulla di migliore.
Vi espongo il mio problema,cui non riesco a trovare soluzione. Devo eseguire il post-process di un segnale prelevato da un motore e variabile nel tempo,ed il mio file è costituito da due colonne,una relativa appunto al tempo e l'altra al segnale in oggetto. Conosco gli istanti di tempo al quale l'albero si trova in una posizione precisa e la velocità di rotazione.Quello che vorrei fare è passare dalla coordinata tempo alla coordinata angolare, ma proprio non riesco a legare il tempo agli angoli facendo in modo che questi varino in un range 0°/720° (o -360° / +360°).In pratica sul mio waveform graph visualizzo la forma d'onda relativa al segnale,con inizio ad un tempo generico e fine ad un tempo generico,ma vorrei aggiungere una scala relativa alla posizione angolare.
Possibile legare in questo modo tempo e angoli?
grazie mille
Salvatore
in data 09-26-2013 03:03 AM
Ciao Salvatore,
se conosci la velocità di rotazione e la posizione iniziale, dal tempo riesci facilmente a ricavare la posizione angolare per ogni istante di tempo.
se vuoi poi visualizzare due assi X sul grafico, puoi cliccare con il tasto destro del mouse su un numero dell'asse x attuale e selezionare "Duplicate Scale".
Ciao!
Licia
in data 09-26-2013 04:09 AM
Ciao Licia,
grazie per la risposta. Anche a me l'unica idea che era venuta era quella di acquisire il primo valore corrispondente alla posizione nota fino al tempo corrispondente a due giri completi (i 720° di cui parlavo) ed aggiungere una ulteriore scala sul waveform (0/720° appunto). Purtroppo però la posizione nota varia a seconda dei dati che analizzo,quindi di volta in volta dovrei andare a vedere qual'è il tempo a cui la posizione è nota,inserirlo nel programma e da lì cominciare l'analisi del segnale.
Io mi chiedevo se era possibile ricavare una vera e propria funzione matematica che legasse il tempo alla posizione angolare,in modo da non dover essere vincolato, dovrebbe quindi essere una funzione periodica.
Grazie per l'aiuto!
Salvatore
in data 09-26-2013 04:27 AM
Ciao Salvatore,
ma la velocità angolare è nota e costante? In tal caso, la relazione che lega tempo a posizione angolare è una semplice proporzione.
Ciao!
Licia
in data 09-26-2013 05:57 AM
Ciao Licia
cerco di spiegare più dettagliatamente il problema. Ho un motore che gira all'incirca a 1500 giri/min (la velocità non è esattamente costante,può variare di poco,ad esempio 1530-1470 rpm, ma io per semplificare la assumo costante) ed acquisisco un segnale con una frequenza di 204800Hz. Ho una serie di file contenenti ognuno circa 50 cicli motore e con la mia struttura event (quella dell'altro posto che ho scritto) leggo un numero di campioni pari ad un ciclo del motore (facendo i calcoli sono circa 16000 campioni), corrispondente a due giri dell'albero,quindi a 720°. Ho inoltre un altro file che mi riporta il tempo al quale inizia un ciclo,cioè il punto 0° per intenderci. Per cui se comincio la lettura del file esattamente da quel tempo e leggo i circa 16000 valori,aggiungendo semplicemente una scala ho risolto il problema. In questo modo però:
1. Devo modificare tutti i file da processare e fare in modo che inizino tutti al tempo relativo al punto 0°,che devo trovare di volta in volta nell'altro file (avevo pensato di scrivere una parte di codice che acquisisse come primo valore quello relativo al tempo a 0°, ma tale tempo come dicevo varia da file a file)
2. Se volessi prendere un numero di campioni minore per analizzare più dettagliatamente una parte di un ciclo,vado a perdere l'informazione relativa agli angoli.
Per questo motivo se trovassi la funzione che lega istante per istante tempo e posizione angolare (non velocità angolare) avrei risolto entrambi i problemi.
Non so se mi sono espresso bene,magari è una sciocchezza ma non riesco ad uscirmene.
Grazie ancora !
Salvatore
in data 09-26-2013 07:46 AM
Ciao Salvatore,
forse non mi è del tutto chiaro il problema, ma se la velocità di rotazione è nota e costante, la relazione tra gradi e tempo è immediata:
1500 giri/min = 9000 gradi/s
Quindi:
posizione angolare = (9000 * tempo [s]) gradi
Dovrai ovviamente sommare la posizione in gradi al tempo 0s.
Sto forse sottovalutando o male interpretando qualcosa?
Ciao,
Licia
in data 09-27-2013 02:48 AM
Ciao Licia
si,effettivamente la relazione è quella che hai scritto,solo che io vorrei che mentre la scala dei tempi avanza con i cicli successivi (ad esempio il primo ciclo si svolge tra 0 e 1 secondo, il secondo tra 1 e 2 secondi, ecc.), quella angolare vari sempre tra 0 e 720°, mentre con la relazione da te scritta anche gli angoli avanzano (ad esempio al terzo ciclo avrei 1440°-2160°).
Adesso che ci penso,creando un contatore per il ciclo motore, potrei scalare questi valori (dividerli per il numero del ciclo) e sottraendo la posizione angolare relativa al tempo 0s,avere quindi la scala variabile sempre tra 0 e 720°.
A questo punto mi sorgono un quesito e un problema, il quesito è come faccio a far diventare l'array che ho ottenuto una scala del mio waveform graph?
Il problema invece che pensavo fosse di minore entità è relativo alla velocità di rotazione non "abbastanza costante", perchè (ho calcolato che) al variare del tempo del ciclo,varia ovviamente la velocità di rotazione,quindi i gradi al secondo e con essa il numero di campioni per ciclo
0,08 s/ciclo -> 1500 rpm -> 9000 °/s -> 16384 sample/ciclo
0.0805 s/ciclo -> 1490 rpm -> 8940 °/s -> 16493 sample/ciclo
Inserendo nel programma i dati relativi alla velocità di 1500 rpm dopo un paio di cicli,non mi trovo più con i valori,nel senso che la scala angolare non è più coerente con il segnale...
Mi sa che al mio problema non vi è soluzione!
Comunque grazie per l'aiuto che mi hai dato e che mi stai dando!
in data 09-27-2013 02:59 AM
Ciao Salvatore,
per avere l'array dei dati di poisizione come asse x del grafico, potresti plottare i dati su un XY Graph, che accetta come tipo di dato un cluster di array dei campioni dell'asse x e array dei campioni dell'asse y.
Ciao!
Licia
in data 09-27-2013 03:59 AM
Ciao Licia,
grazie di tutto,sei stata di grande aiuto!
Salvatore