SlideShare a Scribd company logo
PI
D
PIDPID
Applicazione al controllo
del movimento di un robot
umberto lamia 5D 2013/14
PI
DSommario
 Nell’ambito del corso di Sistemi è stato affrontato il tema dei controlli
automatici ed in particolare del controllo PID, argomento di questa tesina.
 Dopo una introduzione teorica, descriverò la realizzazione di un piccolo
progetto mirato all’inseguimento di un traiettoria da parte un robot didattico
Lego Mindstorms NXT in cui ho implementato un controllore PID software.
 Durante l’esperienza ho anche confrontato il comportamento del robot nel
caso di utilizzo del PID rispetto ad un semplice controllo on-off.
 Le principali criticità incontrate nel progetto sono legate all’acquisizione dei
dati di input (led + sensore di luminosità) e alla loro successiva
interpretazione.
 In conclusione sono stati individuati alcuni miglioramenti che potrebbero
essere apportati al sistema per aumentare l’efficienza del controllo
umberto lamia
PI
DSistema di controllo
Il controllo automatico di un dato sistema dinamico (di un motore, di un impianto
industriale, di una funzione biologica come il battito cardiaco) si prefigge di ottenere in
uscita i valori desiderati ed indicati dall’ingresso, nonostante i disturbi.
Il controllo del sistema in esame viene affidato ad un altro sistema, detto controllore,
progettato opportunamente.
Si distinguono:
Sistemi a catena aperta dove la garanzia della relazione fra ingresso e uscita è affidata
unicamente ad un elemento esterno al sistema che va ad agire sullo stesso;
Sistemi a catena chiusa nei quali la regolazione è automatica nel senso che l’uscita viene
confrontata con la grandezza di riferimento, in modo da produrre, ogni volta si verifichi una
diversità tra segnale di riferimento e segnale di uscita, un’azione correttiva che riporti
l’uscita al valore desiderato.
umberto lamia
PI
D
Il PIDPID è un sistema di controllo in
retroazione negativa.
Per re tro azio ne ne g ativa intendiamo la
capacità del sistema di auto stabilizzarsi
tenendo conto delle uscite precedenti.
Es.: in un sistema di puntamento, ogni
tiro può essere utilizzato per puntare
meglio l'arma e arrivare più vicino
al bersaglio.
umberto lamia
La retroazione negativa
G
H
UI +
-
E
PI
D
Struttura si un controllore
PID
Il PIDPIDè la somma di tre
diverse operazioni:
Azione proporzionale (P)
il valore del segnale di
errore.
Azione integrale (I)
i valori passati del
segnale di errore.
Azione derivata (D)
quanto velocemente il
segnale di errore varia.
umberto lamia
PI
D
Sensore diSensore di
luminositàluminosità
Motore CMotore C Motore BMotore B
umberto lamia
Il Robot Lego Mindstorm NXT
PI
DNXT: Blocchi base
umberto lamia
PI
DNXT: Ambiente di sviluppo SW
umberto lamia
PI
DObiettivo del progetto
Controllare il robot
affinché sia in grado di
percorrere
autonomamente un
circuito rappresentato
da una linea nera su di
un piano, servendosi del
sensore di luminosità ed
implementando un
controllore PIDPID.
umberto lamia
PI
DInseguimento della traccia
umberto lamia
0% 50% 100%Luminosità
rilevata
Sensore Led
PI
D
 La luminosità varia
uniformemente tra due
limiti: la massima
esternamente alla linea
nera (chiaro) e la
minima internamente
(scuro) .
 La prima parte del
programma calcola la
luminosità media
(offset) spostando il
robot sulle condizioni
estreme.
MEDIA:
OnFwd(OUT_C,50);
Wait (500);
Off (OUT_C);
Wait (500);
chiaro= Sensor(IN_3);
OnFwd(OUT_B,50);
Wait (700);
Off (OUT_B);
Wait (500);
scuro= Sensor(IN_3);
OnFwd(OUT_C,50);
Wait (200);
offset=(scuro+chiaro)/2;
Ad es. supponiamo che
chiaro=50, scuro=40, media=45
umberto lamia
Calcolo della luminosità media
PI
DVariabili del sistema di controllo
umberto lamia
INGRESSI:
 luminosità misurata dal sensore.
