Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > CNC e Stampanti 3D


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 03 luglio 10, 01:42   #1 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 11-06-2007
Residenza: Sansepolcro (Ar)
Messaggi: 1.948
Progetto Dc ServoDrive per cnc

Finalmente dopo tanto tempo speso dietro a esperimenti vari stà venendo fuori qualcosa...
E' un drive per motori Dc retroazionati con encoder, che permette il pilotaggio step-dir come un tradizionale drive passo passo, può essere installato sulle nostre cnc dando la possibilità, di togliere finalmente le varie risonanze causate dai passo passo e di rendere più fluida e performante la nostra meccanica (forse ).
L'azionamento teoricamente non dovrebbe avere problemi a comandare motori fino a 70-80V con correnti di 10-15A, anche se al momento le prove le ho fatte con tensioni di 50V e massimo 3A, dal momento che non ho disponibile un alimentatore migliore.
Stò sviluppando il software dentro al pic (un DsPic che gira a quasi 120Mhz ) e sul pc per poter parametrizzare il pid di regolazione.
Per ora metto il link ad un video con le prime prove mentre il motore viene pilotato da mach3
YouTube - servo1
Quello sul video era montato per metà sul pcb (la logica) e per metà sulla bradboard (la potenza) ma praticamente è lo stesso schema.
Inoltre allego una foto del drive (versione molto beta ) che rende l'idea delle dimensioni e la printscreen del software.
A presto nuovi aggiornamenti, spero!!!
Icone allegate
Progetto Dc ServoDrive per cnc-printscreen.jpg   Progetto Dc ServoDrive per cnc-drive.jpg  

Ultima modifica di marcosinatti : 03 luglio 10 alle ore 01:48
marcosinatti non è collegato   Rispondi citando
Vecchio 05 luglio 10, 13:56   #2 (permalink)  Top
User
 
L'avatar di saviothecnic
 
Data registr.: 06-04-2004
Residenza: Italia Confini Lazio Campania
Messaggi: 3.099
Invia un messaggio via ICQ a saviothecnic Invia un messaggio via MSN a saviothecnic
Thumbs up

Citazione:
Originalmente inviato da marcosinatti Visualizza messaggio
A presto nuovi aggiornamenti, spero!!!
Ottimo lavoro chiudere l' anello con Ecnoder è una delle cose
che migliora molto le nostre CNC io ne ho preso uno cinese
ma ancora non ho avuto il tempo di provarlo

Curiosità ma alla fine sara un lavoro commerciale o free

Grazie
saviothecnic non è collegato   Rispondi citando
Vecchio 05 luglio 10, 23:52   #3 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 11-06-2007
Residenza: Sansepolcro (Ar)
Messaggi: 1.948
Se sarà un lavoro free oppure no non lo so ancora, credo di averci dedicato molto più di un centinaio di ore di lavoro per ora, certamente non sarà un qualcosa di commerciale ma magari se raggiungo risultati soddisfacenti a livello di prestazioni e affidabilità posso pensare di farne qualcuno per riprenderci le spese.
Ho fatto una cassetta di pcb prima di arrivare alla soluzione definitiva, considera che sono partito dall'utilizzo di un pic della serie 18, poi sono passato all'atmel ed infine sono arrivato ai dspic (altra musica).
Per la parte di potenza ho provato varie configurazioni di ponti H fatti con mosfet p e n con pilotaggio a transistor poi sono passato a ponti totalmente N con l'utilizzo di mosdriver.
Ho provato mosdriver della National, della Maxim e della IR, con varie configurazioni di pilotaggio per il gate.
Per molte di queste prove sono stato costretto a ridisegnare i pcb per poter avere risultati affidabili, visto che in questo tipo di circuiti con induttanze e correnti importanti i giri di massa e altri elementi legati alla disposizione dei componenti possono fare la differenza.

Metto un altro video un pò più interessante... YouTube - DcServo3
marcosinatti non è collegato   Rispondi citando
Vecchio 06 luglio 10, 09:25   #4 (permalink)  Top
User
 
Data registr.: 23-05-2009
Residenza: Imperiese
Messaggi: 938
Interessante, e bravo a Marcosinatti!
Peccato che la metà di ciò che hai scritto nel tuo ultimo messaggio, non tanto l'ho capito
Comunque ho appena terminato di fare l'elettronica di Fiser, non avendo grande dimestichezza in elettronica, è già tanto che ci sia riuscito a primo colpo , ma se mi faccio prendere la mano provo anche la tua !
Dimenticavo che devo (ormai è una questione di principio) rifare la Chimera di Danielxan che non so perchè ma non voleva saperne di andare (probabilmente colpa di qualche falsa saldatura o tipo di resistenze ).
Ciao e ancora complimenti
stepper non è collegato   Rispondi citando
Vecchio 07 luglio 10, 22:47   #5 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 11-06-2007
Residenza: Sansepolcro (Ar)
Messaggi: 1.948
Ho implementato anche il pilotaggio in quadratura oltre che step-dir, configurabile ovviamente tramite il sw su pc.
E' un ingresso in quadratura "reale" nel senso che controlla tutti i fronti dei canali A e B e incrementa o decrementa la posizione solo se la combinazione è valida, quindi è molto affidabile come pilotaggio.
A cosa serve?
-Alcuni software o controlli cnc hanno come uscita la quadratura
-Per fare un albero elettrico, ammettendo di avere 2 motori che muovono lo stesso asse, si pilota con il pc un motore e il secondo si fa pilotare dall'encoder del primo avendo la certezza che rimarranno sempre sincronizzati.
Metto un video in cui lo comando con un encoder da 500ppr YouTube - DcServo4 Quadrature
marcosinatti non è collegato   Rispondi citando
Vecchio 07 luglio 10, 23:47   #6 (permalink)  Top
User
 
Data registr.: 09-04-2008
Residenza: Brescia
Messaggi: 1.945
Io seguo in silenzio tutti questi progressi di ingegneria/fai da te, comunque caro ragazzo permettimi la confidenza ma sei troppo avanti, purtroppo per scelte di lavoro diverse dopo le superiori ho abbandonato l'elettronica applicata e quando vedo queste realizzazioni mi manca il mio "primo amore"

Complimenti

P.S. approfitto per un saluto a stepper che mi ha salutato in un altro post
AleBS non è collegato   Rispondi citando
Vecchio 18 agosto 10, 22:34   #7 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 11-06-2007
Residenza: Sansepolcro (Ar)
Messaggi: 1.948
Il pid non è niente di trascendentale, una volta capito il sistema non è poi così difficile tararlo.
Ci sono dei metodi matematici che sfruttano dei modelli e si basano su rilevamento di dati e calcoli, ma io non li conosco e poi a me piaciono le cose pratiche, quindi utilizzo il metodo "sperimetale"!
Provo a descriverlo , in maniera semplice, basandomi su informazioni raccolte durante lo sviluppo del drive e integrate con quelle derivate mie esperienze.
Cerco di non riempire il post di formule anche perchè non lo saprei fare !!!
Le formule che descrivo sono semplificate ma utili a capire il procedimento.
Magari leggendo questo post non avrete le idee chiare, ma passando qualche ora a fare prove pratiche la cosa diventa abbastanza intuitiva.

Il pid lavora eseguendo campionamenti e correzioni ogni tot tempo, che nel mio drive è di 300nS.
Quindi ogni 300nS analizza la situazione corrente e calcola la correzione da apportare.

Le variabili utilizzate sono:

PosizioneComandata = posizione che viene comandata all'azionamento
Posizione = posizione reale del motore
Errore= Errore instantaneo
dt = tempo di campionamento
Kp = Guadagno proporzionale
Ki = Guadagno Integrale
Kd = Guadagno Derivata

Per prima cosa viene calcolato l'errore instantaneo
Errore= PosizioneComandata - Posizione

Una volta calcolato l'errore procede a calcolare le 3 azioni di correzione:

Proporzionale:
P= Errore x Kp
E' la componente che corregge maggiormente l'errore, l'azione è instantanea, possiamo dire che è la prima operazione di "sgrossatura".
Un Kp basso porta una risposta inadeguata, se troppo alto porta il sistema in pendolazione.

Integrale:
I= I + Errore x dt
Lo dice la parola, lavora per integrazione, infatti è una correzione che tiene conto degli errori precedenti.
L'integrale è utile a correggere l'errore a regime, è poco influente su cambiamenti repentini e tende a rendere più "morbido" e "pastoso" il sistema, rallentadolo un pò.
Un valore basso non permette mai di portarsi a errore prossimo allo 0 durante il funzionamento a regime, ad esempio durante uno spostamento a velocità costante.
Un valore troppo alto produce una elongazione del comando, che all'atto pratico è ben visibile se durante la rotazione a velocità costante andiamo a fermare il motore, noteremo che avrà tendenza a oltrepassare la quota desiderata per poi tornare lentamente indietro, questo perchè l'integrale rimane "carico", facendo un confronto poco adatto, si comporta in maniera simile ad un condensatore.

Derivata:
D=Errore - Errore (CampionamentoPrecedente) x dt
La derivata lavora sulle differenze di errore, quindi si fa sentire quando ci sono grosse variazione.
Un valore basso non porta controindicazioni ma tende a rendere il sistema meno pronto, specialmente in presenza di un forte fattore integrale.
Un valore troppo alto può rendere instabile il sistema durante il funzionamento a regime.
In molti sistemi la derivata non viene utilizzata, a mio parere non gusta.

Al termine le correzioni vengono sommate per determinare l'uscita:
Out= P + I + D

Questo è il pid nudo e crudo poi ci possono essere altre funzioni aggiuntive tipo il bias, il feedforward di primo e secondo ordine, la banda morta, le limitazioni per l'anti windup, etc... ma questi sono parametri spesso non settabili dall'utent.e

La taratura del pid si esegue in linea di massima in questo modo, o per lo meno è quello che faccio io:
-Si porta Ki e Kd a 0
-Facendo prove di movimento si alza Kp fino a portare il sistema in pendolazione
-Un volta "pendolante" si abbassa Kp del 20-30%
-Si inizia ad alzare il Ki fino a che non si notano le elongazioni dopo lo stop della rotazione
-Si ritocca un pò Kp rialzandolo ed eventualmente si riabbassa leggermente Ki per eliminare le elongazioni
-Si alza Kd fino a quando il motore girando a regime non tente a "impuntare"
-Si riabbassa Kd di un 30%

Una volta fatto questo primo setting poi si inizia a fare delle prove con movimenti più o meno veloci e impostando rampe più o meno ripide, osservando il comportamento e apportando correzioni ai guadagni tenendo conto di come ogni fattore va ad influire.
Durante questo processo è importante, secondo me, avere uno strumento che visualizza le curve con le azioni e l'errore in modo da capire come la modifica di un valore va ad influire il comportamento del motore.
Ecco perchè ho voluto curare abbastanza anche questa parte di software.
Una volta presa un pò di pratica, se il carico applicato è abbastanza stabile, si riesce a tarare il pid in 10 minuti.

Spero di non aver annoiato nessuno e di non aver confuso le idee ancora di più...

Ultima modifica di marcosinatti : 18 agosto 10 alle ore 22:42
marcosinatti non è collegato   Rispondi citando
Vecchio 19 agosto 10, 00:13   #8 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 11-06-2007
Residenza: Sansepolcro (Ar)
Messaggi: 1.948
Scusate, rileggendo ho visto che non ho messo il fattore K sulle formule di I e D, mentre su P è corretto.
In pratica le formule sono:

Integrale:
I= (I + Errore x dt) x KI

Derivata:
D=(Errore - Errore (CampionamentoPrecedente) x dt) x Kd

In pratica vanno solo moltiplicate per il relativo K.
marcosinatti non è collegato   Rispondi citando
Vecchio 19 agosto 10, 00:41   #9 (permalink)  Top
User
 
L'avatar di daniele 1973
 
Data registr.: 19-02-2006
Residenza: caserta
Messaggi: 2.196
daniele

dopo questa spiegazione una cosa l'ho capita .............sono ignorante in materia..........cmq scherzi a parti complimenti anche se per me sei su un altro pianeta....
daniele 1973 non è collegato   Rispondi citando
Vecchio 19 agosto 10, 19:42   #10 (permalink)  Top
User
 
L'avatar di HappyFly
 
Data registr.: 01-01-2008
Residenza: Perugia
Messaggi: 681
Immagini: 12
Grazie della delucidazione ...

Mi è stata chiarissima, in generale i sistemi a retroazione sono sempre ostili, ma il tuo modo di spiegare mi è piaciuto molto ... anche la parte di tuning, per quanto semplificata, mi piace proprio come è spiegata ...

In maniera molto più semplificata in aeremodellismo si trova questo tipo di problematiche quando si tarano i giroscopi, dove bisogna settare gain e tipo di retroazione ...

Per quanto riguarda la domanda, giustissima, di Savio nel progetto ho in ordine di possibili risoluzioni :

1) cinghia e motore centrale
2) due motori e una cinghia tra loro di "sincronizzazione"
3) se proprio non risolvo mi interessa moltissimo la soluzione encoder sul motore master e motore slave che segue ...

Se Marco alla fine del lavoro vorrà condividere il progetto, magari come giustamente fa Fiser lasciando la realizzazione dell'elettronica open e vendendo il firmware mi prenoto da subito ... tra l'altro sono di Perugia e siamo proprio vicini ...

Un gentilezza per fare dei test mi consigliate dove prendere online ed economicamente un motore ed un encoder ?

Grazie davvero, forza Marco !!!
HappyFly non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Progetto cnc e presentazione. Alexontherocks CNC e Stampanti 3D 10 03 aprile 09 17:51
aiuto progetto cnc pessottino CNC e Stampanti 3D 8 13 agosto 08 01:49
adesioni progetto cnc bgvsan CNC e Stampanti 3D 29 14 gennaio 07 17:06



Tutti gli orari sono GMT +2. Adesso sono le 01:22.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002