REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U...

38
REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVerga ta U CANDIDATO: Danilo Diaferia

Transcript of REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U...

Page 1: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

REALIZZAZIONE E CONTROLLO DI UNA

STAMPANTE 3D

RELATORE:Ing. Daniele Carnevale

TorVergata U

CANDIDATO:Danilo Diaferia

Page 2: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

La stampante 3DLa stampante 3D è un robot capace di stampare oggetti tridimensionali.

I prototipi1) stampante Rep Rap (figura 1)2) Stampante Galileo

Obiettivo:Realizzare un robot versatile, capace di cambiare funzionalità in base all’end effector.

Figura 1

Ingombranti e costose.

(1) IntroduzionePag. 1/28

Page 3: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Il robot realizzatoIl robot realizzato è un manipolatore a tre gradi di libertà, in cui tutte le coppie sonoprismatiche.

La struttura è composta da1) Piano di lavoro

Figura 1

(1) Struttura portantePag. 2/28

Page 4: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Il robot realizzatoIl robot realizzato è un manipolatore a tre gradi di libertà, in cui tutte le coppie sonoprismatiche.

La struttura è composta da1) Piano di lavoro2) Tre coppie prismatiche, movimenti x,y,z

x

y

y z

zxy

1

2

3

45

67

Figura 1

(1) Struttura portantePag. 2/28

Page 5: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Nomenclatura coppia prismaticaLa coppia prismatica è composta da due o piu membri, che realizzano un modo relativo puramente traslazionale

Realizzazione1) membri 1,2 aste in alluminio a profilo circolare2) membro 3, in plexiglass, presenta due fori3) facile da realizzare, moto traslazionale

traslazione del carrello

2

1

3

Rn

RnRn

Rn

(Figura 2)

(1) Coppie prismatichePag. 3/28

Page 6: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Azionamento elettricoAl fine muovere elettronicamente la coppia sono necessari: motore, cinghia e puleggia.

Il funzionamentoRotazione albero motore -> traslazione della cinghia -> traslazione del carrello soli-dale alla cinghia.

PuleggiaRuota dentata

Motore

1

2

Carrello

X

Cinghia (Figura 3)

(1) Coppie prismatichePag. 4/28

Page 7: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(Figura 4)

(1) Il robot realizzatoPag. 5/28

Page 8: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Hardware

(2) Hardware

Page 9: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Scheda elettrica dedicata1) pilotaggio motori2) gestione dei segnali di controllo

(Figura 5)

(2) Azionamento elettricoPag. 6/28

Page 10: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Il ponte HAzionamento di un motore tramite segnali digitali:1) enable -> abilitazione ponte2) In1,In2 -> gestione verso rotazione

InverterRisparmio segnali microcontrollore.

(Figura 6)

Motore DCStepper

step.h

(2) Azionamento elettricoPag. 7/28

Page 11: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Rotore1) due ruote dentate di polarità opposta2) corrispondenza dente-valle

Statore3) quattro poli elettromagnetici4) collegamento in serie di poli opposti

-> 2 avvolgimenti all’esterno (A,B)

(Figura 7)

(2) Motori passo passoPag. 8/28

Page 12: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

RotazioneOgni volta che si alimenta un polo elettromagnetico il dente più vicino al polo viene attirato generando una rotazione, nel nostro caso 1.8 [gradi]. Per ottenere la rotazione basta eccitare i poli magnetici in:1) Ordine crescente -> verso orario2) Ordine decrescente -> verso antiorario

Sequenza di rotazioneLa sequenza in cui devono essere polarizzati i due avvolgimenti (A e B) esterni è:3) A-B-A*-B* senso orario4) B*-A*-B-A senso antiorario Controllo stepper

A B A* B*

(Figura 9)

(2) Motori passo passoPag. 9/28

Page 13: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Rotazione1) Ve>0, rotazione oraria2) Ve<0, rotazione antioraria

Sistema a ciclo chiuso con controllore proporzionale di tipo 1

(2) Motore DCPag. 10/28

Tipo\u u(t)=c u(t)=t u(t)=t²/2

0 E0≠0 infinito infinito

1 nullo E1≠0 Infinito

2 nullo nullo E2≠0

Motore 1s

Ve w θ

(Figura 10)

Page 14: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Controllo

(3) Controllo

Page 15: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Controllo1) due stepper2) un motore DC

ObiettivoRealizzare un controllo che assicuri:3) precisione nel raggiungimento della posizione desiderata4) astatismo ai disturbi

(3) ControlloPag. 11/28

Page 16: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Esecuzione di un passoQuesta funzione di occupa di alimentare correttamente gli avvolgimenti dello stepper al fine di eseguire un singolo passo.

1. void passo1(String verso){2. if (verso=="avanti") polo1++;3. if (verso=="indietro") polo1--;4. if (avvolgimento1==4) polo1=0;5. if (avvolgimento1==-1) polo1=3;6. 7. if (avvolgimento1==0){8. digitalWrite(In12m1,HIGH); //abilito prima avvolgimento in fase9. digitalWrite(Enable1A,HIGH);} . .

(3) Esecuzione di un passoPag. 12/28

Page 17: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

1. void passo1(String verso){2. if (verso=="avanti") polo1++;3. if (verso=="indietro") polo1--;4. if (avvolgimento1==4) polo1=0;5. if (avvolgimento1==-1) polo1=3;6. 7. if (avvolgimento1==0){8. digitalWrite(In12m1,HIGH); //abilito prima avvolgimento in fase9. digitalWrite(Enable1A,HIGH);} . . Nella prima parte si decide quale dei quattro poli magnetici

deve essere eccitato al fine di ottenere la rotazione nel verso desiderato.

La variablie globale polo1=0,1,2,3 ricorda l'ultimo polo magnetico eccitato consentendo di sceglie il successivo.

(3) Esecuzione di un passoPag. 12/28

Esecuzione di un passoQuesta funzione di occupa di alimentare correttamente gli avvolgimenti dello stepper al fine di eseguire un singolo passo.

Page 18: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

1. void passo1(String verso){2. if (verso=="avanti") polo1++;3. if (verso=="indietro") polo1--;4. if (avvolgimento1==4) polo1=0;5. if (avvolgimento1==-1) polo1=3;6. 7. if (avvolgimento1==0){8. digitalWrite(In12m1,HIGH); //abilito prima avvolgimento in fase9. digitalWrite(Enable1A,HIGH);} . .

Nella seconda parte invece, in base al polo magnetico da eccitare si abilita effettivamente il ponte h corrispettivo, indicando la polarizzazione della bobina.

Gestione ritardo:Al termine della funzione bisognerebbe effettuare un ritardo di qualche ms per consentire al motore di effettuare il passo, ma tale operazione viene svolta successivamente in modo unico per tutti i motori.

(3) Esecuzione di un passoPag. 12/28

Esecuzione di un passoQuesta funzione di occupa di alimentare correttamente gli avvolgimenti dello stepper al fine di eseguire un singolo passo.

Page 19: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

RitardoIl ritardo è unico per tutti i motori evitando variazioni della velocità.

Funzione ritardoIl ritardo viene controllato con millis() lasciando libera la loop() di controllare il motore DC.

E>0, npassi0++, fare un singolo passo avanti

E<0, npassi0--, fare un singolo passo indietro

E= npassi - npassi0

ritardo

(3) Controllo StepperPag. 13/28

Page 20: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Il controllo: •e > 0 : impostare velocità positiva, • e < 0: impostare velocità negativa, • e = 0: la velocità è nulla, posizione desiderata raggiunta.

Anti Dead Zone:E’ il minimo valore di tensione (o meglio duty cycle) che bisogna applicare al motore per vincere l'attrito statico e consentire il moto.

If (|e| < ControlDeadzone) u = 0;

e= nencoder – nencoder0Pos;u = Kp*e;

u = abs(u)+Dead Zone

(3) Controllo proporzionale DC

Pag. 14/28

Control dead zone:Raggiunta la posizione desiderata a causa di disturbi che simulano un errore si continua ad alimentare il motore. Per ovviare a questo problema se (|e| < ControlDeadzone

Page 21: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(Eq 1)

Attrito tra rotore e statore:

(3) Controllo proporzionale DC

Pag. 14/28

If (|e| < ControlDeadzone) u = 0;

e= nencoder – nencoder0Pos;u = Kp*e;

u = abs(u)+Dead Zone

Control dead zone:Raggiunta la posizione desiderata a causa di disturbi che simulano un errore si continua ad alimentare il motore. Per ovviare a questo problema se (|e| < ControlDeadzone

Anti Dead Zone:E’ il minimo valore di tensione (o meglio duty cycle) che bisogna applicare al motore per vincere l'attrito statico e consentire il moto.

Page 22: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(Figura 11)

Perché usare un controllore PID:Il PID può essere impiegato anche se non si conosce la funzione di trasferimento del processo.

Azioni del PID:Il PID si basa su tre azioni: proporzionale, integrale e derivativa.

Risultati:Il controllo ottenuto con un PID rispetto al proporzionale è:1) sperimentalmente più preciso (piccoli spostamenti, sovraelongazione ridotta)2) astatico ai disturbi costanti tra C(s) e P(s)3) errore nullo a regime permanente per ingressi a rampa

(3) Controllo PIDPag. 15/28

Page 23: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(3) SovraelongazionePag. 16/28

Azione di compensazione dell’errore, riduzione sovraelongazione intorno alla

posizione finale.

Azione derivata:

Mφ aumenta S = f(ξ) = sin( ψ)=f(M φ)

(rete anticipatrice)

(Figura 15)

sin(ψ)=ξψ

Decadimento sovraelongazione S

Approssimato

Page 24: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(3) IntegralePag. 17/28

Azione integrale: Astatismo del sistema a ciclo chiuso a disturbi costanti tra C(s) e P(s), grazie al polo

in s=0 di C(s)

Sistema a ciclo chiuso di tipo 2

Tipo\u u(t)=c u(t)=t u(t)=t²/2

0 E0≠0 infinito infinito

1 nullo E1≠0 Infinito

2 nullo nullo E2≠0

Page 25: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Il controllore non realizzabile perche C(s) non è una funzione propria.

Il controllore PID(k) è conforme al linguaggio dell’Arduino.

Il controllore a tempo discreto PID(z) si ottiene con il metodo indiretto:

Antitrasformata:

(Eq 9)

(Eq 10)

(Eq 11)

(Eq 12)

Approssimazione con un metodo che preservi la stabilità, ad esempio Tustin

(3) Realizzazione PIDPag. 18/28

Page 26: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

determinazione delle variabili di giunto

determinazione dei passi/passi encoder

raggiungere una posizione (x,y,z)

Cinematica inversa

Passo traslazione/passo motore

Controllo

raggiungimento dei passi/passi encoder

(3) Cinematica del robotPag. 19/28

(Figura 14)

3

2

1

z

Page 27: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Precisione motori passo passo:θs=1.8 [gradi]=cost, d=8mm -> ∆z =d/2*θs = 0.1265 ≈ 1/8 [mm/passo]

∆σ

∆x = d/2 *∆θ

d/2

Ruota dentata

(Figura 13)

(3) Passo di traslazionePag. 20/28

Page 28: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Stampa

(4) Stampa

Page 29: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

ObiettivoPer valutare l’affidabilità della struttura meccanica realizzata e la bontà del controllo software si creano delle funzioni di stampa che avvicinano il robot ai possibili impieghi di:• stampante 3D• fresa automatica.

Test affidabilità struttura meccanica realizzata

Bontà del controllo software

Funzioni di stampa

(4) StampaPag. 21/28

Page 30: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Perché il cerchio:Complicato per un robot cartesiano (movimenti lineari).

theta+=Delta_theta

X=r*cos(theta);Y=r*cos(theta);

controllo

Coordinate polari:La funzione proposta si basa sull'uso delle coordinante polari, incrementando l'angolo theta di Delta_theta per ogni iterazione.

(4) Stampa cerchioPag. 22/28

Page 31: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Test funzione1) Asse xy: motore DC e stepper, linea frastagliata2) Asse xz: stepper e stepper, linea omogenea

(Figura 15)

(4) Stampa cerchioPag. 23/28

∆ѳ=3 mm ∆ѳ=1 mm

(Figura 16)

x

y

x

z

Page 32: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(4) Stampa testoPag. 24/28

Obiettivo:Si vuole stampare un immagine di testo ovvero un immagine bicolore ove il bianco rappresenta zone vuote e il colore rappresenta il testo da stampare.

Soluzione1) preparazione dati2) conversione pixel posizioni e stampa

Page 33: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(4) Stampa testoPag. 25/28

Preparazione dati:

Immagine JPG

File con sequenza di pixel p1, p2

Vettore di pixel per arduino

Pixel p1,p2 per ogni linea di ogni colonna

Trasformazione file in vettore

(Figura 16)

p1p2

Page 34: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(4) Stampa testoPag. 25/28

Preparazione dati:

Immagine JPG

File con sequenza di pixel p1, p2

Vettore di pixel per arduino

Pixel p1,p2 per ogni linea di ogni colonna

Trasformazione file in vettore

(Figura 16)

Page 35: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(4) Stampa testoPag. 26/28

ObiettivoSi vuole stampare un immagine di testo ovvero un immagine bicolore ove il bianco rappresenta zone vuote e il colore rappresenta il testo da stampare.

Soluzione1) preparazione dati2) conversione pixel-posizioni e stampa

Raggiungere la posizione p1=f(p1)

Raggiungere la posizione p2=f(p2)

Tracciamento linea Abbassare l’effettore

Alzare l’effettore

Page 36: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

(Figura 17)

(4) Stampa testoPag. 27/28

ObiettivoSi vuole stampare un immagine di testo ovvero un immagine bicolore ove il bianco rappresenta zone vuote e il colore rappresenta il testo da stampare.

Soluzione1) preparazione dati2) conversione pixel-posizioni e stampa

Risultato ottenuto

Page 37: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Conclusioni:

1) Realizzazione della struttura meccanica e dell’azionamento elettrico

2) Studio cinematica del robot

3) Sistema di controllo per 2 motori passo passo e per un motore DC (P,PID)

4) Software per riconoscimento e stampa di immagini di testo 2D

(5) ConclusioniPag. 28/28

Page 38: REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia.

Grazie per l’attenzione