Vai al contenuto
PLC Forum


Selezione Parametri Giroscopio - Come effettuare la scelta?


Neway

Messaggi consigliati

Sto utilizzando il giroscopio con interfaccia SPI L3G4200D della ST. Il giroscopio ha la velocità di campionamento selezionabile tra 100, 200, 400, 800 Hz è così completo che integra al suo interno due filtri configurabili:un passa basso (selezionabile tra 12,5 e 110Hz) e un passa alto (da 0,01 a 56Hz) . Non ho idea di come scegliere questi tre parametri.

Aggiungo che il PIC18 che uso eseguirà il controllo a una velocità di 200Hz e che la mia applicazione è la stabilizzazione del rollio di un aeromodello.

Che parametri scelgo?

user posted image

Grazie

Link al commento
Condividi su altri siti


Simone Baldini

I parametri dipendono dall'entità del rollio e dalle velocità di reazione dei servi che hai.

Per aeromodelli io non saprei dirti molto, qualcosa sugli hely si.

Se lo fai per tuo divertimento ok, altrimenti esisto dei giroscopi ad ok. Io ne ho montati anche sulle auto radiocomandata per driftare.

Modificato: da Simone Baldini
Link al commento
Condividi su altri siti

Si tratta della mia tesi di laurea. Non cambia molto dagli elicotteri. Uso servi hitec HSG-5084MG, quelli ultraveloci per rotori di coda, la velocità di rollio saranno abbastanza contenute.

Più che altro vorrei capire su cosa si basa la scelta di questi tre parametri. Sulla frequenza di campionamento so poco e niente, nel senso che ho sempre studiato il controllo di sistemi a tempo continuo. Per quanto riguarda i filtri, pur avendoli studiati in controlli automatici, non riesco a capire come modifichino un segnale quale quello in uscita da un giroscopio.

Detto così a naso, penso che più è alta la frequenza di campionamento, meglio è (credo). Per i filtri non ne ho idea!

Modificato: da Neway
Link al commento
Condividi su altri siti

C'è un teorema che determina la frequenza di campionamento, è il teorema di Shannon.

Da questo teorema si ricava che fmax = 1/2 Ncampioni/1". In altri termini se campioni a 100Hz (100 campioni/1") la massima frequenza che puoi riprodurre è 50Hz - epsilon (un infinitesimo).

la frequenza di campionamento dovrebbe essere scelta in base alle esigenze di controllo. Campionare troppo velocemente può anche essere deleterio per il controllo.

Per i filtri.

Se configuri, ad esempio, il passa alto con frequenza di taglio a 20Hz ed il passa basso con frequenza di taglio a 40 Hz dovresti avere in uscita solo segnali la cui frequenza è compresa tra 20Hz e 40Hz.

Questi filtri dovrebbero servire, secondo me, ad eliminare tutti i segnali spuri del giroscopio dovuti a vibrazioni od altro.

Cosa intendi con questo? Forse che l'algoritmo di regolazione ha un perido pari 5 ms?

Per curiosità qule è il tuo corso di studi?

Link al commento
Condividi su altri siti

Ok, so che i filtri fanno questo lavoro ma: supponiamo che i filtri siano impostati in modo da far passare segnali compresi tra 20Hz e 40Hz. Cosa succede se il giroscopio ruota a velocità angolare costante? Ho in uscita zero?

E' esatto. A causa del massiccio lavoro a cui è sottoposto il PIC, non riesco a eseguire più di 200 cicli di controllo al secondo. In ogni ciclo il PIC legge i dati dei sensori, li elabora e calcola la giusta deflessione delle superfici mobili.

C'è comunque da aggiungere che la posizione l'attuatore è aggiornata ogni 20ms (50Hz) perchè questo è lo standard di comunicazione dei servocomandi per modellismo.

Torniamo ora alla frequenza di campionamento.

Ok tutto chiaro. In effetti lo conoscevo già come teorema di nyquist, ma come al solito molti teoremi hanno nomi multipli.

Però nel mio caso il segnale ha frequenza quasi nulla visto che la velocità angolare varia in maniera quasi continuao al massimo può esserci un cambio del verso di rotazione neanche troppo veloce. Diciamo che ho una frequenza massima di una decina di Hz.

A questo punto mi basterebbe un campionamento a 20Hz, però, visto che ne ho la possibilità, non è meglio fare quante più letture possibili al secondo? Perchè

?

Ingegneria aerospaziale (laurea specialistica). L'elettronica la conosco da praticone in quanto hobby da quando avevo 10 anni.

La mia relatrice ha la cattedra di dinamica del volo, in cui rientra il controllo dei velivoli.

Tutti i problemi su cui mi state aiutando potrei tranquillamente chiederli a lei, ma fin quando possibile preferisco sforzarmi a trovare da solo le risposte.

Link al commento
Condividi su altri siti

Se aggiorni l'attuatore ogni 50 ms è inutile, anzi dannoso, ripetere l'algoritmo a velocità maggiore.