USCITA:
 velocità di due motori. (Attuatori)
Al setpoint (errore = 0, andamento rettilineo) i due motori agiscono
al 50% della loro potenza facendo procedere il robot in linea retta
DISTURBI:
 variazione casuale della luminosità
variazione della tensione di alimentazione a causa dalla scarica
della batteria
 motori diversi
PI
DProve Regolazione On-Off
umberto lamia
• Le prime prove sono state effettua
utilizzando un controllo ON-OFF.
• Un controllo ON-OFF prevede solo
due posizioni di controllo, cioè solo
due possibili valori per la variabile
manipolata.
• Nel caso del robot se la luminosità è
al di sotto della soglia minima esso
procede girando a dx, mentre se è al
di sopra di quella massima
procederà girando a sinistra
PI
D
L'algoritmo PID:
approccio per fasi
umberto lamia
PI
D
La luminosità varia in funzione della
posizione del robot rispetto alla
traiettoria. La variazione della
luminosità rispetto al valore medio
iniziale influenza l’azione dei motori
(uscita del sistema) in modo
proporzionale, ovvero:
Y=mx+q
E’ possibile costruire un grafico che
rappresenti la situazione: ad es. in
figura se al valore misurato viene
sottratta la media, l’errore sarà un
numero compreso tra +5 e -5.
All’equazione y=mx possiamo quindi
sostituire Turn=Kp* error.
La costante Kp ha la funzione di
coefficiente angolare e più è grande più
l’azione di regolazione è intensa.
Legenda:
Turn = giri motore
Turn Left= girare/svoltare sinistra
Turn Right= girare/svoltare destra
Error= errore compreso tra +5 e -5
Offeset= media
umberto lamia
Azione proporzionale
PI
D
while (true)
{
linea= Sensor(IN_3);
errore = linea - offset;
Turn = Kp * errore;
Turn = Turn/100;
powerB= Pr + Turn;
powerC= Pr - Turn;
OnFwd(OUT_C,powerC);
OnFwd(OUT_B,powerB);
}
Sottraendo Turn alla potenza di riferimento di
un motore e sommandolo alla potenza dell’altro,
sarà possibile rallentare un motore e accelerare
l’altro generando una adatta rotazione. La
potenza di riferimento dei motori viene fissata a
50 utilizzando una costante Pr. Turn viene
diviso per cento per rientrare nel campo di
valori riconosciuto dai motori del robot che va
da 0 a 100 umberto lamia
Fase 1 - Azione proporzionale
PI
D
 L’azione integrale consiste nel sommare gli
errori ed agire sui motori in modo che tale
somma sia nulla.
 La variazione di tempo (dt) è costante
