Sommario:

Insegnare il controllo PID con i robot Lego: 14 passaggi
Insegnare il controllo PID con i robot Lego: 14 passaggi

Video: Insegnare il controllo PID con i robot Lego: 14 passaggi

Video: Insegnare il controllo PID con i robot Lego: 14 passaggi
Video: Dall'Anatomia alla Culinaria e dalla Scimmia all'Uomo, prof. Valerio Parisi 2024, Luglio
Anonim
Insegnare il controllo PID con i robot Lego
Insegnare il controllo PID con i robot Lego

Molti giovani appassionati di robot sono interessati ad argomenti di controllo più avanzati, ma possono essere ostacolati dal calcolo spesso richiesto per analizzare i sistemi a circuito chiuso. Ci sono meravigliose risorse disponibili online che semplificano la costruzione di un "Controllore Proporzionale Integrale Differenziale" (Controllore PID), e una grande descrizione è qui:

Tuttavia, questi possono essere difficili da seguire e potrebbero non essere adatti per una classe di circa 20 studenti.

Questo tutorial passo passo mostra come insegnare con successo a una stanza piena di studenti usando il sistema robot Lego, un numero di robot (da 5 a 10 di loro), un numero uguale di postazioni di lavoro con NXT 2.0 e una pista di sette piedi di colore nero nastro isolante sul pavimento.

A PARTE: Grazie a J. Sluka, che ha scritto il link sopra, al Dr. Bruce Linnell, che ha creato alcuni dei primi laboratori Lego a livello dell'Università ECPI, e al Dr. Reza Jafari, che ha fornito idee per la mappatura degli obiettivi di apprendimento del controllo PID verso l'EET220 e Corsi di Capstone.

Fase 1: Preparazione del laboratorio prima dell'arrivo degli studenti

Preparazione del laboratorio prima dell'arrivo degli studenti
Preparazione del laboratorio prima dell'arrivo degli studenti

Fai conoscere agli studenti il tuo duro lavoro;-)

Gli istruttori e gli assistenti didattici sono stati MOLTO impegnati a prepararti per questo laboratorio! Il robot è stato caricato e assemblato per questo laboratorio. Se è necessario il montaggio, questo può richiedere fino a 90 minuti di tempo per uno o più robot. Ancora più tempo è necessario per caricare le batterie o condizionarle con cicli di carica/scarica. Per istruzioni dettagliate su come costruire il robot che useremo oggi, vedere il kit didattico NXT 2.0 o 2.1, la guida alla costruzione del robot "segui una linea". Useremo una programmazione più complessa però… Il nastro isolante nero su linoleum di colore chiaro fa una grande traccia. Questo è 3 'x 7' con curve semicircolari.

Passaggio 2: familiarizzare con il robot

Familiarizzare con il Robot
Familiarizzare con il Robot

Innanzitutto, familiarizzerai con il menu del robot e con alcune parti di questo particolare robot. Imparerai anche la tecnologia dei sensori in stile industriale utilizzata dal robot, inclusi diodi emettitori di luce, sensori di luce, motori passo-passo e sensori di posizione di rotazione. Assicurati di compilare tutte le informazioni richieste (di solito gli spazi vuoti sottolineati _).

1. Scollega il robot dal caricabatterie e/o dalla porta USB del tuo PC. Usa il pulsante arancione per accendere il robot. I pulsanti arancione, sinistro e destro e il pulsante rettangolo grigio "indietro" consentono la navigazione nei menu. Passare al menu "File software" e scorrere i file software disponibili sul robot. Elenca i nomi di ciascun file software, esattamente come è scritto, comprese le maiuscole e gli spazi:

_

Passaggio 3: calibrare il sensore di luce

Calibrare il sensore di luce
Calibrare il sensore di luce

