La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "REALIZZAZIONE E CONTROLLO DI UNA STAMPANTE 3D RELATORE: Ing. Daniele Carnevale TorVergata U CANDIDATO: Danilo Diaferia."— Transcript della presentazione:

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

2 La stampante 3D La stampante 3D è un robot capace di stampare oggetti tridimensionali. I prototipi 1)stampante Rep Rap (figura 1) 2)Stampante Galileo Obiettivo: Realizzare un robot versatile, capace di cambiare funzionalità in base allend effector. Figura 1 Ingombranti e costose. (1) Introduzione Pag. 1/28

3 Il robot realizzato Il robot realizzato è un manipolatore a tre gradi di libertà, in cui tutte le coppie sono prismatiche. La struttura è composta da 1) Piano di lavoro Figura 1 (1) Struttura portante Pag. 2/28

4 Il robot realizzato Il robot realizzato è un manipolatore a tre gradi di libertà, in cui tutte le coppie sono prismatiche. La struttura è composta da 1) Piano di lavoro 2) Tre coppie prismatiche, movimenti x,y,z x y y z z x y Figura 1 (1) Struttura portante Pag. 2/28

5 Nomenclatura coppia prismatica La coppia prismatica è composta da due o piu membri, che realizzano un modo relativo puramente traslazionale Realizzazione 1) membri 1,2 aste in alluminio a profilo circolare 2) membro 3, in plexiglass, presenta due fori 3) facile da realizzare, moto traslazionale traslazione del carrello Rn (Figura 2) (1) Coppie prismatiche Pag. 3/28

6 Azionamento elettrico Al fine muovere elettronicamente la coppia sono necessari: motore, cinghia e puleggia. Il funzionamento Rotazione albero motore -> traslazione della cinghia -> traslazione del carrello soli- dale alla cinghia. Puleggia Ruota dentata Motore 1 2 Carrello X Cinghia (Figura 3) (1) Coppie prismatiche Pag. 4/28

7 (Figura 4) (1) Il robot realizzato Pag. 5/28

8 Hardware (2) Hardware

9 Scheda elettrica dedicata 1) pilotaggio motori 2) gestione dei segnali di controllo (Figura 5) (2) Azionamento elettrico Pag. 6/28

10 Il ponte H Azionamento di un motore tramite segnali digitali: 1) enable -> abilitazione ponte 2) In1,In2 -> gestione verso rotazione Inverter Risparmio segnali microcontrollore. (Figura 6) Motore DCStepper step.h (2) Azionamento elettrico Pag. 7/28

11 Rotore 1) due ruote dentate di polarità opposta 2) corrispondenza dente-valle Statore 1) quattro poli elettromagnetici 2) collegamento in serie di poli opposti -> 2 avvolgimenti allesterno (A,B) (Figura 7) (2) Motori passo passo Pag. 8/28

12 Rotazione Ogni 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 orario 2)Ordine decrescente -> verso antiorario Sequenza di rotazione La sequenza in cui devono essere polarizzati i due avvolgimenti (A e B) esterni è: 1) A-B-A*-B* senso orario 2) B*-A*-B-A senso antiorario Controllo stepper A B A* B* (Figura 9) (2) Motori passo passo Pag. 9/28

13 Rotazione 1)Ve>0, rotazione oraria 2)Ve<0, rotazione antioraria Sistema a ciclo chiuso con controllore proporzionale di tipo 1 (2) Motore DC Pag. 10/28 Tipo\uu(t)=cu(t)=tu(t)=t²/2 0E00infinito 1nulloE10Infinito 2nullo E20 Motore 1s1s Ve w θ (Figura 10)

14 Controllo (3) Controllo

15 Controllo 1) due stepper 2) un motore DC Obiettivo Realizzare un controllo che assicuri: 1) precisione nel raggiungimento della posizione desiderata 2) astatismo ai disturbi (3) Controllo Pag. 11/28

16 Esecuzione di un passo Questa 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; if (avvolgimento1==0){ 8. digitalWrite(In12m1,HIGH); //abilito prima avvolgimento in fase 9. digitalWrite(Enable1A,HIGH);}. (3) Esecuzione di un passo Pag. 12/28

17 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; if (avvolgimento1==0){ 8. digitalWrite(In12m1,HIGH); //abilito prima avvolgimento in fase 9. 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 passo Pag. 12/28 Esecuzione di un passo Questa funzione di occupa di alimentare correttamente gli avvolgimenti dello stepper al fine di eseguire un singolo passo.

18 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; if (avvolgimento1==0){ 8. digitalWrite(In12m1,HIGH); //abilito prima avvolgimento in fase 9. 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 passo Pag. 12/28 Esecuzione di un passo Questa funzione di occupa di alimentare correttamente gli avvolgimenti dello stepper al fine di eseguire un singolo passo.

19 Ritardo Il ritardo è unico per tutti i motori evitando variazioni della velocità. Funzione ritardo Il 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 Stepper Pag. 13/28

20 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

21 (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.

22 (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 PID Pag. 15/28

23 (3) Sovraelongazione Pag. 16/28 Azione di compensazione dellerrore, riduzione sovraelongazione intorno alla posizione finale. Azione derivata: Mφ aumenta S = f(ξ) = sin( ψ)=f(M φ) (rete anticipatrice) (Figura 15) sin(ψ)=ξ ψ Decadimento sovraelongazione S Approssimato

24 (3) Integrale Pag. 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\uu(t)=cu(t)=tu(t)=t²/2 0E00infinito 1nulloE10Infinito 2nullo E20

25 Il controllore non realizzabile perche C(s) non è una funzione propria. Il controllore PID(k) è conforme al linguaggio dellArduino. 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 PID Pag. 18/28

26 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 robot Pag. 19/28 (Figura 14) z

27 Precisione motori passo passo: θs =1.8 [gradi]=cost, d=8mm -> z =d/2*θ s = /8 [mm/passo] σ x = d/2 *θ d/2 Ruota dentata (Figura 13) (3) Passo di traslazione Pag. 20/28

28 Stampa (4) Stampa

29 Obiettivo Per valutare laffidabilità 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) Stampa Pag. 21/28

30 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 cerchio Pag. 22/28

31 Test funzione 1)Asse xy: motore DC e stepper, linea frastagliata 2)Asse xz: stepper e stepper, linea omogenea (Figura 15) (4) Stampa cerchio Pag. 23/28 ѳ=3 mmѳ=1 mm (Figura 16) x y x z

32 (4) Stampa testo Pag. 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. Soluzione 1) preparazione dati 2) conversione pixel posizioni e stampa

33 (4) Stampa testo Pag. 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) p1 p2

34 (4) Stampa testo Pag. 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)

35 (4) Stampa testo Pag. 26/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. Soluzione 1) preparazione dati 2) conversione pixel-posizioni e stampa Raggiungere la posizione p1=f(p1) Raggiungere la posizione p2=f(p2) Tracciamento linea Abbassare leffettore Alzare leffettore

36 (Figura 17) (4) Stampa testo Pag. 27/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. Soluzione 1) preparazione dati 2) conversione pixel-posizioni e stampa Risultato ottenuto

37 Conclusioni: 1)Realizzazione della struttura meccanica e dellazionamento 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) Conclusioni Pag. 28/28

38 Grazie per lattenzione


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

Presentazioni simili


Annunci Google