Stesso discorso vale per i sensori.

Questi son problemi tipici, anzi di base, della controllistica.

Nyquist si occupa della stabilità.

Non conosco, se non molto superficialmente questi dispositivi. I filtri servono a ... filtrare, cioè a togliere i segnali considerati disturbi.

Presumo che il giroscopio dia in uscita segnali proporzionali agli spostamenti angolari nello spazio, un po' come una piattaforma inerziale (potrei anche scrivere cose inesatte perchè son trasdutori di cui ho solo qualche vaga informazione). I filtri dovrebbero escludere tutti quei segnali derivanti da vibrazioni o altri movimenti che non si devono o possono correggere.

Da ultimo, per tornare al controllo.

Ammesso che il regolatore sia la parte più veloce della catena, si sceglie la sua frequenza in base al componente più lento, ossia al traduttore più lento o all'attuatore più lento.

Ti faccio un esempio banale.

Se il tuo attuatore può aggiornarsi con periodo <= 20ms, cambiare il suo valore di riferimento ogni 5ms, non solo non produce effetti ma tende a portare il regolatore a lavorare male. Idem se il trasduttore riproduce variazioni con velocità < 5 ms.

Sempre per curiosità personale, che tipo di algoritmo di controllo stai usando? Osservatore-predittore? Altro?

Link al commento
Condividi su altri siti

Premetto che non ho aperto questo topic perchè sono uno studente scarso e non capisco ciò dovrei sapere. Da noi, come nella maggior parte delle università, il senso pratico è un miraggio. Il nostro professoe di controlli automatici è la teoria fatta persona: fin quando deve spiegare con i simboli è contento, a livello intuitivo (la cosa più importante) è una frana. Di controlli reali non ne sappiamo NULLA.

Ok, faccio però una considerazione alla fine.

Il CRITERIO di Nyquist è sulla stabilità. Wikipedia da ragione a entrambi rolleyes.gif

http://it.wikipedia.org/wiki/Teorema_del_c...Nyquist-Shannon

Chiarissimo!

Prima ho semplificato molto dicendo che si tratta di un aeromodello. In realtà si tratta di un modello di razzo. E' un hobby poco conosciuto qui in Italia, ma comune negli USA, che pratico già da una decina d'anni. Per placare le curiosità riporto il link al sito ufficiale dell'associazione italiana

http://www.acmeitalia.org

Si tratta di modelli non guidati, dunque c'è sempre un rollio dovuto a imperfezioni costruttive o altri effetti, riporto qui un video di un mio modello che presenta questo effetto:

Super slow motion a 200fps:

http://youtu.be/TY_y2Zt20Kg

Velocità normale:

http://youtu.be/prTFVsKMEs8

I sensori sono tre: un giroscopio, un accelerometro e un barometro. Il Kalman per il primo rimuove solamente il rumore, quello per accelerometro e barometro, oltre a filtrare il rumore, fonde le informazioni per ottenere un altimetro baroinerziale.

Il controllore principale è l'ultima cosa che mi rimane da implementare sul firmware. Ma se le simulazioni con matlab mi garberanno userò un semplice PID. L'informazione in ingresso sulla velocità di volo serve per calcolare la deflessione ottimale delle alette.

user posted image

In vista delle ciò mi hai insegnato, correggimi se sbaglio, penso questo sia il modo ottimale di procedere:

In fondo il blocco di sensori + kalman è separato da quello di controllore + attuatore. Il primo deposita le informazioni sul vettore di stato che poi viene utilizzato dal controllore.

Sui Kalman ho una buona esperienza ed è indubbio che maggiore è la frequenza di campionamento ed elaborazione, migliore è lo stato ricostruito. Dopodichè potrei invocare l'algoritmo di controllo alla frequenza dell'attuatore. Ergo:

Frequenza di campionamento interna del giroscopio -> 200Hz

Frequenza di esecuzione dei filtri di Kalman per ricostruire lo stato -> 200Hz

Gli altri due sensori sono analogici, dunque sono campionati anch'essi a 200Hz

Frequenza di esecuzione dell'algoritmo di controllo -> 50Hz

Frequenza di aggiornamento della posizione dell'attuatore -> 50Hz (la massima possibile)

Mi scuso per la lunghezza e chiedo ancora grazie.

Modificato: da Neway
Link al commento
Condividi su altri siti

Cominciamo dall'inizio.

Non per polemica ma per amor di chiarezza.

Nel monmdo reale quando fai riferimento Shannon subito si pensa alla frequnza minima per ricostruire un segnale campionato. Quando si parla di Nyquist si pensa a Bode ad alla stabilità, perchè sia Nyquist che Bode sono i pilastri su cui si basa l'analisi della stabilità ad anello chiuso.

Vieniamo ora alproblema pratico del tuo controllo.

Se oltre a Mathlab hai anche simulink potresti simulare molto bene il tuo controllo e, vedere sul simulatore, cosa sigifica capionare in sovracampionatura.