2 Esaminare il sensore di luce e le informazioni di calibrazione. Torna al menu principale e seleziona "Visualizza". Seleziona l'opzione "Luce riflessa" e la Porta (dovrebbe essere "Porta 3") che fa accendere la luce e visualizzare un numero sullo schermo. Assicurati che tutto funzioni e registra alcune informazioni sulla calibrazione.

un. Lettura massima utilizzando un foglio di carta bianco: Numero:_ Descrivere la distanza approssimativa dal foglio: _

B. Lettura massima su pavimento in linoleum di colore chiaro: _

C. Lettura minima quando si punta al centro del nastro isolante nero: _

Passaggio 4: test di calibrazione del motore

Calibrazione del motore di prova
Calibrazione del motore di prova

3 Esaminare i motori delle ruote (sinistro e destro) e le informazioni sulla calibrazione. Torna al menu principale e seleziona "Rotazioni motore" Seleziona la porta (dovrebbe essere "Porta B" o "Porta C" per i due motori). Vedere se è possibile verificare la calibrazione di questa lettura ruotando ogni motore di un numero fisso di rotazioni durante la visualizzazione della lettura. Eseguirete lo stesso test di calibrazione per entrambi i motori utilizzando la schermata di calibrazione "Visualizza" à "Gradi motore".

Motore sulla porta B

  • Numero di volte in cui hai ruotato la ruota _
  • Valore di visualizzazione “Rotazioni motore”_
  • La distanza in gradi è stata ruotata_
  • Valore di visualizzazione “Gradi motore”_

Motore su porta C

  • Numero di volte in cui hai ruotato la ruota _
  • Valore di visualizzazione “Rotazioni motore”_
  • La distanza in gradi è stata ruotata_
  • Valore di visualizzazione “Gradi motore”_

I valori visualizzati sono stati d'accordo con le tue aspettative? Spiega per favore. _

Passaggio 5: eseguire il controller On-Off fornito

Esegui il controller On-Off fornito
Esegui il controller On-Off fornito

Un controller "On-Off" (a volte chiamato "Bang-Bang") ha solo due opzioni, on e off. È simile al controllo del termostato di casa. Quando è impostato su una temperatura prescelta, il termostato riscalderà la casa se fa troppo freddo e raffredderà la casa se fa troppo caldo. La temperatura scelta è chiamata "Set Point" e la differenza tra la temperatura attuale della casa e il Set-Point si chiama "Errore". Quindi potresti dire, se l'errore è positivo, accendi l'aria condizionata, altrimenti accendi il riscaldamento.

Nel nostro caso il robot girerà a Sinistra oa Destra, a seconda che il Set-Point del sensore di luce abbia un errore positivo o negativo (troppo sul pavimento bianco, o troppo sul nastro nero).

Noterai che il tuo robot potrebbe essere già caricato con un numero di programmi (oppure puoi usare il file allegato "01 line.rbt" incorporato qui) memorizzati su di esso con nomi come "1 riga" e "2 riga" e anche lì può essere una lettera aggiuntiva dopo il numero del programma, ad esempio "riga 3b". Dovrai eseguire il programma con il numero "1" nel nome e quindi posizionare il robot sulla traccia del nastro, con il sensore sulla linea nera. Cerca di stare lontano da altri robot già in pista in modo da poter cronometrare il tuo robot senza interruzioni di urtare altri robot.

4 Misurare le seguenti prove a tempo:

un. Tempo per completare un lato dritto della pista: _

B. Descrivi il movimento rettilineo del robot: _

C. Tempo per completare una curva del tracciato: _

D. Descrivi il movimento del robot a binario curvo: _

e. È ora di fare il giro completo della pista una volta: _

Passaggio 6: aprire il software del controller On-Off "Linea 01"

Apri il
Apri il
Apri il
Apri il
Apri il
Apri il

Aprirai il software “LEGO MINDSTORMS NXT 2.0” (non il software Edu 2.1) e caricherai l'apposito programma chiamato "01 line.rbt" ed esaminerai e modificherai il software, seguendo le istruzioni seguenti:

Apri il software “LEGO MINDSTORMS NXT 2.0” (non il software Edu 2.1). Il tuo istruttore ti dirà dove sono archiviati i file sul tuo computer e da quella posizione aprirai il programma "1 riga". Basta selezionare "File", quindi "Apri" e scegliere il programma "1 riga" da aprire.

Una volta che il programma è aperto, puoi utilizzare l'icona "mano" per spostare l'intera immagine dello schermo del programma e puoi utilizzare l'icona "freccia" per fare clic sui singoli oggetti per vedere come funzionano (e anche apportare modifiche).

Passaggio 7: Comprensione del software del controller On-Off "Linea 01"

Capire il
Capire il

Il programma “1 riga” utilizza un metodo di controllo “On-Off”. In questo caso, le scelte sono "Svolta a sinistra" o "Svolta a destra". Il grafico contiene una descrizione degli elementi del programma:

Passaggio 8: modifica del software del controller On-Off "Linea 01"

Modificare il
Modificare il

Modificare il Set-point e confrontare i risultati.

Hai scoperto alcuni valori reali dell'esposimetro nel passaggio 2 sopra. Hai registrato i valori nelle parti b e c, i numeri per i valori minimo e massimo che il robot vedrebbe durante l'esecuzione della pista.

5 Calcolare un BUON valore di set-point (la media del minimo e del massimo): _

6 Scegli un valore BAD set-pint (un numero molto vicino al minimo o al massimo): _

Modificare il set-point in uno di questi valori utilizzando l'icona della freccia per fare clic sulla casella di calcolo dell'errore e modificando il numero che viene sottratto (vedi immagine sotto). Ora collega il robot al PC tramite il cavo USB, assicurati che il robot sia acceso e scarica la nuova versione del programma “1 riga” sul robot. Vedrai quanto tempo impiega il robot a percorrere il tracciato in senso orario, una volta con il setpoint BUONO e una volta con il setpoint ERRATO.

7 Prove a cronometro complete con valori di set-point BUONI e CATTIVI

un. Tempo per fare il giro completo della pista una volta (BUON Set-Point): _

B. Tempo per fare il giro completo della pista una volta (BAD Set-Point): _

Le vostre osservazioni/conclusioni? _

Passaggio 9: Comprensione della "Linea 02" On-Off con il software del controller della zona morta

Capire il
Capire il

Se l'aria condizionata e il riscaldamento della tua casa continuassero ad accendersi e spegnersi tutto il giorno, potrebbero sicuramente distruggere il tuo sistema HVAC (o almeno ridurne la vita). La maggior parte dei termostati è realizzata con una "zona morta" incorporata. Ad esempio, se il tuo set-point è 70 gradi Fahrenheit, il termostato potrebbe non accendere l'aria condizionata fino a raggiungere i 72 gradi, né accendere il riscaldamento fino a quando la temperatura non è scesa a 68 gradi. Se la zona morta diventa troppo ampia, la casa potrebbe diventare scomoda.

Nel nostro caso, utilizzeremo il programma della linea 02 per aggiungere una zona morta, durante la quale il robot guiderà semplicemente dritto.

Esaminare ora il File Software “02 line” come descritto nel grafico e come contenuto nel file allegato.

Questo file software programma il robot per seguire la linea utilizzando il controllo On-Off con un differenziale. Questo è anche noto come Deadband e significa che il robot girerà a sinistra oa destra a seconda dell'errore, ma se l'errore è piccolo, il robot andrà dritto.

Il programma “02 line” calcola quanto sopra prima sottraendo il set point dalla misurazione della luce, quindi effettuando i confronti come sopra indicato. Esamina il programma sul PC e registra i valori che vedi.

Qual è il valore attuale (originale) dei programmi “2 righe” del Set-Point? _

Qual è il valore corrente (originale) dei programmi "2 righe" "Grande" errore positivo? _

Qual è il valore corrente (originale) dei programmi "2 righe" "Grande" errore negativo? _