(tempo di esecuzione di un ciclo sw. La
somma degli errori, variabile integrale, è
moltiplicata per un fattore Ki per poi essere
sommata a Turn.
 Bisogna fare in modo che il contributo a Turn
non sia eccessivo.
 integrale = integrale + error
umberto lamia
Fase 2 - Azione integrale
errore = linea - offset;
integrale =((2/3)*integrale)+errore;
Turn = (Kp * errore)+(Ki*integrale);
Per avere un ‘PI’ basta aggiungere quanto detto
alla parte P (fase 1). L’azione integrale da sola,
non può essere usata, in quanto agisce in base
agli errori passati.
PI
DFase 2 – Prove sul Wind-Up
umberto lamia
errore = linea - offset;
integrale =(integrale)+errore;
Turn = (Kp * errore)+(Ki*integrale);
 Per evitare il wind-up il valore
dell’equazione è stato moltiplicato per un
numero minore di 1 (e maggiore di 0).
 Il wind-up si verifica a causa di grandi
errori che superano il range di azione e
che durano nel tempo (costante); il robot,
allora, tenderà poi a correggerli in modo
esagerato.
PI
D
 La parte derivata permette di prevedere e
correggere errori che ancora devono
verificarsi.
 Questo è possibile tenendo conto degli
errori precedenti; infatti, memorizzando
l’ultimo errore calcolato e il nuovo errore,
con una semplice sottrazione è possibile
constatare se esso sta aumentando o
diminuendo.
 Anche qui è presente una costante Kd.
La derivazione permette di agire prima che
l’errore diventi significativo.
umberto lamia
Azione derivata
PI
D
Basta aggiungere queste istruzioni al PI per
creare il PID.
Anche questa azione non può essere
utilizzata da sola, anzi, molte volte non viene
utilizzata, dato che è molto sensibile ai
piccoli errori.
derivata = errore - ultimoerrore;
Turn = (Kp * errore) + (Ki*integrale)+
(Kd*derivata);
umberto lamia
Fase 3 - Azione derivata
PI
DRegole di Ziegler-Nichols
Trovare i valori delle costanti è possibile solo attraverso
continue prove.
È possibile calcolare approssimativamente i valori di Kp, Ki
e Kd seguendo questa tabella:
Dove:
-Kc è il guadagno critico è il valore del guadagno per cui la
variabile controllata presenta oscillazioni so ste nute .
-Pc è ilpe rio do critico , o vve ro , ilte m po di cui ilro bo t
ne ce ssità pe r o scillare da una parte all’altra de lla line a a
Kp= Kc. umberto lamia
PI
DLimiti della implementazione
umberto lamia
Bordo Sx
0% 50% 100%Luminosità
rilevata
Bordo Dx
0% 50% 100%Luminosità
rilevata
Con un solo sensore di
luminosità è necessario
scegliere quale bordo della
striscia inseguire. Infatti lo
stesso valore rilevato può
essere interpretato «gira a
destra» se sono sul bordo
sinistro oppure «gira a sinistra»
se sono sul bordo destro.
Questa limitazione consente di
controllare il robot solo se le
curve del percorso sono tutte
destrorse (o sinistrorse).
Questa limitazione si riflette
anche nella impossibilità di
invertire il verso di marcia.
PI
DConclusioni
umberto lamia
E’ possibile migliorare le prestazioni del robot:
Inserendo un ulteriore sensore di luminosità, si superano i limiti legati alla
scelta iniziale del bordo da seguire. Sarà possibile far muovere il robot sopra
la linea nera e non più sul bordo. Questa soluzione comporta sicuramente una
rielaborazione del software di controllo.
Si potrebbero inserire dei momenti di autocalibrazione del sensore di
luminosità in modo da renderlo meno sensibile alla luce esterna che può
variare in parti diverse del tracciato o durante la prova.
PI
D
umberto lamia
Grazie per l'attenzione
PI
D
umberto lamia
Allegati
PI
D
umberto lamia
Il codice completo
PI
D
umberto lamia

More Related Content

Similar to regolazione Pid con robot lego

Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
anwarNazik
 
Patternator project
Patternator projectPatternator project
Patternator project
Maurizio Malaspina
 
Il primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifm
Il primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifmIl primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifm
Il primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifm
ifm electronic gmbh
 
Gsm control
Gsm controlGsm control
Gsm control
aaa bbbb
 
I cicli in Python 3
I cicli in Python 3I cicli in Python 3
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
SANTIAGO PABLO ALBERTO
 
Elliptic Curve Method di Lenstra
Elliptic Curve Method di LenstraElliptic Curve Method di Lenstra
Elliptic Curve Method di Lenstra
peppespe
 
Lez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambienteLez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambiente
Margherita Di Leo
 
Econometria_AssetSelection.pptx
Econometria_AssetSelection.pptxEconometria_AssetSelection.pptx
Econometria_AssetSelection.pptx
AndreaAmati3
 
Test 03b 26.05.2015
Test 03b   26.05.2015Test 03b   26.05.2015
Test 03b 26.05.2015
Corrado Pecora
 
OPDE Drives
OPDE DrivesOPDE Drives
OPDE Drives
TDE MACNO SPA
 
Strutture Cicliche in C++
Strutture Cicliche in C++Strutture Cicliche in C++
Strutture Cicliche in C++
I.S.I.S. "Antonio Serra" - Napoli
 
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Andrea Bidinost
 
Relazione Azionamenti elettrici
Relazione Azionamenti elettriciRelazione Azionamenti elettrici
Relazione Azionamenti elettriciStefano Manca
 
Presentazione Software DOMINI per la verifica sezionale per elementi in calce...
Presentazione Software DOMINI per la verifica sezionale per elementi in calce...Presentazione Software DOMINI per la verifica sezionale per elementi in calce...
Presentazione Software DOMINI per la verifica sezionale per elementi in calce...
Franco Bontempi Org Didattica
 
La rasterizzazione
La rasterizzazioneLa rasterizzazione
La rasterizzazione
Mattias Cibien
 
Progetto quadricottero 1
Progetto quadricottero 1Progetto quadricottero 1
Progetto quadricottero 1
Vincenzo Virgilio
 

Similar to regolazione Pid con robot lego (20)

Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
 
Patternator project
Patternator projectPatternator project
Patternator project
 
Cap3 analisi c-v-r
Cap3 analisi c-v-rCap3 analisi c-v-r
Cap3 analisi c-v-r
 
Il primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifm
Il primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifmIl primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifm
Il primo passo verso la rivoluzione industriale: soluzioni IO-Link di ifm
 
DHow2 - L1
DHow2 - L1DHow2 - L1
DHow2 - L1
 
Gsm control
Gsm controlGsm control
Gsm control
 
I cicli in Python 3
I cicli in Python 3I cicli in Python 3
I cicli in Python 3
 
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
 
Elliptic Curve Method di Lenstra
Elliptic Curve Method di LenstraElliptic Curve Method di Lenstra
Elliptic Curve Method di Lenstra
 
Lez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambienteLez.5 - Corso di modelli e GIS per l'ambiente
Lez.5 - Corso di modelli e GIS per l'ambiente
 
Econometria_AssetSelection.pptx
Econometria_AssetSelection.pptxEconometria_AssetSelection.pptx
Econometria_AssetSelection.pptx
 
Test 03b 26.05.2015
Test 03b   26.05.2015Test 03b   26.05.2015
Test 03b 26.05.2015
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
OPDE Drives
OPDE DrivesOPDE Drives
OPDE Drives
 
Strutture Cicliche in C++
Strutture Cicliche in C++Strutture Cicliche in C++
Strutture Cicliche in C++
 
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
 
Relazione Azionamenti elettrici
Relazione Azionamenti elettriciRelazione Azionamenti elettrici
Relazione Azionamenti elettrici
 
Presentazione Software DOMINI per la verifica sezionale per elementi in calce...
Presentazione Software DOMINI per la verifica sezionale per elementi in calce...Presentazione Software DOMINI per la verifica sezionale per elementi in calce...
Presentazione Software DOMINI per la verifica sezionale per elementi in calce...
 
La rasterizzazione
La rasterizzazioneLa rasterizzazione
La rasterizzazione
 
Progetto quadricottero 1
Progetto quadricottero 1Progetto quadricottero 1
Progetto quadricottero 1
 

More from aaa bbbb

Presentazione umi siena
Presentazione umi sienaPresentazione umi siena
Presentazione umi siena
aaa bbbb
 
Progetto ldc
Progetto ldcProgetto ldc
Progetto ldc
aaa bbbb
 
Allarme antifurto gandolfo
Allarme antifurto gandolfoAllarme antifurto gandolfo
Allarme antifurto gandolfo
aaa bbbb
 
metro ad ultrasuoni
metro ad ultrasuonimetro ad ultrasuoni
metro ad ultrasuoni
aaa bbbb
 
Evola
EvolaEvola
Evola
aaa bbbb
 
Presentazione stinco 3
Presentazione stinco 3Presentazione stinco 3
Presentazione stinco 3
aaa bbbb
 
Inseguitore solare
Inseguitore solareInseguitore solare
Inseguitore solare
aaa bbbb
 
Sofisti
SofistiSofisti
Sofisti
aaa bbbb
 

More from aaa bbbb (8)

Presentazione umi siena
Presentazione umi sienaPresentazione umi siena
Presentazione umi siena
 
Progetto ldc
Progetto ldcProgetto ldc
Progetto ldc
 
Allarme antifurto gandolfo
Allarme antifurto gandolfoAllarme antifurto gandolfo
Allarme antifurto gandolfo
 
metro ad ultrasuoni
metro ad ultrasuonimetro ad ultrasuoni
metro ad ultrasuoni
 
Evola
EvolaEvola
Evola
 
Presentazione stinco 3
Presentazione stinco 3Presentazione stinco 3
Presentazione stinco 3
 
Inseguitore solare
Inseguitore solareInseguitore solare
Inseguitore solare
 
Sofisti
SofistiSofisti
Sofisti
 

regolazione Pid con robot lego

  • 1. PI D PIDPID Applicazione al controllo del movimento di un robot umberto lamia 5D 2013/14
  • 2. PI DSommario  Nell’ambito del corso di Sistemi è stato affrontato il tema dei controlli automatici ed in particolare del controllo PID, argomento di questa tesina.  Dopo una introduzione teorica, descriverò la realizzazione di un piccolo progetto mirato all’inseguimento di un traiettoria da parte un robot didattico Lego Mindstorms NXT in cui ho implementato un controllore PID software.  Durante l’esperienza ho anche confrontato il comportamento del robot nel caso di utilizzo del PID rispetto ad un semplice controllo on-off.  Le principali criticità incontrate nel progetto sono legate all’acquisizione dei dati di input (led + sensore di luminosità) e alla loro successiva interpretazione.  In conclusione sono stati individuati alcuni miglioramenti che potrebbero essere apportati al sistema per aumentare l’efficienza del controllo umberto lamia
  • 3. PI DSistema di controllo Il controllo automatico di un dato sistema dinamico (di un motore, di un impianto industriale, di una funzione biologica come il battito cardiaco) si prefigge di ottenere in uscita i valori desiderati ed indicati dall’ingresso, nonostante i disturbi. Il controllo del sistema in esame viene affidato ad un altro sistema, detto controllore, progettato opportunamente. Si distinguono: Sistemi a catena aperta dove la garanzia della relazione fra ingresso e uscita è affidata unicamente ad un elemento esterno al sistema che va ad agire sullo stesso; Sistemi a catena chiusa nei quali la regolazione è automatica nel senso che l’uscita viene confrontata con la grandezza di riferimento, in modo da produrre, ogni volta si verifichi una diversità tra segnale di riferimento e segnale di uscita, un’azione correttiva che riporti l’uscita al valore desiderato. umberto lamia
  • 4. PI D Il PIDPID è un sistema di controllo in retroazione negativa. Per re tro azio ne ne g ativa intendiamo la capacità del sistema di auto stabilizzarsi tenendo conto delle uscite precedenti. Es.: in un sistema di puntamento, ogni tiro può essere utilizzato per puntare meglio l'arma e arrivare più vicino al bersaglio. umberto lamia La retroazione negativa G H UI + - E
  • 5. PI D Struttura si un controllore PID Il PIDPIDè la somma di tre diverse operazioni: Azione proporzionale (P) il valore del segnale di errore. Azione integrale (I) i valori passati del segnale di errore. Azione derivata (D) quanto velocemente il segnale di errore varia. umberto lamia
  • 6. PI D Sensore diSensore di luminositàluminosità Motore CMotore C Motore BMotore B umberto lamia Il Robot Lego Mindstorm NXT
  • 8. PI DNXT: Ambiente di sviluppo SW umberto lamia
  • 9. PI DObiettivo del progetto Controllare il robot affinché sia in grado di percorrere autonomamente un circuito rappresentato da una linea nera su di un piano, servendosi del sensore di luminosità ed implementando un controllore PIDPID. umberto lamia
  • 10. PI DInseguimento della traccia umberto lamia 0% 50% 100%Luminosità rilevata Sensore Led
  • 11. PI D  La luminosità varia uniformemente tra due limiti: la massima esternamente alla linea nera (chiaro) e la minima internamente (scuro) .  La prima parte del programma calcola la luminosità media (offset) spostando il robot sulle condizioni estreme. MEDIA: OnFwd(OUT_C,50); Wait (500); Off (OUT_C); Wait (500); chiaro= Sensor(IN_3); OnFwd(OUT_B,50); Wait (700); Off (OUT_B); Wait (500); scuro= Sensor(IN_3); OnFwd(OUT_C,50); Wait (200); offset=(scuro+chiaro)/2; Ad es. supponiamo che chiaro=50, scuro=40, media=45 umberto lamia Calcolo della luminosità media
  • 12. PI DVariabili del sistema di controllo umberto lamia INGRESSI:  luminosità misurata dal sensore. USCITA:  velocità di due motori. (Attuatori) Al setpoint (errore = 0, andamento rettilineo) i due motori agiscono al 50% della loro potenza facendo procedere il robot in linea retta DISTURBI:  variazione casuale della luminosità variazione della tensione di alimentazione a causa dalla scarica della batteria  motori diversi
  • 13. PI DProve Regolazione On-Off umberto lamia • Le prime prove sono state effettua utilizzando un controllo ON-OFF. • Un controllo ON-OFF prevede solo due posizioni di controllo, cioè solo due possibili valori per la variabile manipolata. • Nel caso del robot se la luminosità è al di sotto della soglia minima esso procede girando a dx, mentre se è al di sopra di quella massima procederà girando a sinistra
  • 15. PI D La luminosità varia in funzione della posizione del robot rispetto alla traiettoria. La variazione della luminosità rispetto al valore medio iniziale influenza l’azione dei motori (uscita del sistema) in modo proporzionale, ovvero: Y=mx+q E’ possibile costruire un grafico che rappresenti la situazione: ad es. in figura se al valore misurato viene sottratta la media, l’errore sarà un numero compreso tra +5 e -5. All’equazione y=mx possiamo quindi sostituire Turn=Kp* error. La costante Kp ha la funzione di coefficiente angolare e più è grande più l’azione di regolazione è intensa. Legenda: Turn = giri motore Turn Left= girare/svoltare sinistra Turn Right= girare/svoltare destra Error= errore compreso tra +5 e -5 Offeset= media umberto lamia Azione proporzionale
  • 16. PI D while (true) { linea= Sensor(IN_3); errore = linea - offset; Turn = Kp * errore; Turn = Turn/100; powerB= Pr + Turn; powerC= Pr - Turn; OnFwd(OUT_C,powerC); OnFwd(OUT_B,powerB); } Sottraendo Turn alla potenza di riferimento di un motore e sommandolo alla potenza dell’altro, sarà possibile rallentare un motore e accelerare l’altro generando una adatta rotazione. La potenza di riferimento dei motori viene fissata a 50 utilizzando una costante Pr. Turn viene diviso per cento per rientrare nel campo di valori riconosciuto dai motori del robot che va da 0 a 100 umberto lamia Fase 1 - Azione proporzionale
  • 17. PI D  L’azione integrale consiste nel sommare gli errori ed agire sui motori in modo che tale somma sia nulla.  La variazione di tempo (dt) è costante (tempo di esecuzione di un ciclo sw. La somma degli errori, variabile integrale, è moltiplicata per un fattore Ki per poi essere sommata a Turn.  Bisogna fare in modo che il contributo a Turn non sia eccessivo.  integrale = integrale + error umberto lamia Fase 2 - Azione integrale errore = linea - offset; integrale =((2/3)*integrale)+errore; Turn = (Kp * errore)+(Ki*integrale); Per avere un ‘PI’ basta aggiungere quanto detto alla parte P (fase 1). L’azione integrale da sola, non può essere usata, in quanto agisce in base agli errori passati.
  • 18. PI DFase 2 – Prove sul Wind-Up umberto lamia errore = linea - offset; integrale =(integrale)+errore; Turn = (Kp * errore)+(Ki*integrale);  Per evitare il wind-up il valore dell’equazione è stato moltiplicato per un numero minore di 1 (e maggiore di 0).  Il wind-up si verifica a causa di grandi errori che superano il range di azione e che durano nel tempo (costante); il robot, allora, tenderà poi a correggerli in modo esagerato.
  • 19. PI D  La parte derivata permette di prevedere e correggere errori che ancora devono verificarsi.  Questo è possibile tenendo conto degli errori precedenti; infatti, memorizzando l’ultimo errore calcolato e il nuovo errore, con una semplice sottrazione è possibile constatare se esso sta aumentando o diminuendo.  Anche qui è presente una costante Kd. La derivazione permette di agire prima che l’errore diventi significativo. umberto lamia Azione derivata
  • 20. PI D Basta aggiungere queste istruzioni al PI per creare il PID. Anche questa azione non può essere utilizzata da sola, anzi, molte volte non viene utilizzata, dato che è molto sensibile ai piccoli errori. derivata = errore - ultimoerrore; Turn = (Kp * errore) + (Ki*integrale)+ (Kd*derivata); umberto lamia Fase 3 - Azione derivata
  • 21. PI DRegole di Ziegler-Nichols Trovare i valori delle costanti è possibile solo attraverso continue prove. È possibile calcolare approssimativamente i valori di Kp, Ki e Kd seguendo questa tabella: Dove: -Kc è il guadagno critico è il valore del guadagno per cui la variabile controllata presenta oscillazioni so ste nute . -Pc è ilpe rio do critico , o vve ro , ilte m po di cui ilro bo t ne ce ssità pe r o scillare da una parte all’altra de lla line a a Kp= Kc. umberto lamia
  • 22. PI DLimiti della implementazione umberto lamia Bordo Sx 0% 50% 100%Luminosità rilevata Bordo Dx 0% 50% 100%Luminosità rilevata Con un solo sensore di luminosità è necessario scegliere quale bordo della striscia inseguire. Infatti lo stesso valore rilevato può essere interpretato «gira a destra» se sono sul bordo sinistro oppure «gira a sinistra» se sono sul bordo destro. Questa limitazione consente di controllare il robot solo se le curve del percorso sono tutte destrorse (o sinistrorse). Questa limitazione si riflette anche nella impossibilità di invertire il verso di marcia.
  • 23. PI DConclusioni umberto lamia E’ possibile migliorare le prestazioni del robot: Inserendo un ulteriore sensore di luminosità, si superano i limiti legati alla scelta iniziale del bordo da seguire. Sarà possibile far muovere il robot sopra la linea nera e non più sul bordo. Questa soluzione comporta sicuramente una rielaborazione del software di controllo. Si potrebbero inserire dei momenti di autocalibrazione del sensore di luminosità in modo da renderlo meno sensibile alla luce esterna che può variare in parti diverse del tracciato o durante la prova.

Editor's Notes

  1. che erano troppo diepnedenti dalla luminosità dell’ambiente Sensoristica Controllo (sw e l’hw che lo fa girare) Attuatori (motori)
  2. Sistema a catena aperta: (es.: nel sistema “forno” è l’utente che fissa temperatura e tempo di cottura, ad esempio di una torta, agendo sulle apposite manopole e, solo l’utente può variare questi due parametri; per cui in caso di disturbi il sistema non “reagisce” I sistemi di controllo, a loro volta si suddividono in: REGOLATORI: quando la grandezza di uscita deve essere mantenuta costante; SERVOSISTEMI: quando la grandezza di uscita deve eseguire nel tempo le variazioni della grandezza di riferimenti; A VALORE PROGRAMMATO: quando la grandezza di uscita deve avere nel tempo un valore prestabilito. Inoltre, in un sistema di controllo è richiesto: di risentire nel minor modo possibile dei disturbi esterni; di risentire nel minor modo possibile delle variazioni parametriche del sistema stesso; di rispondere il più prontamente possibile alle sollecitazioni; di fornire una risposta la più precisa possibile con un limite ristretto di errore.
  3. che erano troppo diepnedenti dalla luminosità dell’ambiente Sensoristica Controllo (sw e l’hw che lo fa girare) Attuatori (motori)
  4. che erano troppo diepnedenti dalla luminosità dell’ambiente Sensoristica Controllo (sw e l’hw che lo fa girare) Attuatori (motori)