Devi sempre pensare che alla fine c'è un passa basso che è, di solito, l'attuatore.

Nel caso tu usassi i PID come regolatore è abbastanza facile da verificare cosa fa l'integrale se la sua azione non ha riscontro nella realtà: l'integrale cresce non perchè l'errore reale rimane invariato, ma cresce perchè l'errore reale....non è reale.

Solitamente gli apprendisti stregoni riducono il coefficiente di integrazione rallentando l'azione integrale, in altri termini si cura un errore introducendone un secondo, idem per le altre due componenti.

[la definizione "apprendisti stregoni" non è mia ma del Katz, professore dell'università di TelAviv che un trennio fa pubblicò un bel libretto sui controlli digitali, tra l'altro c'è un esempio di controllo di un missile.]

Poi c'è un altro parametro da tenere in debito conto. Il tempo di esecuzione dell'algoritmo di regolazione non è costante; se non metti in atto qaulche strategia opportuna di correzione finisci per avere del bel rumore sovrapposto alla regoalzione. E' il famoso jitter di fase sull'uscita.

Altro elemento di criticità.

Un regolatore PID è abbastanza semplice da realizzare, funziona bene su praticamente tutti i controlli, però ha un difetto di origene: interviene quando l'errore si è verificato.

Per velocizzare le regoalzioni ci sono alcune strategie. La più semplice consiste nell'affiancare un feedforward al feedback del PID. In questo modo si minimizza l'errore ed il PID ha vita facile.

Un'altra, più complessa ma più efficace, usa un modello di osservatore con relativo predittore per per controllare in feedforward; a questo poi affianchi un semplice P(I).

Ti faccio un esempio banale ma molto chiarificatore.

Immagina di dover riempire un serbatoio di liquido si ad un certo livello (come lo sciacquone del water). Puoi mettere un misuratore di livello e ridurre la portata del liquido man mano che il livello reale approssima il livello bersaglio. Se la qauntià è minima e/o la velocità di reimpimento non è fondamentale, questo approccio funziona bene.

Immagina ora di dever immettere liquido in un grande serbatio e che la velocità sia fondamentale. A questo punto basarsi sulla sola reazione non basta, devi conoscere la qauntità di liquido immesso, la qauntità da raggiungere, la portata del liquido e ridurre la portata solo all'ultimo istante utile per non superare il limite.

Come vedi le due strategie sono comoletamente differenti, ma il risultato finale è il medesimo: raggiungere il livello bersaglio.

Senza offesa, prova a leggere il mio tutorial sulle regolazioni; è estremamente pratico, ci saranno si e no 5 formule perchè è rivolto ad un tipo di utilizzatori pratici.

Lo trovi Qui

Link al commento
Condividi su altri siti

Ho letto tutto il tutorial. Molto chiaro e interessante. Ho chiarito molti punti oscuri che mi erano rimasti dalle lezioni universitarie.

Veramente.... non l'ho capito unsure.gif

Dopo aver letto il tutorial mi è chiaro. In effetti avevo previsto di aggiornare l'uscita alla fine dell'elaborazione whistling.gif

Più che apprendista stragone sono a livello di aiutante apprendista stregone. Però imparerò.

Grazie ancora. Ti farò sapere com'è andata!

Link al commento
Condividi su altri siti

Credevo che fosse molto chiaro. sad.gif

Cerco di banalizzare e semplificare con un esempietto.

Immagina di avere un errore che vale 3 ed un coefficiente integrale che vale 1. Significa che ad ogni esecuzione dell'algoritmo di regolazione, ad errore costante, l'integrale si incrementa di 3. Ammesso per semplicità di ragionamento che non ci siano altre correzioni e coefficienti, all'uscita il riferimento si sarà ioncrementato di 3. L'attuatore dovrà, per esempio crescere la sua velocità in proprozione. Al prossimo campionamento l'errore dvrebbe essere inferiore. Però se l'attuatore non ha ancora reagito l'errore sarà identico e l'integrale crescerà ancora della medesima entità.

Se ad esempio l'attuatore risponde in 20 ms e ed il regolatore esegue ogni 5 ms, ci saranno state 4 correzioni senza alcuin effetto. nel caso in esempio l'integrale è cresciuto di 12, senza che l'attuatore abbia potuto reagire.

Capirai che questo fatto è causa di instabilità. L'effetto esterno assomiglia ad un tempo di integrazione troppo veloce, quindi si corre ai ripari riducendo il tempo di integrazione.

Il medesimo ragionamento devi farlo anche per i coefficienti P e D.

Alla fine ci sitrova un regolatore con prestazioni inferiori a quelle che avrebbe se il suo periodo di esecuzione fosse leggermente inferiore al tempo di risposta dell'attuatore.

Questo, ovviamente, vale anche per il trasduttore.

La spegazione è proprio terra-terra, non ha certo un rigore scientifico, però spero ti abbia aiutato a comprendere il fenomeno.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...