Quale intervallo di errore di banda morta farà andare dritto il robot? DA A _

Esegui tre (3) prove a tempo con valori diversi per l'errore "Grande" sopra. Calcolerai le attuali impostazioni "2 righe" e altre due impostazioni. Hai già scelto un BUON Set-Point per il tuo robot. Ora sceglierai due diversi intervalli di banda morta e registrerai il tempo impiegato dal robot per compiere un giro in senso orario:

Impostazioni originali per la riga 02 _

Banda morta da +4 a -4 _

Banda morta da +12 a -12 _

Passaggio 10: comprensione del software del controller proporzionale "03 Line"

Capire il
Capire il

Con il controllo proporzionale, non ci limitiamo ad accendere o spegnere il fuoco, potremmo avere diverse impostazioni per quanto alzare il forno (come la dimensione delle fiamme su un piano cottura). Nel caso del robot, non abbiamo solo tre impostazioni del motore (sinistra, destra e dritto). Invece possiamo controllare la velocità delle ruote sinistra e destra per ottenere un'ampia varietà di velocità di sterzata. Più grande è l'errore, più velocemente vogliamo tornare alla linea.

Diamo un'occhiata al Controllo Proporzionale con il programma “03 line”

Il programma per la “linea 03” è più complicato perché non solo imposta il metodo di controllo “Proporzionale”, ma contiene anche tutto il software per fare i controlli Proporzionale-Integrale, Proporzionale-Differenziale e Proporzionale-Integrale-Differenziale (PID).. Quando carichi il software sarà probabilmente troppo grande per stare tutto in una volta sullo schermo, ma ha davvero tre parti, come mostrato nel grafico allegato.

A – La matematica per calcolare l'errore e il “calcolo” per trovare l'integrale e la derivata dell'errore nel tempo.

B – La matematica per calcolare la velocità del motore sinistro in base alle impostazioni del controllo PID di Kp, Ki e Kd

C – La matematica per testare i limiti di velocità del motore e inviare le velocità corrette del motore ai motori sinistro e destro.

