Sommario:
- Passaggio 1: Introduzione
- Passaggio 2: sistema di controllo basato su PID
- Passaggio 3: Robot autobilanciante
- Passaggio 4: progettazione del robot
- Passaggio 5: componenti del progetto
- Passaggio 6: struttura del robot
- Passaggio 7: codice
- Passaggio 8: conclusione
- Passaggio 9: ringraziamenti speciali
Video: Robot di autobilanciamento che utilizza l'algoritmo PID (STM MC): 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Recentemente è stato fatto molto lavoro sull'autobilanciamento degli oggetti. Il concetto di autobilanciamento è iniziato con il bilanciamento del pendolo invertito. Questo concetto si estese anche alla progettazione di velivoli. In questo progetto, abbiamo progettato un piccolo modello di robot autobilanciato utilizzando l'algoritmo PID (Proportional, Integral, Derivative). Da allora, questo metodo è il nuovo volto dei sistemi di controllo dei processi industriali. Questo rapporto esamina i metodi coinvolti nell'autobilanciamento degli oggetti. Questo progetto è stato condotto come progetto semestrale per comprendere la correlazione del PID sull'efficienza di vari processi industriali. Qui ci concentriamo solo nel fornire una breve rassegna sull'efficacia e l'applicazione del controllo PID. Questo documento è stato sviluppato fornendo una breve introduzione ai sistemi di controllo e alle relative terminologie, oltre alle motivazioni del progetto. Sono state fatte sperimentazioni e osservazioni, descritti pregi e demeriti con fine ai futuri miglioramenti. È stato sviluppato un modello di robot autobilanciato per comprendere l'ecacia del PID nel mondo dei sistemi di controllo. Passando attraverso alcuni rigorosi test ed esperimenti, sono stati scoperti pregi e demeriti del sistema di controllo PID. È stato scoperto che, nonostante i molti vantaggi del controllo PID rispetto ai metodi precedenti, questo sistema richiede ancora molti miglioramenti. Si spera che il lettore comprenda bene l'importanza dell'autobilanciamento, l'efficacia e le carenze del controllo PID
Passaggio 1: Introduzione
Con l'avvento dei computer e l'industrializzazione dei processi, nel corso della storia dell'uomo, c'è sempre stata la ricerca per sviluppare modi per raffinare i processi e, soprattutto, per controllarli utilizzando le macchine in modo autonomo. Lo scopo è quello di ridurre il coinvolgimento dell'uomo in questi processi, riducendo così l'errore in questi processi. Pertanto, è stato sviluppato il campo dell'"ingegneria dei sistemi di controllo". L'ingegneria del sistema di controllo può essere definita come l'utilizzo di vari metodi per controllare il funzionamento di un processo o il mantenimento di un ambiente costante e preferito, manuale o automatico.
Un semplice esempio potrebbe essere il controllo della temperatura in una stanza. Per Controllo Manuale si intende la presenza di una persona in un sito che verifica le condizioni presenti (sensore), lo confronta con il valore desiderato (elaborazione) e intraprende le azioni appropriate per ottenere il valore desiderato (attuatore). Il problema con questo metodo è che non è molto affidabile in quanto una persona è soggetta a errori o negligenza nel suo lavoro. Inoltre, un altro problema è che la velocità del processo avviato dall'attuatore non è sempre uniforme, il che significa che a volte può verificarsi più velocemente del necessario o talvolta può essere lento. La soluzione a questo problema era utilizzare un microcontrollore per controllare il sistema. Il microcontrollore è
programmato per controllare il processo, secondo determinate specifiche, collegato in un circuito (da discutere in seguito), alimentato il valore o le condizioni desiderati e quindi controlla il processo per mantenere il valore desiderato. Il vantaggio di questo processo è che non è richiesto alcun intervento umano in questo processo. Inoltre, la velocità del processo è uniforme
Sistema di controllo di base
Il diagramma precedente mostra una versione molto semplificata di un Sistema di Controllo. Il microcontrollore è il cuore di qualsiasi sistema di controllo. Si tratta di un componente molto importante pertanto, la sua scelta di scelta va fatta con attenzione in base ai requisiti del Sistema. Il microcontrollore riceve un input dall'utente. Questo ingresso definisce la condizione desiderata del sistema. Il microcontrollore riceve anche un input di feedback dal sensore. Questo sensore è collegato all'uscita del sistema, le cui informazioni vengono restituite all'ingresso. Il microprocessore, in base alla sua programmazione, esegue vari calcoli e fornisce un output all'attuatore. L'attuatore, in base all'uscita, controlla l'impianto per cercare di mantenere quelle condizioni. Un esempio potrebbe essere un driver del motore che guida un motore in cui il driver del motore è l'attuatore e il motore è l'impianto. Il motore, quindi, ruota ad una data velocità. Il sensore collegato legge lo stato attuale dell'impianto e lo restituisce al microcontrollore. Il microcontrollore confronta nuovamente, effettua calcoli e quindi il ciclo si ripete. Questo processo è ripetitivo e infinito per cui il microcontrollore mantiene le condizioni desiderate
Passaggio 2: sistema di controllo basato su PID
L'algoritmo PID è un metodo eciente per progettare un sistema di controllo.
definizione
PID sta per Proporzionale, Integrale e Derivativo. In questo algoritmo, il segnale di errore ricevuto è l'input. E la seguente equazione viene applicata al segnale di errore
U(t) = Kp∗e(t) + Kd∗d/dt(e(t)) + Ki∗integrale(e(t)) (1.1)
Breve spiegazione
Come si vede dall'equazione di cui sopra, si calcolano l'integrale e la derivata dei segnali di errore, si moltiplicano con le rispettive costanti e si sommano con la costante Kp moltiplicata per e(t). L'uscita viene quindi inviata all'attuatore che fa funzionare il sistema. Ora diamo un'occhiata a ciascuna parte della funzione a turno. Questa funzione influenza direttamente il tempo di salita, il tempo di discesa, il picco di overshoot, il tempo di assestamento e l'errore di stato stazionario.
• Parte proporzionale: La parte proporzionale riduce il tempo di salita e diminuisce l'errore di regime. Ciò significa che il sistema impiegherà meno tempo per raggiungere il suo valore di picco e quando raggiunge il suo stato stazionario, l'errore di stato stazionario sarà basso. Tuttavia, aumenta il superamento del picco.
• Parte derivativa: La parte derivativa riduce l'overshoot e il tempo di assestamento. Ciò significa che lo stato transitorio del sistema sarà più smorzato. Inoltre, il sistema raggiungerà il suo stato stazionario in un tempo minore. Tuttavia, non ha alcun effetto sul tempo di salita o sull'errore di stato stazionario.
• Parte integrale: La parte integrale riduce il tempo di salita ed elimina completamente l'errore di stato stazionario. Tuttavia, aumenta il superamento del picco e il tempo di assestamento.
• Sintonizzazione: un buon sistema di controllo avrà tempi di salita bassi, tempo di assestamento, superamento di picco ed errore di stato stazionario. Pertanto, Kp, Kd, Ki devono essere calibrati finemente per regolare il contributo dei suddetti fattori al fine di acquisire un buon Sistema di Controllo.
La figura è stata allegata che mostra l'effetto della modifica di vari parametri nell'algoritmo PID.
Passaggio 3: Robot autobilanciante
Un robot autobilanciato è un robot a due ruote multistrato.
Il robot cercherà di bilanciarsi applicando una o più forze disuguali. Si bilancerà applicando una forza che si oppone alla risultante delle forze sul robot.
Metodi di autobilanciamento
Esistono quattro metodi di autobilanciamento dei robot. Questi sono i seguenti:
Autobilanciamento con due sensori di inclinazione IR
Questo è uno dei modi più rozzi per bilanciare il robot in quanto richiede molto meno hardware e un algoritmo relativamente semplice. In questo approccio, vengono utilizzati due sensori IR inclinati per misurare la distanza tra il suolo e il robot. In base alla distanza calcolata, il PID può essere utilizzato per azionare i motori per bilanciare di conseguenza il robot. Uno svantaggio di questo metodo è che il sensore IR può perdere alcune letture. Un altro problema è che sono necessari un interrupt e loop per il calcolo della distanza che aumenta la complessità temporale dell'algoritmo. Quindi, questo metodo di bilanciamento del robot non è molto eciente.
Autobilanciamento tramite accelerometro
L'accelerometro ci fornisce l'accelerazione del corpo su 3 assi. L'accelerazione orientata sull'asse y (verso l'alto) e sull'asse x (avanti) ci fornisce la misura per calcolare la direzione della gravità e quindi calcolare l'angolo di inclinazione. L'angolo si calcola come segue:
θ = arctan(Ay/Ax) (1.2)
Lo svantaggio dell'utilizzo di questo metodo è che durante il movimento del robot, alle letture verrà aggiunta anche l'accelerazione orizzontale, che è un rumore ad alta frequenza. Quindi, l'angolo di inclinazione sarà impreciso.
Autobilanciamento con giroscopio
Un giroscopio viene utilizzato per calcolare le velocità angolari lungo i tre assi. L'angolo di inclinazione si ottiene utilizzando la seguente equazione.
p(i) = θp(i−1) + 1/6(vali−3 + 2vali−2 + 2vali−1 + vali) (1.3)
Un grosso svantaggio dell'utilizzo del giroscopio è che ha un piccolo DC Bias che è un rumore a bassa frequenza e in poco tempo i valori restituiti sono completamente sbagliati. Questo, dopo l'integrazione, farà allontanare il punto zero. Di conseguenza, il robot rimarrà nella sua posizione verticale per un po' di tempo e cadrà quando arriverà la deriva.
Autobilanciamento utilizzando sia l'accelerometro che il giroscopio
Come discusso sopra, l'uso solo dell'accelerometro o del giroscopio non ci darà l'angolo di inclinazione corretto. Per tenere conto di ciò, vengono utilizzati sia l'accelerometro che il giroscopio. Questi sono entrambi incorporati in MPU6050. In questo otteniamo i dati da entrambi e poi li fondiamo utilizzando il filtro di Kalman o il filtro complementare.
• Filtro di Kalman: il filtro di Kalman calcola la migliore stima dello stato di un sistema dinamico da misurazioni rumorose, riducendo al minimo l'errore quadratico medio della stima. Opera in due fasi, predizione e correzione, date le equazioni stocastiche discrete che descrivono la dinamica del sistema. Tuttavia, è un algoritmo molto complesso da implementare soprattutto su un hardware limitato di un microcontrollore.
• Filtro complementare: questo algoritmo utilizza principalmente i dati ottenuti dal giroscopio e li integra nel tempo per ottenere l'angolo di inclinazione. Utilizza anche una piccola percentuale di letture dell'accelerometro. Il filtro complementare, infatti, riduce al minimo il rumore ad alta frequenza dell'accelerometro e il rumore a bassa frequenza del giroscopio e poi li fonde per dare il miglior angolo di inclinazione preciso.
Passaggio 4: progettazione del robot
Abbiamo progettato un robot di autobilanciamento utilizzando il controller Proportional Derivative implementato da Complementary Filter per MPU6050. Questo piccolo modellino di Self Balancing Robot ci illustrerà l'utilità dei Sistemi di Controllo nell'Auto Bilanciamento dei robot.
Implementazione del sistema:
Il sistema è un robot autobilanciante. Viene implementato utilizzando il controller PID che è un controller proporzionale integrale derivato. Bilanciamo il robot guidando le sue ruote nella direzione della sua caduta. Nel fare ciò, stiamo cercando di mantenere il baricentro del robot al di sopra del punto di rotazione. Per guidare le ruote nella direzione della sua caduta, dovremmo sapere dove sta cadendo il robot e la velocità con cui sta cadendo. Questi dati sono ottenuti utilizzando MPU6050 che ha un accelerometro e un giroscopio. MPU6050 misura l'angolo di inclinazione e trasmette il suo output al Micro-Controller. MPU6050 è interfacciato con la scheda STM tramite I2C. In I2C, un filo è per l'orologio chiamato SCL. L'altro è per il trasferimento dei dati che è SDA. In questo, viene utilizzata la comunicazione master-slave. L'indirizzo iniziale e l'indirizzo finale sono specificati per sapere da dove iniziano e dove finiscono i dati. Abbiamo implementato il filtro complementare qui per MPU6050 che è un filtro matematico per unire le uscite dell'accelerometro e del giroscopio. Dopo aver ottenuto i dati da MPU6050, il microcontrollore eseguirà i calcoli per sapere dove sta cadendo. Sulla base dei calcoli, il microcontrollore STM darà i comandi al conducente del motore per guidare i veicoli nella direzione di caduta che bilancerà il robot.
Passaggio 5: componenti del progetto
I seguenti componenti sono stati utilizzati nel progetto del robot di autobilanciamento:
STM32F407
Un microcontrollore progettato da ST Microelectronics. Funziona sull'architettura ARM Cortex-M.
Driver motore L298N
Questo circuito integrato è utilizzato per far funzionare il motore. Ha due ingressi esterni. Uno dal microcontrollore che gli fornisce un segnale PWM. Regolando l'ampiezza dell'impulso, è possibile regolare la velocità del motore. Il suo secondo ingresso è la sorgente di tensione necessaria per azionare il motore, che nel nostro caso è una batteria da 12 V.
Motore CC
Un motore CC funziona con un'alimentazione CC. In questo esperimento, il motore CC funziona utilizzando gli accoppiatori ottici collegati al driver del motore. Per pilotare il motore abbiamo utilizzato il Motor Drive L298N.
MPU6050
MPU6050 viene utilizzato per ottenere le informazioni su dove sta cadendo il robot. Misura l'angolo di inclinazione rispetto al punto di inclinazione zero che è la posizione dell'MPU6050 quando il programma inizia a funzionare.
L'MPU6050 ha un accelerometro a 3 assi e un giroscopio a 3 assi. L'accelerometro misura l'accelerazione lungo i tre assi e il giroscopio misura la velocità angolare attorno ai tre assi. Per combinare l'output, dobbiamo filtrare i rumori di entrambi. Per filtrare i rumori, abbiamo Kalman e il filtro complementare. Abbiamo implementato il filtro complementare nel nostro progetto.
Coppia Opto 4N35
Un fotoaccoppiatore è un dispositivo utilizzato per isolare la parte a bassa tensione e la parte ad alta tensione del circuito. Come suggerisce il nome, funziona sulla base della luce. Quando la parte a bassa tensione riceve un segnale, la corrente scorre nella parte ad alta tensione
Passaggio 6: struttura del robot
La struttura del robot è spiegata come segue:
Struttura fisica
Il robot autobilanciante è costituito da due strati costituiti da vetro plastico trasparente. Di seguito sono riportati i dettagli dei due strati:
Primo strato
Nella parte inferiore del primo strato, abbiamo posizionato una cella per alimentare la scheda STM. Anche due motori da 4 volt ciascuno sono stati posizionati su ciascun lato con pneumatici collegati per lo spostamento del robot. Nella parte superiore del primo strato sono state posizionate due batterie da 4 volt ciascuna (8 volt totali) e il driver del motore IC(L298N) per il funzionamento dei motori.
Secondo strato
Nello strato superiore del robot, abbiamo posizionato la STM Board sulla Perf Board. Un'altra scheda perforata di 4 accoppiatori ottici è posizionata sullo strato superiore. Il giroscopio è anche posizionato sullo strato superiore del robot dal lato inferiore. Entrambi i componenti sono posizionati nella parte centrale in modo che il baricentro sia mantenuto il più basso possibile.
Centro di gravità del robot
Il baricentro è mantenuto il più basso possibile. A tal fine, abbiamo posizionato batterie pesanti sullo strato inferiore e componenti leggeri come la scheda STM e gli accoppiatori ottici sullo strato superiore.
Passaggio 7: codice
Il codice è stato compilato su Atollic TrueStudio. STM studio è stato utilizzato per scopi di debug.
Passaggio 8: conclusione
Dopo molte sperimentazioni e osservazioni, arriviamo finalmente al punto in cui riassumiamo i nostri risultati e discutiamo fino a che punto siamo riusciti a implementare ea elaborare l'ecacia del sistema.
Revisione generale
Durante la sperimentazione, la velocità del motore è stata controllata con successo utilizzando l'algoritmo PID. La curva, tuttavia, non è esattamente una linea retta liscia. Ci sono molte ragioni per questo:
• Il sensore, sebbene collegato ad un filtro passa basso, fornisce comunque alcuni antirimbalzi finiti; questi sono dovuti alle resistenze non lineari e ad alcune inevitabili ragioni dell'elettronica analogica.
• Il motore non ruota in modo uniforme a bassa tensione o PWM. Fornisce scatti che potrebbero causare alcuni valori errati alimentati al sistema.
• A causa dell'oscillazione, il sensore potrebbe non rilevare alcune fenditure che forniscono valori più elevati. • Un altro motivo principale per gli errori può essere la frequenza di clock del core del microcontrollore STM. Questo modello di microcontrollore STM fornisce un core clock di 168MHz. Sebbene sia stato affrontato questo problema in questo progetto, c'è un'idea generale su questo modello che non fornisce esattamente una frequenza così alta.
La velocità ad anello aperto fornisce una linea molto liscia con solo pochi valori imprevisti. Anche l'algoritmo PID funziona bene fornendo un tempo di assestamento del motore molto basso. L'algoritmo PID del motore è stato testato a varie tensioni mantenendo costante la velocità di riferimento. Il cambio di tensione non cambia la velocità del motore mostrando che l'algoritmo PID sta funzionando bene
Ecacia
Qui discutiamo l'efficacia del controller PID che abbiamo osservato durante la sperimentazione.
Implementazione semplice
Abbiamo visto nella sezione sperimentazione e osservazioni che un controller PID è molto facile da implementare. Richiede solo tre parametri o costanti che devono essere impostati per avere un sistema di controllo della velocità
Ecienza senza pari per i sistemi lineari
Il controllore PID lineare è il più efficiente della famiglia dei controllori perché la logica è molto semplice e l'applicazione è molto diffusa nel caso di applicazioni lineari o abbastanza lineari.
Limitazioni
Abbiamo spiegato nell'abstract le Limitazioni di questo sistema. Qui discutiamo alcuni di loro che abbiamo osservato.
Selezione delle costanti
Abbiamo visto che, sebbene un controllore PID sia facile da implementare, è comunque un grosso inconveniente del sistema che la fase di selezione del valore delle costanti sia laboriosa; poiché si devono fare calcoli difficili. L'altro modo è il metodo hit and trial, ma anche questo non è eciente.
Costanti non sempre costanti
I risultati sperimentali hanno mostrato che per diversi valori della velocità di riferimento per il motore, il controller PID ha funzionato male per gli stessi valori delle costanti PID. Per velocità diverse, le costanti dovevano essere selezionate in modo diverso e questo aumenta in modo esponenziale il costo computazionale.
Non lineare
Il controller PID utilizzato nel nostro caso è lineare, quindi può essere applicato solo a sistemi lineari. Per i sistemi non lineari, il controller deve essere implementato diversamente. Sebbene siano disponibili diversi metodi non lineari di PID, richiedono la selezione di più parametri. Ciò rende nuovamente il sistema indesiderabile a causa dell'elevato costo computazionale.
Spinta iniziale richiesta
Abbiamo mostrato nella sezione di sperimentazione che per una velocità di riferimento abbastanza piccola dove l'errore è abbastanza piccolo all'inizio, il PWM fornito dal PID è così piccolo da non generare la coppia di spunto richiesta per il motore. Quindi il motore in alcune prove non funziona o in altre prove fornisce un ampio overshoot e un tempo di assestamento più lungo.
Passaggio 9: ringraziamenti speciali
Un ringraziamento speciale ai membri del mio gruppo che mi hanno aiutato in questo progetto.
A breve caricherò il link del video.
Spero che trovi interessante questo tutorial.
Sono Tahir Ul Haq dell'UET che firma. Saluti !!!
Consigliato:
Robot per evitare gli ostacoli che utilizza il sensore a ultrasuoni (Proteus): 12 passaggi
Robot per evitare gli ostacoli che utilizza il sensore a ultrasuoni (Proteus): generalmente ci imbattiamo in robot per evitare gli ostacoli ovunque. La simulazione hardware di questo robot fa parte della competizione in molti college e in molti eventi. Ma la simulazione software del robot ostacolo è rara. Anche se riusciamo a trovarlo da qualche parte
Robot di autobilanciamento - Algoritmo di controllo PID: 3 passaggi
Self Balancing Robot - Algoritmo di controllo PID: questo progetto è stato concepito perché ero interessato a saperne di più sugli algoritmi di controllo e su come implementare in modo efficace i loop PID funzionali. Il progetto è ancora in fase di sviluppo in quanto deve ancora essere aggiunto un modulo Bluetooth che sarà al
Robot controllato da gesti che utilizza Arduino: 7 passaggi
Robot controllato dai gesti che utilizza Arduino: i robot sono utilizzati in molti settori come l'edilizia, militare, manifatturiero, assemblaggio, ecc. I robot possono essere autonomi o semi-autonomi. I robot autonomi non richiedono alcun intervento umano e possono agire da soli in base alla situazione. Se
Robot a controllo vocale che utilizza il modulo V3: 6 passaggi
Robot a controllo vocale che utilizza il modulo V3: questo robot può essere realizzato facilmente da chiunque, basta seguire il processo come ho indicato. Questo è un robot a controllo vocale e puoi vedere la demo del mio robot puoi usarlo in due modi in un modo è da remoto e altro è a voce
Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO: 8 passaggi
Creazione di un robot di autobilanciamento Arduino controllato da remoto: B-robot EVO: ------------------------------------ --------------AGGIORNAMENTO: c'è una versione nuova e migliorata di questo robot qui: Il B-robot EVO, con nuove funzionalità!------------ --------------------------------------Come funziona?B-ROBOT EVO è un telecomando controllo