Tutti e tre eseguono i propri cicli infiniti (dopo l'inizializzazione) e puoi navigare usando l'icona "mano", ma torna all'icona "freccia" per esaminare il contenuto della scatola e modificare le impostazioni.

Passaggio 11: modifica del programma 03 Line (controllo proporzionale)

Modifica del programma della linea 03 (controllo proporzionale)
Modifica del programma della linea 03 (controllo proporzionale)

Nella sezione centrale (sezione B nella descrizione precedente) noterete che nel programma “03 line” le impostazioni di Ki e Kd sono entrambe 0.

Lasciamoli così. Cambieremo solo il valore di Kp, la parte proporzionale del controller.

Kp decide con quale velocità il robot cambia velocità mentre si allontana dalla linea. Se Kp è troppo grande, il movimento sarà estremamente a scatti (simile al controller On-Off). Se Kp è troppo piccolo, il robot effettuerà le correzioni troppo lentamente e si allontanerà dalla linea, specialmente sulle curve. Potrebbe persino andare così lontano da perdere del tutto la linea!

13 Quale Set-Point utilizza il programma “linea 03”? (sottratto dopo aver letto l'impostazione della luce nel ciclo A)_

14 Qual è il valore di Kp nell'attuale programma “linea 03”? _

Prove a Tempo per Controllore Proporzionale (programma “3 righe”)

Utilizzerai le impostazioni originali del programma “Linea 03” salvate nella memoria del tuo robot per fare una cronometro, e utilizzerai anche altre due modifiche al programma “Linea 03” per un totale di tre misurazioni della cronometro. Le modifiche che devi apportare includono

DRIFTY - Trovare un valore di Kp che faccia andare il robot molto lentamente alla deriva, e possibilmente perdere di vista la linea (ma si spera di no). Prova un Kp con valori diversi tra 0,5 e 2,5 (o un altro valore) finché non ne ottieni uno in cui il robot Drift, ma rimane sulla linea.

JERKY - Trovare un valore di Kp che faccia strattonare il robot avanti e indietro, molto simile al tipo di movimento On-Off. Prova un valore Kp da qualche parte tra 1,5 e 3,5 (o un altro valore) finché non ottieni uno in cui il robot inizia a mostrare il movimento avanti e indietro, ma non in modo troppo drammatico. Questo è anche noto come il valore "critico" di Kp.

Le prove cronometrate per un intero giro in senso orario intorno alla pista sono necessarie solo con i valori originali "3 linee" e le due nuove serie di valori (DRIFTY e JERKY) che scoprirai facendo in modo che il robot segua solo un breve tratto di pista. Non dimenticare di scaricare ogni volta le modifiche sul tuo robot!

15 Registrare i valori del controllo proporzionale e delle prove a tempo per il programma "3 righe" (ricordarsi di scaricare le modifiche sul robot!) per ciascuno di questi tre valori di Kp (il valore originale della linea 03 e due valori che si determinano per tentativi ed errori essere DRIFTY e JERKY).

Passaggio 12: controller PID avanzati

Controllori PID avanzati
Controllori PID avanzati
Controllori PID avanzati
Controllori PID avanzati

Prima di iniziare questo passaggio, assicurati di completare i passaggi precedenti, registrando tutte le informazioni richieste, con il particolare robot che intendi utilizzare per questo laboratorio. Ogni robot è leggermente diverso, per quanto riguarda gli aspetti meccanici, gli aspetti motori e soprattutto i risultati del sensore di luce in pista.

Numeri che ti serviranno dagli esperimenti precedenti

16 Lettura massima del sensore di luce (dal punto 2) _

17 Lettura minima del sensore di luce (dal punto 5) _

18 BUONA impostazione del Set-Point (media dei precedenti) _

19 Impostazione DRIFTY per Kp (dal punto 15) _

20 Impostazione JERKY (critica) per Kp (dal punto 15) _

Comprensione del controller PID

Potresti aver appreso del controller Proportional Integral Differential (PID) come parte di un corso sui controlli industriali e una buona panoramica rapida è online su Wikipedia (https://en.wikipedia.org/wiki/PID_controller).

Nel caso di questo esperimento, il valore misurato è la quantità di luce riflessa dal pavimento. Il set-point è la quantità di luce desiderata quando il robot si trova direttamente sopra il bordo del nastro nero. L'errore è la differenza tra la lettura della luce corrente e il set-point.

Con il controller proporzionale, la velocità del motore sinistro era proporzionale all'errore. Nello specifico:

Errore = Lettura Leggera – Set-Point

In questo grafico, il setpoint è stato impostato su 50.

Successivamente, per trovare la velocità del motore sinistro, moltiplichiamo l'errore per la costante proporzionale "Kp" in particolare:

L Motore = (Kp * Errore) + 35

Dove in questo grafico, Kp è impostato su 1,5 e l'aggiunta del 35 avviene in un'altra parte del programma. Il valore di 35 viene aggiunto per convertire un numero compreso tra -40 e +40 in un numero compreso tra 10 e 60 (velocità del motore ragionevoli).

L'Integrale è una specie di memoria del passato. Se l'errore persiste da molto tempo, il robot dovrebbe accelerare verso il setpoint. Ki viene utilizzato per moltiplicare per l'integrale (l'integrale è la somma corrente degli errori - in questo caso, ridotta di 1,5 ogni iterazione in modo che il robot abbia una "memoria sbiadita" degli errori passati).

La derivata è una sorta di previsione futura. Prevediamo un errore futuro confrontando l'ultimo errore con l'errore corrente e assumiamo che il tasso di variazione dell'errore sarà in qualche modo lineare. Più grande è previsto l'errore futuro, più velocemente dobbiamo spostarci al set-point. Kd viene utilizzato per moltiplicare per la derivata (la derivata è la differenza tra l'errore corrente e l'errore precedente).

L Motore = (Kp * Errore) + (Ki * Integrale) + (Kd * Derivata) + 35

Passaggio 13: trovare i migliori parametri PID

Trovare i migliori parametri PID
Trovare i migliori parametri PID
Trovare i migliori parametri PID
Trovare i migliori parametri PID
Trovare i migliori parametri PID
Trovare i migliori parametri PID

Esistono diversi modi per trovare i parametri PID, ma la nostra situazione presenta aspetti unici che ci consentono di utilizzare un modo sperimentale più "manuale" per trovare i parametri. Gli aspetti unici che abbiamo sono:

  • Gli sperimentatori (voi) avete una buona comprensione del modo in cui funziona la macchina
  • Non c'è pericolo di lesioni personali se il controller impazzisce, e inoltre nessun pericolo di danneggiare il robot a causa di cattive impostazioni del controller
  • Il sensore di luce è un dispositivo di rilevamento così sciatto e c'è solo un sensore di luce, quindi possiamo solo sperare di ottenere un risultato finale marginalmente buono. Quindi un "miglior sforzo" va bene per i nostri esperimenti

In primo luogo, abbiamo già utilizzato la "linea 03" per decidere il miglior Kp (i valori di GOOD Set-point e JERKY Kp, passaggi 18 e 20 sopra). Vedere il primo grafico per le istruzioni su come abbiamo trovato il valore JERKY per Kp.

Utilizzare il software "04 line" per determinare Ki. Per prima cosa modificheremo "4 riga" per avere i valori che abbiamo registrato nei punti 18 e 20 sopra. Successivamente aumenteremo lentamente il Ki fino a ottenere un valore che ci sposti davvero molto rapidamente al set-point. Vedere il secondo grafico per le istruzioni su come selezionare il valore per il Ki.

21 FASTEST Valore di Ki che si assesta sul set-point più veloce (anche con qualche overshoot) _

Utilizzare il software “05 line” per determinare Kd. Modificare prima “5 righe” con i valori dei passaggi 18, 20 e 21, quindi aumentare Kd fino ad ottenere il robot di lavoro finale che raggiunge il set-point rapidamente e con un eventuale superamento minimo. Il terzo grafico mostra le istruzioni su come selezionare Kd.

22 OTTIMALE Valore di Kd _

23 QUANTO TEMPO IMPIEGA IL TUO ROBOT A PERCORRE IN PISTA ADESSO??? _

Passaggio 14: Conclusione

L'esperimento di laboratorio è andato molto bene. Con circa 20 studenti, utilizzando le 10 (dieci) postazioni di lavoro + robot mostrate nel primo grafico, non c'è mai stato un ingorgo di risorse. Al massimo tre robot percorrevano la pista alla volta per le prove a cronometro.

Raccomando di suddividere la parte di controllo PID (almeno, i programmi "linea 04" e "linea 05") in un giorno separato, a causa dei concetti coinvolti.

Ecco una sequenza di video che mostrano la progressione dei controlli (da "linea 01" a "linea 05") utilizzando i valori che ho selezionato, ma ogni studente ha trovato valori leggermente diversi, come prevedibile!

RICORDA: Uno dei motivi principali per cui le squadre di robot molto ben preparate ottengono risultati scarsi negli eventi di competizione è il fatto che non eseguono la calibrazione nel luogo esatto in cui si svolgerà l'evento. L'illuminazione e le leggere variazioni di posizione dei sensori dovute a urti possono influenzare notevolmente i valori dei parametri!

  • Controllo PID linea 01 (On-Off) con Robot Lego -
  • 02 line (On-Off con Dead-Zone) Controllo PID con Lego Robots -
  • Controllo PID (proporzionale) della linea 03 con i robot Lego -
  • Controllo PID della linea 04 (Proporzionale-Integrale) con i robot Lego -
  • Controllo PID della linea 05 (Proporzionale-Integrale-Derivativo) con Robot Lego -

Consigliato: